]> 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 1500 "icmp-type" : {
287a95cf 1501 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
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 1743 "icmp-type" : {
287a95cf 1744 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
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 2147 "icmp-type" : {
287a95cf 2148 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
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 2343 "icmp-type" : {
287a95cf 2344 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
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,
4a407cfd 3569 "description" : "Limit I/O bandwidth (in KiB/s).",
44660702
DM
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.",
4a407cfd
TL
3632 "items" : {
3633 "type" : "string"
3634 },
44660702 3635 "optional" : 1,
4a407cfd
TL
3636 "type" : "array",
3637 "typetext" : "<array>"
44660702
DM
3638 },
3639 "id" : {
3640 "description" : "The job ID.",
3641 "maxLength" : 50,
013dc89f
DM
3642 "type" : "string",
3643 "typetext" : "<string>"
44660702
DM
3644 },
3645 "ionice" : {
3646 "default" : 7,
159464a9 3647 "description" : "Set IO priority when using the BFQ scheduler. For snapshot and suspend mode backups of VMs, this only affects the compressor. A value of 8 means the idle priority is used, otherwise the best-effort priority is used with the specified value.",
44660702
DM
3648 "maximum" : 8,
3649 "minimum" : 0,
3650 "optional" : 1,
4bd7df8b 3651 "type" : "integer",
013dc89f 3652 "typetext" : "<integer> (0 - 8)"
44660702
DM
3653 },
3654 "lockwait" : {
3655 "default" : 180,
3656 "description" : "Maximal time to wait for the global lock (minutes).",
3657 "minimum" : 0,
3658 "optional" : 1,
4bd7df8b 3659 "type" : "integer",
013dc89f 3660 "typetext" : "<integer> (0 - N)"
44660702
DM
3661 },
3662 "mailnotification" : {
3663 "default" : "always",
3664 "description" : "Specify when to send an email",
56122987 3665 "enum" : [
44660702
DM
3666 "always",
3667 "failure"
56122987 3668 ],
44660702
DM
3669 "optional" : 1,
3670 "type" : "string"
3671 },
3672 "mailto" : {
d2656385
TL
3673 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
3674 "format" : "email-or-username-list",
44660702 3675 "optional" : 1,
013dc89f
DM
3676 "type" : "string",
3677 "typetext" : "<string>"
44660702
DM
3678 },
3679 "maxfiles" : {
0695fdaf 3680 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
44660702
DM
3681 "minimum" : 1,
3682 "optional" : 1,
4bd7df8b 3683 "type" : "integer",
013dc89f 3684 "typetext" : "<integer> (1 - N)"
44660702
DM
3685 },
3686 "mode" : {
3687 "default" : "snapshot",
3688 "description" : "Backup mode.",
3689 "enum" : [
3690 "snapshot",
3691 "suspend",
3692 "stop"
3693 ],
3694 "optional" : 1,
3695 "type" : "string"
3696 },
3697 "node" : {
3698 "description" : "Only run if executed on this node.",
3699 "format" : "pve-node",
3700 "optional" : 1,
013dc89f
DM
3701 "type" : "string",
3702 "typetext" : "<string>"
44660702 3703 },
7af2edf9 3704 "notes-template" : {
4e7f60c2
TL
3705 "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.",
3706 "maxLength" : 1024,
7af2edf9
TL
3707 "optional" : 1,
3708 "requires" : "storage",
3709 "type" : "string",
3710 "typetext" : "<string>"
3711 },
4e7f60c2
TL
3712 "performance" : {
3713 "description" : "Other performance-related settings.",
3714 "format" : "backup-performance",
3715 "optional" : 1,
3716 "type" : "string",
3717 "typetext" : "[max-workers=<integer>]"
3718 },
44660702
DM
3719 "pigz" : {
3720 "default" : 0,
3721 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
3722 "optional" : 1,
013dc89f
DM
3723 "type" : "integer",
3724 "typetext" : "<integer>"
44660702 3725 },
9226ccbc
TL
3726 "pool" : {
3727 "description" : "Backup all known guest systems included in the specified pool.",
3728 "optional" : 1,
3729 "type" : "string",
3730 "typetext" : "<string>"
3731 },
7af2edf9
TL
3732 "protected" : {
3733 "description" : "If true, mark backup(s) as protected.",
3734 "optional" : 1,
3735 "requires" : "storage",
3736 "type" : "boolean",
3737 "typetext" : "<boolean>"
3738 },
739d4d64 3739 "prune-backups" : {
0695fdaf 3740 "default" : "keep-all=1",
739d4d64
TL
3741 "description" : "Use these retention options instead of those from the storage configuration.",
3742 "format" : "prune-backups",
3743 "optional" : 1,
3744 "type" : "string",
4772952b 3745 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 3746 },
44660702
DM
3747 "quiet" : {
3748 "default" : 0,
3749 "description" : "Be quiet.",
3750 "optional" : 1,
013dc89f
DM
3751 "type" : "boolean",
3752 "typetext" : "<boolean>"
44660702
DM
3753 },
3754 "remove" : {
3755 "default" : 1,
0695fdaf 3756 "description" : "Prune older backups according to 'prune-backups'.",
44660702 3757 "optional" : 1,
013dc89f
DM
3758 "type" : "boolean",
3759 "typetext" : "<boolean>"
44660702 3760 },
de786b48
TL
3761 "repeat-missed" : {
3762 "default" : 0,
3763 "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
3764 "optional" : 1,
3765 "type" : "boolean",
3766 "typetext" : "<boolean>"
3767 },
5370fa8c
TL
3768 "schedule" : {
3769 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
3770 "format" : "pve-calendar-event",
3771 "maxLength" : 128,
3772 "optional" : 1,
3773 "type" : "string",
3774 "typetext" : "<string>"
3775 },
44660702
DM
3776 "script" : {
3777 "description" : "Use specified hook script.",
3778 "optional" : 1,
013dc89f
DM
3779 "type" : "string",
3780 "typetext" : "<string>"
44660702 3781 },
44660702
DM
3782 "starttime" : {
3783 "description" : "Job Start time.",
5370fa8c 3784 "optional" : 1,
44660702 3785 "pattern" : "\\d{1,2}:\\d{1,2}",
56122987 3786 "type" : "string",
44660702 3787 "typetext" : "HH:MM"
7aacca6f 3788 },
44660702
DM
3789 "stdexcludes" : {
3790 "default" : 1,
3791 "description" : "Exclude temporary files and logs.",
3792 "optional" : 1,
013dc89f
DM
3793 "type" : "boolean",
3794 "typetext" : "<boolean>"
44660702
DM
3795 },
3796 "stop" : {
3797 "default" : 0,
1e3f8156 3798 "description" : "Stop running backup jobs on this host.",
44660702 3799 "optional" : 1,
013dc89f
DM
3800 "type" : "boolean",
3801 "typetext" : "<boolean>"
44660702
DM
3802 },
3803 "stopwait" : {
3804 "default" : 10,
3805 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
3806 "minimum" : 0,
3807 "optional" : 1,
4bd7df8b 3808 "type" : "integer",
013dc89f 3809 "typetext" : "<integer> (0 - N)"
44660702
DM
3810 },
3811 "storage" : {
3812 "description" : "Store resulting file to this storage.",
3813 "format" : "pve-storage-id",
3814 "optional" : 1,
013dc89f
DM
3815 "type" : "string",
3816 "typetext" : "<string>"
56122987 3817 },
44660702
DM
3818 "tmpdir" : {
3819 "description" : "Store temporary files to specified directory.",
3820 "optional" : 1,
013dc89f
DM
3821 "type" : "string",
3822 "typetext" : "<string>"
44660702
DM
3823 },
3824 "vmid" : {
3825 "description" : "The ID of the guest system you want to backup.",
3826 "format" : "pve-vmid-list",
3827 "optional" : 1,
013dc89f
DM
3828 "type" : "string",
3829 "typetext" : "<string>"
c5aa7e14
TL
3830 },
3831 "zstd" : {
3832 "default" : 1,
3833 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
3834 "optional" : 1,
3835 "type" : "integer",
3836 "typetext" : "<integer>"
56122987 3837 }
44660702 3838 }
56122987
DM
3839 },
3840 "permissions" : {
3841 "check" : [
3842 "perm",
3843 "/",
3844 [
44660702 3845 "Sys.Modify"
56122987 3846 ]
04d22a9f
TL
3847 ],
3848 "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
56122987 3849 },
44660702
DM
3850 "protected" : 1,
3851 "returns" : {
3852 "type" : "null"
7aacca6f 3853 }
56122987
DM
3854 }
3855 },
04d22a9f 3856 "leaf" : 0,
44660702
DM
3857 "path" : "/cluster/backup/{id}",
3858 "text" : "{id}"
3859 }
3860 ],
3861 "info" : {
3862 "GET" : {
e9cd3bd4 3863 "allowtoken" : 1,
44660702
DM
3864 "description" : "List vzdump backup schedule.",
3865 "method" : "GET",
3866 "name" : "index",
3867 "parameters" : {
3868 "additionalProperties" : 0
3869 },
3870 "permissions" : {
3871 "check" : [
3872 "perm",
3873 "/",
3874 [
3875 "Sys.Audit"
3876 ]
3877 ]
3878 },
3879 "returns" : {
3880 "items" : {
3881 "properties" : {
3882 "id" : {
1c532546
TL
3883 "description" : "The job ID.",
3884 "maxLength" : 50,
44660702
DM
3885 "type" : "string"
3886 }
3887 },
3888 "type" : "object"
3889 },
3890 "links" : [
3891 {
3892 "href" : "{id}",
3893 "rel" : "child"
3894 }
3895 ],
3896 "type" : "array"
3897 }
3898 },
3899 "POST" : {
e9cd3bd4 3900 "allowtoken" : 1,
44660702
DM
3901 "description" : "Create new vzdump backup job.",
3902 "method" : "POST",
3903 "name" : "create_job",
3904 "parameters" : {
3905 "additionalProperties" : 0,
3906 "properties" : {
3907 "all" : {
3908 "default" : 0,
3909 "description" : "Backup all known guest systems on this host.",
3910 "optional" : 1,
013dc89f
DM
3911 "type" : "boolean",
3912 "typetext" : "<boolean>"
44660702
DM
3913 },
3914 "bwlimit" : {
3915 "default" : 0,
4a407cfd 3916 "description" : "Limit I/O bandwidth (in KiB/s).",
44660702
DM
3917 "minimum" : 0,
3918 "optional" : 1,
4bd7df8b 3919 "type" : "integer",
013dc89f 3920 "typetext" : "<integer> (0 - N)"
44660702 3921 },
5370fa8c
TL
3922 "comment" : {
3923 "description" : "Description for the Job.",
3924 "maxLength" : 512,
3925 "optional" : 1,
3926 "type" : "string",
3927 "typetext" : "<string>"
3928 },
44660702
DM
3929 "compress" : {
3930 "default" : "0",
3931 "description" : "Compress dump file.",
3932 "enum" : [
3933 "0",
3934 "1",
3935 "gzip",
c5aa7e14
TL
3936 "lzo",
3937 "zstd"
44660702
DM
3938 ],
3939 "optional" : 1,
3940 "type" : "string"
3941 },
3942 "dow" : {
3943 "default" : "mon,tue,wed,thu,fri,sat,sun",
3944 "description" : "Day of week selection.",
3945 "format" : "pve-day-of-week-list",
3946 "optional" : 1,
5370fa8c 3947 "requires" : "starttime",
013dc89f
DM
3948 "type" : "string",
3949 "typetext" : "<string>"
44660702
DM
3950 },
3951 "dumpdir" : {
3952 "description" : "Store resulting files to specified directory.",
3953 "optional" : 1,
013dc89f
DM
3954 "type" : "string",
3955 "typetext" : "<string>"
44660702
DM
3956 },
3957 "enabled" : {
3958 "default" : "1",
3959 "description" : "Enable or disable the job.",
3960 "optional" : 1,
013dc89f
DM
3961 "type" : "boolean",
3962 "typetext" : "<boolean>"
44660702
DM
3963 },
3964 "exclude" : {
3965 "description" : "Exclude specified guest systems (assumes --all)",
3966 "format" : "pve-vmid-list",
3967 "optional" : 1,
013dc89f
DM
3968 "type" : "string",
3969 "typetext" : "<string>"
44660702
DM
3970 },
3971 "exclude-path" : {
d2656385 3972 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
4a407cfd
TL
3973 "items" : {
3974 "type" : "string"
3975 },
44660702 3976 "optional" : 1,
4a407cfd
TL
3977 "type" : "array",
3978 "typetext" : "<array>"
44660702 3979 },
5370fa8c
TL
3980 "id" : {
3981 "description" : "Job ID (will be autogenerated).",
3982 "format" : "pve-configid",
3983 "optional" : 1,
3984 "type" : "string",
3985 "typetext" : "<string>"
3986 },
44660702
DM
3987 "ionice" : {
3988 "default" : 7,
159464a9 3989 "description" : "Set IO priority when using the BFQ scheduler. For snapshot and suspend mode backups of VMs, this only affects the compressor. A value of 8 means the idle priority is used, otherwise the best-effort priority is used with the specified value.",
44660702
DM
3990 "maximum" : 8,
3991 "minimum" : 0,
3992 "optional" : 1,
4bd7df8b 3993 "type" : "integer",
013dc89f 3994 "typetext" : "<integer> (0 - 8)"
44660702
DM
3995 },
3996 "lockwait" : {
3997 "default" : 180,
3998 "description" : "Maximal time to wait for the global lock (minutes).",
3999 "minimum" : 0,
4000 "optional" : 1,
4bd7df8b 4001 "type" : "integer",
013dc89f 4002 "typetext" : "<integer> (0 - N)"
44660702
DM
4003 },
4004 "mailnotification" : {
4005 "default" : "always",
4006 "description" : "Specify when to send an email",
4007 "enum" : [
4008 "always",
4009 "failure"
4010 ],
4011 "optional" : 1,
4012 "type" : "string"
4013 },
4014 "mailto" : {
d2656385
TL
4015 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
4016 "format" : "email-or-username-list",
44660702 4017 "optional" : 1,
013dc89f
DM
4018 "type" : "string",
4019 "typetext" : "<string>"
44660702
DM
4020 },
4021 "maxfiles" : {
0695fdaf 4022 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
44660702
DM
4023 "minimum" : 1,
4024 "optional" : 1,
4bd7df8b 4025 "type" : "integer",
013dc89f 4026 "typetext" : "<integer> (1 - N)"
44660702
DM
4027 },
4028 "mode" : {
4029 "default" : "snapshot",
4030 "description" : "Backup mode.",
4031 "enum" : [
4032 "snapshot",
4033 "suspend",
4034 "stop"
4035 ],
4036 "optional" : 1,
4037 "type" : "string"
4038 },
4039 "node" : {
4040 "description" : "Only run if executed on this node.",
4041 "format" : "pve-node",
4042 "optional" : 1,
013dc89f
DM
4043 "type" : "string",
4044 "typetext" : "<string>"
44660702 4045 },
7af2edf9 4046 "notes-template" : {
4e7f60c2
TL
4047 "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.",
4048 "maxLength" : 1024,
7af2edf9
TL
4049 "optional" : 1,
4050 "requires" : "storage",
4051 "type" : "string",
4052 "typetext" : "<string>"
4053 },
4e7f60c2
TL
4054 "performance" : {
4055 "description" : "Other performance-related settings.",
4056 "format" : "backup-performance",
4057 "optional" : 1,
4058 "type" : "string",
4059 "typetext" : "[max-workers=<integer>]"
4060 },
44660702
DM
4061 "pigz" : {
4062 "default" : 0,
4063 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
4064 "optional" : 1,
013dc89f
DM
4065 "type" : "integer",
4066 "typetext" : "<integer>"
44660702 4067 },
9226ccbc
TL
4068 "pool" : {
4069 "description" : "Backup all known guest systems included in the specified pool.",
4070 "optional" : 1,
4071 "type" : "string",
4072 "typetext" : "<string>"
4073 },
7af2edf9
TL
4074 "protected" : {
4075 "description" : "If true, mark backup(s) as protected.",
4076 "optional" : 1,
4077 "requires" : "storage",
4078 "type" : "boolean",
4079 "typetext" : "<boolean>"
4080 },
739d4d64 4081 "prune-backups" : {
0695fdaf 4082 "default" : "keep-all=1",
739d4d64
TL
4083 "description" : "Use these retention options instead of those from the storage configuration.",
4084 "format" : "prune-backups",
4085 "optional" : 1,
4086 "type" : "string",
4772952b 4087 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 4088 },
44660702
DM
4089 "quiet" : {
4090 "default" : 0,
4091 "description" : "Be quiet.",
4092 "optional" : 1,
013dc89f
DM
4093 "type" : "boolean",
4094 "typetext" : "<boolean>"
44660702
DM
4095 },
4096 "remove" : {
4097 "default" : 1,
0695fdaf 4098 "description" : "Prune older backups according to 'prune-backups'.",
44660702 4099 "optional" : 1,
013dc89f
DM
4100 "type" : "boolean",
4101 "typetext" : "<boolean>"
44660702 4102 },
de786b48
TL
4103 "repeat-missed" : {
4104 "default" : 0,
4105 "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
4106 "optional" : 1,
4107 "type" : "boolean",
4108 "typetext" : "<boolean>"
4109 },
5370fa8c
TL
4110 "schedule" : {
4111 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
4112 "format" : "pve-calendar-event",
4113 "maxLength" : 128,
4114 "optional" : 1,
4115 "type" : "string",
4116 "typetext" : "<string>"
4117 },
44660702
DM
4118 "script" : {
4119 "description" : "Use specified hook script.",
4120 "optional" : 1,
013dc89f
DM
4121 "type" : "string",
4122 "typetext" : "<string>"
44660702 4123 },
44660702
DM
4124 "starttime" : {
4125 "description" : "Job Start time.",
5370fa8c 4126 "optional" : 1,
44660702
DM
4127 "pattern" : "\\d{1,2}:\\d{1,2}",
4128 "type" : "string",
4129 "typetext" : "HH:MM"
4130 },
4131 "stdexcludes" : {
4132 "default" : 1,
4133 "description" : "Exclude temporary files and logs.",
4134 "optional" : 1,
013dc89f
DM
4135 "type" : "boolean",
4136 "typetext" : "<boolean>"
44660702
DM
4137 },
4138 "stop" : {
4139 "default" : 0,
1e3f8156 4140 "description" : "Stop running backup jobs on this host.",
44660702 4141 "optional" : 1,
013dc89f
DM
4142 "type" : "boolean",
4143 "typetext" : "<boolean>"
44660702
DM
4144 },
4145 "stopwait" : {
4146 "default" : 10,
4147 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
4148 "minimum" : 0,
4149 "optional" : 1,
4bd7df8b 4150 "type" : "integer",
013dc89f 4151 "typetext" : "<integer> (0 - N)"
44660702
DM
4152 },
4153 "storage" : {
4154 "description" : "Store resulting file to this storage.",
4155 "format" : "pve-storage-id",
4156 "optional" : 1,
013dc89f
DM
4157 "type" : "string",
4158 "typetext" : "<string>"
44660702
DM
4159 },
4160 "tmpdir" : {
4161 "description" : "Store temporary files to specified directory.",
4162 "optional" : 1,
013dc89f
DM
4163 "type" : "string",
4164 "typetext" : "<string>"
44660702
DM
4165 },
4166 "vmid" : {
4167 "description" : "The ID of the guest system you want to backup.",
4168 "format" : "pve-vmid-list",
4169 "optional" : 1,
013dc89f
DM
4170 "type" : "string",
4171 "typetext" : "<string>"
c5aa7e14
TL
4172 },
4173 "zstd" : {
4174 "default" : 1,
4175 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
4176 "optional" : 1,
4177 "type" : "integer",
4178 "typetext" : "<integer>"
44660702
DM
4179 }
4180 }
4181 },
4182 "permissions" : {
4183 "check" : [
4184 "perm",
4185 "/",
4186 [
4187 "Sys.Modify"
4188 ]
de0983cb
DM
4189 ],
4190 "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
44660702
DM
4191 },
4192 "protected" : 1,
4193 "returns" : {
4194 "type" : "null"
4195 }
4196 }
4197 },
4198 "leaf" : 0,
4199 "path" : "/cluster/backup",
4200 "text" : "backup"
4201 },
04d22a9f
TL
4202 {
4203 "children" : [
4204 {
4205 "info" : {
4206 "GET" : {
4207 "allowtoken" : 1,
4208 "description" : "Shows all guests which are not covered by any backup job.",
4209 "method" : "GET",
4210 "name" : "get_guests_not_in_backup",
4211 "parameters" : {
4212 "additionalProperties" : 0
4213 },
4214 "permissions" : {
4215 "check" : [
4216 "perm",
4217 "/",
4218 [
4219 "Sys.Audit"
4220 ]
4221 ]
4222 },
4223 "protected" : 1,
4224 "returns" : {
4225 "description" : "Contains the guest objects.",
4226 "items" : {
4227 "properties" : {
4228 "name" : {
4229 "description" : "Name of the guest",
4230 "optional" : 1,
4231 "type" : "string"
4232 },
4233 "type" : {
4234 "description" : "Type of the guest.",
4235 "enum" : [
4236 "qemu",
4237 "lxc"
4238 ],
4239 "type" : "string"
4240 },
4241 "vmid" : {
4242 "description" : "VMID of the guest.",
4243 "type" : "integer"
4244 }
4245 },
4246 "type" : "object"
4247 },
4248 "type" : "array"
4249 }
4250 }
4251 },
4252 "leaf" : 1,
34f3e481
TL
4253 "path" : "/cluster/backup-info/not-backed-up",
4254 "text" : "not-backed-up"
04d22a9f
TL
4255 }
4256 ],
4257 "info" : {
4258 "GET" : {
4259 "allowtoken" : 1,
34f3e481 4260 "description" : "Index for backup info related endpoints",
04d22a9f 4261 "method" : "GET",
34f3e481 4262 "name" : "index",
04d22a9f
TL
4263 "parameters" : {
4264 "additionalProperties" : 0
4265 },
04d22a9f 4266 "returns" : {
34f3e481
TL
4267 "description" : "Directory index.",
4268 "items" : {
4269 "properties" : {
4270 "subdir" : {
4271 "description" : "API sub-directory endpoint",
4272 "type" : "string"
4273 }
4274 },
4275 "type" : "object"
4276 },
4277 "links" : [
4278 {
4279 "href" : "{subdir}",
4280 "rel" : "child"
4281 }
4282 ],
4283 "type" : "array"
04d22a9f
TL
4284 }
4285 }
4286 },
4287 "leaf" : 0,
34f3e481
TL
4288 "path" : "/cluster/backup-info",
4289 "text" : "backup-info"
04d22a9f 4290 },
44660702
DM
4291 {
4292 "children" : [
4293 {
4294 "children" : [
4295 {
4296 "children" : [
56122987 4297 {
56122987
DM
4298 "info" : {
4299 "POST" : {
e9cd3bd4 4300 "allowtoken" : 1,
44660702
DM
4301 "description" : "Request resource migration (online) to another node.",
4302 "method" : "POST",
4303 "name" : "migrate",
56122987 4304 "parameters" : {
7aacca6f 4305 "additionalProperties" : 0,
56122987
DM
4306 "properties" : {
4307 "node" : {
95895385 4308 "description" : "Target node.",
44660702 4309 "format" : "pve-node",
013dc89f
DM
4310 "type" : "string",
4311 "typetext" : "<string>"
56122987
DM
4312 },
4313 "sid" : {
44660702 4314 "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 4315 "format" : "pve-ha-resource-or-vm-id",
7aacca6f 4316 "type" : "string",
44660702 4317 "typetext" : "<type>:<name>"
56122987 4318 }
7aacca6f 4319 }
56122987 4320 },
56122987
DM
4321 "permissions" : {
4322 "check" : [
4323 "perm",
4324 "/",
4325 [
4326 "Sys.Console"
4327 ]
4328 ]
4329 },
7aacca6f 4330 "protected" : 1,
7aacca6f
DM
4331 "returns" : {
4332 "type" : "null"
44660702 4333 }
56122987 4334 }
44660702
DM
4335 },
4336 "leaf" : 1,
4337 "path" : "/cluster/ha/resources/{sid}/migrate",
4338 "text" : "migrate"
4339 },
4340 {
4341 "info" : {
4342 "POST" : {
e9cd3bd4 4343 "allowtoken" : 1,
44660702
DM
4344 "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.",
4345 "method" : "POST",
4346 "name" : "relocate",
4347 "parameters" : {
4348 "additionalProperties" : 0,
4349 "properties" : {
4350 "node" : {
95895385 4351 "description" : "Target node.",
44660702 4352 "format" : "pve-node",
013dc89f
DM
4353 "type" : "string",
4354 "typetext" : "<string>"
44660702
DM
4355 },
4356 "sid" : {
4357 "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).",
4358 "format" : "pve-ha-resource-or-vm-id",
4359 "type" : "string",
4360 "typetext" : "<type>:<name>"
4361 }
4362 }
4363 },
4364 "permissions" : {
4365 "check" : [
4366 "perm",
4367 "/",
4368 [
4369 "Sys.Console"
4370 ]
4371 ]
4372 },
4373 "protected" : 1,
4374 "returns" : {
4375 "type" : "null"
4376 }
4377 }
4378 },
4379 "leaf" : 1,
4380 "path" : "/cluster/ha/resources/{sid}/relocate",
4381 "text" : "relocate"
4382 }
4383 ],
4384 "info" : {
4385 "DELETE" : {
e9cd3bd4 4386 "allowtoken" : 1,
44660702
DM
4387 "description" : "Delete resource configuration.",
4388 "method" : "DELETE",
4389 "name" : "delete",
7aacca6f 4390 "parameters" : {
44660702 4391 "additionalProperties" : 0,
7aacca6f
DM
4392 "properties" : {
4393 "sid" : {
4394 "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 4395 "format" : "pve-ha-resource-or-vm-id",
7aacca6f 4396 "type" : "string",
44660702
DM
4397 "typetext" : "<type>:<name>"
4398 }
4399 }
4400 },
4401 "permissions" : {
4402 "check" : [
4403 "perm",
4404 "/",
4405 [
4406 "Sys.Console"
4407 ]
4408 ]
4409 },
4410 "protected" : 1,
4411 "returns" : {
4412 "type" : "null"
4413 }
4414 },
4415 "GET" : {
e9cd3bd4 4416 "allowtoken" : 1,
44660702
DM
4417 "description" : "Read resource configuration.",
4418 "method" : "GET",
4419 "name" : "read",
4420 "parameters" : {
4421 "additionalProperties" : 0,
4422 "properties" : {
4423 "sid" : {
4424 "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 4425 "format" : "pve-ha-resource-or-vm-id",
44660702 4426 "type" : "string",
7aacca6f
DM
4427 "typetext" : "<type>:<name>"
4428 }
44660702 4429 }
7aacca6f
DM
4430 },
4431 "permissions" : {
4432 "check" : [
4433 "perm",
4434 "/",
4435 [
4436 "Sys.Audit"
4437 ]
4438 ]
4439 },
5f26e15b
TL
4440 "returns" : {
4441 "properties" : {
4442 "comment" : {
4443 "description" : "Description.",
4444 "optional" : 1,
4445 "type" : "string"
4446 },
4447 "digest" : {
4448 "description" : "Can be used to prevent concurrent modifications.",
4449 "type" : "string"
4450 },
4451 "group" : {
4452 "description" : "The HA group identifier.",
4453 "format" : "pve-configid",
4454 "optional" : 1,
4455 "type" : "string"
4456 },
4457 "max_relocate" : {
4458 "description" : "Maximal number of service relocate tries when a service failes to start.",
4459 "optional" : 1,
4460 "type" : "integer"
4461 },
4462 "max_restart" : {
4463 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4464 "optional" : 1,
4465 "type" : "integer"
4466 },
4467 "sid" : {
4468 "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).",
4469 "format" : "pve-ha-resource-or-vm-id",
4470 "type" : "string",
4471 "typetext" : "<type>:<name>"
4472 },
4473 "state" : {
4474 "description" : "Requested resource state.",
4475 "enum" : [
4476 "started",
4477 "stopped",
4478 "enabled",
4479 "disabled",
4480 "ignored"
4481 ],
4482 "optional" : 1,
4483 "type" : "string"
4484 },
4485 "type" : {
4486 "description" : "The type of the resources.",
4487 "type" : "string"
4488 }
4489 },
4490 "type" : "object"
4491 }
7aacca6f 4492 },
56122987 4493 "PUT" : {
e9cd3bd4 4494 "allowtoken" : 1,
44660702 4495 "description" : "Update resource configuration.",
7aacca6f 4496 "method" : "PUT",
44660702 4497 "name" : "update",
56122987
DM
4498 "parameters" : {
4499 "additionalProperties" : 0,
4500 "properties" : {
44660702
DM
4501 "comment" : {
4502 "description" : "Description.",
4503 "maxLength" : 4096,
56122987 4504 "optional" : 1,
013dc89f
DM
4505 "type" : "string",
4506 "typetext" : "<string>"
56122987 4507 },
7aacca6f
DM
4508 "delete" : {
4509 "description" : "A list of settings you want to delete.",
7aacca6f 4510 "format" : "pve-configid-list",
44660702
DM
4511 "maxLength" : 4096,
4512 "optional" : 1,
013dc89f
DM
4513 "type" : "string",
4514 "typetext" : "<string>"
56122987 4515 },
44660702
DM
4516 "digest" : {
4517 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
4518 "maxLength" : 40,
4519 "optional" : 1,
013dc89f
DM
4520 "type" : "string",
4521 "typetext" : "<string>"
56122987 4522 },
44660702
DM
4523 "group" : {
4524 "description" : "The HA group identifier.",
4525 "format" : "pve-configid",
7aacca6f 4526 "optional" : 1,
013dc89f
DM
4527 "type" : "string",
4528 "typetext" : "<string>"
56122987
DM
4529 },
4530 "max_relocate" : {
7aacca6f 4531 "default" : 1,
56122987 4532 "description" : "Maximal number of service relocate tries when a service failes to start.",
44660702
DM
4533 "minimum" : 0,
4534 "optional" : 1,
4bd7df8b 4535 "type" : "integer",
013dc89f 4536 "typetext" : "<integer> (0 - N)"
7aacca6f 4537 },
44660702
DM
4538 "max_restart" : {
4539 "default" : 1,
4540 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4541 "minimum" : 0,
7aacca6f 4542 "optional" : 1,
4bd7df8b 4543 "type" : "integer",
013dc89f 4544 "typetext" : "<integer> (0 - N)"
44660702
DM
4545 },
4546 "sid" : {
4547 "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).",
4548 "format" : "pve-ha-resource-or-vm-id",
4549 "type" : "string",
4550 "typetext" : "<type>:<name>"
7aacca6f
DM
4551 },
4552 "state" : {
f13c1238
DM
4553 "default" : "started",
4554 "description" : "Requested resource state.",
7aacca6f 4555 "enum" : [
f13c1238
DM
4556 "started",
4557 "stopped",
7aacca6f 4558 "enabled",
2489d6df
WB
4559 "disabled",
4560 "ignored"
7aacca6f 4561 ],
7aacca6f 4562 "optional" : 1,
f13c1238 4563 "type" : "string",
2489d6df 4564 "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 4565 }
44660702
DM
4566 },
4567 "type" : "object"
56122987 4568 },
56122987
DM
4569 "permissions" : {
4570 "check" : [
4571 "perm",
4572 "/",
4573 [
4574 "Sys.Console"
4575 ]
4576 ]
4577 },
7aacca6f 4578 "protected" : 1,
56122987
DM
4579 "returns" : {
4580 "type" : "null"
4581 }
4582 }
4583 },
44660702 4584 "leaf" : 0,
7aacca6f 4585 "path" : "/cluster/ha/resources/{sid}",
44660702 4586 "text" : "{sid}"
56122987
DM
4587 }
4588 ],
7aacca6f
DM
4589 "info" : {
4590 "GET" : {
e9cd3bd4 4591 "allowtoken" : 1,
44660702
DM
4592 "description" : "List HA resources.",
4593 "method" : "GET",
4594 "name" : "index",
7aacca6f 4595 "parameters" : {
44660702
DM
4596 "additionalProperties" : 0,
4597 "properties" : {
4598 "type" : {
4599 "description" : "Only list resources of specific type",
4600 "enum" : [
4601 "ct",
4602 "vm"
4603 ],
4604 "optional" : 1,
4605 "type" : "string"
4606 }
4607 }
7aacca6f 4608 },
7aacca6f
DM
4609 "permissions" : {
4610 "check" : [
4611 "perm",
4612 "/",
4613 [
4614 "Sys.Audit"
4615 ]
4616 ]
4617 },
7aacca6f 4618 "returns" : {
7aacca6f 4619 "items" : {
7aacca6f 4620 "properties" : {
44660702 4621 "sid" : {
7aacca6f
DM
4622 "type" : "string"
4623 }
44660702
DM
4624 },
4625 "type" : "object"
7aacca6f
DM
4626 },
4627 "links" : [
4628 {
44660702 4629 "href" : "{sid}",
7aacca6f
DM
4630 "rel" : "child"
4631 }
44660702
DM
4632 ],
4633 "type" : "array"
7aacca6f
DM
4634 }
4635 },
4636 "POST" : {
e9cd3bd4 4637 "allowtoken" : 1,
44660702 4638 "description" : "Create a new HA resource.",
7aacca6f 4639 "method" : "POST",
44660702 4640 "name" : "create",
7aacca6f 4641 "parameters" : {
44660702 4642 "additionalProperties" : 0,
7aacca6f
DM
4643 "properties" : {
4644 "comment" : {
7aacca6f 4645 "description" : "Description.",
44660702 4646 "maxLength" : 4096,
7aacca6f 4647 "optional" : 1,
013dc89f
DM
4648 "type" : "string",
4649 "typetext" : "<string>"
7aacca6f 4650 },
44660702
DM
4651 "group" : {
4652 "description" : "The HA group identifier.",
4653 "format" : "pve-configid",
7aacca6f 4654 "optional" : 1,
013dc89f
DM
4655 "type" : "string",
4656 "typetext" : "<string>"
7aacca6f 4657 },
44660702
DM
4658 "max_relocate" : {
4659 "default" : 1,
4660 "description" : "Maximal number of service relocate tries when a service failes to start.",
4661 "minimum" : 0,
7aacca6f 4662 "optional" : 1,
4bd7df8b 4663 "type" : "integer",
013dc89f 4664 "typetext" : "<integer> (0 - N)"
7aacca6f 4665 },
44660702
DM
4666 "max_restart" : {
4667 "default" : 1,
4668 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4669 "minimum" : 0,
4670 "optional" : 1,
4bd7df8b 4671 "type" : "integer",
013dc89f 4672 "typetext" : "<integer> (0 - N)"
44660702
DM
4673 },
4674 "sid" : {
4675 "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).",
4676 "format" : "pve-ha-resource-or-vm-id",
4677 "type" : "string",
4678 "typetext" : "<type>:<name>"
4679 },
4680 "state" : {
f13c1238
DM
4681 "default" : "started",
4682 "description" : "Requested resource state.",
7aacca6f 4683 "enum" : [
f13c1238
DM
4684 "started",
4685 "stopped",
44660702 4686 "enabled",
2489d6df
WB
4687 "disabled",
4688 "ignored"
7aacca6f 4689 ],
7aacca6f 4690 "optional" : 1,
f13c1238 4691 "type" : "string",
2489d6df 4692 "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 4693 },
44660702
DM
4694 "type" : {
4695 "description" : "Resource type.",
4696 "enum" : [
4697 "ct",
4698 "vm"
4699 ],
4700 "optional" : 1,
4701 "type" : "string"
4702 }
7aacca6f 4703 },
44660702 4704 "type" : "object"
7aacca6f
DM
4705 },
4706 "permissions" : {
4707 "check" : [
4708 "perm",
4709 "/",
4710 [
4711 "Sys.Console"
4712 ]
4713 ]
4714 },
44660702
DM
4715 "protected" : 1,
4716 "returns" : {
4717 "type" : "null"
4718 }
7aacca6f
DM
4719 }
4720 },
44660702
DM
4721 "leaf" : 0,
4722 "path" : "/cluster/ha/resources",
4723 "text" : "resources"
4724 },
4725 {
56122987
DM
4726 "children" : [
4727 {
56122987 4728 "info" : {
44660702 4729 "DELETE" : {
e9cd3bd4 4730 "allowtoken" : 1,
44660702
DM
4731 "description" : "Delete ha group configuration.",
4732 "method" : "DELETE",
4733 "name" : "delete",
56122987 4734 "parameters" : {
7aacca6f 4735 "additionalProperties" : 0,
56122987 4736 "properties" : {
7aacca6f
DM
4737 "group" : {
4738 "description" : "The HA group identifier.",
44660702 4739 "format" : "pve-configid",
013dc89f
DM
4740 "type" : "string",
4741 "typetext" : "<string>"
56122987 4742 }
7aacca6f 4743 }
56122987 4744 },
56122987
DM
4745 "permissions" : {
4746 "check" : [
4747 "perm",
4748 "/",
4749 [
7aacca6f 4750 "Sys.Console"
56122987
DM
4751 ]
4752 ]
4753 },
44660702 4754 "protected" : 1,
7aacca6f
DM
4755 "returns" : {
4756 "type" : "null"
56122987
DM
4757 }
4758 },
44660702 4759 "GET" : {
e9cd3bd4 4760 "allowtoken" : 1,
44660702
DM
4761 "description" : "Read ha group configuration.",
4762 "method" : "GET",
4763 "name" : "read",
56122987 4764 "parameters" : {
44660702 4765 "additionalProperties" : 0,
56122987
DM
4766 "properties" : {
4767 "group" : {
4768 "description" : "The HA group identifier.",
44660702 4769 "format" : "pve-configid",
013dc89f
DM
4770 "type" : "string",
4771 "typetext" : "<string>"
56122987 4772 }
44660702 4773 }
56122987 4774 },
56122987
DM
4775 "permissions" : {
4776 "check" : [
4777 "perm",
4778 "/",
4779 [
44660702 4780 "Sys.Audit"
56122987
DM
4781 ]
4782 ]
4783 },
44660702 4784 "returns" : {}
7aacca6f 4785 },
44660702 4786 "PUT" : {
e9cd3bd4 4787 "allowtoken" : 1,
44660702
DM
4788 "description" : "Update ha group configuration.",
4789 "method" : "PUT",
4790 "name" : "update",
7aacca6f 4791 "parameters" : {
44660702 4792 "additionalProperties" : 0,
7aacca6f 4793 "properties" : {
44660702
DM
4794 "comment" : {
4795 "description" : "Description.",
4796 "maxLength" : 4096,
4797 "optional" : 1,
013dc89f
DM
4798 "type" : "string",
4799 "typetext" : "<string>"
44660702
DM
4800 },
4801 "delete" : {
4802 "description" : "A list of settings you want to delete.",
4803 "format" : "pve-configid-list",
4804 "maxLength" : 4096,
4805 "optional" : 1,
013dc89f
DM
4806 "type" : "string",
4807 "typetext" : "<string>"
44660702
DM
4808 },
4809 "digest" : {
4810 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
4811 "maxLength" : 40,
4812 "optional" : 1,
013dc89f
DM
4813 "type" : "string",
4814 "typetext" : "<string>"
44660702 4815 },
7aacca6f
DM
4816 "group" : {
4817 "description" : "The HA group identifier.",
44660702 4818 "format" : "pve-configid",
013dc89f
DM
4819 "type" : "string",
4820 "typetext" : "<string>"
44660702
DM
4821 },
4822 "nodes" : {
f13c1238 4823 "description" : "List of cluster node names with optional priority.",
44660702
DM
4824 "format" : "pve-ha-group-node-list",
4825 "optional" : 1,
7aacca6f 4826 "type" : "string",
f13c1238
DM
4827 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
4828 "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
4829 },
4830 "nofailback" : {
4831 "default" : 0,
4832 "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.",
4833 "optional" : 1,
013dc89f
DM
4834 "type" : "boolean",
4835 "typetext" : "<boolean>"
44660702
DM
4836 },
4837 "restricted" : {
4838 "default" : 0,
c4808e75 4839 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
44660702 4840 "optional" : 1,
013dc89f 4841 "type" : "boolean",
c4808e75
DM
4842 "typetext" : "<boolean>",
4843 "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
4844 }
4845 },
44660702 4846 "type" : "object"
7aacca6f 4847 },
7aacca6f
DM
4848 "permissions" : {
4849 "check" : [
4850 "perm",
4851 "/",
4852 [
44660702 4853 "Sys.Console"
7aacca6f
DM
4854 ]
4855 ]
4856 },
44660702
DM
4857 "protected" : 1,
4858 "returns" : {
4859 "type" : "null"
4860 }
56122987
DM
4861 }
4862 },
4863 "leaf" : 1,
44660702
DM
4864 "path" : "/cluster/ha/groups/{group}",
4865 "text" : "{group}"
56122987 4866 }
44660702
DM
4867 ],
4868 "info" : {
4869 "GET" : {
e9cd3bd4 4870 "allowtoken" : 1,
44660702
DM
4871 "description" : "Get HA groups.",
4872 "method" : "GET",
4873 "name" : "index",
4874 "parameters" : {
4875 "additionalProperties" : 0
4876 },
4877 "permissions" : {
4878 "check" : [
4879 "perm",
4880 "/",
4881 [
4882 "Sys.Audit"
4883 ]
4884 ]
4885 },
4886 "returns" : {
4887 "items" : {
4888 "properties" : {
4889 "group" : {
4890 "type" : "string"
4891 }
4892 },
4893 "type" : "object"
4894 },
4895 "links" : [
4896 {
4897 "href" : "{group}",
4898 "rel" : "child"
4899 }
4900 ],
4901 "type" : "array"
4902 }
4903 },
4904 "POST" : {
e9cd3bd4 4905 "allowtoken" : 1,
44660702
DM
4906 "description" : "Create a new HA group.",
4907 "method" : "POST",
4908 "name" : "create",
4909 "parameters" : {
4910 "additionalProperties" : 0,
4911 "properties" : {
4912 "comment" : {
4913 "description" : "Description.",
4914 "maxLength" : 4096,
4915 "optional" : 1,
013dc89f
DM
4916 "type" : "string",
4917 "typetext" : "<string>"
44660702
DM
4918 },
4919 "group" : {
4920 "description" : "The HA group identifier.",
4921 "format" : "pve-configid",
013dc89f
DM
4922 "type" : "string",
4923 "typetext" : "<string>"
44660702
DM
4924 },
4925 "nodes" : {
f13c1238 4926 "description" : "List of cluster node names with optional priority.",
44660702
DM
4927 "format" : "pve-ha-group-node-list",
4928 "optional" : 0,
4929 "type" : "string",
f13c1238
DM
4930 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
4931 "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
4932 },
4933 "nofailback" : {
4934 "default" : 0,
4935 "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.",
4936 "optional" : 1,
013dc89f
DM
4937 "type" : "boolean",
4938 "typetext" : "<boolean>"
44660702
DM
4939 },
4940 "restricted" : {
4941 "default" : 0,
c4808e75 4942 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
44660702 4943 "optional" : 1,
013dc89f 4944 "type" : "boolean",
c4808e75
DM
4945 "typetext" : "<boolean>",
4946 "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
4947 },
4948 "type" : {
4949 "description" : "Group type.",
4950 "enum" : [
4951 "group"
4952 ],
4953 "optional" : 1,
4954 "type" : "string"
4955 }
4956 },
4957 "type" : "object"
4958 },
4959 "permissions" : {
4960 "check" : [
4961 "perm",
4962 "/",
4963 [
4964 "Sys.Console"
4965 ]
4966 ]
4967 },
4968 "protected" : 1,
4969 "returns" : {
4970 "type" : "null"
4971 }
4972 }
4973 },
4974 "leaf" : 0,
4975 "path" : "/cluster/ha/groups",
4976 "text" : "groups"
7aacca6f
DM
4977 },
4978 {
7aacca6f
DM
4979 "children" : [
4980 {
4981 "info" : {
4982 "GET" : {
e9cd3bd4 4983 "allowtoken" : 1,
56122987 4984 "description" : "Get HA manger status.",
44660702 4985 "method" : "GET",
7aacca6f 4986 "name" : "status",
44660702
DM
4987 "parameters" : {
4988 "additionalProperties" : 0
4989 },
56122987
DM
4990 "permissions" : {
4991 "check" : [
4992 "perm",
4993 "/",
4994 [
4995 "Sys.Audit"
4996 ]
4997 ]
7aacca6f 4998 },
44660702 4999 "returns" : {
159464a9
TL
5000 "items" : {
5001 "properties" : {
5002 "crm_state" : {
5003 "description" : "For type 'service'. Service state as seen by the CRM.",
5004 "optional" : 1,
5005 "type" : "string"
5006 },
5007 "id" : {
5008 "description" : "Status entry ID (quorum, master, lrm:<node>, service:<sid>).",
5009 "type" : "string"
5010 },
5011 "max_relocate" : {
5012 "description" : "For type 'service'.",
5013 "optional" : 1,
5014 "type" : "integer"
5015 },
5016 "max_restart" : {
5017 "description" : "For type 'service'.",
5018 "optional" : 1,
5019 "type" : "integer"
5020 },
5021 "node" : {
5022 "description" : "Node associated to status entry.",
5023 "type" : "string"
5024 },
5025 "quorate" : {
5026 "description" : "For type 'quorum'. Whether the cluster is quorate or not.",
5027 "optional" : 1,
5028 "type" : "boolean"
5029 },
5030 "request_state" : {
5031 "description" : "For type 'service'. Requested service state.",
5032 "optional" : 1,
5033 "type" : "string"
5034 },
5035 "sid" : {
5036 "description" : "For type 'service'. Service ID.",
5037 "optional" : 1,
5038 "type" : "string"
5039 },
5040 "state" : {
5041 "description" : "For type 'service'. Verbose service state.",
5042 "optional" : 1,
5043 "type" : "string"
5044 },
5045 "status" : {
5046 "description" : "Status of the entry (value depends on type).",
5047 "type" : "string"
5048 },
5049 "timestamp" : {
5050 "description" : "For type 'lrm','master'. Timestamp of the status information.",
5051 "optional" : 1,
5052 "type" : "integer"
5053 },
5054 "type" : {
5055 "description" : "Type of status entry.",
5056 "enum" : [
5057 "quorum",
5058 "master",
5059 "lrm",
5060 "service"
5061 ]
5062 }
5063 },
5064 "type" : "object"
5065 },
44660702 5066 "type" : "array"
56122987
DM
5067 }
5068 }
7aacca6f 5069 },
7aacca6f 5070 "leaf" : 1,
44660702
DM
5071 "path" : "/cluster/ha/status/current",
5072 "text" : "current"
56122987
DM
5073 },
5074 {
5075 "info" : {
5076 "GET" : {
e9cd3bd4 5077 "allowtoken" : 1,
7aacca6f 5078 "description" : "Get full HA manger status, including LRM status.",
44660702
DM
5079 "method" : "GET",
5080 "name" : "manager_status",
7aacca6f
DM
5081 "parameters" : {
5082 "additionalProperties" : 0
5083 },
56122987
DM
5084 "permissions" : {
5085 "check" : [
5086 "perm",
5087 "/",
5088 [
5089 "Sys.Audit"
5090 ]
5091 ]
44660702
DM
5092 },
5093 "returns" : {
5094 "type" : "object"
7aacca6f 5095 }
56122987
DM
5096 }
5097 },
56122987 5098 "leaf" : 1,
44660702
DM
5099 "path" : "/cluster/ha/status/manager_status",
5100 "text" : "manager_status"
56122987
DM
5101 }
5102 ],
56122987
DM
5103 "info" : {
5104 "GET" : {
e9cd3bd4 5105 "allowtoken" : 1,
44660702 5106 "description" : "Directory index.",
7aacca6f 5107 "method" : "GET",
44660702
DM
5108 "name" : "index",
5109 "parameters" : {
5110 "additionalProperties" : 0
5111 },
5112 "permissions" : {
5113 "user" : "all"
5114 },
56122987 5115 "returns" : {
56122987
DM
5116 "items" : {
5117 "properties" : {},
5118 "type" : "object"
5119 },
5120 "links" : [
5121 {
44660702
DM
5122 "href" : "{name}",
5123 "rel" : "child"
56122987 5124 }
7aacca6f
DM
5125 ],
5126 "type" : "array"
44660702 5127 }
56122987 5128 }
7aacca6f 5129 },
44660702 5130 "leaf" : 0,
7aacca6f 5131 "path" : "/cluster/ha/status",
44660702 5132 "text" : "status"
56122987
DM
5133 }
5134 ],
56122987
DM
5135 "info" : {
5136 "GET" : {
e9cd3bd4 5137 "allowtoken" : 1,
7aacca6f 5138 "description" : "Directory index.",
44660702
DM
5139 "method" : "GET",
5140 "name" : "index",
5141 "parameters" : {
5142 "additionalProperties" : 0
5143 },
7aacca6f
DM
5144 "permissions" : {
5145 "check" : [
5146 "perm",
5147 "/",
5148 [
5149 "Sys.Audit"
5150 ]
5151 ]
5152 },
56122987 5153 "returns" : {
56122987 5154 "items" : {
7aacca6f
DM
5155 "properties" : {
5156 "id" : {
5157 "type" : "string"
5158 }
44660702
DM
5159 },
5160 "type" : "object"
7aacca6f
DM
5161 },
5162 "links" : [
5163 {
5164 "href" : "{id}",
5165 "rel" : "child"
5166 }
44660702
DM
5167 ],
5168 "type" : "array"
7aacca6f
DM
5169 }
5170 }
44660702
DM
5171 },
5172 "leaf" : 0,
5173 "path" : "/cluster/ha",
5174 "text" : "ha"
7aacca6f 5175 },
a9a8e3d1
DM
5176 {
5177 "children" : [
c5aa7e14
TL
5178 {
5179 "children" : [
5180 {
5181 "info" : {
5182 "DELETE" : {
5183 "allowtoken" : 1,
5184 "description" : "Delete ACME plugin configuration.",
5185 "method" : "DELETE",
5186 "name" : "delete_plugin",
5187 "parameters" : {
5188 "additionalProperties" : 0,
5189 "properties" : {
5190 "id" : {
5191 "description" : "Unique identifier for ACME plugin instance.",
5192 "format" : "pve-configid",
5193 "type" : "string",
5194 "typetext" : "<string>"
5195 }
5196 }
5197 },
5198 "permissions" : {
5199 "check" : [
5200 "perm",
5201 "/",
5202 [
5203 "Sys.Modify"
5204 ]
5205 ]
5206 },
5207 "protected" : 1,
5208 "returns" : {
5209 "type" : "null"
5210 }
5211 },
5212 "GET" : {
5213 "allowtoken" : 1,
5214 "description" : "Get ACME plugin configuration.",
5215 "method" : "GET",
5216 "name" : "get_plugin_config",
5217 "parameters" : {
5218 "additionalProperties" : 0,
5219 "properties" : {
5220 "id" : {
5221 "description" : "Unique identifier for ACME plugin instance.",
5222 "format" : "pve-configid",
5223 "type" : "string",
5224 "typetext" : "<string>"
5225 }
5226 }
5227 },
5228 "permissions" : {
5229 "check" : [
5230 "perm",
5231 "/",
5232 [
5233 "Sys.Modify"
5234 ]
5235 ]
5236 },
5237 "protected" : 1,
5238 "returns" : {
5239 "type" : "object"
5240 }
5241 },
5242 "PUT" : {
5243 "allowtoken" : 1,
5244 "description" : "Update ACME plugin configuration.",
5245 "method" : "PUT",
5246 "name" : "update_plugin",
5247 "parameters" : {
5248 "additionalProperties" : 0,
5249 "properties" : {
5250 "api" : {
5251 "description" : "API plugin name",
5252 "enum" : [
d2656385 5253 "1984hosting",
c5aa7e14
TL
5254 "acmedns",
5255 "acmeproxy",
5256 "active24",
5257 "ad",
5258 "ali",
d2656385
TL
5259 "anx",
5260 "arvan",
e7084ef7 5261 "aurora",
c5aa7e14
TL
5262 "autodns",
5263 "aws",
5370fa8c 5264 "azion",
c5aa7e14 5265 "azure",
9d2e98ed 5266 "bunny",
c5aa7e14
TL
5267 "cf",
5268 "clouddns",
5269 "cloudns",
5270 "cn",
5271 "conoha",
5272 "constellix",
9d2e98ed
TL
5273 "cpanel",
5274 "curanet",
c5aa7e14
TL
5275 "cyon",
5276 "da",
5277 "ddnss",
5278 "desec",
ac70d7d1 5279 "df",
c5aa7e14 5280 "dgon",
9d2e98ed 5281 "dnshome",
c5aa7e14 5282 "dnsimple",
9d2e98ed 5283 "dnsservices",
c5aa7e14
TL
5284 "do",
5285 "doapi",
5286 "domeneshop",
5287 "dp",
5288 "dpi",
5289 "dreamhost",
5290 "duckdns",
5291 "durabledns",
5292 "dyn",
5293 "dynu",
5294 "dynv6",
5295 "easydns",
d2656385 5296 "edgedns",
c5aa7e14
TL
5297 "euserv",
5298 "exoscale",
9d2e98ed 5299 "fornex",
c5aa7e14
TL
5300 "freedns",
5301 "gandi_livedns",
5302 "gcloud",
8dd66e12 5303 "gcore",
c5aa7e14 5304 "gd",
9d2e98ed 5305 "geoscaling",
8dd66e12 5306 "googledomains",
c5aa7e14 5307 "he",
d2656385 5308 "hetzner",
c5aa7e14
TL
5309 "hexonet",
5310 "hostingde",
d2656385 5311 "huaweicloud",
c5aa7e14 5312 "infoblox",
d2656385 5313 "infomaniak",
c5aa7e14
TL
5314 "internetbs",
5315 "inwx",
d2656385 5316 "ionos",
8dd66e12 5317 "ipv64",
c5aa7e14
TL
5318 "ispconfig",
5319 "jd",
d2656385
TL
5320 "joker",
5321 "kappernet",
c5aa7e14
TL
5322 "kas",
5323 "kinghost",
5324 "knot",
9d2e98ed 5325 "la",
c5aa7e14
TL
5326 "leaseweb",
5327 "lexicon",
5328 "linode",
5329 "linode_v4",
5330 "loopia",
5331 "lua",
5332 "maradns",
5333 "me",
5334 "miab",
5335 "misaka",
5336 "myapi",
5337 "mydevil",
5338 "mydnsjp",
9d2e98ed 5339 "mythic_beasts",
c5aa7e14
TL
5340 "namecheap",
5341 "namecom",
5342 "namesilo",
8dd66e12 5343 "nanelo",
c5aa7e14
TL
5344 "nederhost",
5345 "neodigit",
5346 "netcup",
d2656385 5347 "netlify",
c5aa7e14 5348 "nic",
d2656385
TL
5349 "njalla",
5350 "nm",
c5aa7e14
TL
5351 "nsd",
5352 "nsone",
5353 "nsupdate",
5354 "nw",
5370fa8c 5355 "oci",
c5aa7e14
TL
5356 "one",
5357 "online",
5358 "openprovider",
d2656385 5359 "openstack",
c5aa7e14
TL
5360 "opnsense",
5361 "ovh",
5362 "pdns",
5363 "pleskxml",
5364 "pointhq",
e7084ef7 5365 "porkbun",
d2656385 5366 "rackcorp",
c5aa7e14 5367 "rackspace",
9d2e98ed 5368 "rage4",
c5aa7e14
TL
5369 "rcode0",
5370 "regru",
d2656385 5371 "scaleway",
c5aa7e14
TL
5372 "schlundtech",
5373 "selectel",
9d2e98ed 5374 "selfhost",
c5aa7e14 5375 "servercow",
d2656385 5376 "simply",
c5aa7e14 5377 "tele3",
d2656385 5378 "transip",
9d2e98ed 5379 "udr",
c5aa7e14
TL
5380 "ultra",
5381 "unoeuro",
5382 "variomedia",
5370fa8c 5383 "veesp",
9d2e98ed 5384 "vercel",
c5aa7e14
TL
5385 "vscale",
5386 "vultr",
e7084ef7 5387 "websupport",
d2656385 5388 "world4you",
c5aa7e14 5389 "yandex",
9d2e98ed 5390 "yc",
c5aa7e14
TL
5391 "zilore",
5392 "zone",
5393 "zonomi"
5394 ],
5395 "optional" : 1,
5396 "type" : "string"
5397 },
5398 "data" : {
5399 "description" : "DNS plugin data. (base64 encoded)",
5400 "optional" : 1,
5401 "type" : "string",
5402 "typetext" : "<string>"
5403 },
5404 "delete" : {
5405 "description" : "A list of settings you want to delete.",
5406 "format" : "pve-configid-list",
5407 "maxLength" : 4096,
5408 "optional" : 1,
5409 "type" : "string",
5410 "typetext" : "<string>"
5411 },
5412 "digest" : {
5413 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
5414 "maxLength" : 40,
5415 "optional" : 1,
5416 "type" : "string",
5417 "typetext" : "<string>"
5418 },
5419 "disable" : {
5420 "description" : "Flag to disable the config.",
5421 "optional" : 1,
5422 "type" : "boolean",
5423 "typetext" : "<boolean>"
5424 },
5425 "id" : {
5426 "description" : "ACME Plugin ID name",
5427 "format" : "pve-configid",
5428 "type" : "string",
5429 "typetext" : "<string>"
5430 },
5431 "nodes" : {
5432 "description" : "List of cluster node names.",
5433 "format" : "pve-node-list",
5434 "optional" : 1,
5435 "type" : "string",
5436 "typetext" : "<string>"
5437 },
5438 "validation-delay" : {
5439 "default" : 30,
5440 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
5441 "maximum" : 172800,
5442 "minimum" : 0,
5443 "optional" : 1,
5444 "type" : "integer",
5445 "typetext" : "<integer> (0 - 172800)"
5446 }
5447 },
5448 "type" : "object"
5449 },
5450 "permissions" : {
5451 "check" : [
5452 "perm",
5453 "/",
5454 [
5455 "Sys.Modify"
5456 ]
5457 ]
5458 },
5459 "protected" : 1,
5460 "returns" : {
5461 "type" : "null"
5462 }
5463 }
5464 },
5465 "leaf" : 1,
5466 "path" : "/cluster/acme/plugins/{id}",
5467 "text" : "{id}"
5468 }
5469 ],
5470 "info" : {
5471 "GET" : {
5472 "allowtoken" : 1,
5473 "description" : "ACME plugin index.",
5474 "method" : "GET",
5475 "name" : "index",
5476 "parameters" : {
5477 "additionalProperties" : 0,
5478 "properties" : {
5479 "type" : {
5480 "description" : "Only list ACME plugins of a specific type",
5481 "enum" : [
5482 "dns",
5483 "standalone"
5484 ],
5485 "optional" : 1,
5486 "type" : "string"
5487 }
5488 }
5489 },
5490 "permissions" : {
5491 "check" : [
5492 "perm",
5493 "/",
5494 [
5495 "Sys.Modify"
5496 ]
5497 ]
5498 },
5499 "protected" : 1,
5500 "returns" : {
5501 "items" : {
5502 "properties" : {
5503 "plugin" : {
5504 "description" : "Unique identifier for ACME plugin instance.",
5505 "format" : "pve-configid",
5506 "type" : "string"
5507 }
5508 },
5509 "type" : "object"
5510 },
5511 "links" : [
5512 {
5513 "href" : "{plugin}",
5514 "rel" : "child"
5515 }
5516 ],
5517 "type" : "array"
5518 }
5519 },
5520 "POST" : {
5521 "allowtoken" : 1,
5522 "description" : "Add ACME plugin configuration.",
5523 "method" : "POST",
5524 "name" : "add_plugin",
5525 "parameters" : {
5526 "additionalProperties" : 0,
5527 "properties" : {
5528 "api" : {
5529 "description" : "API plugin name",
5530 "enum" : [
d2656385 5531 "1984hosting",
c5aa7e14
TL
5532 "acmedns",
5533 "acmeproxy",
5534 "active24",
5535 "ad",
5536 "ali",
d2656385
TL
5537 "anx",
5538 "arvan",
e7084ef7 5539 "aurora",
c5aa7e14
TL
5540 "autodns",
5541 "aws",
5370fa8c 5542 "azion",
c5aa7e14 5543 "azure",
9d2e98ed 5544 "bunny",
c5aa7e14
TL
5545 "cf",
5546 "clouddns",
5547 "cloudns",
5548 "cn",
5549 "conoha",
5550 "constellix",
9d2e98ed
TL
5551 "cpanel",
5552 "curanet",
c5aa7e14
TL
5553 "cyon",
5554 "da",
5555 "ddnss",
5556 "desec",
ac70d7d1 5557 "df",
c5aa7e14 5558 "dgon",
9d2e98ed 5559 "dnshome",
c5aa7e14 5560 "dnsimple",
9d2e98ed 5561 "dnsservices",
c5aa7e14
TL
5562 "do",
5563 "doapi",
5564 "domeneshop",
5565 "dp",
5566 "dpi",
5567 "dreamhost",
5568 "duckdns",
5569 "durabledns",
5570 "dyn",
5571 "dynu",
5572 "dynv6",
5573 "easydns",
d2656385 5574 "edgedns",
c5aa7e14
TL
5575 "euserv",
5576 "exoscale",
9d2e98ed 5577 "fornex",
c5aa7e14
TL
5578 "freedns",
5579 "gandi_livedns",
5580 "gcloud",
8dd66e12 5581 "gcore",
c5aa7e14 5582 "gd",
9d2e98ed 5583 "geoscaling",
8dd66e12 5584 "googledomains",
c5aa7e14 5585 "he",
d2656385 5586 "hetzner",
c5aa7e14
TL
5587 "hexonet",
5588 "hostingde",
d2656385 5589 "huaweicloud",
c5aa7e14 5590 "infoblox",
d2656385 5591 "infomaniak",
c5aa7e14
TL
5592 "internetbs",
5593 "inwx",
d2656385 5594 "ionos",
8dd66e12 5595 "ipv64",
c5aa7e14
TL
5596 "ispconfig",
5597 "jd",
d2656385
TL
5598 "joker",
5599 "kappernet",
c5aa7e14
TL
5600 "kas",
5601 "kinghost",
5602 "knot",
9d2e98ed 5603 "la",
c5aa7e14
TL
5604 "leaseweb",
5605 "lexicon",
5606 "linode",
5607 "linode_v4",
5608 "loopia",
5609 "lua",
5610 "maradns",
5611 "me",
5612 "miab",
5613 "misaka",
5614 "myapi",
5615 "mydevil",
5616 "mydnsjp",
9d2e98ed 5617 "mythic_beasts",
c5aa7e14
TL
5618 "namecheap",
5619 "namecom",
5620 "namesilo",
8dd66e12 5621 "nanelo",
c5aa7e14
TL
5622 "nederhost",
5623 "neodigit",
5624 "netcup",
d2656385 5625 "netlify",
c5aa7e14 5626 "nic",
d2656385
TL
5627 "njalla",
5628 "nm",
c5aa7e14
TL
5629 "nsd",
5630 "nsone",
5631 "nsupdate",
5632 "nw",
5370fa8c 5633 "oci",
c5aa7e14
TL
5634 "one",
5635 "online",
5636 "openprovider",
d2656385 5637 "openstack",
c5aa7e14
TL
5638 "opnsense",
5639 "ovh",
5640 "pdns",
5641 "pleskxml",
5642 "pointhq",
e7084ef7 5643 "porkbun",
d2656385 5644 "rackcorp",
c5aa7e14 5645 "rackspace",
9d2e98ed 5646 "rage4",
c5aa7e14
TL
5647 "rcode0",
5648 "regru",
d2656385 5649 "scaleway",
c5aa7e14
TL
5650 "schlundtech",
5651 "selectel",
9d2e98ed 5652 "selfhost",
c5aa7e14 5653 "servercow",
d2656385 5654 "simply",
c5aa7e14 5655 "tele3",
d2656385 5656 "transip",
9d2e98ed 5657 "udr",
c5aa7e14
TL
5658 "ultra",
5659 "unoeuro",
5660 "variomedia",
5370fa8c 5661 "veesp",
9d2e98ed 5662 "vercel",
c5aa7e14
TL
5663 "vscale",
5664 "vultr",
e7084ef7 5665 "websupport",
d2656385 5666 "world4you",
c5aa7e14 5667 "yandex",
9d2e98ed 5668 "yc",
c5aa7e14
TL
5669 "zilore",
5670 "zone",
5671 "zonomi"
5672 ],
5673 "optional" : 1,
5674 "type" : "string"
5675 },
5676 "data" : {
5677 "description" : "DNS plugin data. (base64 encoded)",
5678 "optional" : 1,
5679 "type" : "string",
5680 "typetext" : "<string>"
5681 },
5682 "disable" : {
5683 "description" : "Flag to disable the config.",
5684 "optional" : 1,
5685 "type" : "boolean",
5686 "typetext" : "<boolean>"
5687 },
5688 "id" : {
5689 "description" : "ACME Plugin ID name",
5690 "format" : "pve-configid",
5691 "type" : "string",
5692 "typetext" : "<string>"
5693 },
5694 "nodes" : {
5695 "description" : "List of cluster node names.",
5696 "format" : "pve-node-list",
5697 "optional" : 1,
5698 "type" : "string",
5699 "typetext" : "<string>"
5700 },
5701 "type" : {
5702 "description" : "ACME challenge type.",
5703 "enum" : [
5704 "dns",
5705 "standalone"
5706 ],
5707 "type" : "string"
5708 },
5709 "validation-delay" : {
5710 "default" : 30,
5711 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
5712 "maximum" : 172800,
5713 "minimum" : 0,
5714 "optional" : 1,
5715 "type" : "integer",
5716 "typetext" : "<integer> (0 - 172800)"
5717 }
5718 },
5719 "type" : "object"
5720 },
5721 "permissions" : {
5722 "check" : [
5723 "perm",
5724 "/",
5725 [
5726 "Sys.Modify"
5727 ]
5728 ]
5729 },
5730 "protected" : 1,
5731 "returns" : {
5732 "type" : "null"
5733 }
5734 }
5735 },
5736 "leaf" : 0,
5737 "path" : "/cluster/acme/plugins",
5738 "text" : "plugins"
5739 },
a9a8e3d1
DM
5740 {
5741 "children" : [
5742 {
5743 "info" : {
5744 "DELETE" : {
e9cd3bd4 5745 "allowtoken" : 1,
a9a8e3d1
DM
5746 "description" : "Deactivate existing ACME account at CA.",
5747 "method" : "DELETE",
5748 "name" : "deactivate_account",
5749 "parameters" : {
5750 "additionalProperties" : 0,
5751 "properties" : {
5752 "name" : {
5753 "default" : "default",
5754 "description" : "ACME account config file name.",
5755 "format" : "pve-configid",
5756 "format_description" : "name",
5757 "optional" : 1,
5758 "type" : "string",
5759 "typetext" : "<name>"
5760 }
5761 }
5762 },
5763 "protected" : 1,
5764 "returns" : {
5765 "type" : "string"
5766 }
5767 },
5768 "GET" : {
e9cd3bd4 5769 "allowtoken" : 1,
a9a8e3d1
DM
5770 "description" : "Return existing ACME account information.",
5771 "method" : "GET",
5772 "name" : "get_account",
5773 "parameters" : {
5774 "additionalProperties" : 0,
5775 "properties" : {
5776 "name" : {
5777 "default" : "default",
5778 "description" : "ACME account config file name.",
5779 "format" : "pve-configid",
5780 "format_description" : "name",
5781 "optional" : 1,
5782 "type" : "string",
5783 "typetext" : "<name>"
5784 }
5785 }
5786 },
5787 "protected" : 1,
5788 "returns" : {
5789 "additionalProperties" : 0,
5790 "properties" : {
5791 "account" : {
5792 "optional" : 1,
4d47f125 5793 "renderer" : "yaml",
a9a8e3d1
DM
5794 "type" : "object"
5795 },
5796 "directory" : {
5797 "description" : "URL of ACME CA directory endpoint.",
5798 "optional" : 1,
5799 "pattern" : "^https?://.*",
5800 "type" : "string"
5801 },
5802 "location" : {
5803 "optional" : 1,
5804 "type" : "string"
5805 },
5806 "tos" : {
5807 "optional" : 1,
5808 "type" : "string"
5809 }
5810 },
5811 "type" : "object"
5812 }
5813 },
5814 "PUT" : {
e9cd3bd4 5815 "allowtoken" : 1,
a9a8e3d1
DM
5816 "description" : "Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.",
5817 "method" : "PUT",
5818 "name" : "update_account",
5819 "parameters" : {
5820 "additionalProperties" : 0,
5821 "properties" : {
5822 "contact" : {
5823 "description" : "Contact email addresses.",
5824 "format" : "email-list",
5825 "optional" : 1,
5826 "type" : "string",
5827 "typetext" : "<string>"
5828 },
5829 "name" : {
5830 "default" : "default",
5831 "description" : "ACME account config file name.",
5832 "format" : "pve-configid",
5833 "format_description" : "name",
5834 "optional" : 1,
5835 "type" : "string",
5836 "typetext" : "<name>"
5837 }
5838 }
5839 },
5840 "protected" : 1,
5841 "returns" : {
5842 "type" : "string"
5843 }
5844 }
5845 },
5846 "leaf" : 1,
5847 "path" : "/cluster/acme/account/{name}",
5848 "text" : "{name}"
5849 }
5850 ],
5851 "info" : {
5852 "GET" : {
e9cd3bd4 5853 "allowtoken" : 1,
a9a8e3d1
DM
5854 "description" : "ACMEAccount index.",
5855 "method" : "GET",
5856 "name" : "account_index",
5857 "parameters" : {
5858 "additionalProperties" : 0
5859 },
5860 "permissions" : {
5861 "user" : "all"
5862 },
5863 "protected" : 1,
5864 "returns" : {
5865 "items" : {
5866 "properties" : {},
5867 "type" : "object"
5868 },
5869 "links" : [
5870 {
5871 "href" : "{name}",
5872 "rel" : "child"
5873 }
5874 ],
5875 "type" : "array"
5876 }
5877 },
5878 "POST" : {
e9cd3bd4 5879 "allowtoken" : 1,
a9a8e3d1
DM
5880 "description" : "Register a new ACME account with CA.",
5881 "method" : "POST",
5882 "name" : "register_account",
5883 "parameters" : {
5884 "additionalProperties" : 0,
5885 "properties" : {
5886 "contact" : {
5887 "description" : "Contact email addresses.",
5888 "format" : "email-list",
5889 "type" : "string",
5890 "typetext" : "<string>"
5891 },
5892 "directory" : {
5893 "default" : "https://acme-v02.api.letsencrypt.org/directory",
5894 "description" : "URL of ACME CA directory endpoint.",
5895 "optional" : 1,
5896 "pattern" : "^https?://.*",
5897 "type" : "string"
5898 },
5899 "name" : {
5900 "default" : "default",
5901 "description" : "ACME account config file name.",
5902 "format" : "pve-configid",
5903 "format_description" : "name",
5904 "optional" : 1,
5905 "type" : "string",
5906 "typetext" : "<name>"
5907 },
5908 "tos_url" : {
5909 "description" : "URL of CA TermsOfService - setting this indicates agreement.",
5910 "optional" : 1,
5911 "type" : "string",
5912 "typetext" : "<string>"
5913 }
5914 }
5915 },
5916 "protected" : 1,
5917 "returns" : {
5918 "type" : "string"
5919 }
5920 }
5921 },
5922 "leaf" : 0,
5923 "path" : "/cluster/acme/account",
5924 "text" : "account"
5925 },
5926 {
5927 "info" : {
5928 "GET" : {
e9cd3bd4 5929 "allowtoken" : 1,
a9a8e3d1
DM
5930 "description" : "Retrieve ACME TermsOfService URL from CA.",
5931 "method" : "GET",
5932 "name" : "get_tos",
5933 "parameters" : {
5934 "additionalProperties" : 0,
5935 "properties" : {
5936 "directory" : {
5937 "default" : "https://acme-v02.api.letsencrypt.org/directory",
5938 "description" : "URL of ACME CA directory endpoint.",
5939 "optional" : 1,
5940 "pattern" : "^https?://.*",
5941 "type" : "string"
5942 }
5943 }
5944 },
5da3d723
TL
5945 "permissions" : {
5946 "user" : "all"
5947 },
a9a8e3d1
DM
5948 "returns" : {
5949 "description" : "ACME TermsOfService URL.",
5c1699e5 5950 "optional" : 1,
a9a8e3d1
DM
5951 "type" : "string"
5952 }
5953 }
5954 },
5955 "leaf" : 1,
5956 "path" : "/cluster/acme/tos",
5957 "text" : "tos"
5958 },
5959 {
5960 "info" : {
5961 "GET" : {
e9cd3bd4 5962 "allowtoken" : 1,
a9a8e3d1
DM
5963 "description" : "Get named known ACME directory endpoints.",
5964 "method" : "GET",
5965 "name" : "get_directories",
5966 "parameters" : {
5967 "additionalProperties" : 0
5968 },
5da3d723
TL
5969 "permissions" : {
5970 "user" : "all"
5971 },
a9a8e3d1
DM
5972 "returns" : {
5973 "items" : {
5974 "additionalProperties" : 0,
5975 "properties" : {
5976 "name" : {
5977 "type" : "string"
5978 },
5979 "url" : {
5980 "description" : "URL of ACME CA directory endpoint.",
5981 "pattern" : "^https?://.*",
5982 "type" : "string"
5983 }
5984 },
5985 "type" : "object"
5986 },
5987 "type" : "array"
5988 }
5989 }
5990 },
5991 "leaf" : 1,
5992 "path" : "/cluster/acme/directories",
5993 "text" : "directories"
ac70d7d1
TL
5994 },
5995 {
5996 "info" : {
5997 "GET" : {
5998 "allowtoken" : 1,
5999 "description" : "Get schema of ACME challenge types.",
6000 "method" : "GET",
6001 "name" : "challengeschema",
6002 "parameters" : {
6003 "additionalProperties" : 0
6004 },
6005 "permissions" : {
6006 "user" : "all"
6007 },
6008 "returns" : {
6009 "items" : {
6010 "additionalProperties" : 0,
6011 "properties" : {
6012 "id" : {
6013 "type" : "string"
6014 },
6015 "name" : {
6016 "description" : "Human readable name, falls back to id",
6017 "type" : "string"
6018 },
6019 "schema" : {
6020 "type" : "object"
6021 },
6022 "type" : {
6023 "type" : "string"
6024 }
6025 },
6026 "type" : "object"
6027 },
6028 "type" : "array"
6029 }
6030 }
6031 },
6032 "leaf" : 1,
6033 "path" : "/cluster/acme/challenge-schema",
6034 "text" : "challenge-schema"
a9a8e3d1
DM
6035 }
6036 ],
6037 "info" : {
6038 "GET" : {
e9cd3bd4 6039 "allowtoken" : 1,
a9a8e3d1
DM
6040 "description" : "ACMEAccount index.",
6041 "method" : "GET",
6042 "name" : "index",
6043 "parameters" : {
6044 "additionalProperties" : 0
6045 },
6046 "permissions" : {
6047 "user" : "all"
6048 },
6049 "returns" : {
6050 "items" : {
6051 "properties" : {},
6052 "type" : "object"
6053 },
6054 "links" : [
6055 {
6056 "href" : "{name}",
6057 "rel" : "child"
6058 }
6059 ],
6060 "type" : "array"
6061 }
6062 }
6063 },
6064 "leaf" : 0,
6065 "path" : "/cluster/acme",
6066 "text" : "acme"
6067 },
1c532546
TL
6068 {
6069 "children" : [
6070 {
6071 "info" : {
6072 "GET" : {
e9cd3bd4 6073 "allowtoken" : 1,
1c532546
TL
6074 "description" : "Get ceph metadata.",
6075 "method" : "GET",
6076 "name" : "metadata",
6077 "parameters" : {
c5aa7e14
TL
6078 "additionalProperties" : 0,
6079 "properties" : {
6080 "scope" : {
6081 "default" : "all",
6082 "enum" : [
6083 "all",
6084 "versions"
6085 ],
6086 "optional" : 1,
6087 "type" : "string"
6088 }
6089 }
1c532546
TL
6090 },
6091 "permissions" : {
6092 "check" : [
6093 "perm",
6094 "/",
6095 [
6096 "Sys.Audit",
6097 "Datastore.Audit"
6098 ],
6099 "any",
6100 1
6101 ]
6102 },
6103 "protected" : 1,
6104 "returns" : {
9d2e98ed
TL
6105 "description" : "Items for each type of service containing objects for each instance.",
6106 "properties" : {
6107 "mds" : {
6108 "description" : "Metadata servers configured in the cluster and their properties.",
6109 "properties" : {
6110 "{id}" : {
6111 "description" : "Useful properties are listed, but not the full list.",
6112 "properties" : {
6113 "addr" : {
6114 "description" : "Bind addresses and ports.",
6115 "type" : "string"
6116 },
6117 "ceph_release" : {
6118 "description" : "Ceph release codename currently used.",
6119 "type" : "string"
6120 },
6121 "ceph_version" : {
6122 "description" : "Version info currently used by the service.",
6123 "type" : "string"
6124 },
6125 "ceph_version_short" : {
6126 "description" : "Short version (numerical) info currently used by the service.",
6127 "type" : "string"
6128 },
6129 "hostname" : {
6130 "description" : "Hostname on which the service is running.",
6131 "type" : "string"
6132 },
6133 "mem_swap_kb" : {
6134 "description" : "Memory of the service currently in swap.",
6135 "type" : "integer"
6136 },
6137 "mem_total_kb" : {
6138 "description" : "Memory consumption of the service.",
6139 "type" : "integer"
6140 },
6141 "name" : {
6142 "description" : "Name of the service instance.",
6143 "type" : "string"
6144 }
6145 },
6146 "type" : "object"
6147 }
6148 },
6149 "type" : "object"
6150 },
6151 "mgr" : {
6152 "description" : "Managers configured in the cluster and their properties.",
6153 "properties" : {
6154 "{id}" : {
6155 "description" : "Useful properties are listed, but not the full list.",
6156 "properties" : {
6157 "addr" : {
6158 "description" : "Bind address",
6159 "type" : "string"
6160 },
6161 "ceph_release" : {
6162 "description" : "Ceph release codename currently used.",
6163 "type" : "string"
6164 },
6165 "ceph_version" : {
6166 "description" : "Version info currently used by the service.",
6167 "type" : "string"
6168 },
6169 "ceph_version_short" : {
6170 "description" : "Short version (numerical) info currently used by the service.",
6171 "type" : "string"
6172 },
6173 "hostname" : {
6174 "description" : "Hostname on which the service is running.",
6175 "type" : "string"
6176 },
6177 "mem_swap_kb" : {
6178 "description" : "Memory of the service currently in swap.",
6179 "type" : "integer"
6180 },
6181 "mem_total_kb" : {
6182 "description" : "Memory consumption of the service.",
6183 "type" : "integer"
6184 },
6185 "name" : {
6186 "description" : "Name of the service instance.",
6187 "type" : "string"
6188 }
6189 },
6190 "type" : "object"
6191 }
6192 },
6193 "type" : "object"
6194 },
6195 "mon" : {
6196 "description" : "Monitors configured in the cluster and their properties.",
6197 "properties" : {
6198 "{id}" : {
6199 "description" : "Useful properties are listed, but not the full list.",
6200 "properties" : {
6201 "addrs" : {
6202 "description" : "Bind addresses and ports.",
6203 "type" : "string"
6204 },
6205 "ceph_release" : {
6206 "description" : "Ceph release codename currently used.",
6207 "type" : "string"
6208 },
6209 "ceph_version" : {
6210 "description" : "Version info currently used by the service.",
6211 "type" : "string"
6212 },
6213 "ceph_version_short" : {
6214 "description" : "Short version (numerical) info currently used by the service.",
6215 "type" : "string"
6216 },
6217 "hostname" : {
6218 "description" : "Hostname on which the service is running.",
6219 "type" : "string"
6220 },
6221 "mem_swap_kb" : {
6222 "description" : "Memory of the service currently in swap.",
6223 "type" : "integer"
6224 },
6225 "mem_total_kb" : {
6226 "description" : "Memory consumption of the service.",
6227 "type" : "integer"
6228 },
6229 "name" : {
6230 "description" : "Name of the service instance.",
6231 "type" : "string"
6232 }
6233 },
6234 "type" : "object"
6235 }
6236 },
6237 "type" : "object"
6238 },
6239 "node" : {
6240 "description" : "Ceph version installed on the nodes.",
6241 "properties" : {
6242 "{node}" : {
6243 "properties" : {
6244 "buildcommit" : {
6245 "description" : "GIT commit used for the build.",
6246 "type" : "string"
6247 },
6248 "version" : {
6249 "description" : "Version info.",
6250 "properties" : {
6251 "parts" : {
6252 "description" : "major, minor & patch",
6253 "type" : "array"
6254 },
6255 "str" : {
6256 "description" : "Version as single string.",
6257 "type" : "string"
6258 }
6259 },
6260 "type" : "object"
6261 }
6262 },
6263 "type" : "object"
6264 }
6265 },
6266 "type" : "object"
6267 },
6268 "osd" : {
6269 "description" : "OSDs configured in the cluster and their properties.",
6270 "properties" : {
6271 "{id}" : {
6272 "description" : "Useful properties are listed, but not the full list.",
6273 "properties" : {
6274 "back_addr" : {
6275 "description" : "Bind addresses and ports for backend inter OSD traffic.",
6276 "type" : "string"
6277 },
6278 "ceph_release" : {
6279 "description" : "Ceph release codename currently used.",
6280 "type" : "string"
6281 },
6282 "ceph_version" : {
6283 "description" : "Version info currently used by the service.",
6284 "type" : "string"
6285 },
6286 "ceph_version_short" : {
6287 "description" : "Short version (numerical) info currently used by the service.",
6288 "type" : "string"
6289 },
6290 "device_id" : {
6291 "description" : "Devices used by the OSD.",
6292 "type" : "string"
6293 },
6294 "front_addr" : {
6295 "description" : "Bind addresses and ports for frontend traffic to OSDs.",
6296 "type" : "string"
6297 },
6298 "hostname" : {
6299 "description" : "Hostname on which the service is running.",
6300 "type" : "string"
6301 },
6302 "id" : {
6303 "description" : "OSD ID.",
6304 "type" : "integer"
6305 },
6306 "mem_swap_kb" : {
6307 "description" : "Memory of the service currently in swap.",
6308 "type" : "integer"
6309 },
6310 "mem_total_kb" : {
6311 "description" : "Memory consumption of the service.",
6312 "type" : "integer"
6313 },
6314 "osd_data" : {
6315 "description" : "Path to the OSD data directory.",
6316 "type" : "string"
6317 },
6318 "osd_objectstore" : {
6319 "description" : "OSD objectstore type.",
6320 "type" : "string"
6321 }
6322 },
6323 "type" : "object"
6324 }
6325 },
6326 "type" : "array"
6327 }
6328 },
1c532546
TL
6329 "type" : "object"
6330 }
6331 }
6332 },
6333 "leaf" : 1,
6334 "path" : "/cluster/ceph/metadata",
6335 "text" : "metadata"
6336 },
6337 {
6338 "info" : {
6339 "GET" : {
e9cd3bd4 6340 "allowtoken" : 1,
1c532546
TL
6341 "description" : "Get ceph status.",
6342 "method" : "GET",
6343 "name" : "status",
6344 "parameters" : {
6345 "additionalProperties" : 0
6346 },
6347 "permissions" : {
6348 "check" : [
6349 "perm",
6350 "/",
6351 [
6352 "Sys.Audit",
6353 "Datastore.Audit"
6354 ],
6355 "any",
6356 1
6357 ]
6358 },
6359 "protected" : 1,
6360 "returns" : {
6361 "type" : "object"
6362 }
6363 }
6364 },
6365 "leaf" : 1,
6366 "path" : "/cluster/ceph/status",
6367 "text" : "status"
6368 },
6369 {
6370 "children" : [
6371 {
6372 "info" : {
6373 "GET" : {
e9cd3bd4 6374 "allowtoken" : 1,
1c532546
TL
6375 "description" : "Get the status of a specific ceph flag.",
6376 "method" : "GET",
6377 "name" : "get_flag",
6378 "parameters" : {
6379 "additionalProperties" : 0,
6380 "properties" : {
6381 "flag" : {
6382 "description" : "The name of the flag name to get.",
6383 "enum" : [
6384 "nobackfill",
6385 "nodeep-scrub",
6386 "nodown",
6387 "noin",
6388 "noout",
6389 "norebalance",
6390 "norecover",
6391 "noscrub",
6392 "notieragent",
6393 "noup",
6394 "pause"
6395 ],
6396 "type" : "string"
6397 }
6398 }
6399 },
6400 "permissions" : {
6401 "check" : [
6402 "perm",
6403 "/",
6404 [
6405 "Sys.Audit"
6406 ]
6407 ]
6408 },
6409 "protected" : 1,
6410 "returns" : {
6411 "type" : "boolean"
6412 }
6413 },
6414 "PUT" : {
e9cd3bd4 6415 "allowtoken" : 1,
1c532546
TL
6416 "description" : "Set or clear (unset) a specific ceph flag",
6417 "method" : "PUT",
6418 "name" : "update_flag",
6419 "parameters" : {
6420 "additionalProperties" : 0,
6421 "properties" : {
6422 "flag" : {
6423 "description" : "The ceph flag to update",
6424 "enum" : [
6425 "nobackfill",
6426 "nodeep-scrub",
6427 "nodown",
6428 "noin",
6429 "noout",
6430 "norebalance",
6431 "norecover",
6432 "noscrub",
6433 "notieragent",
6434 "noup",
6435 "pause"
6436 ],
6437 "type" : "string"
6438 },
6439 "value" : {
6440 "description" : "The new value of the flag",
6441 "type" : "boolean",
6442 "typetext" : "<boolean>"
6443 }
6444 }
6445 },
6446 "permissions" : {
6447 "check" : [
6448 "perm",
6449 "/",
6450 [
6451 "Sys.Modify"
6452 ]
6453 ]
6454 },
6455 "protected" : 1,
6456 "returns" : {
6457 "type" : "null"
6458 }
6459 }
6460 },
6461 "leaf" : 1,
6462 "path" : "/cluster/ceph/flags/{flag}",
6463 "text" : "{flag}"
6464 }
6465 ],
6466 "info" : {
6467 "GET" : {
e9cd3bd4 6468 "allowtoken" : 1,
1c532546
TL
6469 "description" : "get the status of all ceph flags",
6470 "method" : "GET",
6471 "name" : "get_all_flags",
6472 "parameters" : {
6473 "additionalProperties" : 0
6474 },
6475 "permissions" : {
6476 "check" : [
6477 "perm",
6478 "/",
6479 [
6480 "Sys.Audit"
6481 ]
6482 ]
6483 },
6484 "protected" : 1,
6485 "returns" : {
6486 "items" : {
6487 "additionalProperties" : 1,
6488 "properties" : {
9d2e98ed
TL
6489 "description" : {
6490 "description" : "Flag description.",
6491 "type" : "string"
6492 },
1c532546
TL
6493 "name" : {
6494 "description" : "Flag name.",
6495 "enum" : [
6496 "nobackfill",
6497 "nodeep-scrub",
6498 "nodown",
6499 "noin",
6500 "noout",
6501 "norebalance",
6502 "norecover",
6503 "noscrub",
6504 "notieragent",
6505 "noup",
6506 "pause"
6507 ],
6508 "type" : "string"
9d2e98ed
TL
6509 },
6510 "value" : {
6511 "description" : "Flag value.",
6512 "type" : "boolean"
1c532546
TL
6513 }
6514 },
6515 "type" : "object"
6516 },
6517 "links" : [
6518 {
6519 "href" : "{name}",
6520 "rel" : "child"
6521 }
6522 ],
6523 "type" : "array"
6524 }
6525 },
6526 "PUT" : {
e9cd3bd4 6527 "allowtoken" : 1,
1c532546
TL
6528 "description" : "Set/Unset multiple ceph flags at once.",
6529 "method" : "PUT",
6530 "name" : "set_flags",
6531 "parameters" : {
6532 "additionalProperties" : 0,
6533 "properties" : {
6534 "nobackfill" : {
6535 "description" : "Backfilling of PGs is suspended.",
6536 "optional" : 1,
6537 "type" : "boolean",
6538 "typetext" : "<boolean>"
6539 },
6540 "nodeep-scrub" : {
6541 "description" : "Deep Scrubbing is disabled.",
6542 "optional" : 1,
6543 "type" : "boolean",
6544 "typetext" : "<boolean>"
6545 },
6546 "nodown" : {
6547 "description" : "OSD failure reports are being ignored, such that the monitors will not mark OSDs down.",
6548 "optional" : 1,
6549 "type" : "boolean",
6550 "typetext" : "<boolean>"
6551 },
6552 "noin" : {
6553 "description" : "OSDs that were previously marked out will not be marked back in when they start.",
6554 "optional" : 1,
6555 "type" : "boolean",
6556 "typetext" : "<boolean>"
6557 },
6558 "noout" : {
6559 "description" : "OSDs will not automatically be marked out after the configured interval.",
6560 "optional" : 1,
6561 "type" : "boolean",
6562 "typetext" : "<boolean>"
6563 },
6564 "norebalance" : {
6565 "description" : "Rebalancing of PGs is suspended.",
6566 "optional" : 1,
6567 "type" : "boolean",
6568 "typetext" : "<boolean>"
6569 },
6570 "norecover" : {
6571 "description" : "Recovery of PGs is suspended.",
6572 "optional" : 1,
6573 "type" : "boolean",
6574 "typetext" : "<boolean>"
6575 },
6576 "noscrub" : {
6577 "description" : "Scrubbing is disabled.",
6578 "optional" : 1,
6579 "type" : "boolean",
6580 "typetext" : "<boolean>"
6581 },
6582 "notieragent" : {
6583 "description" : "Cache tiering activity is suspended.",
6584 "optional" : 1,
6585 "type" : "boolean",
6586 "typetext" : "<boolean>"
6587 },
6588 "noup" : {
6589 "description" : "OSDs are not allowed to start.",
6590 "optional" : 1,
6591 "type" : "boolean",
6592 "typetext" : "<boolean>"
6593 },
6594 "pause" : {
6595 "description" : "Pauses read and writes.",
6596 "optional" : 1,
6597 "type" : "boolean",
6598 "typetext" : "<boolean>"
6599 }
6600 }
6601 },
6602 "permissions" : {
6603 "check" : [
6604 "perm",
6605 "/",
6606 [
6607 "Sys.Modify"
6608 ]
6609 ]
6610 },
6611 "protected" : 1,
6612 "returns" : {
6613 "type" : "string"
6614 }
6615 }
6616 },
6617 "leaf" : 0,
6618 "path" : "/cluster/ceph/flags",
6619 "text" : "flags"
6620 }
6621 ],
6622 "info" : {
6623 "GET" : {
e9cd3bd4 6624 "allowtoken" : 1,
1c532546
TL
6625 "description" : "Cluster ceph index.",
6626 "method" : "GET",
6627 "name" : "cephindex",
6628 "parameters" : {
6629 "additionalProperties" : 0
6630 },
6631 "permissions" : {
6632 "user" : "all"
6633 },
6634 "returns" : {
6635 "items" : {
6636 "properties" : {},
6637 "type" : "object"
6638 },
6639 "links" : [
6640 {
6641 "href" : "{name}",
6642 "rel" : "child"
6643 }
6644 ],
6645 "type" : "array"
6646 }
6647 }
6648 },
6649 "leaf" : 0,
6650 "path" : "/cluster/ceph",
6651 "text" : "ceph"
6652 },
5370fa8c
TL
6653 {
6654 "children" : [
159464a9
TL
6655 {
6656 "children" : [
6657 {
6658 "info" : {
6659 "DELETE" : {
6660 "allowtoken" : 1,
6661 "description" : "Delete realm-sync job definition.",
6662 "method" : "DELETE",
6663 "name" : "delete_job",
6664 "parameters" : {
6665 "additionalProperties" : 0,
6666 "properties" : {
6667 "id" : {
6668 "format" : "pve-configid",
6669 "type" : "string",
6670 "typetext" : "<string>"
6671 }
6672 }
6673 },
6674 "permissions" : {
6675 "check" : [
6676 "perm",
6677 "/",
6678 [
6679 "Sys.Modify"
6680 ]
6681 ]
6682 },
6683 "protected" : 1,
6684 "returns" : {
6685 "type" : "null"
6686 }
6687 },
6688 "GET" : {
6689 "allowtoken" : 1,
6690 "description" : "Read realm-sync job definition.",
6691 "method" : "GET",
6692 "name" : "read_job",
6693 "parameters" : {
6694 "additionalProperties" : 0,
6695 "properties" : {
6696 "id" : {
6697 "format" : "pve-configid",
6698 "type" : "string",
6699 "typetext" : "<string>"
6700 }
6701 }
6702 },
6703 "permissions" : {
6704 "check" : [
6705 "perm",
6706 "/",
6707 [
6708 "Sys.Audit"
6709 ]
6710 ]
6711 },
6712 "returns" : {
6713 "type" : "object"
6714 }
6715 },
6716 "POST" : {
6717 "allowtoken" : 1,
6718 "description" : "Create new realm-sync job.",
6719 "method" : "POST",
6720 "name" : "create_job",
6721 "parameters" : {
6722 "additionalProperties" : 0,
6723 "properties" : {
6724 "comment" : {
6725 "description" : "Description for the Job.",
6726 "maxLength" : 512,
6727 "optional" : 1,
6728 "type" : "string",
6729 "typetext" : "<string>"
6730 },
6731 "enable-new" : {
6732 "default" : "1",
6733 "description" : "Enable newly synced users immediately.",
6734 "optional" : 1,
6735 "type" : "boolean",
6736 "typetext" : "<boolean>"
6737 },
6738 "enabled" : {
6739 "default" : 1,
6740 "description" : "Determines if the job is enabled.",
6741 "optional" : 1,
6742 "type" : "boolean",
6743 "typetext" : "<boolean>"
6744 },
6745 "id" : {
6746 "description" : "The ID of the job.",
6747 "format" : "pve-configid",
6748 "maxLength" : 64,
6749 "type" : "string",
6750 "typetext" : "<string>"
6751 },
6752 "realm" : {
6753 "description" : "Authentication domain ID",
6754 "format" : "pve-realm",
6755 "maxLength" : 32,
6756 "optional" : 1,
6757 "type" : "string",
6758 "typetext" : "<string>"
6759 },
6760 "remove-vanished" : {
6761 "default" : "none",
6762 "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync. Instead of a list it also can be 'none' (the default).",
6763 "optional" : 1,
6764 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
6765 "type" : "string",
6766 "typetext" : "([acl];[properties];[entry])|none"
6767 },
6768 "schedule" : {
6769 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
6770 "format" : "pve-calendar-event",
6771 "maxLength" : 128,
6772 "type" : "string",
6773 "typetext" : "<string>"
6774 },
6775 "scope" : {
6776 "description" : "Select what to sync.",
6777 "enum" : [
6778 "users",
6779 "groups",
6780 "both"
6781 ],
6782 "optional" : 1,
6783 "type" : "string"
6784 }
6785 },
6786 "type" : "object"
6787 },
6788 "permissions" : {
6789 "check" : [
6790 "and",
6791 [
6792 "perm",
6793 "/access/realm/{realm}",
6794 [
6795 "Realm.AllocateUser"
6796 ]
6797 ],
6798 [
6799 "perm",
6800 "/access/groups",
6801 [
6802 "User.Modify"
6803 ]
6804 ]
6805 ],
6806 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
6807 },
6808 "protected" : 1,
6809 "returns" : {
6810 "type" : "null"
6811 }
6812 },
6813 "PUT" : {
6814 "allowtoken" : 1,
6815 "description" : "Update realm-sync job definition.",
6816 "method" : "PUT",
6817 "name" : "update_job",
6818 "parameters" : {
6819 "additionalProperties" : 0,
6820 "properties" : {
6821 "comment" : {
6822 "description" : "Description for the Job.",
6823 "maxLength" : 512,
6824 "optional" : 1,
6825 "type" : "string",
6826 "typetext" : "<string>"
6827 },
6828 "delete" : {
6829 "description" : "A list of settings you want to delete.",
6830 "format" : "pve-configid-list",
6831 "maxLength" : 4096,
6832 "optional" : 1,
6833 "type" : "string",
6834 "typetext" : "<string>"
6835 },
6836 "enable-new" : {
6837 "default" : "1",
6838 "description" : "Enable newly synced users immediately.",
6839 "optional" : 1,
6840 "type" : "boolean",
6841 "typetext" : "<boolean>"
6842 },
6843 "enabled" : {
6844 "default" : 1,
6845 "description" : "Determines if the job is enabled.",
6846 "optional" : 1,
6847 "type" : "boolean",
6848 "typetext" : "<boolean>"
6849 },
6850 "id" : {
6851 "description" : "The ID of the job.",
6852 "format" : "pve-configid",
6853 "maxLength" : 64,
6854 "type" : "string",
6855 "typetext" : "<string>"
6856 },
6857 "remove-vanished" : {
6858 "default" : "none",
6859 "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync. Instead of a list it also can be 'none' (the default).",
6860 "optional" : 1,
6861 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
6862 "type" : "string",
6863 "typetext" : "([acl];[properties];[entry])|none"
6864 },
6865 "schedule" : {
6866 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
6867 "format" : "pve-calendar-event",
6868 "maxLength" : 128,
6869 "type" : "string",
6870 "typetext" : "<string>"
6871 },
6872 "scope" : {
6873 "description" : "Select what to sync.",
6874 "enum" : [
6875 "users",
6876 "groups",
6877 "both"
6878 ],
6879 "optional" : 1,
6880 "type" : "string"
6881 }
6882 },
6883 "type" : "object"
6884 },
6885 "permissions" : {
6886 "check" : [
6887 "and",
6888 [
6889 "perm",
6890 "/access/realm/{realm}",
6891 [
6892 "Realm.AllocateUser"
6893 ]
6894 ],
6895 [
6896 "perm",
6897 "/access/groups",
6898 [
6899 "User.Modify"
6900 ]
6901 ]
6902 ],
6903 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
6904 },
6905 "protected" : 1,
6906 "returns" : {
6907 "type" : "null"
6908 }
6909 }
6910 },
6911 "leaf" : 1,
6912 "path" : "/cluster/jobs/realm-sync/{id}",
6913 "text" : "{id}"
6914 }
6915 ],
6916 "info" : {
6917 "GET" : {
6918 "allowtoken" : 1,
6919 "description" : "List configured realm-sync-jobs.",
6920 "method" : "GET",
6921 "name" : "syncjob_index",
6922 "parameters" : {
6923 "additionalProperties" : 0
6924 },
6925 "permissions" : {
6926 "check" : [
6927 "perm",
6928 "/",
6929 [
6930 "Sys.Audit"
6931 ]
6932 ]
6933 },
6934 "returns" : {
6935 "items" : {
6936 "properties" : {
6937 "comment" : {
6938 "description" : "A comment for the job.",
6939 "optional" : 1,
6940 "type" : "string"
6941 },
6942 "enabled" : {
6943 "description" : "If the job is enabled or not.",
6944 "type" : "boolean"
6945 },
6946 "id" : {
6947 "description" : "The ID of the entry.",
6948 "type" : "string"
6949 },
6950 "last-run" : {
6951 "description" : "Last execution time of the job in seconds since the beginning of the UNIX epoch",
6952 "optional" : 1,
6953 "type" : "integer"
6954 },
6955 "next-run" : {
6956 "description" : "Next planned execution time of the job in seconds since the beginning of the UNIX epoch.",
6957 "optional" : 1,
6958 "type" : "integer"
6959 },
6960 "realm" : {
6961 "description" : "Authentication domain ID",
6962 "format" : "pve-realm",
6963 "maxLength" : 32,
6964 "type" : "string"
6965 },
6966 "remove-vanished" : {
6967 "default" : "none",
6968 "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync. Instead of a list it also can be 'none' (the default).",
6969 "optional" : "1",
6970 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
6971 "type" : "string",
6972 "typetext" : "([acl];[properties];[entry])|none"
6973 },
6974 "schedule" : {
6975 "description" : "The configured sync schedule.",
6976 "type" : "string"
6977 },
6978 "scope" : {
6979 "description" : "Select what to sync.",
6980 "enum" : [
6981 "users",
6982 "groups",
6983 "both"
6984 ],
6985 "optional" : "1",
6986 "type" : "string"
6987 }
6988 },
6989 "type" : "object"
6990 },
6991 "links" : [
6992 {
6993 "href" : "{id}",
6994 "rel" : "child"
6995 }
6996 ],
6997 "type" : "array"
6998 }
6999 }
7000 },
7001 "leaf" : 0,
7002 "path" : "/cluster/jobs/realm-sync",
7003 "text" : "realm-sync"
7004 },
5370fa8c
TL
7005 {
7006 "info" : {
7007 "GET" : {
7008 "allowtoken" : 1,
7009 "description" : "Returns a list of future schedule runtimes.",
7010 "method" : "GET",
7011 "name" : "schedule-analyze",
7012 "parameters" : {
7013 "additionalProperties" : 0,
7014 "properties" : {
7015 "iterations" : {
7016 "default" : 10,
7017 "description" : "Number of event-iteration to simulate and return.",
7018 "maximum" : 100,
7019 "minimum" : 1,
7020 "optional" : 1,
7021 "type" : "integer",
7022 "typetext" : "<integer> (1 - 100)"
7023 },
7024 "schedule" : {
7025 "description" : "Job schedule. The format is a subset of `systemd` calendar events.",
7026 "format" : "pve-calendar-event",
7027 "maxLength" : 128,
7028 "type" : "string",
7029 "typetext" : "<string>"
7030 },
7031 "starttime" : {
7032 "description" : "UNIX timestamp to start the calculation from. Defaults to the current time.",
7033 "optional" : 1,
7034 "type" : "integer",
7035 "typetext" : "<integer>"
7036 }
7037 }
7038 },
7039 "permissions" : {
7040 "user" : "all"
7041 },
7042 "returns" : {
7043 "description" : "An array of the next <iterations> events since <starttime>.",
7044 "items" : {
7045 "properties" : {
7046 "timestamp" : {
7047 "description" : "UNIX timestamp for the run.",
7048 "type" : "integer"
7049 },
7050 "utc" : {
7051 "description" : "UTC timestamp for the run.",
7052 "type" : "string"
7053 }
7054 },
7055 "type" : "object"
7056 },
7057 "type" : "array"
7058 }
7059 }
7060 },
7061 "leaf" : 1,
7062 "path" : "/cluster/jobs/schedule-analyze",
7063 "text" : "schedule-analyze"
7064 }
7065 ],
7066 "info" : {
7067 "GET" : {
7068 "allowtoken" : 1,
7069 "description" : "Index for jobs related endpoints.",
7070 "method" : "GET",
7071 "name" : "index",
7072 "parameters" : {
7073 "additionalProperties" : 0
7074 },
7075 "permissions" : {
7076 "user" : "all"
7077 },
7078 "returns" : {
7079 "description" : "Directory index.",
7080 "items" : {
7081 "properties" : {
7082 "subdir" : {
7083 "description" : "API sub-directory endpoint",
7084 "type" : "string"
7085 }
7086 },
7087 "type" : "object"
7088 },
7089 "links" : [
7090 {
7091 "href" : "{subdir}",
7092 "rel" : "child"
7093 }
7094 ],
7095 "type" : "array"
7096 }
7097 }
7098 },
7099 "leaf" : 0,
7100 "path" : "/cluster/jobs",
7101 "text" : "jobs"
7102 },
499c9b7f
TL
7103 {
7104 "children" : [
7105 {
7106 "children" : [
7107 {
7108 "info" : {
7109 "DELETE" : {
7110 "allowtoken" : 1,
7111 "description" : "Remove Hardware Mapping.",
7112 "method" : "DELETE",
7113 "name" : "delete",
7114 "parameters" : {
7115 "additionalProperties" : 0,
7116 "properties" : {
7117 "id" : {
7118 "format" : "pve-configid",
7119 "type" : "string",
7120 "typetext" : "<string>"
7121 }
7122 }
7123 },
7124 "permissions" : {
7125 "check" : [
7126 "perm",
7127 "/mapping/pci",
7128 [
7129 "Mapping.Modify"
7130 ]
7131 ]
7132 },
7133 "protected" : 1,
7134 "returns" : {
7135 "type" : "null"
7136 }
7137 },
7138 "GET" : {
7139 "allowtoken" : 1,
7140 "description" : "Get PCI Mapping.",
7141 "method" : "GET",
7142 "name" : "get",
7143 "parameters" : {
7144 "additionalProperties" : 0,
7145 "properties" : {
7146 "id" : {
7147 "format" : "pve-configid",
7148 "type" : "string",
7149 "typetext" : "<string>"
7150 }
7151 }
7152 },
7153 "permissions" : {
7154 "check" : [
7155 "or",
7156 [
7157 "perm",
7158 "/mapping/pci/{id}",
7159 [
7160 "Mapping.Use"
7161 ]
7162 ],
7163 [
7164 "perm",
7165 "/mapping/pci/{id}",
7166 [
7167 "Mapping.Modify"
7168 ]
7169 ],
7170 [
7171 "perm",
7172 "/mapping/pci/{id}",
7173 [
7174 "Mapping.Audit"
7175 ]
7176 ]
7177 ]
7178 },
7179 "protected" : 1,
7180 "returns" : {
7181 "type" : "object"
7182 }
7183 },
7184 "PUT" : {
7185 "allowtoken" : 1,
7186 "description" : "Update a hardware mapping.",
7187 "method" : "PUT",
7188 "name" : "update",
7189 "parameters" : {
7190 "additionalProperties" : 0,
7191 "properties" : {
7192 "delete" : {
7193 "description" : "A list of settings you want to delete.",
7194 "format" : "pve-configid-list",
7195 "maxLength" : 4096,
7196 "optional" : 1,
7197 "type" : "string",
7198 "typetext" : "<string>"
7199 },
7200 "description" : {
7201 "description" : "Description of the logical PCI device.",
7202 "maxLength" : 4096,
7203 "optional" : 1,
7204 "type" : "string",
7205 "typetext" : "<string>"
7206 },
7207 "digest" : {
7208 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7209 "maxLength" : 40,
7210 "optional" : 1,
7211 "type" : "string",
7212 "typetext" : "<string>"
7213 },
7214 "id" : {
7215 "description" : "The ID of the logical PCI mapping.",
7216 "format" : "pve-configid",
7217 "type" : "string",
7218 "typetext" : "<string>"
7219 },
7220 "map" : {
7221 "description" : "A list of maps for the cluster nodes.",
7222 "items" : {
7223 "format" : {
7224 "description" : {
7225 "description" : "Description of the node specific device.",
7226 "maxLength" : 4096,
7227 "optional" : 1,
7228 "type" : "string"
7229 },
7230 "id" : {
7231 "description" : "The vendor and device ID that is expected. Used for detecting hardware changes",
7232 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
7233 "type" : "string"
7234 },
7235 "iommugroup" : {
7236 "description" : "The IOMMU group in which the device is to be expected in.Used for detecting hardware changes.",
7237 "optional" : 1,
7238 "type" : "integer"
7239 },
7240 "node" : {
7241 "description" : "The cluster node name.",
7242 "format" : "pve-node",
7243 "type" : "string"
7244 },
7245 "path" : {
7246 "description" : "The path to the device. If the function is omitted, the whole device is mapped. In that case use the attributes of the first device. You can give multiple paths as a semicolon seperated list, the first available will then be chosen on guest start.",
7247 "pattern" : "(?:[a-f0-9]{4,}:[a-f0-9]{2}:[a-f0-9]{2}(?:.[a-f0-9])?;)*[a-f0-9]{4,}:[a-f0-9]{2}:[a-f0-9]{2}(?:.[a-f0-9])?",
7248 "type" : "string"
7249 },
7250 "subsystem-id" : {
7251 "description" : "The subsystem vendor and device ID that is expected. Used for detecting hardware changes.",
7252 "optional" : 1,
7253 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
7254 "type" : "string"
7255 }
7256 },
7257 "type" : "string"
7258 },
7259 "optional" : 1,
7260 "type" : "array",
7261 "typetext" : "<array>"
7262 },
7263 "mdev" : {
7264 "optional" : 1,
7265 "type" : "boolean",
7266 "typetext" : "<boolean>"
7267 }
7268 },
7269 "type" : "object"
7270 },
7271 "permissions" : {
7272 "check" : [
7273 "perm",
7274 "/mapping/pci/{id}",
7275 [
7276 "Mapping.Modify"
7277 ]
7278 ]
7279 },
7280 "protected" : 1,
7281 "returns" : {
7282 "type" : "null"
7283 }
7284 }
7285 },
7286 "leaf" : 1,
7287 "path" : "/cluster/mapping/pci/{id}",
7288 "text" : "{id}"
7289 }
7290 ],
7291 "info" : {
7292 "GET" : {
7293 "allowtoken" : 1,
7294 "description" : "List PCI Hardware Mapping",
7295 "method" : "GET",
7296 "name" : "index",
7297 "parameters" : {
7298 "additionalProperties" : 0,
7299 "properties" : {
7300 "check-node" : {
7301 "description" : "If given, checks the configurations on the given node for correctness, and adds relevant diagnostics for the devices to the response.",
7302 "format" : "pve-node",
7303 "optional" : 1,
7304 "type" : "string",
7305 "typetext" : "<string>"
7306 }
7307 }
7308 },
7309 "permissions" : {
7310 "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/pci/<id>'.",
7311 "user" : "all"
7312 },
7313 "returns" : {
7314 "items" : {
7315 "properties" : {
7316 "checks" : {
7317 "description" : "A list of checks, only present if 'check_node' is set.",
7318 "items" : {
7319 "properties" : {
7320 "message" : {
7321 "description" : "The message of the error",
7322 "type" : "string"
7323 },
7324 "severity" : {
7325 "description" : "The severity of the error",
7326 "enum" : [
7327 "warning",
7328 "error"
7329 ],
7330 "type" : "string"
7331 }
7332 },
7333 "type" : "object"
7334 },
7335 "optional" : 1,
7336 "type" : "array"
7337 },
7338 "description" : {
7339 "description" : "A description of the logical mapping.",
7340 "type" : "string"
7341 },
7342 "id" : {
7343 "description" : "The logical ID of the mapping.",
7344 "type" : "string"
7345 },
7346 "map" : {
7347 "description" : "The entries of the mapping.",
7348 "items" : {
7349 "description" : "A mapping for a node.",
7350 "type" : "string"
7351 },
7352 "type" : "array"
7353 }
7354 },
7355 "type" : "object"
7356 },
7357 "links" : [
7358 {
7359 "href" : "{id}",
7360 "rel" : "child"
7361 }
7362 ],
7363 "type" : "array"
7364 }
7365 },
7366 "POST" : {
7367 "allowtoken" : 1,
7368 "description" : "Create a new hardware mapping.",
7369 "method" : "POST",
7370 "name" : "create",
7371 "parameters" : {
7372 "additionalProperties" : 0,
7373 "properties" : {
7374 "description" : {
7375 "description" : "Description of the logical PCI device.",
7376 "maxLength" : 4096,
7377 "optional" : 1,
7378 "type" : "string",
7379 "typetext" : "<string>"
7380 },
7381 "id" : {
7382 "description" : "The ID of the logical PCI mapping.",
7383 "format" : "pve-configid",
7384 "type" : "string",
7385 "typetext" : "<string>"
7386 },
7387 "map" : {
7388 "description" : "A list of maps for the cluster nodes.",
7389 "items" : {
7390 "format" : {
7391 "description" : {
7392 "description" : "Description of the node specific device.",
7393 "maxLength" : 4096,
7394 "optional" : 1,
7395 "type" : "string"
7396 },
7397 "id" : {
7398 "description" : "The vendor and device ID that is expected. Used for detecting hardware changes",
7399 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
7400 "type" : "string"
7401 },
7402 "iommugroup" : {
7403 "description" : "The IOMMU group in which the device is to be expected in.Used for detecting hardware changes.",
7404 "optional" : 1,
7405 "type" : "integer"
7406 },
7407 "node" : {
7408 "description" : "The cluster node name.",
7409 "format" : "pve-node",
7410 "type" : "string"
7411 },
7412 "path" : {
7413 "description" : "The path to the device. If the function is omitted, the whole device is mapped. In that case use the attributes of the first device. You can give multiple paths as a semicolon seperated list, the first available will then be chosen on guest start.",
7414 "pattern" : "(?:[a-f0-9]{4,}:[a-f0-9]{2}:[a-f0-9]{2}(?:.[a-f0-9])?;)*[a-f0-9]{4,}:[a-f0-9]{2}:[a-f0-9]{2}(?:.[a-f0-9])?",
7415 "type" : "string"
7416 },
7417 "subsystem-id" : {
7418 "description" : "The subsystem vendor and device ID that is expected. Used for detecting hardware changes.",
7419 "optional" : 1,
7420 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
7421 "type" : "string"
7422 }
7423 },
7424 "type" : "string"
7425 },
7426 "optional" : 0,
7427 "type" : "array",
7428 "typetext" : "<array>"
7429 },
7430 "mdev" : {
7431 "optional" : 1,
7432 "type" : "boolean",
7433 "typetext" : "<boolean>"
7434 }
7435 },
7436 "type" : "object"
7437 },
7438 "permissions" : {
7439 "check" : [
7440 "perm",
7441 "/mapping/pci",
7442 [
7443 "Mapping.Modify"
7444 ]
7445 ]
7446 },
7447 "protected" : 1,
7448 "returns" : {
7449 "type" : "null"
7450 }
7451 }
7452 },
7453 "leaf" : 0,
7454 "path" : "/cluster/mapping/pci",
7455 "text" : "pci"
7456 },
7457 {
7458 "children" : [
7459 {
7460 "info" : {
7461 "DELETE" : {
7462 "allowtoken" : 1,
7463 "description" : "Remove Hardware Mapping.",
7464 "method" : "DELETE",
7465 "name" : "delete",
7466 "parameters" : {
7467 "additionalProperties" : 0,
7468 "properties" : {
7469 "id" : {
7470 "format" : "pve-configid",
7471 "type" : "string",
7472 "typetext" : "<string>"
7473 }
7474 }
7475 },
7476 "permissions" : {
7477 "check" : [
7478 "perm",
7479 "/mapping/usb",
7480 [
7481 "Mapping.Modify"
7482 ]
7483 ]
7484 },
7485 "protected" : 1,
7486 "returns" : {
7487 "type" : "null"
7488 }
7489 },
7490 "GET" : {
7491 "allowtoken" : 1,
7492 "description" : "Get USB Mapping.",
7493 "method" : "GET",
7494 "name" : "get",
7495 "parameters" : {
7496 "additionalProperties" : 0,
7497 "properties" : {
7498 "id" : {
7499 "format" : "pve-configid",
7500 "type" : "string",
7501 "typetext" : "<string>"
7502 }
7503 }
7504 },
7505 "permissions" : {
7506 "check" : [
7507 "or",
7508 [
7509 "perm",
7510 "/mapping/usb/{id}",
7511 [
7512 "Mapping.Audit"
7513 ]
7514 ],
7515 [
7516 "perm",
7517 "/mapping/usb/{id}",
7518 [
7519 "Mapping.Use"
7520 ]
7521 ],
7522 [
7523 "perm",
7524 "/mapping/usb/{id}",
7525 [
7526 "Mapping.Modify"
7527 ]
7528 ]
7529 ]
7530 },
7531 "protected" : 1,
7532 "returns" : {
7533 "type" : "object"
7534 }
7535 },
7536 "PUT" : {
7537 "allowtoken" : 1,
7538 "description" : "Update a hardware mapping.",
7539 "method" : "PUT",
7540 "name" : "update",
7541 "parameters" : {
7542 "additionalProperties" : 0,
7543 "properties" : {
7544 "delete" : {
7545 "description" : "A list of settings you want to delete.",
7546 "format" : "pve-configid-list",
7547 "maxLength" : 4096,
7548 "optional" : 1,
7549 "type" : "string",
7550 "typetext" : "<string>"
7551 },
7552 "description" : {
7553 "description" : "Description of the logical PCI device.",
7554 "maxLength" : 4096,
7555 "optional" : 1,
7556 "type" : "string",
7557 "typetext" : "<string>"
7558 },
7559 "digest" : {
7560 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7561 "maxLength" : 40,
7562 "optional" : 1,
7563 "type" : "string",
7564 "typetext" : "<string>"
7565 },
7566 "id" : {
7567 "description" : "The ID of the logical PCI mapping.",
7568 "format" : "pve-configid",
7569 "type" : "string",
7570 "typetext" : "<string>"
7571 },
7572 "map" : {
7573 "description" : "A list of maps for the cluster nodes.",
7574 "items" : {
7575 "format" : {
7576 "description" : {
7577 "description" : "Description of the node specific device.",
7578 "maxLength" : 4096,
7579 "optional" : 1,
7580 "type" : "string"
7581 },
7582 "id" : {
7583 "description" : "The vendor and device ID that is expected. If a USB path is given, it is only used for detecting hardware changes",
7584 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
7585 "type" : "string"
7586 },
7587 "node" : {
7588 "description" : "The cluster node name.",
7589 "format" : "pve-node",
7590 "type" : "string"
7591 },
7592 "path" : {
7593 "description" : "The path to the usb device.",
7594 "optional" : 1,
7595 "pattern" : "(?^:^(\\d+)\\-(\\d+(\\.\\d+)*)$)",
7596 "type" : "string"
7597 }
7598 },
7599 "type" : "string"
7600 },
7601 "type" : "array",
7602 "typetext" : "<array>"
7603 }
7604 },
7605 "type" : "object"
7606 },
7607 "permissions" : {
7608 "check" : [
7609 "perm",
7610 "/mapping/usb/{id}",
7611 [
7612 "Mapping.Modify"
7613 ]
7614 ]
7615 },
7616 "protected" : 1,
7617 "returns" : {
7618 "type" : "null"
7619 }
7620 }
7621 },
7622 "leaf" : 1,
7623 "path" : "/cluster/mapping/usb/{id}",
7624 "text" : "{id}"
7625 }
7626 ],
7627 "info" : {
7628 "GET" : {
7629 "allowtoken" : 1,
7630 "description" : "List USB Hardware Mappings",
7631 "method" : "GET",
7632 "name" : "index",
7633 "parameters" : {
7634 "additionalProperties" : 0,
7635 "properties" : {
7636 "check-node" : {
7637 "description" : "If given, checks the configurations on the given node for correctness, and adds relevant errors to the devices.",
7638 "format" : "pve-node",
7639 "optional" : 1,
7640 "type" : "string",
7641 "typetext" : "<string>"
7642 }
7643 }
7644 },
7645 "permissions" : {
7646 "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/usb/<id>'.",
7647 "user" : "all"
7648 },
7649 "returns" : {
7650 "items" : {
7651 "properties" : {
7652 "description" : {
7653 "description" : "A description of the logical mapping.",
7654 "type" : "string"
7655 },
7656 "error" : {
7657 "description" : "A list of errors when 'check_node' is given.",
7658 "items" : {
7659 "properties" : {
7660 "message" : {
7661 "description" : "The message of the error",
7662 "type" : "string"
7663 },
7664 "severity" : {
7665 "description" : "The severity of the error",
7666 "type" : "string"
7667 }
7668 },
7669 "type" : "object"
7670 }
7671 },
7672 "id" : {
7673 "description" : "The logical ID of the mapping.",
7674 "type" : "string"
7675 },
7676 "map" : {
7677 "description" : "The entries of the mapping.",
7678 "items" : {
7679 "description" : "A mapping for a node.",
7680 "type" : "string"
7681 },
7682 "type" : "array"
7683 }
7684 },
7685 "type" : "object"
7686 },
7687 "links" : [
7688 {
7689 "href" : "{id}",
7690 "rel" : "child"
7691 }
7692 ],
7693 "type" : "array"
7694 }
7695 },
7696 "POST" : {
7697 "allowtoken" : 1,
7698 "description" : "Create a new hardware mapping.",
7699 "method" : "POST",
7700 "name" : "create",
7701 "parameters" : {
7702 "additionalProperties" : 0,
7703 "properties" : {
7704 "description" : {
7705 "description" : "Description of the logical PCI device.",
7706 "maxLength" : 4096,
7707 "optional" : 1,
7708 "type" : "string",
7709 "typetext" : "<string>"
7710 },
7711 "id" : {
7712 "description" : "The ID of the logical PCI mapping.",
7713 "format" : "pve-configid",
7714 "type" : "string",
7715 "typetext" : "<string>"
7716 },
7717 "map" : {
7718 "description" : "A list of maps for the cluster nodes.",
7719 "items" : {
7720 "format" : {
7721 "description" : {
7722 "description" : "Description of the node specific device.",
7723 "maxLength" : 4096,
7724 "optional" : 1,
7725 "type" : "string"
7726 },
7727 "id" : {
7728 "description" : "The vendor and device ID that is expected. If a USB path is given, it is only used for detecting hardware changes",
7729 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
7730 "type" : "string"
7731 },
7732 "node" : {
7733 "description" : "The cluster node name.",
7734 "format" : "pve-node",
7735 "type" : "string"
7736 },
7737 "path" : {
7738 "description" : "The path to the usb device.",
7739 "optional" : 1,
7740 "pattern" : "(?^:^(\\d+)\\-(\\d+(\\.\\d+)*)$)",
7741 "type" : "string"
7742 }
7743 },
7744 "type" : "string"
7745 },
7746 "type" : "array",
7747 "typetext" : "<array>"
7748 }
7749 },
7750 "type" : "object"
7751 },
7752 "permissions" : {
7753 "check" : [
7754 "perm",
7755 "/mapping/usb",
7756 [
7757 "Mapping.Modify"
7758 ]
7759 ]
7760 },
7761 "protected" : 1,
7762 "returns" : {
7763 "type" : "null"
7764 }
7765 }
7766 },
7767 "leaf" : 0,
7768 "path" : "/cluster/mapping/usb",
7769 "text" : "usb"
7770 }
7771 ],
7772 "info" : {
7773 "GET" : {
7774 "allowtoken" : 1,
7775 "description" : "List resource types.",
7776 "method" : "GET",
7777 "name" : "index",
7778 "parameters" : {
7779 "additionalProperties" : 0
7780 },
7781 "permissions" : {
7782 "user" : "all"
7783 },
7784 "returns" : {
7785 "items" : {
7786 "type" : "object"
7787 },
7788 "links" : [
7789 {
7790 "href" : "{name}",
7791 "rel" : "child"
7792 }
7793 ],
7794 "type" : "array"
7795 }
7796 }
7797 },
7798 "leaf" : 0,
7799 "path" : "/cluster/mapping",
7800 "text" : "mapping"
7801 },
c5aa7e14
TL
7802 {
7803 "children" : [
7804 {
7805 "children" : [
7806 {
d2656385
TL
7807 "children" : [
7808 {
7809 "children" : [
7810 {
7811 "info" : {
7812 "DELETE" : {
7813 "allowtoken" : 1,
7814 "description" : "Delete sdn subnet object configuration.",
7815 "method" : "DELETE",
7816 "name" : "delete",
7817 "parameters" : {
7818 "additionalProperties" : 0,
7819 "properties" : {
7820 "subnet" : {
7821 "description" : "The SDN subnet object identifier.",
7822 "format" : "pve-sdn-subnet-id",
7823 "type" : "string",
7824 "typetext" : "<string>"
7825 },
7826 "vnet" : {
7827 "description" : "The SDN vnet object identifier.",
7828 "format" : "pve-sdn-vnet-id",
7829 "type" : "string",
7830 "typetext" : "<string>"
7831 }
7832 }
7833 },
7834 "permissions" : {
7835 "check" : [
7836 "perm",
7837 "/sdn/vnets/{vnet}/subnets",
7838 [
7839 "SDN.Allocate"
7840 ]
7841 ]
7842 },
7843 "protected" : 1,
7844 "returns" : {
7845 "type" : "null"
7846 }
7847 },
7848 "GET" : {
7849 "allowtoken" : 1,
7850 "description" : "Read sdn subnet configuration.",
7851 "method" : "GET",
7852 "name" : "read",
7853 "parameters" : {
7854 "additionalProperties" : 0,
7855 "properties" : {
7856 "pending" : {
7857 "description" : "Display pending config.",
7858 "optional" : 1,
7859 "type" : "boolean",
7860 "typetext" : "<boolean>"
7861 },
7862 "running" : {
7863 "description" : "Display running config.",
7864 "optional" : 1,
7865 "type" : "boolean",
7866 "typetext" : "<boolean>"
7867 },
7868 "subnet" : {
7869 "description" : "The SDN subnet object identifier.",
7870 "format" : "pve-sdn-subnet-id",
7871 "type" : "string",
7872 "typetext" : "<string>"
7873 },
7874 "vnet" : {
7875 "description" : "The SDN vnet object identifier.",
7876 "format" : "pve-sdn-vnet-id",
7877 "type" : "string",
7878 "typetext" : "<string>"
7879 }
7880 }
7881 },
7882 "permissions" : {
7883 "check" : [
7884 "perm",
7885 "/sdn/vnets/{vnet}/subnets/{subnet}",
7886 [
7887 "SDN.Allocate"
7888 ]
7889 ]
7890 },
7891 "returns" : {
7892 "type" : "object"
7893 }
7894 },
7895 "PUT" : {
7896 "allowtoken" : 1,
7897 "description" : "Update sdn subnet object configuration.",
7898 "method" : "PUT",
7899 "name" : "update",
7900 "parameters" : {
7901 "additionalProperties" : 0,
7902 "properties" : {
7903 "delete" : {
7904 "description" : "A list of settings you want to delete.",
7905 "format" : "pve-configid-list",
7906 "maxLength" : 4096,
7907 "optional" : 1,
7908 "type" : "string",
7909 "typetext" : "<string>"
7910 },
7911 "digest" : {
7912 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7913 "maxLength" : 40,
7914 "optional" : 1,
7915 "type" : "string",
7916 "typetext" : "<string>"
7917 },
7918 "dnszoneprefix" : {
7919 "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
7920 "format" : "dns-name",
7921 "optional" : 1,
7922 "type" : "string",
7923 "typetext" : "<string>"
7924 },
7925 "gateway" : {
7926 "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
7927 "format" : "ip",
7928 "optional" : 1,
7929 "type" : "string",
7930 "typetext" : "<string>"
7931 },
7932 "snat" : {
7933 "description" : "enable masquerade for this subnet if pve-firewall",
7934 "optional" : 1,
7935 "type" : "boolean",
7936 "typetext" : "<boolean>"
7937 },
7938 "subnet" : {
7939 "description" : "The SDN subnet object identifier.",
7940 "format" : "pve-sdn-subnet-id",
7941 "type" : "string",
7942 "typetext" : "<string>"
7943 },
7944 "vnet" : {
7945 "description" : "associated vnet",
7946 "optional" : 1,
7947 "type" : "string",
7948 "typetext" : "<string>"
7949 }
7950 },
7951 "type" : "object"
7952 },
7953 "permissions" : {
7954 "check" : [
7955 "perm",
7956 "/sdn/vnets/{vnet}/subnets",
7957 [
7958 "SDN.Allocate"
7959 ]
7960 ]
7961 },
7962 "protected" : 1,
7963 "returns" : {
7964 "type" : "null"
7965 }
7966 }
7967 },
7968 "leaf" : 1,
7969 "path" : "/cluster/sdn/vnets/{vnet}/subnets/{subnet}",
7970 "text" : "{subnet}"
7971 }
7972 ],
7973 "info" : {
7974 "GET" : {
7975 "allowtoken" : 1,
7976 "description" : "SDN subnets index.",
7977 "method" : "GET",
7978 "name" : "index",
7979 "parameters" : {
7980 "additionalProperties" : 0,
7981 "properties" : {
7982 "pending" : {
7983 "description" : "Display pending config.",
7984 "optional" : 1,
7985 "type" : "boolean",
7986 "typetext" : "<boolean>"
7987 },
7988 "running" : {
7989 "description" : "Display running config.",
7990 "optional" : 1,
7991 "type" : "boolean",
7992 "typetext" : "<boolean>"
7993 },
7994 "vnet" : {
7995 "description" : "The SDN vnet object identifier.",
7996 "format" : "pve-sdn-vnet-id",
7997 "type" : "string",
7998 "typetext" : "<string>"
7999 }
8000 }
8001 },
8002 "permissions" : {
8003 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/subnets/<subnet>'",
8004 "user" : "all"
8005 },
8006 "returns" : {
8007 "items" : {
8008 "properties" : {},
8009 "type" : "object"
8010 },
8011 "links" : [
8012 {
8013 "href" : "{subnet}",
8014 "rel" : "child"
8015 }
8016 ],
8017 "type" : "array"
8018 }
8019 },
8020 "POST" : {
8021 "allowtoken" : 1,
8022 "description" : "Create a new sdn subnet object.",
8023 "method" : "POST",
8024 "name" : "create",
8025 "parameters" : {
8026 "additionalProperties" : 0,
8027 "properties" : {
8028 "dnszoneprefix" : {
8029 "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
8030 "format" : "dns-name",
8031 "optional" : 1,
8032 "type" : "string",
8033 "typetext" : "<string>"
8034 },
8035 "gateway" : {
8036 "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
8037 "format" : "ip",
8038 "optional" : 1,
8039 "type" : "string",
8040 "typetext" : "<string>"
8041 },
8042 "snat" : {
8043 "description" : "enable masquerade for this subnet if pve-firewall",
8044 "optional" : 1,
8045 "type" : "boolean",
8046 "typetext" : "<boolean>"
8047 },
8048 "subnet" : {
8049 "description" : "The SDN subnet object identifier.",
8050 "format" : "pve-sdn-subnet-id",
8051 "type" : "string",
8052 "typetext" : "<string>"
8053 },
8054 "type" : {
8055 "enum" : [
8056 "subnet"
8057 ],
8058 "type" : "string"
8059 },
8060 "vnet" : {
8061 "description" : "associated vnet",
8062 "optional" : 0,
8063 "type" : "string",
8064 "typetext" : "<string>"
8065 }
8066 },
8067 "type" : "object"
8068 },
8069 "permissions" : {
8070 "check" : [
8071 "perm",
8072 "/sdn/vnets/{vnet}/subnets",
8073 [
8074 "SDN.Allocate"
8075 ]
8076 ]
8077 },
8078 "protected" : 1,
8079 "returns" : {
8080 "type" : "null"
8081 }
8082 }
8083 },
8084 "leaf" : 0,
8085 "path" : "/cluster/sdn/vnets/{vnet}/subnets",
8086 "text" : "subnets"
8087 }
8088 ],
c5aa7e14
TL
8089 "info" : {
8090 "DELETE" : {
8091 "allowtoken" : 1,
8092 "description" : "Delete sdn vnet object configuration.",
8093 "method" : "DELETE",
8094 "name" : "delete",
8095 "parameters" : {
8096 "additionalProperties" : 0,
8097 "properties" : {
8098 "vnet" : {
8099 "description" : "The SDN vnet object identifier.",
8100 "format" : "pve-sdn-vnet-id",
8101 "type" : "string",
8102 "typetext" : "<string>"
8103 }
8104 }
8105 },
8106 "permissions" : {
8107 "check" : [
8108 "perm",
8109 "/sdn/vnets",
8110 [
8111 "SDN.Allocate"
8112 ]
8113 ]
8114 },
8115 "protected" : 1,
8116 "returns" : {
8117 "type" : "null"
8118 }
8119 },
8120 "GET" : {
8121 "allowtoken" : 1,
8122 "description" : "Read sdn vnet configuration.",
8123 "method" : "GET",
8124 "name" : "read",
8125 "parameters" : {
8126 "additionalProperties" : 0,
8127 "properties" : {
d2656385
TL
8128 "pending" : {
8129 "description" : "Display pending config.",
8130 "optional" : 1,
8131 "type" : "boolean",
8132 "typetext" : "<boolean>"
8133 },
8134 "running" : {
8135 "description" : "Display running config.",
8136 "optional" : 1,
8137 "type" : "boolean",
8138 "typetext" : "<boolean>"
8139 },
c5aa7e14
TL
8140 "vnet" : {
8141 "description" : "The SDN vnet object identifier.",
8142 "format" : "pve-sdn-vnet-id",
8143 "type" : "string",
8144 "typetext" : "<string>"
8145 }
8146 }
8147 },
8148 "permissions" : {
8149 "check" : [
8150 "perm",
8151 "/sdn/vnets/{vnet}",
8152 [
8153 "SDN.Allocate"
8154 ]
8155 ]
8156 },
8157 "returns" : {
8158 "type" : "object"
8159 }
8160 },
8161 "PUT" : {
8162 "allowtoken" : 1,
8163 "description" : "Update sdn vnet object configuration.",
8164 "method" : "PUT",
8165 "name" : "update",
8166 "parameters" : {
8167 "additionalProperties" : 0,
8168 "properties" : {
8169 "alias" : {
8170 "description" : "alias name of the vnet",
5370fa8c 8171 "maxLength" : 256,
c5aa7e14 8172 "optional" : 1,
5370fa8c
TL
8173 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
8174 "type" : "string"
c5aa7e14
TL
8175 },
8176 "delete" : {
8177 "description" : "A list of settings you want to delete.",
8178 "format" : "pve-configid-list",
8179 "maxLength" : 4096,
8180 "optional" : 1,
8181 "type" : "string",
8182 "typetext" : "<string>"
8183 },
8184 "digest" : {
8185 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
8186 "maxLength" : 40,
8187 "optional" : 1,
8188 "type" : "string",
8189 "typetext" : "<string>"
8190 },
c5aa7e14
TL
8191 "tag" : {
8192 "description" : "vlan or vxlan id",
8193 "optional" : 1,
8194 "type" : "integer",
8195 "typetext" : "<integer>"
8196 },
ac70d7d1
TL
8197 "vlanaware" : {
8198 "description" : "Allow vm VLANs to pass through this vnet.",
8199 "optional" : 1,
8200 "type" : "boolean",
8201 "typetext" : "<boolean>"
8202 },
c5aa7e14
TL
8203 "vnet" : {
8204 "description" : "The SDN vnet object identifier.",
8205 "format" : "pve-sdn-vnet-id",
8206 "type" : "string",
8207 "typetext" : "<string>"
8208 },
8209 "zone" : {
8210 "description" : "zone id",
8211 "optional" : 1,
8212 "type" : "string",
8213 "typetext" : "<string>"
8214 }
8215 },
8216 "type" : "object"
8217 },
8218 "permissions" : {
8219 "check" : [
8220 "perm",
8221 "/sdn/vnets",
8222 [
8223 "SDN.Allocate"
8224 ]
8225 ]
8226 },
8227 "protected" : 1,
8228 "returns" : {
8229 "type" : "null"
8230 }
8231 }
8232 },
d2656385 8233 "leaf" : 0,
c5aa7e14
TL
8234 "path" : "/cluster/sdn/vnets/{vnet}",
8235 "text" : "{vnet}"
8236 }
8237 ],
8238 "info" : {
8239 "GET" : {
8240 "allowtoken" : 1,
8241 "description" : "SDN vnets index.",
8242 "method" : "GET",
8243 "name" : "index",
8244 "parameters" : {
d2656385
TL
8245 "additionalProperties" : 0,
8246 "properties" : {
8247 "pending" : {
8248 "description" : "Display pending config.",
8249 "optional" : 1,
8250 "type" : "boolean",
8251 "typetext" : "<boolean>"
8252 },
8253 "running" : {
8254 "description" : "Display running config.",
8255 "optional" : 1,
8256 "type" : "boolean",
8257 "typetext" : "<boolean>"
8258 }
8259 }
c5aa7e14
TL
8260 },
8261 "permissions" : {
8262 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/vnets/<vnet>'",
8263 "user" : "all"
8264 },
8265 "returns" : {
8266 "items" : {
8267 "properties" : {},
8268 "type" : "object"
8269 },
8270 "links" : [
8271 {
8272 "href" : "{vnet}",
8273 "rel" : "child"
8274 }
8275 ],
8276 "type" : "array"
8277 }
8278 },
8279 "POST" : {
8280 "allowtoken" : 1,
8281 "description" : "Create a new sdn vnet object.",
8282 "method" : "POST",
8283 "name" : "create",
8284 "parameters" : {
8285 "additionalProperties" : 0,
8286 "properties" : {
8287 "alias" : {
8288 "description" : "alias name of the vnet",
5370fa8c 8289 "maxLength" : 256,
c5aa7e14 8290 "optional" : 1,
5370fa8c
TL
8291 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
8292 "type" : "string"
c5aa7e14 8293 },
c5aa7e14
TL
8294 "tag" : {
8295 "description" : "vlan or vxlan id",
ac70d7d1 8296 "optional" : 1,
c5aa7e14
TL
8297 "type" : "integer",
8298 "typetext" : "<integer>"
8299 },
8300 "type" : {
8301 "description" : "Type",
8302 "enum" : [
8303 "vnet"
8304 ],
8305 "optional" : 1,
8306 "type" : "string"
8307 },
ac70d7d1
TL
8308 "vlanaware" : {
8309 "description" : "Allow vm VLANs to pass through this vnet.",
8310 "optional" : 1,
8311 "type" : "boolean",
8312 "typetext" : "<boolean>"
8313 },
c5aa7e14
TL
8314 "vnet" : {
8315 "description" : "The SDN vnet object identifier.",
8316 "format" : "pve-sdn-vnet-id",
8317 "type" : "string",
8318 "typetext" : "<string>"
8319 },
8320 "zone" : {
8321 "description" : "zone id",
8322 "optional" : 0,
8323 "type" : "string",
8324 "typetext" : "<string>"
8325 }
8326 },
8327 "type" : "object"
8328 },
8329 "permissions" : {
8330 "check" : [
8331 "perm",
8332 "/sdn/vnets",
8333 [
8334 "SDN.Allocate"
8335 ]
8336 ]
8337 },
8338 "protected" : 1,
8339 "returns" : {
8340 "type" : "null"
8341 }
8342 }
8343 },
8344 "leaf" : 0,
8345 "path" : "/cluster/sdn/vnets",
8346 "text" : "vnets"
8347 },
8348 {
8349 "children" : [
8350 {
8351 "info" : {
8352 "DELETE" : {
8353 "allowtoken" : 1,
8354 "description" : "Delete sdn zone object configuration.",
8355 "method" : "DELETE",
8356 "name" : "delete",
8357 "parameters" : {
8358 "additionalProperties" : 0,
8359 "properties" : {
8360 "zone" : {
8361 "description" : "The SDN zone object identifier.",
8362 "format" : "pve-sdn-zone-id",
8363 "type" : "string",
8364 "typetext" : "<string>"
8365 }
8366 }
8367 },
8368 "permissions" : {
8369 "check" : [
8370 "perm",
8371 "/sdn/zones",
8372 [
8373 "SDN.Allocate"
8374 ]
8375 ]
8376 },
8377 "protected" : 1,
8378 "returns" : {
8379 "type" : "null"
8380 }
8381 },
8382 "GET" : {
8383 "allowtoken" : 1,
8384 "description" : "Read sdn zone configuration.",
8385 "method" : "GET",
8386 "name" : "read",
8387 "parameters" : {
8388 "additionalProperties" : 0,
8389 "properties" : {
d2656385
TL
8390 "pending" : {
8391 "description" : "Display pending config.",
8392 "optional" : 1,
8393 "type" : "boolean",
8394 "typetext" : "<boolean>"
8395 },
8396 "running" : {
8397 "description" : "Display running config.",
8398 "optional" : 1,
8399 "type" : "boolean",
8400 "typetext" : "<boolean>"
8401 },
c5aa7e14
TL
8402 "zone" : {
8403 "description" : "The SDN zone object identifier.",
8404 "format" : "pve-sdn-zone-id",
8405 "type" : "string",
8406 "typetext" : "<string>"
8407 }
8408 }
8409 },
8410 "permissions" : {
8411 "check" : [
8412 "perm",
8413 "/sdn/zones/{zone}",
8414 [
8415 "SDN.Allocate"
8416 ]
8417 ]
8418 },
8419 "returns" : {
8420 "type" : "object"
8421 }
8422 },
8423 "PUT" : {
8424 "allowtoken" : 1,
8425 "description" : "Update sdn zone object configuration.",
8426 "method" : "PUT",
8427 "name" : "update",
8428 "parameters" : {
8429 "additionalProperties" : 0,
8430 "properties" : {
5370fa8c
TL
8431 "advertise-subnets" : {
8432 "description" : "Advertise evpn subnets if you have silent hosts",
8433 "optional" : 1,
8434 "type" : "boolean",
8435 "typetext" : "<boolean>"
8436 },
c5aa7e14
TL
8437 "bridge" : {
8438 "optional" : 1,
8439 "type" : "string",
8440 "typetext" : "<string>"
8441 },
7af2edf9
TL
8442 "bridge-disable-mac-learning" : {
8443 "description" : "Disable auto mac learning.",
8444 "optional" : 1,
8445 "type" : "boolean",
8446 "typetext" : "<boolean>"
8447 },
c5aa7e14
TL
8448 "controller" : {
8449 "description" : "Frr router name",
8450 "optional" : 1,
8451 "type" : "string",
8452 "typetext" : "<string>"
8453 },
8454 "delete" : {
8455 "description" : "A list of settings you want to delete.",
8456 "format" : "pve-configid-list",
8457 "maxLength" : 4096,
8458 "optional" : 1,
8459 "type" : "string",
8460 "typetext" : "<string>"
8461 },
8462 "digest" : {
8463 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
8464 "maxLength" : 40,
8465 "optional" : 1,
8466 "type" : "string",
8467 "typetext" : "<string>"
8468 },
5370fa8c
TL
8469 "disable-arp-nd-suppression" : {
8470 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
8471 "optional" : 1,
8472 "type" : "boolean",
8473 "typetext" : "<boolean>"
8474 },
d2656385
TL
8475 "dns" : {
8476 "description" : "dns api server",
8477 "optional" : 1,
8478 "type" : "string",
8479 "typetext" : "<string>"
8480 },
8481 "dnszone" : {
8482 "description" : "dns domain zone ex: mydomain.com",
8483 "format" : "dns-name",
8484 "optional" : 1,
8485 "type" : "string",
8486 "typetext" : "<string>"
8487 },
c5aa7e14
TL
8488 "dp-id" : {
8489 "description" : "Faucet dataplane id",
8490 "optional" : 1,
8491 "type" : "integer",
8492 "typetext" : "<integer>"
8493 },
d2656385
TL
8494 "exitnodes" : {
8495 "description" : "List of cluster node names.",
8496 "format" : "pve-node-list",
8497 "optional" : 1,
8498 "type" : "string",
8499 "typetext" : "<string>"
8500 },
5370fa8c
TL
8501 "exitnodes-local-routing" : {
8502 "description" : "Allow exitnodes to connect to evpn guests",
8503 "optional" : 1,
8504 "type" : "boolean",
8505 "typetext" : "<boolean>"
8506 },
c30bb419
TL
8507 "exitnodes-primary" : {
8508 "description" : "Force traffic to this exitnode first.",
8509 "format" : "pve-node",
8510 "optional" : 1,
8511 "type" : "string",
8512 "typetext" : "<string>"
8513 },
d2656385
TL
8514 "ipam" : {
8515 "description" : "use a specific ipam",
e7084ef7 8516 "optional" : 1,
d2656385
TL
8517 "type" : "string",
8518 "typetext" : "<string>"
8519 },
8520 "mac" : {
8521 "description" : "Anycast logical router mac address",
8522 "format" : "mac-addr",
8523 "optional" : 1,
8524 "type" : "string",
8525 "typetext" : "<string>"
8526 },
c5aa7e14 8527 "mtu" : {
ac70d7d1 8528 "description" : "MTU",
c5aa7e14
TL
8529 "optional" : 1,
8530 "type" : "integer",
8531 "typetext" : "<integer>"
8532 },
8533 "nodes" : {
8534 "description" : "List of cluster node names.",
8535 "format" : "pve-node-list",
8536 "optional" : 1,
8537 "type" : "string",
8538 "typetext" : "<string>"
8539 },
8540 "peers" : {
8541 "description" : "peers address list.",
8542 "format" : "ip-list",
8543 "optional" : 1,
8544 "type" : "string",
8545 "typetext" : "<string>"
8546 },
d2656385
TL
8547 "reversedns" : {
8548 "description" : "reverse dns api server",
8549 "optional" : 1,
8550 "type" : "string",
8551 "typetext" : "<string>"
8552 },
c30bb419
TL
8553 "rt-import" : {
8554 "description" : "Route-Target import",
8555 "format" : "pve-sdn-bgp-rt-list",
8556 "optional" : 1,
8557 "type" : "string",
8558 "typetext" : "<string>"
8559 },
c5aa7e14 8560 "tag" : {
ac70d7d1
TL
8561 "description" : "Service-VLAN Tag",
8562 "minimum" : 0,
c5aa7e14
TL
8563 "optional" : 1,
8564 "type" : "integer",
ac70d7d1
TL
8565 "typetext" : "<integer> (0 - N)"
8566 },
8567 "vlan-protocol" : {
8568 "default" : "802.1q",
8569 "enum" : [
8570 "802.1q",
8571 "802.1ad"
8572 ],
8573 "optional" : 1,
8574 "type" : "string"
c5aa7e14
TL
8575 },
8576 "vrf-vxlan" : {
8577 "description" : "l3vni.",
8578 "optional" : 1,
8579 "type" : "integer",
8580 "typetext" : "<integer>"
8581 },
4a407cfd
TL
8582 "vxlan-port" : {
8583 "description" : "Vxlan tunnel udp port (default 4789).",
8584 "maximum" : 65536,
8585 "minimum" : 1,
8586 "optional" : 1,
8587 "type" : "integer",
8588 "typetext" : "<integer> (1 - 65536)"
8589 },
c5aa7e14
TL
8590 "zone" : {
8591 "description" : "The SDN zone object identifier.",
8592 "format" : "pve-sdn-zone-id",
8593 "type" : "string",
8594 "typetext" : "<string>"
8595 }
8596 },
8597 "type" : "object"
8598 },
8599 "permissions" : {
8600 "check" : [
8601 "perm",
8602 "/sdn/zones",
8603 [
8604 "SDN.Allocate"
8605 ]
8606 ]
8607 },
8608 "protected" : 1,
8609 "returns" : {
8610 "type" : "null"
8611 }
8612 }
8613 },
8614 "leaf" : 1,
8615 "path" : "/cluster/sdn/zones/{zone}",
8616 "text" : "{zone}"
8617 }
8618 ],
8619 "info" : {
8620 "GET" : {
8621 "allowtoken" : 1,
8622 "description" : "SDN zones index.",
8623 "method" : "GET",
8624 "name" : "index",
8625 "parameters" : {
8626 "additionalProperties" : 0,
8627 "properties" : {
d2656385
TL
8628 "pending" : {
8629 "description" : "Display pending config.",
8630 "optional" : 1,
8631 "type" : "boolean",
8632 "typetext" : "<boolean>"
8633 },
8634 "running" : {
8635 "description" : "Display running config.",
8636 "optional" : 1,
8637 "type" : "boolean",
8638 "typetext" : "<boolean>"
8639 },
c5aa7e14 8640 "type" : {
e7084ef7 8641 "description" : "Only list SDN zones of specific type",
c5aa7e14
TL
8642 "enum" : [
8643 "evpn",
8644 "faucet",
8645 "qinq",
ac70d7d1 8646 "simple",
c5aa7e14
TL
8647 "vlan",
8648 "vxlan"
8649 ],
8650 "optional" : 1,
8651 "type" : "string"
8652 }
8653 }
8654 },
8655 "permissions" : {
8656 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>'",
8657 "user" : "all"
8658 },
8659 "returns" : {
8660 "items" : {
8661 "properties" : {
d2656385
TL
8662 "dns" : {
8663 "optional" : 1,
8664 "type" : "string"
8665 },
8666 "dnszone" : {
8667 "optional" : 1,
8668 "type" : "string"
8669 },
8670 "ipam" : {
8671 "optional" : 1,
8672 "type" : "string"
8673 },
8674 "mtu" : {
8675 "optional" : 1,
8676 "type" : "integer"
8677 },
8678 "nodes" : {
8679 "optional" : 1,
8680 "type" : "string"
8681 },
8682 "pending" : {
8683 "optional" : 1
8684 },
8685 "reversedns" : {
8686 "optional" : 1,
8687 "type" : "string"
8688 },
8689 "state" : {
8690 "optional" : 1,
8691 "type" : "string"
8692 },
c5aa7e14
TL
8693 "type" : {
8694 "type" : "string"
8695 },
8696 "zone" : {
8697 "type" : "string"
8698 }
8699 },
8700 "type" : "object"
8701 },
8702 "links" : [
8703 {
8704 "href" : "{zone}",
8705 "rel" : "child"
8706 }
8707 ],
8708 "type" : "array"
8709 }
8710 },
8711 "POST" : {
8712 "allowtoken" : 1,
8713 "description" : "Create a new sdn zone object.",
8714 "method" : "POST",
8715 "name" : "create",
8716 "parameters" : {
8717 "additionalProperties" : 0,
8718 "properties" : {
5370fa8c
TL
8719 "advertise-subnets" : {
8720 "description" : "Advertise evpn subnets if you have silent hosts",
8721 "optional" : 1,
8722 "type" : "boolean",
8723 "typetext" : "<boolean>"
8724 },
c5aa7e14
TL
8725 "bridge" : {
8726 "optional" : 1,
8727 "type" : "string",
8728 "typetext" : "<string>"
8729 },
7af2edf9
TL
8730 "bridge-disable-mac-learning" : {
8731 "description" : "Disable auto mac learning.",
8732 "optional" : 1,
8733 "type" : "boolean",
8734 "typetext" : "<boolean>"
8735 },
c5aa7e14
TL
8736 "controller" : {
8737 "description" : "Frr router name",
8738 "optional" : 1,
8739 "type" : "string",
8740 "typetext" : "<string>"
8741 },
5370fa8c
TL
8742 "disable-arp-nd-suppression" : {
8743 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
8744 "optional" : 1,
8745 "type" : "boolean",
8746 "typetext" : "<boolean>"
8747 },
d2656385
TL
8748 "dns" : {
8749 "description" : "dns api server",
8750 "optional" : 1,
8751 "type" : "string",
8752 "typetext" : "<string>"
8753 },
8754 "dnszone" : {
8755 "description" : "dns domain zone ex: mydomain.com",
8756 "format" : "dns-name",
8757 "optional" : 1,
8758 "type" : "string",
8759 "typetext" : "<string>"
8760 },
c5aa7e14
TL
8761 "dp-id" : {
8762 "description" : "Faucet dataplane id",
8763 "optional" : 1,
8764 "type" : "integer",
8765 "typetext" : "<integer>"
8766 },
d2656385
TL
8767 "exitnodes" : {
8768 "description" : "List of cluster node names.",
8769 "format" : "pve-node-list",
8770 "optional" : 1,
8771 "type" : "string",
8772 "typetext" : "<string>"
8773 },
5370fa8c
TL
8774 "exitnodes-local-routing" : {
8775 "description" : "Allow exitnodes to connect to evpn guests",
8776 "optional" : 1,
8777 "type" : "boolean",
8778 "typetext" : "<boolean>"
8779 },
c30bb419
TL
8780 "exitnodes-primary" : {
8781 "description" : "Force traffic to this exitnode first.",
8782 "format" : "pve-node",
8783 "optional" : 1,
8784 "type" : "string",
8785 "typetext" : "<string>"
8786 },
d2656385
TL
8787 "ipam" : {
8788 "description" : "use a specific ipam",
e7084ef7 8789 "optional" : 1,
d2656385
TL
8790 "type" : "string",
8791 "typetext" : "<string>"
8792 },
8793 "mac" : {
8794 "description" : "Anycast logical router mac address",
8795 "format" : "mac-addr",
8796 "optional" : 1,
8797 "type" : "string",
8798 "typetext" : "<string>"
8799 },
c5aa7e14 8800 "mtu" : {
ac70d7d1 8801 "description" : "MTU",
c5aa7e14
TL
8802 "optional" : 1,
8803 "type" : "integer",
8804 "typetext" : "<integer>"
8805 },
8806 "nodes" : {
8807 "description" : "List of cluster node names.",
8808 "format" : "pve-node-list",
8809 "optional" : 1,
8810 "type" : "string",
8811 "typetext" : "<string>"
8812 },
8813 "peers" : {
8814 "description" : "peers address list.",
8815 "format" : "ip-list",
8816 "optional" : 1,
8817 "type" : "string",
8818 "typetext" : "<string>"
8819 },
d2656385
TL
8820 "reversedns" : {
8821 "description" : "reverse dns api server",
8822 "optional" : 1,
8823 "type" : "string",
8824 "typetext" : "<string>"
8825 },
c30bb419
TL
8826 "rt-import" : {
8827 "description" : "Route-Target import",
8828 "format" : "pve-sdn-bgp-rt-list",
8829 "optional" : 1,
8830 "type" : "string",
8831 "typetext" : "<string>"
8832 },
c5aa7e14 8833 "tag" : {
ac70d7d1
TL
8834 "description" : "Service-VLAN Tag",
8835 "minimum" : 0,
c5aa7e14
TL
8836 "optional" : 1,
8837 "type" : "integer",
ac70d7d1 8838 "typetext" : "<integer> (0 - N)"
c5aa7e14
TL
8839 },
8840 "type" : {
8841 "description" : "Plugin type.",
8842 "enum" : [
8843 "evpn",
8844 "faucet",
8845 "qinq",
ac70d7d1 8846 "simple",
c5aa7e14
TL
8847 "vlan",
8848 "vxlan"
8849 ],
8850 "format" : "pve-configid",
8851 "type" : "string"
8852 },
ac70d7d1
TL
8853 "vlan-protocol" : {
8854 "default" : "802.1q",
8855 "enum" : [
8856 "802.1q",
8857 "802.1ad"
8858 ],
8859 "optional" : 1,
8860 "type" : "string"
8861 },
c5aa7e14
TL
8862 "vrf-vxlan" : {
8863 "description" : "l3vni.",
8864 "optional" : 1,
8865 "type" : "integer",
8866 "typetext" : "<integer>"
8867 },
4a407cfd
TL
8868 "vxlan-port" : {
8869 "description" : "Vxlan tunnel udp port (default 4789).",
8870 "maximum" : 65536,
8871 "minimum" : 1,
8872 "optional" : 1,
8873 "type" : "integer",
8874 "typetext" : "<integer> (1 - 65536)"
8875 },
c5aa7e14
TL
8876 "zone" : {
8877 "description" : "The SDN zone object identifier.",
8878 "format" : "pve-sdn-zone-id",
8879 "type" : "string",
8880 "typetext" : "<string>"
8881 }
8882 },
8883 "type" : "object"
8884 },
8885 "permissions" : {
8886 "check" : [
8887 "perm",
8888 "/sdn/zones",
8889 [
8890 "SDN.Allocate"
8891 ]
8892 ]
8893 },
8894 "protected" : 1,
8895 "returns" : {
8896 "type" : "null"
8897 }
8898 }
8899 },
8900 "leaf" : 0,
8901 "path" : "/cluster/sdn/zones",
8902 "text" : "zones"
8903 },
8904 {
8905 "children" : [
8906 {
8907 "info" : {
8908 "DELETE" : {
8909 "allowtoken" : 1,
8910 "description" : "Delete sdn controller object configuration.",
8911 "method" : "DELETE",
8912 "name" : "delete",
8913 "parameters" : {
8914 "additionalProperties" : 0,
8915 "properties" : {
8916 "controller" : {
8917 "description" : "The SDN controller object identifier.",
8918 "format" : "pve-sdn-controller-id",
8919 "type" : "string",
8920 "typetext" : "<string>"
8921 }
8922 }
8923 },
8924 "permissions" : {
8925 "check" : [
8926 "perm",
8927 "/sdn/controllers",
8928 [
8929 "SDN.Allocate"
8930 ]
8931 ]
8932 },
8933 "protected" : 1,
8934 "returns" : {
8935 "type" : "null"
8936 }
8937 },
8938 "GET" : {
8939 "allowtoken" : 1,
8940 "description" : "Read sdn controller configuration.",
8941 "method" : "GET",
8942 "name" : "read",
8943 "parameters" : {
8944 "additionalProperties" : 0,
8945 "properties" : {
8946 "controller" : {
8947 "description" : "The SDN controller object identifier.",
8948 "format" : "pve-sdn-controller-id",
8949 "type" : "string",
8950 "typetext" : "<string>"
d2656385
TL
8951 },
8952 "pending" : {
8953 "description" : "Display pending config.",
8954 "optional" : 1,
8955 "type" : "boolean",
8956 "typetext" : "<boolean>"
8957 },
8958 "running" : {
8959 "description" : "Display running config.",
8960 "optional" : 1,
8961 "type" : "boolean",
8962 "typetext" : "<boolean>"
c5aa7e14
TL
8963 }
8964 }
8965 },
8966 "permissions" : {
8967 "check" : [
8968 "perm",
8969 "/sdn/controllers/{controller}",
8970 [
8971 "SDN.Allocate"
8972 ]
8973 ]
8974 },
8975 "returns" : {
8976 "type" : "object"
8977 }
8978 },
8979 "PUT" : {
8980 "allowtoken" : 1,
8981 "description" : "Update sdn controller object configuration.",
8982 "method" : "PUT",
8983 "name" : "update",
8984 "parameters" : {
8985 "additionalProperties" : 0,
8986 "properties" : {
8987 "asn" : {
8988 "description" : "autonomous system number",
c30bb419
TL
8989 "maximum" : 4294967296,
8990 "minimum" : 0,
c5aa7e14
TL
8991 "optional" : 1,
8992 "type" : "integer",
c30bb419
TL
8993 "typetext" : "<integer> (0 - 4294967296)"
8994 },
8995 "bgp-multipath-as-path-relax" : {
8996 "optional" : 1,
8997 "type" : "boolean",
8998 "typetext" : "<boolean>"
c5aa7e14
TL
8999 },
9000 "controller" : {
9001 "description" : "The SDN controller object identifier.",
9002 "format" : "pve-sdn-controller-id",
9003 "type" : "string",
9004 "typetext" : "<string>"
9005 },
9006 "delete" : {
9007 "description" : "A list of settings you want to delete.",
9008 "format" : "pve-configid-list",
9009 "maxLength" : 4096,
9010 "optional" : 1,
9011 "type" : "string",
9012 "typetext" : "<string>"
9013 },
9014 "digest" : {
9015 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9016 "maxLength" : 40,
9017 "optional" : 1,
9018 "type" : "string",
9019 "typetext" : "<string>"
9020 },
d2656385
TL
9021 "ebgp" : {
9022 "description" : "Enable ebgp. (remote-as external)",
9023 "optional" : 1,
9024 "type" : "boolean",
9025 "typetext" : "<boolean>"
9026 },
9027 "ebgp-multihop" : {
9028 "optional" : 1,
9029 "type" : "integer",
9030 "typetext" : "<integer>"
9031 },
9032 "loopback" : {
9033 "description" : "source loopback interface.",
c5aa7e14
TL
9034 "optional" : 1,
9035 "type" : "string",
9036 "typetext" : "<string>"
9037 },
d2656385
TL
9038 "node" : {
9039 "description" : "The cluster node name.",
9040 "format" : "pve-node",
c5aa7e14
TL
9041 "optional" : 1,
9042 "type" : "string",
9043 "typetext" : "<string>"
9044 },
9045 "peers" : {
9046 "description" : "peers address list.",
9047 "format" : "ip-list",
9048 "optional" : 1,
9049 "type" : "string",
9050 "typetext" : "<string>"
9051 }
9052 },
9053 "type" : "object"
9054 },
9055 "permissions" : {
9056 "check" : [
9057 "perm",
9058 "/sdn/controllers",
9059 [
9060 "SDN.Allocate"
9061 ]
9062 ]
9063 },
9064 "protected" : 1,
9065 "returns" : {
9066 "type" : "null"
9067 }
9068 }
9069 },
9070 "leaf" : 1,
9071 "path" : "/cluster/sdn/controllers/{controller}",
9072 "text" : "{controller}"
9073 }
9074 ],
9075 "info" : {
9076 "GET" : {
9077 "allowtoken" : 1,
9078 "description" : "SDN controllers index.",
9079 "method" : "GET",
9080 "name" : "index",
9081 "parameters" : {
9082 "additionalProperties" : 0,
9083 "properties" : {
d2656385
TL
9084 "pending" : {
9085 "description" : "Display pending config.",
9086 "optional" : 1,
9087 "type" : "boolean",
9088 "typetext" : "<boolean>"
9089 },
9090 "running" : {
9091 "description" : "Display running config.",
9092 "optional" : 1,
9093 "type" : "boolean",
9094 "typetext" : "<boolean>"
9095 },
c5aa7e14
TL
9096 "type" : {
9097 "description" : "Only list sdn controllers of specific type",
9098 "enum" : [
d2656385 9099 "bgp",
c5aa7e14
TL
9100 "evpn",
9101 "faucet"
9102 ],
9103 "optional" : 1,
9104 "type" : "string"
9105 }
9106 }
9107 },
9108 "permissions" : {
9109 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/controllers/<controller>'",
9110 "user" : "all"
9111 },
9112 "returns" : {
9113 "items" : {
9114 "properties" : {
9115 "controller" : {
9116 "type" : "string"
9117 },
d2656385
TL
9118 "pending" : {
9119 "optional" : 1
9120 },
9121 "state" : {
9122 "optional" : 1,
9123 "type" : "string"
9124 },
c5aa7e14
TL
9125 "type" : {
9126 "type" : "string"
9127 }
9128 },
9129 "type" : "object"
9130 },
9131 "links" : [
9132 {
9133 "href" : "{controller}",
9134 "rel" : "child"
9135 }
9136 ],
9137 "type" : "array"
9138 }
9139 },
9140 "POST" : {
9141 "allowtoken" : 1,
9142 "description" : "Create a new sdn controller object.",
9143 "method" : "POST",
9144 "name" : "create",
9145 "parameters" : {
9146 "additionalProperties" : 0,
9147 "properties" : {
9148 "asn" : {
9149 "description" : "autonomous system number",
c30bb419
TL
9150 "maximum" : 4294967296,
9151 "minimum" : 0,
c5aa7e14
TL
9152 "optional" : 1,
9153 "type" : "integer",
c30bb419
TL
9154 "typetext" : "<integer> (0 - 4294967296)"
9155 },
9156 "bgp-multipath-as-path-relax" : {
9157 "optional" : 1,
9158 "type" : "boolean",
9159 "typetext" : "<boolean>"
c5aa7e14
TL
9160 },
9161 "controller" : {
9162 "description" : "The SDN controller object identifier.",
9163 "format" : "pve-sdn-controller-id",
9164 "type" : "string",
9165 "typetext" : "<string>"
9166 },
d2656385
TL
9167 "ebgp" : {
9168 "description" : "Enable ebgp. (remote-as external)",
9169 "optional" : 1,
9170 "type" : "boolean",
9171 "typetext" : "<boolean>"
9172 },
9173 "ebgp-multihop" : {
9174 "optional" : 1,
9175 "type" : "integer",
9176 "typetext" : "<integer>"
9177 },
9178 "loopback" : {
9179 "description" : "source loopback interface.",
c5aa7e14
TL
9180 "optional" : 1,
9181 "type" : "string",
9182 "typetext" : "<string>"
9183 },
d2656385
TL
9184 "node" : {
9185 "description" : "The cluster node name.",
9186 "format" : "pve-node",
c5aa7e14
TL
9187 "optional" : 1,
9188 "type" : "string",
9189 "typetext" : "<string>"
9190 },
9191 "peers" : {
9192 "description" : "peers address list.",
9193 "format" : "ip-list",
9194 "optional" : 1,
9195 "type" : "string",
9196 "typetext" : "<string>"
9197 },
9198 "type" : {
9199 "description" : "Plugin type.",
9200 "enum" : [
d2656385 9201 "bgp",
c5aa7e14
TL
9202 "evpn",
9203 "faucet"
9204 ],
9205 "format" : "pve-configid",
9206 "type" : "string"
9207 }
9208 },
9209 "type" : "object"
9210 },
9211 "permissions" : {
9212 "check" : [
9213 "perm",
9214 "/sdn/controllers",
9215 [
9216 "SDN.Allocate"
9217 ]
9218 ]
9219 },
9220 "protected" : 1,
9221 "returns" : {
9222 "type" : "null"
9223 }
9224 }
9225 },
9226 "leaf" : 0,
9227 "path" : "/cluster/sdn/controllers",
9228 "text" : "controllers"
d2656385
TL
9229 },
9230 {
9231 "children" : [
9232 {
9233 "info" : {
9234 "DELETE" : {
9235 "allowtoken" : 1,
9236 "description" : "Delete sdn ipam object configuration.",
9237 "method" : "DELETE",
9238 "name" : "delete",
9239 "parameters" : {
9240 "additionalProperties" : 0,
9241 "properties" : {
9242 "ipam" : {
9243 "description" : "The SDN ipam object identifier.",
9244 "format" : "pve-sdn-ipam-id",
9245 "type" : "string",
9246 "typetext" : "<string>"
9247 }
9248 }
9249 },
9250 "permissions" : {
9251 "check" : [
9252 "perm",
9253 "/sdn/ipams",
9254 [
9255 "SDN.Allocate"
9256 ]
9257 ]
9258 },
9259 "protected" : 1,
9260 "returns" : {
9261 "type" : "null"
9262 }
9263 },
9264 "GET" : {
9265 "allowtoken" : 1,
9266 "description" : "Read sdn ipam configuration.",
9267 "method" : "GET",
9268 "name" : "read",
9269 "parameters" : {
9270 "additionalProperties" : 0,
9271 "properties" : {
9272 "ipam" : {
9273 "description" : "The SDN ipam object identifier.",
9274 "format" : "pve-sdn-ipam-id",
9275 "type" : "string",
9276 "typetext" : "<string>"
9277 }
9278 }
9279 },
9280 "permissions" : {
9281 "check" : [
9282 "perm",
9283 "/sdn/ipams/{ipam}",
9284 [
9285 "SDN.Allocate"
9286 ]
9287 ]
9288 },
9289 "returns" : {
9290 "type" : "object"
9291 }
9292 },
9293 "PUT" : {
9294 "allowtoken" : 1,
9295 "description" : "Update sdn ipam object configuration.",
9296 "method" : "PUT",
9297 "name" : "update",
9298 "parameters" : {
9299 "additionalProperties" : 0,
9300 "properties" : {
9301 "delete" : {
9302 "description" : "A list of settings you want to delete.",
9303 "format" : "pve-configid-list",
9304 "maxLength" : 4096,
9305 "optional" : 1,
9306 "type" : "string",
9307 "typetext" : "<string>"
9308 },
9309 "digest" : {
9310 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9311 "maxLength" : 40,
9312 "optional" : 1,
9313 "type" : "string",
9314 "typetext" : "<string>"
9315 },
9316 "ipam" : {
9317 "description" : "The SDN ipam object identifier.",
9318 "format" : "pve-sdn-ipam-id",
9319 "type" : "string",
9320 "typetext" : "<string>"
9321 },
9322 "section" : {
9323 "optional" : 1,
9324 "type" : "integer",
9325 "typetext" : "<integer>"
9326 },
9327 "token" : {
9328 "optional" : 1,
9329 "type" : "string",
9330 "typetext" : "<string>"
9331 },
9332 "url" : {
9333 "optional" : 1,
9334 "type" : "string",
9335 "typetext" : "<string>"
9336 }
9337 },
9338 "type" : "object"
9339 },
9340 "permissions" : {
9341 "check" : [
9342 "perm",
9343 "/sdn/ipams",
9344 [
9345 "SDN.Allocate"
9346 ]
9347 ]
9348 },
9349 "protected" : 1,
9350 "returns" : {
9351 "type" : "null"
9352 }
c5aa7e14
TL
9353 }
9354 },
d2656385
TL
9355 "leaf" : 1,
9356 "path" : "/cluster/sdn/ipams/{ipam}",
9357 "text" : "{ipam}"
7aacca6f 9358 }
d2656385
TL
9359 ],
9360 "info" : {
9361 "GET" : {
9362 "allowtoken" : 1,
9363 "description" : "SDN ipams index.",
9364 "method" : "GET",
9365 "name" : "index",
9366 "parameters" : {
9367 "additionalProperties" : 0,
9368 "properties" : {
9369 "type" : {
9370 "description" : "Only list sdn ipams of specific type",
9371 "enum" : [
9372 "netbox",
9373 "phpipam",
9374 "pve"
9375 ],
9376 "optional" : 1,
9377 "type" : "string"
9378 }
9379 }
9380 },
9381 "permissions" : {
9382 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/ipams/<ipam>'",
9383 "user" : "all"
9384 },
9385 "returns" : {
9386 "items" : {
9387 "properties" : {
9388 "ipam" : {
9389 "type" : "string"
9390 },
9391 "type" : {
9392 "type" : "string"
9393 }
9394 },
9395 "type" : "object"
9396 },
9397 "links" : [
9398 {
9399 "href" : "{ipam}",
9400 "rel" : "child"
9401 }
44660702 9402 ],
d2656385
TL
9403 "type" : "array"
9404 }
9405 },
9406 "POST" : {
9407 "allowtoken" : 1,
9408 "description" : "Create a new sdn ipam object.",
9409 "method" : "POST",
9410 "name" : "create",
9411 "parameters" : {
9412 "additionalProperties" : 0,
9413 "properties" : {
9414 "ipam" : {
9415 "description" : "The SDN ipam object identifier.",
9416 "format" : "pve-sdn-ipam-id",
9417 "type" : "string",
9418 "typetext" : "<string>"
9419 },
9420 "section" : {
9421 "optional" : 1,
9422 "type" : "integer",
9423 "typetext" : "<integer>"
9424 },
9425 "token" : {
9426 "optional" : 1,
9427 "type" : "string",
9428 "typetext" : "<string>"
9429 },
9430 "type" : {
9431 "description" : "Plugin type.",
9432 "enum" : [
9433 "netbox",
9434 "phpipam",
9435 "pve"
9436 ],
9437 "format" : "pve-configid",
9438 "type" : "string"
9439 },
9440 "url" : {
9441 "optional" : 1,
9442 "type" : "string",
9443 "typetext" : "<string>"
9444 }
9445 },
9446 "type" : "object"
9447 },
9448 "permissions" : {
9449 "check" : [
9450 "perm",
9451 "/sdn/ipams",
9452 [
9453 "SDN.Allocate"
9454 ]
9455 ]
9456 },
9457 "protected" : 1,
9458 "returns" : {
9459 "type" : "null"
56122987
DM
9460 }
9461 }
9462 },
d2656385
TL
9463 "leaf" : 0,
9464 "path" : "/cluster/sdn/ipams",
9465 "text" : "ipams"
9466 },
9467 {
9468 "children" : [
9469 {
9470 "info" : {
9471 "DELETE" : {
9472 "allowtoken" : 1,
9473 "description" : "Delete sdn dns object configuration.",
9474 "method" : "DELETE",
9475 "name" : "delete",
9476 "parameters" : {
9477 "additionalProperties" : 0,
9478 "properties" : {
9479 "dns" : {
9480 "description" : "The SDN dns object identifier.",
9481 "format" : "pve-sdn-dns-id",
9482 "type" : "string",
9483 "typetext" : "<string>"
9484 }
9485 }
9486 },
9487 "permissions" : {
9488 "check" : [
9489 "perm",
9490 "/sdn/dns",
9491 [
9492 "SDN.Allocate"
9493 ]
9494 ]
9495 },
9496 "protected" : 1,
9497 "returns" : {
9498 "type" : "null"
9499 }
9500 },
9501 "GET" : {
9502 "allowtoken" : 1,
9503 "description" : "Read sdn dns configuration.",
9504 "method" : "GET",
9505 "name" : "read",
9506 "parameters" : {
9507 "additionalProperties" : 0,
9508 "properties" : {
9509 "dns" : {
9510 "description" : "The SDN dns object identifier.",
9511 "format" : "pve-sdn-dns-id",
9512 "type" : "string",
9513 "typetext" : "<string>"
9514 }
9515 }
9516 },
9517 "permissions" : {
9518 "check" : [
9519 "perm",
9520 "/sdn/dns/{dns}",
9521 [
9522 "SDN.Allocate"
9523 ]
9524 ]
9525 },
9526 "returns" : {
9527 "type" : "object"
9528 }
9529 },
9530 "PUT" : {
9531 "allowtoken" : 1,
9532 "description" : "Update sdn dns object configuration.",
9533 "method" : "PUT",
9534 "name" : "update",
9535 "parameters" : {
9536 "additionalProperties" : 0,
9537 "properties" : {
9538 "delete" : {
9539 "description" : "A list of settings you want to delete.",
9540 "format" : "pve-configid-list",
9541 "maxLength" : 4096,
9542 "optional" : 1,
9543 "type" : "string",
9544 "typetext" : "<string>"
9545 },
9546 "digest" : {
9547 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9548 "maxLength" : 40,
9549 "optional" : 1,
9550 "type" : "string",
9551 "typetext" : "<string>"
9552 },
9553 "dns" : {
9554 "description" : "The SDN dns object identifier.",
9555 "format" : "pve-sdn-dns-id",
9556 "type" : "string",
9557 "typetext" : "<string>"
9558 },
9559 "key" : {
9560 "optional" : 1,
9561 "type" : "string",
9562 "typetext" : "<string>"
9563 },
9564 "reversemaskv6" : {
9565 "optional" : 1,
9566 "type" : "integer",
9567 "typetext" : "<integer>"
9568 },
9569 "ttl" : {
9570 "optional" : 1,
9571 "type" : "integer",
9572 "typetext" : "<integer>"
9573 },
9574 "url" : {
9575 "optional" : 1,
9576 "type" : "string",
9577 "typetext" : "<string>"
9578 }
9579 },
9580 "type" : "object"
9581 },
9582 "permissions" : {
9583 "check" : [
9584 "perm",
9585 "/sdn/dns",
9586 [
9587 "SDN.Allocate"
9588 ]
9589 ]
9590 },
9591 "protected" : 1,
9592 "returns" : {
9593 "type" : "null"
9594 }
9595 }
9596 },
9597 "leaf" : 1,
9598 "path" : "/cluster/sdn/dns/{dns}",
9599 "text" : "{dns}"
9600 }
9601 ],
9602 "info" : {
9603 "GET" : {
9604 "allowtoken" : 1,
9605 "description" : "SDN dns index.",
9606 "method" : "GET",
9607 "name" : "index",
9608 "parameters" : {
9609 "additionalProperties" : 0,
9610 "properties" : {
9611 "type" : {
9612 "description" : "Only list sdn dns of specific type",
9613 "enum" : [
9614 "powerdns"
9615 ],
9616 "optional" : 1,
9617 "type" : "string"
9618 }
9619 }
9620 },
9621 "permissions" : {
9622 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/dns/<dns>'",
9623 "user" : "all"
9624 },
9625 "returns" : {
9626 "items" : {
9627 "properties" : {
9628 "dns" : {
9629 "type" : "string"
9630 },
9631 "type" : {
9632 "type" : "string"
9633 }
9634 },
9635 "type" : "object"
9636 },
9637 "links" : [
9638 {
9639 "href" : "{dns}",
9640 "rel" : "child"
9641 }
9642 ],
9643 "type" : "array"
9644 }
9645 },
9646 "POST" : {
9647 "allowtoken" : 1,
9648 "description" : "Create a new sdn dns object.",
9649 "method" : "POST",
9650 "name" : "create",
9651 "parameters" : {
9652 "additionalProperties" : 0,
9653 "properties" : {
9654 "dns" : {
9655 "description" : "The SDN dns object identifier.",
9656 "format" : "pve-sdn-dns-id",
9657 "type" : "string",
9658 "typetext" : "<string>"
9659 },
9660 "key" : {
9661 "optional" : 0,
9662 "type" : "string",
9663 "typetext" : "<string>"
9664 },
9665 "reversemaskv6" : {
9666 "optional" : 1,
9667 "type" : "integer",
9668 "typetext" : "<integer>"
9669 },
9670 "reversev6mask" : {
9671 "optional" : 1,
9672 "type" : "integer",
9673 "typetext" : "<integer>"
9674 },
9675 "ttl" : {
9676 "optional" : 1,
9677 "type" : "integer",
9678 "typetext" : "<integer>"
9679 },
9680 "type" : {
9681 "description" : "Plugin type.",
9682 "enum" : [
9683 "powerdns"
9684 ],
9685 "format" : "pve-configid",
9686 "type" : "string"
9687 },
9688 "url" : {
9689 "optional" : 0,
9690 "type" : "string",
9691 "typetext" : "<string>"
9692 }
9693 },
9694 "type" : "object"
9695 },
9696 "permissions" : {
9697 "check" : [
9698 "perm",
9699 "/sdn/dns",
9700 [
9701 "SDN.Allocate"
9702 ]
9703 ]
9704 },
9705 "protected" : 1,
9706 "returns" : {
9707 "type" : "null"
9708 }
9709 }
9710 },
9711 "leaf" : 0,
9712 "path" : "/cluster/sdn/dns",
9713 "text" : "dns"
9714 }
9715 ],
9716 "info" : {
9717 "GET" : {
9718 "allowtoken" : 1,
9719 "description" : "Directory index.",
9720 "method" : "GET",
9721 "name" : "index",
9722 "parameters" : {
9723 "additionalProperties" : 0
9724 },
9725 "permissions" : {
9726 "check" : [
9727 "perm",
9728 "/",
9729 [
9730 "SDN.Audit"
9731 ]
9732 ]
9733 },
9734 "returns" : {
9735 "items" : {
9736 "properties" : {
9737 "id" : {
9738 "type" : "string"
9739 }
9740 },
9741 "type" : "object"
9742 },
9743 "links" : [
9744 {
9745 "href" : "{id}",
9746 "rel" : "child"
9747 }
9748 ],
9749 "type" : "array"
9750 }
9751 },
9752 "PUT" : {
9753 "allowtoken" : 1,
9754 "description" : "Apply sdn controller changes && reload.",
9755 "method" : "PUT",
9756 "name" : "reload",
9757 "parameters" : {
9758 "additionalProperties" : 0
9759 },
9760 "permissions" : {
9761 "check" : [
9762 "perm",
9763 "/sdn",
9764 [
9765 "SDN.Allocate"
9766 ]
9767 ]
9768 },
9769 "protected" : 1,
9770 "returns" : {
9771 "type" : "string"
9772 }
9773 }
9774 },
9775 "leaf" : 0,
9776 "path" : "/cluster/sdn",
9777 "text" : "sdn"
9778 },
9779 {
9780 "info" : {
9781 "GET" : {
9782 "allowtoken" : 1,
9783 "description" : "Read cluster log",
9784 "method" : "GET",
9785 "name" : "log",
9786 "parameters" : {
9787 "additionalProperties" : 0,
9788 "properties" : {
9789 "max" : {
9790 "description" : "Maximum number of entries.",
9791 "minimum" : 1,
9792 "optional" : 1,
9793 "type" : "integer",
9794 "typetext" : "<integer> (1 - N)"
9795 }
9796 }
9797 },
9798 "permissions" : {
9799 "user" : "all"
9800 },
9801 "returns" : {
9802 "items" : {
9803 "properties" : {},
9804 "type" : "object"
9805 },
9806 "type" : "array"
9807 }
9808 }
9809 },
9810 "leaf" : 1,
9811 "path" : "/cluster/log",
9812 "text" : "log"
9813 },
9814 {
9815 "info" : {
9816 "GET" : {
9817 "allowtoken" : 1,
9818 "description" : "Resources index (cluster wide).",
9819 "method" : "GET",
9820 "name" : "resources",
9821 "parameters" : {
9822 "additionalProperties" : 0,
9823 "properties" : {
9824 "type" : {
9825 "enum" : [
9826 "vm",
9827 "storage",
9828 "node",
9829 "sdn"
9830 ],
9831 "optional" : 1,
9832 "type" : "string"
9833 }
9834 }
9835 },
9836 "permissions" : {
9837 "user" : "all"
9838 },
9839 "returns" : {
9840 "items" : {
9841 "properties" : {
81a3384d
TL
9842 "cgroup-mode" : {
9843 "description" : "The cgroup mode the node operates under (when type == node).",
9844 "optional" : 1,
9845 "type" : "integer"
9846 },
d2656385
TL
9847 "content" : {
9848 "description" : "Allowed storage content types (when type == storage).",
9849 "format" : "pve-storage-content-list",
9850 "optional" : 1,
9851 "type" : "string"
9852 },
9853 "cpu" : {
9854 "description" : "CPU utilization (when type in node,qemu,lxc).",
4e7f60c2 9855 "minimum" : 0,
4d47f125
TL
9856 "optional" : 1,
9857 "renderer" : "fraction_as_percentage",
9858 "type" : "number"
9859 },
9860 "disk" : {
9861 "description" : "Used disk space in bytes (when type in storage), used root image spave for VMs (type in qemu,lxc).",
4e7f60c2 9862 "minimum" : 0,
4d47f125
TL
9863 "optional" : 1,
9864 "renderer" : "bytes",
4e7f60c2 9865 "type" : "integer"
4d47f125
TL
9866 },
9867 "hastate" : {
9868 "description" : "HA service status (for HA managed VMs).",
9869 "optional" : 1,
9870 "type" : "string"
9871 },
9872 "id" : {
287a95cf 9873 "description" : "Resource id.",
4d47f125
TL
9874 "type" : "string"
9875 },
9876 "level" : {
9877 "description" : "Support level (when type == node).",
9878 "optional" : 1,
9879 "type" : "string"
9880 },
9881 "maxcpu" : {
9882 "description" : "Number of available CPUs (when type in node,qemu,lxc).",
4e7f60c2 9883 "minimum" : 0,
4d47f125
TL
9884 "optional" : 1,
9885 "type" : "number"
9886 },
9887 "maxdisk" : {
9888 "description" : "Storage size in bytes (when type in storage), root image size for VMs (type in qemu,lxc).",
4e7f60c2 9889 "minimum" : 0,
4d47f125
TL
9890 "optional" : 1,
9891 "renderer" : "bytes",
9892 "type" : "integer"
9893 },
9894 "maxmem" : {
9895 "description" : "Number of available memory in bytes (when type in node,qemu,lxc).",
9896 "optional" : 1,
9897 "renderer" : "bytes",
9898 "type" : "integer"
9899 },
9900 "mem" : {
9901 "description" : "Used memory in bytes (when type in node,qemu,lxc).",
4e7f60c2 9902 "minimum" : 0,
4d47f125
TL
9903 "optional" : 1,
9904 "renderer" : "bytes",
4e7f60c2 9905 "type" : "integer"
4d47f125 9906 },
34f3e481
TL
9907 "name" : {
9908 "description" : "Name of the resource.",
9909 "optional" : 1,
9910 "type" : "string"
9911 },
4d47f125
TL
9912 "node" : {
9913 "description" : "The cluster node name (when type in node,storage,qemu,lxc).",
9914 "format" : "pve-node",
9915 "optional" : 1,
9916 "type" : "string"
9917 },
d2656385
TL
9918 "plugintype" : {
9919 "description" : "More specific type, if available.",
9920 "optional" : 1,
9921 "type" : "string"
9922 },
4d47f125
TL
9923 "pool" : {
9924 "description" : "The pool name (when type in pool,qemu,lxc).",
9925 "optional" : 1,
9926 "type" : "string"
9927 },
9928 "status" : {
9929 "description" : "Resource type dependent status.",
9930 "optional" : 1,
9931 "type" : "string"
9932 },
9933 "storage" : {
9934 "description" : "The storage identifier (when type == storage).",
9935 "format" : "pve-storage-id",
9936 "optional" : 1,
9937 "type" : "string"
9938 },
9939 "type" : {
9940 "description" : "Resource type.",
9941 "enum" : [
9942 "node",
9943 "storage",
9944 "pool",
9945 "qemu",
9946 "lxc",
1c532546
TL
9947 "openvz",
9948 "sdn"
4d47f125
TL
9949 ],
9950 "type" : "string"
9951 },
9952 "uptime" : {
9953 "description" : "Node uptime in seconds (when type in node,qemu,lxc).",
9954 "optional" : 1,
9955 "renderer" : "duration",
9956 "type" : "integer"
4e7f60c2
TL
9957 },
9958 "vmid" : {
9959 "description" : "The numerical vmid (when type in qemu,lxc).",
9960 "minimum" : 1,
9961 "optional" : 1,
9962 "type" : "integer"
4d47f125
TL
9963 }
9964 },
44660702
DM
9965 "type" : "object"
9966 },
9967 "type" : "array"
9968 }
56122987
DM
9969 }
9970 },
7aacca6f 9971 "leaf" : 1,
44660702
DM
9972 "path" : "/cluster/resources",
9973 "text" : "resources"
56122987
DM
9974 },
9975 {
56122987
DM
9976 "info" : {
9977 "GET" : {
e9cd3bd4 9978 "allowtoken" : 1,
7aacca6f 9979 "description" : "List recent tasks (cluster wide).",
44660702 9980 "method" : "GET",
7aacca6f 9981 "name" : "tasks",
56122987
DM
9982 "parameters" : {
9983 "additionalProperties" : 0
9984 },
44660702
DM
9985 "permissions" : {
9986 "user" : "all"
9987 },
56122987
DM
9988 "returns" : {
9989 "items" : {
9990 "properties" : {
9991 "upid" : {
9992 "type" : "string"
9993 }
44660702
DM
9994 },
9995 "type" : "object"
9996 },
9997 "type" : "array"
7aacca6f 9998 }
56122987
DM
9999 }
10000 },
7aacca6f 10001 "leaf" : 1,
44660702
DM
10002 "path" : "/cluster/tasks",
10003 "text" : "tasks"
56122987
DM
10004 },
10005 {
56122987 10006 "info" : {
7aacca6f 10007 "GET" : {
e9cd3bd4 10008 "allowtoken" : 1,
81a3384d 10009 "description" : "Get datacenter options. Without 'Sys.Audit' on '/' not all options are returned.",
44660702
DM
10010 "method" : "GET",
10011 "name" : "get_options",
56122987 10012 "parameters" : {
7aacca6f
DM
10013 "additionalProperties" : 0
10014 },
10015 "permissions" : {
10016 "check" : [
10017 "perm",
10018 "/",
10019 [
10020 "Sys.Audit"
10021 ]
81a3384d
TL
10022 ],
10023 "user" : "all"
7aacca6f 10024 },
7aacca6f 10025 "returns" : {
44660702 10026 "type" : "object"
7aacca6f
DM
10027 }
10028 },
10029 "PUT" : {
e9cd3bd4 10030 "allowtoken" : 1,
44660702
DM
10031 "description" : "Set datacenter options.",
10032 "method" : "PUT",
7aacca6f
DM
10033 "name" : "set_options",
10034 "parameters" : {
10035 "additionalProperties" : 0,
10036 "properties" : {
27a7acb2 10037 "bwlimit" : {
4a407cfd 10038 "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
27a7acb2
DM
10039 "format" : {
10040 "clone" : {
95895385 10041 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
10042 "format_description" : "LIMIT",
10043 "minimum" : "0",
10044 "optional" : 1,
10045 "type" : "number"
10046 },
10047 "default" : {
95895385 10048 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
10049 "format_description" : "LIMIT",
10050 "minimum" : "0",
10051 "optional" : 1,
10052 "type" : "number"
10053 },
10054 "migration" : {
95895385 10055 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
10056 "format_description" : "LIMIT",
10057 "minimum" : "0",
10058 "optional" : 1,
10059 "type" : "number"
10060 },
10061 "move" : {
95895385 10062 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
10063 "format_description" : "LIMIT",
10064 "minimum" : "0",
10065 "optional" : 1,
10066 "type" : "number"
10067 },
10068 "restore" : {
95895385 10069 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
10070 "format_description" : "LIMIT",
10071 "minimum" : "0",
10072 "optional" : 1,
10073 "type" : "number"
10074 }
10075 },
10076 "optional" : 1,
10077 "type" : "string",
10078 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
10079 },
56122987 10080 "console" : {
a9a8e3d1 10081 "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
10082 "enum" : [
10083 "applet",
10084 "vv",
a9a8e3d1
DM
10085 "html5",
10086 "xtermjs"
44660702
DM
10087 ],
10088 "optional" : 1,
10089 "type" : "string"
56122987 10090 },
81a3384d
TL
10091 "crs" : {
10092 "description" : "Cluster resource scheduling settings.",
10093 "format" : {
10094 "ha" : {
10095 "default" : "basic",
10096 "description" : "Use this resource scheduler mode for HA.",
10097 "enum" : [
10098 "basic",
10099 "static"
10100 ],
9d2e98ed 10101 "optional" : 1,
81a3384d
TL
10102 "type" : "string",
10103 "verbose_description" : "Configures how the HA manager should select nodes to start or recover services. With 'basic', only the number of services is used, with 'static', static CPU and memory configuration of services is considered."
9d2e98ed
TL
10104 },
10105 "ha-rebalance-on-start" : {
10106 "default" : 0,
10107 "description" : "Set to use CRS for selecting a suited node when a HA services request-state changes from stop to start.",
10108 "optional" : 1,
10109 "type" : "boolean"
81a3384d
TL
10110 }
10111 },
10112 "optional" : 1,
10113 "type" : "string",
9d2e98ed 10114 "typetext" : "[ha=<basic|static>] [,ha-rebalance-on-start=<1|0>]"
81a3384d 10115 },
7aacca6f 10116 "delete" : {
7aacca6f 10117 "description" : "A list of settings you want to delete.",
44660702 10118 "format" : "pve-configid-list",
7aacca6f 10119 "optional" : 1,
013dc89f
DM
10120 "type" : "string",
10121 "typetext" : "<string>"
7aacca6f 10122 },
5370fa8c
TL
10123 "description" : {
10124 "description" : "Datacenter description. Shown in the web-interface datacenter notes panel. This is saved as comment inside the configuration file.",
10125 "maxLength" : 65536,
10126 "optional" : 1,
10127 "type" : "string",
10128 "typetext" : "<string>"
10129 },
44660702
DM
10130 "email_from" : {
10131 "description" : "Specify email address to send notification from (default is root@$hostname)",
10132 "format" : "email-opt",
7aacca6f 10133 "optional" : 1,
013dc89f
DM
10134 "type" : "string",
10135 "typetext" : "<string>"
44660702
DM
10136 },
10137 "fencing" : {
10138 "default" : "watchdog",
10139 "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 10140 "enum" : [
44660702
DM
10141 "watchdog",
10142 "hardware",
10143 "both"
7aacca6f 10144 ],
44660702
DM
10145 "optional" : 1,
10146 "type" : "string"
10147 },
5f26e15b
TL
10148 "ha" : {
10149 "description" : "Cluster wide HA settings.",
10150 "format" : {
10151 "shutdown_policy" : {
10152 "default" : "conditional",
5c1699e5 10153 "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
10154 "enum" : [
10155 "freeze",
10156 "failover",
5c1699e5
TL
10157 "conditional",
10158 "migrate"
5f26e15b
TL
10159 ],
10160 "type" : "string",
e9cd3bd4 10161 "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
10162 }
10163 },
10164 "optional" : 1,
10165 "type" : "string",
5c1699e5 10166 "typetext" : "shutdown_policy=<enum>"
5f26e15b 10167 },
44660702
DM
10168 "http_proxy" : {
10169 "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')",
10170 "optional" : 1,
10171 "pattern" : "http://.*",
10172 "type" : "string"
7aacca6f 10173 },
56122987 10174 "keyboard" : {
44660702 10175 "description" : "Default keybord layout for vnc server.",
56122987 10176 "enum" : [
44660702
DM
10177 "de",
10178 "de-ch",
7aacca6f 10179 "da",
56122987 10180 "en-gb",
44660702
DM
10181 "en-us",
10182 "es",
10183 "fi",
10184 "fr",
10185 "fr-be",
10186 "fr-ca",
10187 "fr-ch",
10188 "hu",
7aacca6f 10189 "is",
44660702
DM
10190 "it",
10191 "ja",
10192 "lt",
56122987 10193 "mk",
7aacca6f 10194 "nl",
56122987 10195 "no",
44660702 10196 "pl",
7aacca6f 10197 "pt",
44660702
DM
10198 "pt-br",
10199 "sv",
10200 "sl",
10201 "tr"
56122987 10202 ],
56122987
DM
10203 "optional" : 1,
10204 "type" : "string"
10205 },
44660702
DM
10206 "language" : {
10207 "description" : "Default GUI language.",
10208 "enum" : [
4d47f125 10209 "ca",
1c532546
TL
10210 "da",
10211 "de",
44660702 10212 "en",
1c532546 10213 "es",
4d47f125 10214 "eu",
1c532546 10215 "fa",
4d47f125 10216 "fr",
1c532546 10217 "he",
4d47f125 10218 "it",
4d47f125
TL
10219 "ja",
10220 "nb",
10221 "nn",
4d47f125
TL
10222 "pl",
10223 "pt_BR",
10224 "ru",
10225 "sl",
10226 "sv",
1c532546
TL
10227 "tr",
10228 "zh_CN",
10229 "zh_TW"
44660702 10230 ],
56122987 10231 "optional" : 1,
44660702 10232 "type" : "string"
56122987 10233 },
4bd7df8b
DM
10234 "mac_prefix" : {
10235 "description" : "Prefix for autogenerated MAC addresses.",
95895385 10236 "format" : "mac-prefix",
4bd7df8b 10237 "optional" : 1,
95895385
TL
10238 "type" : "string",
10239 "typetext" : "<string>"
4bd7df8b 10240 },
44660702
DM
10241 "max_workers" : {
10242 "description" : "Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager.",
10243 "minimum" : 1,
56122987 10244 "optional" : 1,
4bd7df8b 10245 "type" : "integer",
013dc89f 10246 "typetext" : "<integer> (1 - N)"
56122987 10247 },
de0983cb
DM
10248 "migration" : {
10249 "description" : "For cluster wide migration settings.",
10250 "format" : {
10251 "network" : {
10252 "description" : "CIDR of the (sub) network that is used for migration.",
10253 "format" : "CIDR",
10254 "format_description" : "CIDR",
10255 "optional" : 1,
10256 "type" : "string"
10257 },
10258 "type" : {
10259 "default" : "secure",
10260 "default_key" : 1,
10261 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
10262 "enum" : [
10263 "secure",
10264 "insecure"
10265 ],
10266 "type" : "string"
10267 }
10268 },
10269 "optional" : 1,
10270 "type" : "string",
10271 "typetext" : "[type=]<secure|insecure> [,network=<CIDR>]"
10272 },
7aacca6f 10273 "migration_unsecure" : {
de0983cb 10274 "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 10275 "optional" : 1,
013dc89f
DM
10276 "type" : "boolean",
10277 "typetext" : "<boolean>"
95895385 10278 },
7af2edf9
TL
10279 "next-id" : {
10280 "description" : "Control the range for the free VMID auto-selection pool.",
10281 "format" : {
10282 "lower" : {
10283 "default" : 100,
10284 "description" : "Lower, inclusive boundary for free next-id API range.",
10285 "max" : 999999999,
10286 "min" : 100,
10287 "optional" : 1,
10288 "type" : "integer"
10289 },
10290 "upper" : {
10291 "default" : 1000000,
460359c5 10292 "description" : "Upper, exclusive boundary for free next-id API range.",
de786b48 10293 "max" : 1000000000,
7af2edf9
TL
10294 "min" : 100,
10295 "optional" : 1,
10296 "type" : "integer"
10297 }
10298 },
10299 "optional" : 1,
10300 "type" : "string",
10301 "typetext" : "[lower=<integer>] [,upper=<integer>]"
10302 },
9d2e98ed
TL
10303 "notify" : {
10304 "description" : "Cluster-wide notification settings.",
10305 "format" : {
10306 "package-updates" : {
10307 "default" : "auto",
10308 "description" : "Control when the daily update job should send out notification mails.",
10309 "enum" : [
10310 "auto",
10311 "always",
10312 "never"
10313 ],
10314 "type" : "string",
10315 "verbose_description" : "Control how often the daily update job should send out notification mails:\n* 'auto' daily for systems with a valid subscription, as those are assumed to be production-ready and thus should know about pending updates.\n* 'always' every update, if there are new pending updates.\n* 'never' never send a notification for new pending updates.\n"
10316 }
10317 },
10318 "optional" : 1,
10319 "type" : "string",
10320 "typetext" : "package-updates=<auto|always|never>"
10321 },
81a3384d
TL
10322 "registered-tags" : {
10323 "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`.",
10324 "optional" : 1,
10325 "pattern" : "(?:(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*);)*(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*)",
10326 "type" : "string",
10327 "typetext" : "<tag>[;<tag>...]"
10328 },
10329 "tag-style" : {
10330 "description" : "Tag style options.",
10331 "format" : {
e7e885f9
TL
10332 "case-sensitive" : {
10333 "default" : 0,
10334 "description" : "Controls if filtering for unique tags on update should check case-sensitive.",
10335 "optional" : 1,
10336 "type" : "boolean"
10337 },
81a3384d
TL
10338 "color-map" : {
10339 "description" : "Manual color mapping for tags (semicolon separated).",
10340 "optional" : 1,
10341 "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})?))*",
10342 "type" : "string",
10343 "typetext" : "<tag>:<hex-color>[:<hex-color-for-text>][;<tag>=...]"
10344 },
10345 "ordering" : {
10346 "default" : "alphabetical",
e7e885f9 10347 "description" : "Controls the sorting of the tags in the web-interface and the API update.",
81a3384d
TL
10348 "enum" : [
10349 "config",
10350 "alphabetical"
10351 ],
10352 "optional" : 1,
10353 "type" : "string"
10354 },
10355 "shape" : {
10356 "default" : "circle",
10357 "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.",
10358 "enum" : [
10359 "full",
10360 "circle",
10361 "dense",
10362 "none"
10363 ],
10364 "optional" : 1,
10365 "type" : "string"
10366 }
10367 },
10368 "optional" : 1,
10369 "type" : "string",
e7e885f9 10370 "typetext" : "[case-sensitive=<1|0>] [,color-map=<tag>:<hex-color>[:<hex-color-for-text>][;<tag>=...]] [,ordering=<config|alphabetical>] [,shape=<enum>]"
81a3384d 10371 },
95895385
TL
10372 "u2f" : {
10373 "description" : "u2f",
10374 "format" : {
10375 "appid" : {
10376 "description" : "U2F AppId URL override. Defaults to the origin.",
10377 "format_description" : "APPID",
10378 "optional" : 1,
10379 "type" : "string"
10380 },
10381 "origin" : {
10382 "description" : "U2F Origin override. Mostly useful for single nodes with a single URL.",
10383 "format_description" : "URL",
10384 "optional" : 1,
10385 "type" : "string"
10386 }
10387 },
10388 "optional" : 1,
10389 "type" : "string",
10390 "typetext" : "[appid=<APPID>] [,origin=<URL>]"
5370fa8c 10391 },
81a3384d
TL
10392 "user-tag-access" : {
10393 "description" : "Privilege options for user-settable tags",
10394 "format" : {
10395 "user-allow" : {
10396 "default" : "free",
10397 "description" : "Controls tag usage for users without `Sys.Modify` on `/` by either allowing `none`, a `list`, already `existing` or anything (`free`).",
10398 "enum" : [
10399 "none",
10400 "list",
10401 "existing",
10402 "free"
10403 ],
10404 "optional" : 1,
10405 "type" : "string",
9d2e98ed 10406 "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
10407 },
10408 "user-allow-list" : {
10409 "description" : "List of tags users are allowed to set and delete (semicolon separated) for 'user-allow' values 'list' and 'existing'.",
10410 "optional" : 1,
10411 "pattern" : "(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*)(?:;(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*))*",
10412 "type" : "string",
10413 "typetext" : "<tag>[;<tag>...]"
10414 }
10415 },
10416 "optional" : 1,
10417 "type" : "string",
10418 "typetext" : "[user-allow=<enum>] [,user-allow-list=<tag>[;<tag>...]]"
10419 },
5370fa8c
TL
10420 "webauthn" : {
10421 "description" : "webauthn configuration",
10422 "format" : {
81a3384d
TL
10423 "allow-subdomains" : {
10424 "default" : 1,
10425 "description" : "Whether to allow the origin to be a subdomain, rather than the exact URL.",
10426 "optional" : 1,
10427 "type" : "boolean"
10428 },
5370fa8c 10429 "id" : {
81a3384d 10430 "description" : "Relying party ID. Must be the domain name without protocol, port or location. Changing this *will* break existing credentials.",
5370fa8c
TL
10431 "format_description" : "DOMAINNAME",
10432 "optional" : 1,
10433 "type" : "string"
10434 },
10435 "origin" : {
10436 "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.",
10437 "format_description" : "URL",
10438 "optional" : 1,
10439 "type" : "string"
10440 },
10441 "rp" : {
10442 "description" : "Relying party name. Any text identifier. Changing this *may* break existing credentials.",
10443 "format_description" : "RELYING_PARTY",
10444 "optional" : 1,
10445 "type" : "string"
10446 }
10447 },
10448 "optional" : 1,
10449 "type" : "string",
81a3384d 10450 "typetext" : "[allow-subdomains=<1|0>] [,id=<DOMAINNAME>] [,origin=<URL>] [,rp=<RELYING_PARTY>]"
56122987
DM
10451 }
10452 }
10453 },
44660702
DM
10454 "permissions" : {
10455 "check" : [
10456 "perm",
10457 "/",
10458 [
10459 "Sys.Modify"
10460 ]
10461 ]
10462 },
56122987 10463 "protected" : 1,
7aacca6f
DM
10464 "returns" : {
10465 "type" : "null"
44660702 10466 }
7aacca6f
DM
10467 }
10468 },
44660702
DM
10469 "leaf" : 1,
10470 "path" : "/cluster/options",
7aacca6f
DM
10471 "text" : "options"
10472 },
10473 {
7aacca6f 10474 "info" : {
56122987 10475 "GET" : {
e9cd3bd4 10476 "allowtoken" : 1,
1e3f8156 10477 "description" : "Get cluster status information.",
44660702
DM
10478 "method" : "GET",
10479 "name" : "get_status",
56122987
DM
10480 "parameters" : {
10481 "additionalProperties" : 0
10482 },
56122987
DM
10483 "permissions" : {
10484 "check" : [
10485 "perm",
10486 "/",
10487 [
10488 "Sys.Audit"
10489 ]
10490 ]
10491 },
7aacca6f 10492 "protected" : 1,
56122987 10493 "returns" : {
56122987 10494 "items" : {
56122987 10495 "properties" : {
e9cd3bd4
TL
10496 "id" : {
10497 "type" : "string"
10498 },
10499 "ip" : {
10500 "description" : "[node] IP of the resolved nodename.",
10501 "optional" : 1,
10502 "type" : "string"
10503 },
10504 "level" : {
10505 "description" : "[node] Proxmox VE Subscription level, indicates if eligible for enterprise support as well as access to the stable Proxmox VE Enterprise Repository.",
10506 "optional" : 1,
10507 "type" : "string"
10508 },
10509 "local" : {
10510 "description" : "[node] Indicates if this is the responding node.",
10511 "optional" : 1,
10512 "type" : "boolean"
10513 },
10514 "name" : {
10515 "type" : "string"
10516 },
10517 "nodeid" : {
10518 "description" : "[node] ID of the node from the corosync configuration.",
10519 "optional" : 1,
10520 "type" : "integer"
10521 },
10522 "nodes" : {
10523 "description" : "[cluster] Nodes count, including offline nodes.",
10524 "optional" : 1,
10525 "type" : "integer"
10526 },
10527 "online" : {
10528 "description" : "[node] Indicates if the node is online or offline.",
10529 "optional" : 1,
10530 "type" : "boolean"
10531 },
10532 "quorate" : {
10533 "description" : "[cluster] Indicates if there is a majority of nodes online to make decisions",
10534 "optional" : 1,
10535 "type" : "boolean"
10536 },
56122987 10537 "type" : {
e9cd3bd4
TL
10538 "description" : "Indicates the type, either cluster or node. The type defines the object properties e.g. quorate available for type cluster.",
10539 "enum" : [
10540 "cluster",
10541 "node"
10542 ],
56122987 10543 "type" : "string"
e9cd3bd4
TL
10544 },
10545 "version" : {
10546 "description" : "[cluster] Current version of the corosync configuration file.",
10547 "optional" : 1,
10548 "type" : "integer"
56122987 10549 }
44660702
DM
10550 },
10551 "type" : "object"
7aacca6f
DM
10552 },
10553 "type" : "array"
56122987
DM
10554 }
10555 }
10556 },
44660702 10557 "leaf" : 1,
7aacca6f 10558 "path" : "/cluster/status",
44660702 10559 "text" : "status"
56122987
DM
10560 },
10561 {
56122987
DM
10562 "info" : {
10563 "GET" : {
e9cd3bd4 10564 "allowtoken" : 1,
c30bb419 10565 "description" : "Get next free VMID. Pass a VMID to assert that its free (at time of check).",
44660702
DM
10566 "method" : "GET",
10567 "name" : "nextid",
56122987 10568 "parameters" : {
44660702 10569 "additionalProperties" : 0,
56122987
DM
10570 "properties" : {
10571 "vmid" : {
44660702 10572 "description" : "The (unique) ID of the VM.",
56122987 10573 "format" : "pve-vmid",
8dd66e12
TL
10574 "maximum" : 999999999,
10575 "minimum" : 100,
7aacca6f 10576 "optional" : 1,
4bd7df8b 10577 "type" : "integer",
8dd66e12 10578 "typetext" : "<integer> (100 - 999999999)"
56122987 10579 }
44660702 10580 }
56122987 10581 },
7aacca6f
DM
10582 "permissions" : {
10583 "user" : "all"
44660702
DM
10584 },
10585 "returns" : {
10586 "description" : "The next free VMID.",
10587 "type" : "integer"
7aacca6f 10588 }
56122987
DM
10589 }
10590 },
7aacca6f 10591 "leaf" : 1,
44660702
DM
10592 "path" : "/cluster/nextid",
10593 "text" : "nextid"
56122987
DM
10594 }
10595 ],
44660702
DM
10596 "info" : {
10597 "GET" : {
e9cd3bd4 10598 "allowtoken" : 1,
44660702
DM
10599 "description" : "Cluster index.",
10600 "method" : "GET",
10601 "name" : "index",
10602 "parameters" : {
10603 "additionalProperties" : 0
10604 },
10605 "permissions" : {
10606 "user" : "all"
10607 },
10608 "returns" : {
10609 "items" : {
10610 "properties" : {},
10611 "type" : "object"
10612 },
10613 "links" : [
10614 {
10615 "href" : "{name}",
10616 "rel" : "child"
10617 }
10618 ],
10619 "type" : "array"
10620 }
10621 }
10622 },
10623 "leaf" : 0,
10624 "path" : "/cluster",
7aacca6f 10625 "text" : "cluster"
56122987
DM
10626 },
10627 {
56122987
DM
10628 "children" : [
10629 {
7aacca6f
DM
10630 "children" : [
10631 {
10632 "children" : [
10633 {
56122987
DM
10634 "children" : [
10635 {
56122987
DM
10636 "children" : [
10637 {
10638 "children" : [
10639 {
56122987
DM
10640 "info" : {
10641 "DELETE" : {
e9cd3bd4 10642 "allowtoken" : 1,
44660702 10643 "description" : "Delete rule.",
7aacca6f 10644 "method" : "DELETE",
44660702 10645 "name" : "delete_rule",
56122987 10646 "parameters" : {
44660702 10647 "additionalProperties" : 0,
56122987 10648 "properties" : {
44660702
DM
10649 "digest" : {
10650 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
10651 "maxLength" : 40,
10652 "optional" : 1,
013dc89f
DM
10653 "type" : "string",
10654 "typetext" : "<string>"
44660702 10655 },
56122987 10656 "node" : {
7aacca6f 10657 "description" : "The cluster node name.",
44660702 10658 "format" : "pve-node",
013dc89f
DM
10659 "type" : "string",
10660 "typetext" : "<string>"
7aacca6f 10661 },
56122987 10662 "pos" : {
7aacca6f 10663 "description" : "Update rule at position <pos>.",
44660702 10664 "minimum" : 0,
56122987 10665 "optional" : 1,
4bd7df8b 10666 "type" : "integer",
013dc89f 10667 "typetext" : "<integer> (0 - N)"
44660702
DM
10668 },
10669 "vmid" : {
10670 "description" : "The (unique) ID of the VM.",
10671 "format" : "pve-vmid",
8dd66e12
TL
10672 "maximum" : 999999999,
10673 "minimum" : 100,
4bd7df8b 10674 "type" : "integer",
8dd66e12 10675 "typetext" : "<integer> (100 - 999999999)"
56122987 10676 }
44660702 10677 }
7aacca6f 10678 },
56122987
DM
10679 "permissions" : {
10680 "check" : [
10681 "perm",
10682 "/vms/{vmid}",
10683 [
10684 "VM.Config.Network"
10685 ]
10686 ]
10687 },
44660702
DM
10688 "protected" : 1,
10689 "proxyto" : null,
56122987
DM
10690 "returns" : {
10691 "type" : "null"
44660702
DM
10692 }
10693 },
10694 "GET" : {
e9cd3bd4 10695 "allowtoken" : 1,
44660702
DM
10696 "description" : "Get single rule data.",
10697 "method" : "GET",
10698 "name" : "get_rule",
10699 "parameters" : {
10700 "additionalProperties" : 0,
10701 "properties" : {
10702 "node" : {
10703 "description" : "The cluster node name.",
10704 "format" : "pve-node",
013dc89f
DM
10705 "type" : "string",
10706 "typetext" : "<string>"
44660702
DM
10707 },
10708 "pos" : {
10709 "description" : "Update rule at position <pos>.",
10710 "minimum" : 0,
10711 "optional" : 1,
4bd7df8b 10712 "type" : "integer",
013dc89f 10713 "typetext" : "<integer> (0 - N)"
44660702
DM
10714 },
10715 "vmid" : {
10716 "description" : "The (unique) ID of the VM.",
10717 "format" : "pve-vmid",
8dd66e12
TL
10718 "maximum" : 999999999,
10719 "minimum" : 100,
4bd7df8b 10720 "type" : "integer",
8dd66e12 10721 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
10722 }
10723 }
56122987 10724 },
56122987
DM
10725 "permissions" : {
10726 "check" : [
10727 "perm",
10728 "/vms/{vmid}",
10729 [
44660702 10730 "VM.Audit"
56122987
DM
10731 ]
10732 ]
10733 },
56122987 10734 "proxyto" : null,
44660702
DM
10735 "returns" : {
10736 "properties" : {
e2d681b3
TL
10737 "action" : {
10738 "type" : "string"
10739 },
10740 "comment" : {
10741 "optional" : 1,
10742 "type" : "string"
10743 },
10744 "dest" : {
10745 "optional" : 1,
10746 "type" : "string"
10747 },
10748 "dport" : {
10749 "optional" : 1,
10750 "type" : "string"
10751 },
10752 "enable" : {
10753 "optional" : 1,
10754 "type" : "integer"
10755 },
4772952b
TL
10756 "icmp-type" : {
10757 "optional" : 1,
10758 "type" : "string"
10759 },
e2d681b3
TL
10760 "iface" : {
10761 "optional" : 1,
10762 "type" : "string"
10763 },
10764 "ipversion" : {
10765 "optional" : 1,
10766 "type" : "integer"
10767 },
95895385
TL
10768 "log" : {
10769 "description" : "Log level for firewall rule",
10770 "enum" : [
10771 "emerg",
10772 "alert",
10773 "crit",
10774 "err",
10775 "warning",
10776 "notice",
10777 "info",
10778 "debug",
10779 "nolog"
10780 ],
10781 "optional" : 1,
10782 "type" : "string"
10783 },
e2d681b3
TL
10784 "macro" : {
10785 "optional" : 1,
5f26e15b 10786 "type" : "string"
e2d681b3 10787 },
44660702
DM
10788 "pos" : {
10789 "type" : "integer"
e2d681b3
TL
10790 },
10791 "proto" : {
10792 "optional" : 1,
10793 "type" : "string"
10794 },
10795 "source" : {
10796 "optional" : 1,
10797 "type" : "string"
10798 },
10799 "sport" : {
10800 "optional" : 1,
10801 "type" : "string"
10802 },
10803 "type" : {
10804 "type" : "string"
44660702
DM
10805 }
10806 },
10807 "type" : "object"
10808 }
10809 },
10810 "PUT" : {
e9cd3bd4 10811 "allowtoken" : 1,
7aacca6f
DM
10812 "description" : "Modify rule data.",
10813 "method" : "PUT",
44660702 10814 "name" : "update_rule",
56122987 10815 "parameters" : {
44660702 10816 "additionalProperties" : 0,
56122987 10817 "properties" : {
44660702
DM
10818 "action" : {
10819 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
10820 "maxLength" : 20,
10821 "minLength" : 2,
56122987 10822 "optional" : 1,
44660702 10823 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f
DM
10824 "type" : "string"
10825 },
7aacca6f 10826 "comment" : {
e94f0d56 10827 "description" : "Descriptive comment.",
7aacca6f 10828 "optional" : 1,
013dc89f
DM
10829 "type" : "string",
10830 "typetext" : "<string>"
7aacca6f
DM
10831 },
10832 "delete" : {
7aacca6f 10833 "description" : "A list of settings you want to delete.",
44660702
DM
10834 "format" : "pve-configid-list",
10835 "optional" : 1,
013dc89f
DM
10836 "type" : "string",
10837 "typetext" : "<string>"
7aacca6f
DM
10838 },
10839 "dest" : {
44660702 10840 "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 10841 "format" : "pve-fw-addr-spec",
0695fdaf 10842 "maxLength" : 512,
56122987 10843 "optional" : 1,
013dc89f
DM
10844 "type" : "string",
10845 "typetext" : "<string>"
56122987 10846 },
7aacca6f 10847 "digest" : {
44660702 10848 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7aacca6f 10849 "maxLength" : 40,
56122987 10850 "optional" : 1,
013dc89f
DM
10851 "type" : "string",
10852 "typetext" : "<string>"
44660702
DM
10853 },
10854 "dport" : {
10855 "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.",
10856 "format" : "pve-fw-dport-spec",
10857 "optional" : 1,
013dc89f
DM
10858 "type" : "string",
10859 "typetext" : "<string>"
56122987 10860 },
7aacca6f 10861 "enable" : {
e94f0d56 10862 "description" : "Flag to enable/disable a rule.",
44660702 10863 "minimum" : 0,
56122987 10864 "optional" : 1,
4bd7df8b 10865 "type" : "integer",
013dc89f 10866 "typetext" : "<integer> (0 - N)"
7aacca6f 10867 },
4772952b 10868 "icmp-type" : {
287a95cf 10869 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
10870 "format" : "pve-fw-icmp-type-spec",
10871 "optional" : 1,
10872 "type" : "string",
10873 "typetext" : "<string>"
10874 },
44660702
DM
10875 "iface" : {
10876 "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.",
10877 "format" : "pve-iface",
10878 "maxLength" : 20,
7aacca6f 10879 "minLength" : 2,
56122987 10880 "optional" : 1,
013dc89f
DM
10881 "type" : "string",
10882 "typetext" : "<string>"
56122987 10883 },
95895385
TL
10884 "log" : {
10885 "description" : "Log level for firewall rule.",
10886 "enum" : [
10887 "emerg",
10888 "alert",
10889 "crit",
10890 "err",
10891 "warning",
10892 "notice",
10893 "info",
10894 "debug",
10895 "nolog"
10896 ],
10897 "optional" : 1,
10898 "type" : "string"
10899 },
44660702 10900 "macro" : {
e94f0d56 10901 "description" : "Use predefined standard macro.",
44660702 10902 "maxLength" : 128,
56122987 10903 "optional" : 1,
013dc89f
DM
10904 "type" : "string",
10905 "typetext" : "<string>"
56122987 10906 },
44660702
DM
10907 "moveto" : {
10908 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
10909 "minimum" : 0,
56122987 10910 "optional" : 1,
4bd7df8b 10911 "type" : "integer",
013dc89f 10912 "typetext" : "<integer> (0 - N)"
56122987 10913 },
44660702
DM
10914 "node" : {
10915 "description" : "The cluster node name.",
10916 "format" : "pve-node",
013dc89f
DM
10917 "type" : "string",
10918 "typetext" : "<string>"
44660702
DM
10919 },
10920 "pos" : {
10921 "description" : "Update rule at position <pos>.",
10922 "minimum" : 0,
10923 "optional" : 1,
4bd7df8b 10924 "type" : "integer",
013dc89f 10925 "typetext" : "<integer> (0 - N)"
56122987 10926 },
44660702
DM
10927 "proto" : {
10928 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
10929 "format" : "pve-fw-protocol-spec",
10930 "optional" : 1,
013dc89f
DM
10931 "type" : "string",
10932 "typetext" : "<string>"
7aacca6f 10933 },
44660702
DM
10934 "source" : {
10935 "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.",
10936 "format" : "pve-fw-addr-spec",
0695fdaf 10937 "maxLength" : 512,
56122987 10938 "optional" : 1,
013dc89f
DM
10939 "type" : "string",
10940 "typetext" : "<string>"
56122987
DM
10941 },
10942 "sport" : {
10943 "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
10944 "format" : "pve-fw-sport-spec",
10945 "optional" : 1,
013dc89f
DM
10946 "type" : "string",
10947 "typetext" : "<string>"
44660702
DM
10948 },
10949 "type" : {
e94f0d56 10950 "description" : "Rule type.",
44660702
DM
10951 "enum" : [
10952 "in",
10953 "out",
10954 "group"
10955 ],
56122987 10956 "optional" : 1,
56122987 10957 "type" : "string"
44660702
DM
10958 },
10959 "vmid" : {
10960 "description" : "The (unique) ID of the VM.",
10961 "format" : "pve-vmid",
8dd66e12
TL
10962 "maximum" : 999999999,
10963 "minimum" : 100,
4bd7df8b 10964 "type" : "integer",
8dd66e12 10965 "typetext" : "<integer> (100 - 999999999)"
56122987 10966 }
44660702 10967 }
56122987 10968 },
56122987
DM
10969 "permissions" : {
10970 "check" : [
10971 "perm",
10972 "/vms/{vmid}",
10973 [
44660702 10974 "VM.Config.Network"
56122987
DM
10975 ]
10976 ]
7aacca6f 10977 },
44660702 10978 "protected" : 1,
7aacca6f 10979 "proxyto" : null,
7aacca6f 10980 "returns" : {
44660702
DM
10981 "type" : "null"
10982 }
56122987 10983 }
7aacca6f 10984 },
44660702 10985 "leaf" : 1,
7aacca6f 10986 "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}",
44660702 10987 "text" : "{pos}"
56122987
DM
10988 }
10989 ],
56122987 10990 "info" : {
44660702 10991 "GET" : {
e9cd3bd4 10992 "allowtoken" : 1,
44660702
DM
10993 "description" : "List rules.",
10994 "method" : "GET",
10995 "name" : "get_rules",
10996 "parameters" : {
10997 "additionalProperties" : 0,
10998 "properties" : {
10999 "node" : {
11000 "description" : "The cluster node name.",
11001 "format" : "pve-node",
013dc89f
DM
11002 "type" : "string",
11003 "typetext" : "<string>"
44660702
DM
11004 },
11005 "vmid" : {
11006 "description" : "The (unique) ID of the VM.",
11007 "format" : "pve-vmid",
8dd66e12
TL
11008 "maximum" : 999999999,
11009 "minimum" : 100,
4bd7df8b 11010 "type" : "integer",
8dd66e12 11011 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
11012 }
11013 }
56122987 11014 },
56122987
DM
11015 "permissions" : {
11016 "check" : [
11017 "perm",
11018 "/vms/{vmid}",
11019 [
44660702 11020 "VM.Audit"
56122987
DM
11021 ]
11022 ]
7aacca6f 11023 },
44660702
DM
11024 "proxyto" : null,
11025 "returns" : {
11026 "items" : {
11027 "properties" : {
11028 "pos" : {
11029 "type" : "integer"
11030 }
11031 },
11032 "type" : "object"
11033 },
11034 "links" : [
11035 {
11036 "href" : "{pos}",
11037 "rel" : "child"
11038 }
11039 ],
11040 "type" : "array"
11041 }
11042 },
11043 "POST" : {
e9cd3bd4 11044 "allowtoken" : 1,
44660702 11045 "description" : "Create new rule.",
7aacca6f 11046 "method" : "POST",
44660702 11047 "name" : "create_rule",
56122987 11048 "parameters" : {
44660702 11049 "additionalProperties" : 0,
56122987 11050 "properties" : {
44660702
DM
11051 "action" : {
11052 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
11053 "maxLength" : 20,
11054 "minLength" : 2,
11055 "optional" : 0,
11056 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11057 "type" : "string"
56122987 11058 },
44660702 11059 "comment" : {
e94f0d56 11060 "description" : "Descriptive comment.",
56122987 11061 "optional" : 1,
013dc89f
DM
11062 "type" : "string",
11063 "typetext" : "<string>"
56122987 11064 },
44660702
DM
11065 "dest" : {
11066 "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.",
11067 "format" : "pve-fw-addr-spec",
0695fdaf 11068 "maxLength" : 512,
44660702 11069 "optional" : 1,
013dc89f
DM
11070 "type" : "string",
11071 "typetext" : "<string>"
56122987 11072 },
44660702
DM
11073 "digest" : {
11074 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
11075 "maxLength" : 40,
56122987 11076 "optional" : 1,
013dc89f
DM
11077 "type" : "string",
11078 "typetext" : "<string>"
56122987 11079 },
7aacca6f
DM
11080 "dport" : {
11081 "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 11082 "format" : "pve-fw-dport-spec",
7aacca6f 11083 "optional" : 1,
013dc89f
DM
11084 "type" : "string",
11085 "typetext" : "<string>"
56122987
DM
11086 },
11087 "enable" : {
e94f0d56 11088 "description" : "Flag to enable/disable a rule.",
56122987 11089 "minimum" : 0,
44660702 11090 "optional" : 1,
4bd7df8b 11091 "type" : "integer",
013dc89f 11092 "typetext" : "<integer> (0 - N)"
56122987 11093 },
4772952b 11094 "icmp-type" : {
287a95cf 11095 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
11096 "format" : "pve-fw-icmp-type-spec",
11097 "optional" : 1,
11098 "type" : "string",
11099 "typetext" : "<string>"
11100 },
44660702
DM
11101 "iface" : {
11102 "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.",
11103 "format" : "pve-iface",
11104 "maxLength" : 20,
7aacca6f 11105 "minLength" : 2,
44660702 11106 "optional" : 1,
013dc89f
DM
11107 "type" : "string",
11108 "typetext" : "<string>"
56122987 11109 },
95895385
TL
11110 "log" : {
11111 "description" : "Log level for firewall rule.",
11112 "enum" : [
11113 "emerg",
11114 "alert",
11115 "crit",
11116 "err",
11117 "warning",
11118 "notice",
11119 "info",
11120 "debug",
11121 "nolog"
11122 ],
11123 "optional" : 1,
11124 "type" : "string"
11125 },
44660702 11126 "macro" : {
e94f0d56 11127 "description" : "Use predefined standard macro.",
44660702 11128 "maxLength" : 128,
56122987 11129 "optional" : 1,
013dc89f
DM
11130 "type" : "string",
11131 "typetext" : "<string>"
7aacca6f 11132 },
44660702
DM
11133 "node" : {
11134 "description" : "The cluster node name.",
11135 "format" : "pve-node",
013dc89f
DM
11136 "type" : "string",
11137 "typetext" : "<string>"
44660702
DM
11138 },
11139 "pos" : {
11140 "description" : "Update rule at position <pos>.",
11141 "minimum" : 0,
11142 "optional" : 1,
4bd7df8b 11143 "type" : "integer",
013dc89f 11144 "typetext" : "<integer> (0 - N)"
44660702
DM
11145 },
11146 "proto" : {
11147 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
11148 "format" : "pve-fw-protocol-spec",
7aacca6f 11149 "optional" : 1,
013dc89f
DM
11150 "type" : "string",
11151 "typetext" : "<string>"
7aacca6f
DM
11152 },
11153 "source" : {
11154 "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 11155 "format" : "pve-fw-addr-spec",
0695fdaf 11156 "maxLength" : 512,
7aacca6f 11157 "optional" : 1,
013dc89f
DM
11158 "type" : "string",
11159 "typetext" : "<string>"
7aacca6f 11160 },
44660702
DM
11161 "sport" : {
11162 "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.",
11163 "format" : "pve-fw-sport-spec",
7aacca6f 11164 "optional" : 1,
013dc89f
DM
11165 "type" : "string",
11166 "typetext" : "<string>"
7aacca6f 11167 },
44660702 11168 "type" : {
e94f0d56 11169 "description" : "Rule type.",
44660702
DM
11170 "enum" : [
11171 "in",
11172 "out",
11173 "group"
11174 ],
11175 "optional" : 0,
11176 "type" : "string"
7aacca6f 11177 },
7aacca6f 11178 "vmid" : {
44660702 11179 "description" : "The (unique) ID of the VM.",
7aacca6f 11180 "format" : "pve-vmid",
8dd66e12
TL
11181 "maximum" : 999999999,
11182 "minimum" : 100,
4bd7df8b 11183 "type" : "integer",
8dd66e12 11184 "typetext" : "<integer> (100 - 999999999)"
7aacca6f
DM
11185 }
11186 }
11187 },
56122987
DM
11188 "permissions" : {
11189 "check" : [
11190 "perm",
11191 "/vms/{vmid}",
11192 [
44660702 11193 "VM.Config.Network"
56122987
DM
11194 ]
11195 ]
11196 },
44660702
DM
11197 "protected" : 1,
11198 "proxyto" : null,
56122987 11199 "returns" : {
44660702
DM
11200 "type" : "null"
11201 }
56122987
DM
11202 }
11203 },
44660702 11204 "leaf" : 0,
7aacca6f 11205 "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules",
44660702 11206 "text" : "rules"
56122987
DM
11207 },
11208 {
11209 "children" : [
11210 {
56122987 11211 "info" : {
44660702 11212 "DELETE" : {
e9cd3bd4 11213 "allowtoken" : 1,
44660702
DM
11214 "description" : "Remove IP or Network alias.",
11215 "method" : "DELETE",
11216 "name" : "remove_alias",
56122987 11217 "parameters" : {
44660702 11218 "additionalProperties" : 0,
56122987 11219 "properties" : {
44660702
DM
11220 "digest" : {
11221 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
11222 "maxLength" : 40,
11223 "optional" : 1,
013dc89f
DM
11224 "type" : "string",
11225 "typetext" : "<string>"
56122987
DM
11226 },
11227 "name" : {
56122987 11228 "description" : "Alias name.",
44660702 11229 "maxLength" : 64,
7aacca6f 11230 "minLength" : 2,
44660702 11231 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987
DM
11232 "type" : "string"
11233 },
7aacca6f 11234 "node" : {
44660702 11235 "description" : "The cluster node name.",
7aacca6f 11236 "format" : "pve-node",
013dc89f
DM
11237 "type" : "string",
11238 "typetext" : "<string>"
44660702
DM
11239 },
11240 "vmid" : {
11241 "description" : "The (unique) ID of the VM.",
11242 "format" : "pve-vmid",
8dd66e12
TL
11243 "maximum" : 999999999,
11244 "minimum" : 100,
4bd7df8b 11245 "type" : "integer",
8dd66e12 11246 "typetext" : "<integer> (100 - 999999999)"
56122987 11247 }
44660702 11248 }
56122987 11249 },
7aacca6f
DM
11250 "permissions" : {
11251 "check" : [
11252 "perm",
11253 "/vms/{vmid}",
11254 [
11255 "VM.Config.Network"
11256 ]
11257 ]
56122987 11258 },
44660702
DM
11259 "protected" : 1,
11260 "returns" : {
11261 "type" : "null"
11262 }
11263 },
11264 "GET" : {
e9cd3bd4 11265 "allowtoken" : 1,
44660702
DM
11266 "description" : "Read alias.",
11267 "method" : "GET",
11268 "name" : "read_alias",
56122987 11269 "parameters" : {
44660702 11270 "additionalProperties" : 0,
56122987 11271 "properties" : {
56122987 11272 "name" : {
7aacca6f 11273 "description" : "Alias name.",
44660702 11274 "maxLength" : 64,
56122987 11275 "minLength" : 2,
44660702 11276 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987 11277 "type" : "string"
7aacca6f
DM
11278 },
11279 "node" : {
11280 "description" : "The cluster node name.",
44660702 11281 "format" : "pve-node",
013dc89f
DM
11282 "type" : "string",
11283 "typetext" : "<string>"
44660702
DM
11284 },
11285 "vmid" : {
11286 "description" : "The (unique) ID of the VM.",
11287 "format" : "pve-vmid",
8dd66e12
TL
11288 "maximum" : 999999999,
11289 "minimum" : 100,
4bd7df8b 11290 "type" : "integer",
8dd66e12 11291 "typetext" : "<integer> (100 - 999999999)"
56122987 11292 }
44660702 11293 }
56122987 11294 },
44660702
DM
11295 "permissions" : {
11296 "check" : [
11297 "perm",
11298 "/vms/{vmid}",
11299 [
11300 "VM.Audit"
11301 ]
11302 ]
56122987 11303 },
44660702
DM
11304 "returns" : {
11305 "type" : "object"
11306 }
7aacca6f 11307 },
44660702 11308 "PUT" : {
e9cd3bd4 11309 "allowtoken" : 1,
44660702
DM
11310 "description" : "Update IP or Network alias.",
11311 "method" : "PUT",
11312 "name" : "update_alias",
56122987
DM
11313 "parameters" : {
11314 "additionalProperties" : 0,
11315 "properties" : {
44660702
DM
11316 "cidr" : {
11317 "description" : "Network/IP specification in CIDR format.",
11318 "format" : "IPorCIDR",
013dc89f
DM
11319 "type" : "string",
11320 "typetext" : "<string>"
44660702
DM
11321 },
11322 "comment" : {
11323 "optional" : 1,
013dc89f
DM
11324 "type" : "string",
11325 "typetext" : "<string>"
56122987
DM
11326 },
11327 "digest" : {
44660702 11328 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
56122987
DM
11329 "maxLength" : 40,
11330 "optional" : 1,
013dc89f
DM
11331 "type" : "string",
11332 "typetext" : "<string>"
56122987 11333 },
7aacca6f 11334 "name" : {
44660702 11335 "description" : "Alias name.",
56122987
DM
11336 "maxLength" : 64,
11337 "minLength" : 2,
11338 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 11339 "type" : "string"
7aacca6f
DM
11340 },
11341 "node" : {
7aacca6f 11342 "description" : "The cluster node name.",
44660702 11343 "format" : "pve-node",
013dc89f
DM
11344 "type" : "string",
11345 "typetext" : "<string>"
44660702
DM
11346 },
11347 "rename" : {
11348 "description" : "Rename an existing alias.",
11349 "maxLength" : 64,
11350 "minLength" : 2,
11351 "optional" : 1,
11352 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11353 "type" : "string"
11354 },
11355 "vmid" : {
11356 "description" : "The (unique) ID of the VM.",
11357 "format" : "pve-vmid",
8dd66e12
TL
11358 "maximum" : 999999999,
11359 "minimum" : 100,
4bd7df8b 11360 "type" : "integer",
8dd66e12 11361 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
11362 }
11363 }
11364 },
7aacca6f
DM
11365 "permissions" : {
11366 "check" : [
11367 "perm",
11368 "/vms/{vmid}",
11369 [
11370 "VM.Config.Network"
11371 ]
11372 ]
11373 },
11374 "protected" : 1,
7aacca6f
DM
11375 "returns" : {
11376 "type" : "null"
44660702 11377 }
56122987
DM
11378 }
11379 },
44660702 11380 "leaf" : 1,
7aacca6f 11381 "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}",
44660702 11382 "text" : "{name}"
56122987
DM
11383 }
11384 ],
11385 "info" : {
44660702 11386 "GET" : {
e9cd3bd4 11387 "allowtoken" : 1,
44660702
DM
11388 "description" : "List aliases",
11389 "method" : "GET",
11390 "name" : "get_aliases",
56122987 11391 "parameters" : {
44660702 11392 "additionalProperties" : 0,
56122987 11393 "properties" : {
7aacca6f 11394 "node" : {
7aacca6f 11395 "description" : "The cluster node name.",
44660702 11396 "format" : "pve-node",
013dc89f
DM
11397 "type" : "string",
11398 "typetext" : "<string>"
56122987 11399 },
44660702
DM
11400 "vmid" : {
11401 "description" : "The (unique) ID of the VM.",
11402 "format" : "pve-vmid",
8dd66e12
TL
11403 "maximum" : 999999999,
11404 "minimum" : 100,
4bd7df8b 11405 "type" : "integer",
8dd66e12 11406 "typetext" : "<integer> (100 - 999999999)"
56122987 11407 }
44660702 11408 }
56122987 11409 },
56122987
DM
11410 "permissions" : {
11411 "check" : [
11412 "perm",
11413 "/vms/{vmid}",
11414 [
44660702 11415 "VM.Audit"
56122987
DM
11416 ]
11417 ]
11418 },
56122987
DM
11419 "returns" : {
11420 "items" : {
11421 "properties" : {
44660702 11422 "cidr" : {
56122987
DM
11423 "type" : "string"
11424 },
44660702
DM
11425 "comment" : {
11426 "optional" : 1,
7aacca6f 11427 "type" : "string"
56122987
DM
11428 },
11429 "digest" : {
56122987 11430 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 11431 "maxLength" : 40,
56122987
DM
11432 "optional" : 0,
11433 "type" : "string"
11434 },
44660702 11435 "name" : {
56122987
DM
11436 "type" : "string"
11437 }
44660702
DM
11438 },
11439 "type" : "object"
56122987 11440 },
56122987
DM
11441 "links" : [
11442 {
11443 "href" : "{name}",
11444 "rel" : "child"
11445 }
44660702
DM
11446 ],
11447 "type" : "array"
11448 }
11449 },
11450 "POST" : {
e9cd3bd4 11451 "allowtoken" : 1,
44660702
DM
11452 "description" : "Create IP or Network Alias.",
11453 "method" : "POST",
11454 "name" : "create_alias",
56122987 11455 "parameters" : {
7aacca6f 11456 "additionalProperties" : 0,
56122987 11457 "properties" : {
44660702
DM
11458 "cidr" : {
11459 "description" : "Network/IP specification in CIDR format.",
11460 "format" : "IPorCIDR",
013dc89f
DM
11461 "type" : "string",
11462 "typetext" : "<string>"
44660702
DM
11463 },
11464 "comment" : {
11465 "optional" : 1,
013dc89f
DM
11466 "type" : "string",
11467 "typetext" : "<string>"
44660702
DM
11468 },
11469 "name" : {
11470 "description" : "Alias name.",
11471 "maxLength" : 64,
11472 "minLength" : 2,
11473 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11474 "type" : "string"
56122987
DM
11475 },
11476 "node" : {
7aacca6f 11477 "description" : "The cluster node name.",
44660702 11478 "format" : "pve-node",
013dc89f
DM
11479 "type" : "string",
11480 "typetext" : "<string>"
44660702
DM
11481 },
11482 "vmid" : {
11483 "description" : "The (unique) ID of the VM.",
11484 "format" : "pve-vmid",
8dd66e12
TL
11485 "maximum" : 999999999,
11486 "minimum" : 100,
4bd7df8b 11487 "type" : "integer",
8dd66e12 11488 "typetext" : "<integer> (100 - 999999999)"
56122987 11489 }
7aacca6f 11490 }
56122987 11491 },
44660702
DM
11492 "permissions" : {
11493 "check" : [
11494 "perm",
11495 "/vms/{vmid}",
11496 [
11497 "VM.Config.Network"
11498 ]
11499 ]
11500 },
11501 "protected" : 1,
11502 "returns" : {
11503 "type" : "null"
11504 }
56122987 11505 }
44660702
DM
11506 },
11507 "leaf" : 0,
11508 "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases",
11509 "text" : "aliases"
56122987
DM
11510 },
11511 {
56122987
DM
11512 "children" : [
11513 {
7aacca6f
DM
11514 "children" : [
11515 {
11516 "info" : {
11517 "DELETE" : {
e9cd3bd4 11518 "allowtoken" : 1,
44660702 11519 "description" : "Remove IP or Network from IPSet.",
7aacca6f 11520 "method" : "DELETE",
44660702 11521 "name" : "remove_ip",
7aacca6f 11522 "parameters" : {
44660702 11523 "additionalProperties" : 0,
7aacca6f 11524 "properties" : {
44660702
DM
11525 "cidr" : {
11526 "description" : "Network/IP specification in CIDR format.",
11527 "format" : "IPorCIDRorAlias",
013dc89f
DM
11528 "type" : "string",
11529 "typetext" : "<string>"
44660702
DM
11530 },
11531 "digest" : {
11532 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
11533 "maxLength" : 40,
11534 "optional" : 1,
013dc89f
DM
11535 "type" : "string",
11536 "typetext" : "<string>"
44660702 11537 },
7aacca6f 11538 "name" : {
7aacca6f 11539 "description" : "IP set name.",
44660702
DM
11540 "maxLength" : 64,
11541 "minLength" : 2,
7aacca6f 11542 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 11543 "type" : "string"
7aacca6f
DM
11544 },
11545 "node" : {
11546 "description" : "The cluster node name.",
44660702 11547 "format" : "pve-node",
013dc89f
DM
11548 "type" : "string",
11549 "typetext" : "<string>"
7aacca6f
DM
11550 },
11551 "vmid" : {
44660702 11552 "description" : "The (unique) ID of the VM.",
7aacca6f 11553 "format" : "pve-vmid",
8dd66e12
TL
11554 "maximum" : 999999999,
11555 "minimum" : 100,
4bd7df8b 11556 "type" : "integer",
8dd66e12 11557 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 11558 }
44660702 11559 }
7aacca6f 11560 },
7aacca6f
DM
11561 "permissions" : {
11562 "check" : [
11563 "perm",
11564 "/vms/{vmid}",
11565 [
11566 "VM.Config.Network"
11567 ]
11568 ]
11569 },
11570 "protected" : 1,
44660702
DM
11571 "returns" : {
11572 "type" : "null"
11573 }
56122987 11574 },
44660702 11575 "GET" : {
e9cd3bd4 11576 "allowtoken" : 1,
44660702
DM
11577 "description" : "Read IP or Network settings from IPSet.",
11578 "method" : "GET",
11579 "name" : "read_ip",
7aacca6f 11580 "parameters" : {
44660702 11581 "additionalProperties" : 0,
7aacca6f 11582 "properties" : {
7aacca6f 11583 "cidr" : {
44660702 11584 "description" : "Network/IP specification in CIDR format.",
7aacca6f 11585 "format" : "IPorCIDRorAlias",
013dc89f
DM
11586 "type" : "string",
11587 "typetext" : "<string>"
7aacca6f
DM
11588 },
11589 "name" : {
7aacca6f 11590 "description" : "IP set name.",
44660702 11591 "maxLength" : 64,
7aacca6f 11592 "minLength" : 2,
44660702
DM
11593 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11594 "type" : "string"
7aacca6f 11595 },
44660702
DM
11596 "node" : {
11597 "description" : "The cluster node name.",
11598 "format" : "pve-node",
013dc89f
DM
11599 "type" : "string",
11600 "typetext" : "<string>"
7aacca6f 11601 },
44660702
DM
11602 "vmid" : {
11603 "description" : "The (unique) ID of the VM.",
11604 "format" : "pve-vmid",
8dd66e12
TL
11605 "maximum" : 999999999,
11606 "minimum" : 100,
4bd7df8b 11607 "type" : "integer",
8dd66e12 11608 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 11609 }
44660702 11610 }
7aacca6f 11611 },
44660702
DM
11612 "permissions" : {
11613 "check" : [
11614 "perm",
11615 "/vms/{vmid}",
11616 [
11617 "VM.Audit"
11618 ]
11619 ]
11620 },
11621 "protected" : 1,
7aacca6f 11622 "returns" : {
44660702 11623 "type" : "object"
7aacca6f 11624 }
56122987 11625 },
44660702 11626 "PUT" : {
e9cd3bd4 11627 "allowtoken" : 1,
44660702
DM
11628 "description" : "Update IP or Network settings",
11629 "method" : "PUT",
11630 "name" : "update_ip",
7aacca6f
DM
11631 "parameters" : {
11632 "additionalProperties" : 0,
11633 "properties" : {
44660702
DM
11634 "cidr" : {
11635 "description" : "Network/IP specification in CIDR format.",
11636 "format" : "IPorCIDRorAlias",
013dc89f
DM
11637 "type" : "string",
11638 "typetext" : "<string>"
44660702
DM
11639 },
11640 "comment" : {
11641 "optional" : 1,
013dc89f
DM
11642 "type" : "string",
11643 "typetext" : "<string>"
44660702
DM
11644 },
11645 "digest" : {
11646 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
11647 "maxLength" : 40,
11648 "optional" : 1,
013dc89f
DM
11649 "type" : "string",
11650 "typetext" : "<string>"
44660702 11651 },
7aacca6f 11652 "name" : {
7aacca6f 11653 "description" : "IP set name.",
44660702 11654 "maxLength" : 64,
7aacca6f 11655 "minLength" : 2,
44660702
DM
11656 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11657 "type" : "string"
7aacca6f
DM
11658 },
11659 "node" : {
7aacca6f 11660 "description" : "The cluster node name.",
44660702 11661 "format" : "pve-node",
013dc89f
DM
11662 "type" : "string",
11663 "typetext" : "<string>"
7aacca6f 11664 },
44660702
DM
11665 "nomatch" : {
11666 "optional" : 1,
013dc89f
DM
11667 "type" : "boolean",
11668 "typetext" : "<boolean>"
7aacca6f
DM
11669 },
11670 "vmid" : {
11671 "description" : "The (unique) ID of the VM.",
44660702 11672 "format" : "pve-vmid",
8dd66e12
TL
11673 "maximum" : 999999999,
11674 "minimum" : 100,
4bd7df8b 11675 "type" : "integer",
8dd66e12 11676 "typetext" : "<integer> (100 - 999999999)"
7aacca6f
DM
11677 }
11678 }
11679 },
11680 "permissions" : {
11681 "check" : [
11682 "perm",
11683 "/vms/{vmid}",
11684 [
44660702 11685 "VM.Config.Network"
7aacca6f
DM
11686 ]
11687 ]
11688 },
7aacca6f 11689 "protected" : 1,
7aacca6f 11690 "returns" : {
44660702 11691 "type" : "null"
7aacca6f 11692 }
56122987 11693 }
7aacca6f 11694 },
7aacca6f 11695 "leaf" : 1,
44660702
DM
11696 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}",
11697 "text" : "{cidr}"
7aacca6f 11698 }
44660702
DM
11699 ],
11700 "info" : {
11701 "DELETE" : {
e9cd3bd4 11702 "allowtoken" : 1,
44660702
DM
11703 "description" : "Delete IPSet",
11704 "method" : "DELETE",
11705 "name" : "delete_ipset",
11706 "parameters" : {
11707 "additionalProperties" : 0,
11708 "properties" : {
81a3384d
TL
11709 "force" : {
11710 "description" : "Delete all members of the IPSet, if there are any.",
11711 "optional" : 1,
11712 "type" : "boolean",
11713 "typetext" : "<boolean>"
11714 },
44660702
DM
11715 "name" : {
11716 "description" : "IP set name.",
11717 "maxLength" : 64,
11718 "minLength" : 2,
11719 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11720 "type" : "string"
11721 },
11722 "node" : {
11723 "description" : "The cluster node name.",
11724 "format" : "pve-node",
013dc89f
DM
11725 "type" : "string",
11726 "typetext" : "<string>"
44660702
DM
11727 },
11728 "vmid" : {
11729 "description" : "The (unique) ID of the VM.",
11730 "format" : "pve-vmid",
8dd66e12
TL
11731 "maximum" : 999999999,
11732 "minimum" : 100,
4bd7df8b 11733 "type" : "integer",
8dd66e12 11734 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
11735 }
11736 }
7aacca6f 11737 },
44660702
DM
11738 "permissions" : {
11739 "check" : [
11740 "perm",
11741 "/vms/{vmid}",
11742 [
11743 "VM.Config.Network"
11744 ]
11745 ]
7aacca6f 11746 },
44660702
DM
11747 "protected" : 1,
11748 "returns" : {
11749 "type" : "null"
11750 }
11751 },
11752 "GET" : {
e9cd3bd4 11753 "allowtoken" : 1,
44660702
DM
11754 "description" : "List IPSet content",
11755 "method" : "GET",
11756 "name" : "get_ipset",
11757 "parameters" : {
11758 "additionalProperties" : 0,
11759 "properties" : {
11760 "name" : {
11761 "description" : "IP set name.",
11762 "maxLength" : 64,
11763 "minLength" : 2,
11764 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11765 "type" : "string"
11766 },
11767 "node" : {
11768 "description" : "The cluster node name.",
11769 "format" : "pve-node",
013dc89f
DM
11770 "type" : "string",
11771 "typetext" : "<string>"
44660702
DM
11772 },
11773 "vmid" : {
11774 "description" : "The (unique) ID of the VM.",
11775 "format" : "pve-vmid",
8dd66e12
TL
11776 "maximum" : 999999999,
11777 "minimum" : 100,
4bd7df8b 11778 "type" : "integer",
8dd66e12 11779 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
11780 }
11781 }
7aacca6f 11782 },
44660702
DM
11783 "permissions" : {
11784 "check" : [
11785 "perm",
11786 "/vms/{vmid}",
11787 [
11788 "VM.Audit"
11789 ]
11790 ]
7aacca6f 11791 },
44660702
DM
11792 "returns" : {
11793 "items" : {
11794 "properties" : {
11795 "cidr" : {
11796 "type" : "string"
11797 },
11798 "comment" : {
11799 "optional" : 1,
11800 "type" : "string"
11801 },
11802 "digest" : {
11803 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
11804 "maxLength" : 40,
11805 "optional" : 0,
11806 "type" : "string"
11807 },
11808 "nomatch" : {
11809 "optional" : 1,
11810 "type" : "boolean"
11811 }
11812 },
11813 "type" : "object"
11814 },
11815 "links" : [
11816 {
11817 "href" : "{cidr}",
11818 "rel" : "child"
11819 }
11820 ],
11821 "type" : "array"
56122987
DM
11822 }
11823 },
44660702 11824 "POST" : {
e9cd3bd4 11825 "allowtoken" : 1,
44660702
DM
11826 "description" : "Add IP or Network to IPSet.",
11827 "method" : "POST",
11828 "name" : "create_ip",
11829 "parameters" : {
11830 "additionalProperties" : 0,
11831 "properties" : {
11832 "cidr" : {
11833 "description" : "Network/IP specification in CIDR format.",
11834 "format" : "IPorCIDRorAlias",
013dc89f
DM
11835 "type" : "string",
11836 "typetext" : "<string>"
44660702
DM
11837 },
11838 "comment" : {
11839 "optional" : 1,
013dc89f
DM
11840 "type" : "string",
11841 "typetext" : "<string>"
44660702
DM
11842 },
11843 "name" : {
11844 "description" : "IP set name.",
11845 "maxLength" : 64,
11846 "minLength" : 2,
11847 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11848 "type" : "string"
11849 },
11850 "node" : {
11851 "description" : "The cluster node name.",
11852 "format" : "pve-node",
013dc89f
DM
11853 "type" : "string",
11854 "typetext" : "<string>"
44660702
DM
11855 },
11856 "nomatch" : {
11857 "optional" : 1,
013dc89f
DM
11858 "type" : "boolean",
11859 "typetext" : "<boolean>"
44660702
DM
11860 },
11861 "vmid" : {
11862 "description" : "The (unique) ID of the VM.",
11863 "format" : "pve-vmid",
8dd66e12
TL
11864 "maximum" : 999999999,
11865 "minimum" : 100,
4bd7df8b 11866 "type" : "integer",
8dd66e12 11867 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
11868 }
11869 }
11870 },
11871 "permissions" : {
11872 "check" : [
11873 "perm",
11874 "/vms/{vmid}",
11875 [
11876 "VM.Config.Network"
11877 ]
11878 ]
11879 },
11880 "protected" : 1,
11881 "returns" : {
11882 "type" : "null"
11883 }
11884 }
11885 },
11886 "leaf" : 0,
11887 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}",
11888 "text" : "{name}"
11889 }
11890 ],
11891 "info" : {
11892 "GET" : {
e9cd3bd4 11893 "allowtoken" : 1,
44660702
DM
11894 "description" : "List IPSets",
11895 "method" : "GET",
11896 "name" : "ipset_index",
11897 "parameters" : {
11898 "additionalProperties" : 0,
11899 "properties" : {
11900 "node" : {
11901 "description" : "The cluster node name.",
11902 "format" : "pve-node",
013dc89f
DM
11903 "type" : "string",
11904 "typetext" : "<string>"
44660702
DM
11905 },
11906 "vmid" : {
11907 "description" : "The (unique) ID of the VM.",
11908 "format" : "pve-vmid",
8dd66e12
TL
11909 "maximum" : 999999999,
11910 "minimum" : 100,
4bd7df8b 11911 "type" : "integer",
8dd66e12 11912 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
11913 }
11914 }
56122987
DM
11915 },
11916 "permissions" : {
11917 "check" : [
11918 "perm",
11919 "/vms/{vmid}",
11920 [
44660702 11921 "VM.Audit"
56122987
DM
11922 ]
11923 ]
11924 },
7aacca6f 11925 "returns" : {
7aacca6f
DM
11926 "items" : {
11927 "properties" : {
7aacca6f
DM
11928 "comment" : {
11929 "optional" : 1,
11930 "type" : "string"
11931 },
11932 "digest" : {
7aacca6f 11933 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702
DM
11934 "maxLength" : 40,
11935 "optional" : 0,
11936 "type" : "string"
11937 },
11938 "name" : {
11939 "description" : "IP set name.",
11940 "maxLength" : 64,
11941 "minLength" : 2,
11942 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11943 "type" : "string"
7aacca6f
DM
11944 }
11945 },
11946 "type" : "object"
11947 },
11948 "links" : [
11949 {
44660702
DM
11950 "href" : "{name}",
11951 "rel" : "child"
7aacca6f 11952 }
44660702
DM
11953 ],
11954 "type" : "array"
11955 }
11956 },
11957 "POST" : {
e9cd3bd4 11958 "allowtoken" : 1,
44660702
DM
11959 "description" : "Create new IPSet",
11960 "method" : "POST",
11961 "name" : "create_ipset",
56122987
DM
11962 "parameters" : {
11963 "additionalProperties" : 0,
11964 "properties" : {
44660702
DM
11965 "comment" : {
11966 "optional" : 1,
013dc89f
DM
11967 "type" : "string",
11968 "typetext" : "<string>"
56122987 11969 },
44660702
DM
11970 "digest" : {
11971 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
11972 "maxLength" : 40,
11973 "optional" : 1,
013dc89f
DM
11974 "type" : "string",
11975 "typetext" : "<string>"
44660702
DM
11976 },
11977 "name" : {
11978 "description" : "IP set name.",
11979 "maxLength" : 64,
11980 "minLength" : 2,
11981 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11982 "type" : "string"
11983 },
11984 "node" : {
11985 "description" : "The cluster node name.",
11986 "format" : "pve-node",
013dc89f
DM
11987 "type" : "string",
11988 "typetext" : "<string>"
44660702
DM
11989 },
11990 "rename" : {
11991 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
11992 "maxLength" : 64,
11993 "minLength" : 2,
11994 "optional" : 1,
11995 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11996 "type" : "string"
11997 },
11998 "vmid" : {
11999 "description" : "The (unique) ID of the VM.",
12000 "format" : "pve-vmid",
8dd66e12
TL
12001 "maximum" : 999999999,
12002 "minimum" : 100,
4bd7df8b 12003 "type" : "integer",
8dd66e12 12004 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
12005 }
12006 }
12007 },
7aacca6f
DM
12008 "permissions" : {
12009 "check" : [
12010 "perm",
12011 "/vms/{vmid}",
12012 [
12013 "VM.Config.Network"
12014 ]
12015 ]
12016 },
44660702 12017 "protected" : 1,
56122987 12018 "returns" : {
7aacca6f 12019 "type" : "null"
44660702
DM
12020 }
12021 }
12022 },
12023 "leaf" : 0,
12024 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset",
12025 "text" : "ipset"
12026 },
12027 {
12028 "info" : {
12029 "GET" : {
e9cd3bd4 12030 "allowtoken" : 1,
44660702
DM
12031 "description" : "Get VM firewall options.",
12032 "method" : "GET",
12033 "name" : "get_options",
7aacca6f
DM
12034 "parameters" : {
12035 "additionalProperties" : 0,
56122987 12036 "properties" : {
7aacca6f
DM
12037 "node" : {
12038 "description" : "The cluster node name.",
44660702 12039 "format" : "pve-node",
013dc89f
DM
12040 "type" : "string",
12041 "typetext" : "<string>"
7aacca6f 12042 },
44660702
DM
12043 "vmid" : {
12044 "description" : "The (unique) ID of the VM.",
12045 "format" : "pve-vmid",
8dd66e12
TL
12046 "maximum" : 999999999,
12047 "minimum" : 100,
4bd7df8b 12048 "type" : "integer",
8dd66e12 12049 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
12050 }
12051 }
12052 },
12053 "permissions" : {
12054 "check" : [
12055 "perm",
12056 "/vms/{vmid}",
12057 [
12058 "VM.Audit"
12059 ]
12060 ]
12061 },
12062 "proxyto" : "node",
12063 "returns" : {
12064 "properties" : {
12065 "dhcp" : {
5c1699e5 12066 "default" : 0,
44660702 12067 "description" : "Enable DHCP.",
56122987 12068 "optional" : 1,
44660702 12069 "type" : "boolean"
56122987 12070 },
44660702 12071 "enable" : {
5c1699e5 12072 "default" : 0,
44660702 12073 "description" : "Enable/disable firewall rules.",
7aacca6f 12074 "optional" : 1,
44660702 12075 "type" : "boolean"
56122987 12076 },
44660702
DM
12077 "ipfilter" : {
12078 "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 12079 "optional" : 1,
44660702 12080 "type" : "boolean"
7aacca6f 12081 },
56122987 12082 "log_level_in" : {
7aacca6f 12083 "description" : "Log level for incoming traffic.",
56122987
DM
12084 "enum" : [
12085 "emerg",
12086 "alert",
12087 "crit",
12088 "err",
12089 "warning",
12090 "notice",
12091 "info",
12092 "debug",
12093 "nolog"
12094 ],
56122987
DM
12095 "optional" : 1,
12096 "type" : "string"
12097 },
44660702
DM
12098 "log_level_out" : {
12099 "description" : "Log level for outgoing traffic.",
12100 "enum" : [
12101 "emerg",
12102 "alert",
12103 "crit",
12104 "err",
12105 "warning",
12106 "notice",
12107 "info",
12108 "debug",
12109 "nolog"
12110 ],
12111 "optional" : 1,
12112 "type" : "string"
12113 },
12114 "macfilter" : {
de786b48 12115 "default" : 1,
44660702 12116 "description" : "Enable/disable MAC address filter.",
56122987 12117 "optional" : 1,
7aacca6f 12118 "type" : "boolean"
56122987
DM
12119 },
12120 "ndp" : {
5c1699e5
TL
12121 "default" : 0,
12122 "description" : "Enable NDP (Neighbor Discovery Protocol).",
56122987 12123 "optional" : 1,
44660702 12124 "type" : "boolean"
56122987
DM
12125 },
12126 "policy_in" : {
56122987
DM
12127 "description" : "Input policy.",
12128 "enum" : [
12129 "ACCEPT",
12130 "REJECT",
12131 "DROP"
44660702
DM
12132 ],
12133 "optional" : 1,
12134 "type" : "string"
56122987 12135 },
44660702
DM
12136 "policy_out" : {
12137 "description" : "Output policy.",
12138 "enum" : [
12139 "ACCEPT",
12140 "REJECT",
12141 "DROP"
12142 ],
12143 "optional" : 1,
12144 "type" : "string"
12145 },
12146 "radv" : {
12147 "description" : "Allow sending Router Advertisement.",
12148 "optional" : 1,
12149 "type" : "boolean"
12150 }
12151 },
12152 "type" : "object"
12153 }
12154 },
12155 "PUT" : {
e9cd3bd4 12156 "allowtoken" : 1,
44660702
DM
12157 "description" : "Set Firewall options.",
12158 "method" : "PUT",
12159 "name" : "set_options",
12160 "parameters" : {
12161 "additionalProperties" : 0,
12162 "properties" : {
12163 "delete" : {
12164 "description" : "A list of settings you want to delete.",
12165 "format" : "pve-configid-list",
12166 "optional" : 1,
013dc89f
DM
12167 "type" : "string",
12168 "typetext" : "<string>"
44660702
DM
12169 },
12170 "dhcp" : {
5c1699e5 12171 "default" : 0,
44660702 12172 "description" : "Enable DHCP.",
7aacca6f 12173 "optional" : 1,
013dc89f
DM
12174 "type" : "boolean",
12175 "typetext" : "<boolean>"
7aacca6f
DM
12176 },
12177 "digest" : {
12178 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 12179 "maxLength" : 40,
7aacca6f 12180 "optional" : 1,
013dc89f
DM
12181 "type" : "string",
12182 "typetext" : "<string>"
7aacca6f
DM
12183 },
12184 "enable" : {
5c1699e5 12185 "default" : 0,
7aacca6f 12186 "description" : "Enable/disable firewall rules.",
56122987 12187 "optional" : 1,
013dc89f
DM
12188 "type" : "boolean",
12189 "typetext" : "<boolean>"
7aacca6f 12190 },
44660702
DM
12191 "ipfilter" : {
12192 "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.",
12193 "optional" : 1,
013dc89f
DM
12194 "type" : "boolean",
12195 "typetext" : "<boolean>"
44660702
DM
12196 },
12197 "log_level_in" : {
12198 "description" : "Log level for incoming traffic.",
56122987
DM
12199 "enum" : [
12200 "emerg",
12201 "alert",
12202 "crit",
12203 "err",
12204 "warning",
12205 "notice",
12206 "info",
12207 "debug",
12208 "nolog"
7aacca6f 12209 ],
7aacca6f 12210 "optional" : 1,
44660702 12211 "type" : "string"
7aacca6f 12212 },
44660702
DM
12213 "log_level_out" : {
12214 "description" : "Log level for outgoing traffic.",
56122987
DM
12215 "enum" : [
12216 "emerg",
12217 "alert",
12218 "crit",
12219 "err",
12220 "warning",
12221 "notice",
12222 "info",
12223 "debug",
12224 "nolog"
12225 ],
56122987 12226 "optional" : 1,
44660702 12227 "type" : "string"
56122987
DM
12228 },
12229 "macfilter" : {
de786b48 12230 "default" : 1,
56122987 12231 "description" : "Enable/disable MAC address filter.",
7aacca6f 12232 "optional" : 1,
013dc89f
DM
12233 "type" : "boolean",
12234 "typetext" : "<boolean>"
56122987 12235 },
44660702 12236 "ndp" : {
5c1699e5
TL
12237 "default" : 0,
12238 "description" : "Enable NDP (Neighbor Discovery Protocol).",
44660702 12239 "optional" : 1,
013dc89f
DM
12240 "type" : "boolean",
12241 "typetext" : "<boolean>"
44660702
DM
12242 },
12243 "node" : {
12244 "description" : "The cluster node name.",
12245 "format" : "pve-node",
013dc89f
DM
12246 "type" : "string",
12247 "typetext" : "<string>"
44660702 12248 },
56122987 12249 "policy_in" : {
44660702 12250 "description" : "Input policy.",
56122987
DM
12251 "enum" : [
12252 "ACCEPT",
12253 "REJECT",
12254 "DROP"
7aacca6f 12255 ],
56122987 12256 "optional" : 1,
7aacca6f 12257 "type" : "string"
56122987 12258 },
44660702
DM
12259 "policy_out" : {
12260 "description" : "Output policy.",
12261 "enum" : [
12262 "ACCEPT",
12263 "REJECT",
12264 "DROP"
12265 ],
56122987 12266 "optional" : 1,
44660702 12267 "type" : "string"
56122987 12268 },
44660702
DM
12269 "radv" : {
12270 "description" : "Allow sending Router Advertisement.",
56122987 12271 "optional" : 1,
013dc89f
DM
12272 "type" : "boolean",
12273 "typetext" : "<boolean>"
7aacca6f
DM
12274 },
12275 "vmid" : {
12276 "description" : "The (unique) ID of the VM.",
44660702 12277 "format" : "pve-vmid",
8dd66e12
TL
12278 "maximum" : 999999999,
12279 "minimum" : 100,
4bd7df8b 12280 "type" : "integer",
8dd66e12 12281 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
12282 }
12283 }
12284 },
56122987
DM
12285 "permissions" : {
12286 "check" : [
12287 "perm",
12288 "/vms/{vmid}",
12289 [
44660702 12290 "VM.Config.Network"
56122987
DM
12291 ]
12292 ]
7aacca6f 12293 },
44660702 12294 "protected" : 1,
7aacca6f 12295 "proxyto" : "node",
44660702
DM
12296 "returns" : {
12297 "type" : "null"
12298 }
56122987
DM
12299 }
12300 },
44660702 12301 "leaf" : 1,
7aacca6f 12302 "path" : "/nodes/{node}/qemu/{vmid}/firewall/options",
44660702 12303 "text" : "options"
56122987
DM
12304 },
12305 {
56122987
DM
12306 "info" : {
12307 "GET" : {
e9cd3bd4 12308 "allowtoken" : 1,
44660702
DM
12309 "description" : "Read firewall log",
12310 "method" : "GET",
12311 "name" : "log",
12312 "parameters" : {
12313 "additionalProperties" : 0,
12314 "properties" : {
12315 "limit" : {
12316 "minimum" : 0,
12317 "optional" : 1,
4bd7df8b 12318 "type" : "integer",
013dc89f 12319 "typetext" : "<integer> (0 - N)"
56122987 12320 },
44660702
DM
12321 "node" : {
12322 "description" : "The cluster node name.",
12323 "format" : "pve-node",
013dc89f
DM
12324 "type" : "string",
12325 "typetext" : "<string>"
44660702 12326 },
9d2e98ed
TL
12327 "since" : {
12328 "description" : "Display log since this UNIX epoch.",
12329 "minimum" : 0,
12330 "optional" : 1,
12331 "type" : "integer",
12332 "typetext" : "<integer> (0 - N)"
12333 },
44660702
DM
12334 "start" : {
12335 "minimum" : 0,
12336 "optional" : 1,
4bd7df8b 12337 "type" : "integer",
013dc89f 12338 "typetext" : "<integer> (0 - N)"
44660702 12339 },
9d2e98ed
TL
12340 "until" : {
12341 "description" : "Display log until this UNIX epoch.",
12342 "minimum" : 0,
12343 "optional" : 1,
12344 "type" : "integer",
12345 "typetext" : "<integer> (0 - N)"
12346 },
44660702
DM
12347 "vmid" : {
12348 "description" : "The (unique) ID of the VM.",
12349 "format" : "pve-vmid",
8dd66e12
TL
12350 "maximum" : 999999999,
12351 "minimum" : 100,
4bd7df8b 12352 "type" : "integer",
8dd66e12 12353 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
12354 }
12355 }
7aacca6f 12356 },
7aacca6f
DM
12357 "permissions" : {
12358 "check" : [
12359 "perm",
12360 "/vms/{vmid}",
12361 [
12362 "VM.Console"
12363 ]
12364 ]
56122987 12365 },
7aacca6f 12366 "protected" : 1,
44660702
DM
12367 "proxyto" : "node",
12368 "returns" : {
12369 "items" : {
12370 "properties" : {
12371 "n" : {
12372 "description" : "Line number",
12373 "type" : "integer"
12374 },
12375 "t" : {
12376 "description" : "Line text",
12377 "type" : "string"
12378 }
56122987 12379 },
44660702 12380 "type" : "object"
7aacca6f 12381 },
44660702 12382 "type" : "array"
7aacca6f
DM
12383 }
12384 }
12385 },
44660702 12386 "leaf" : 1,
7aacca6f 12387 "path" : "/nodes/{node}/qemu/{vmid}/firewall/log",
44660702 12388 "text" : "log"
7aacca6f
DM
12389 },
12390 {
7aacca6f
DM
12391 "info" : {
12392 "GET" : {
e9cd3bd4 12393 "allowtoken" : 1,
7aacca6f 12394 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
44660702
DM
12395 "method" : "GET",
12396 "name" : "refs",
56122987 12397 "parameters" : {
44660702 12398 "additionalProperties" : 0,
56122987
DM
12399 "properties" : {
12400 "node" : {
7aacca6f 12401 "description" : "The cluster node name.",
44660702 12402 "format" : "pve-node",
013dc89f
DM
12403 "type" : "string",
12404 "typetext" : "<string>"
56122987
DM
12405 },
12406 "type" : {
56122987
DM
12407 "description" : "Only list references of specified type.",
12408 "enum" : [
12409 "alias",
12410 "ipset"
7aacca6f 12411 ],
44660702
DM
12412 "optional" : 1,
12413 "type" : "string"
12414 },
12415 "vmid" : {
12416 "description" : "The (unique) ID of the VM.",
12417 "format" : "pve-vmid",
8dd66e12
TL
12418 "maximum" : 999999999,
12419 "minimum" : 100,
4bd7df8b 12420 "type" : "integer",
8dd66e12 12421 "typetext" : "<integer> (100 - 999999999)"
56122987 12422 }
44660702
DM
12423 }
12424 },
12425 "permissions" : {
12426 "check" : [
12427 "perm",
12428 "/vms/{vmid}",
12429 [
12430 "VM.Audit"
12431 ]
12432 ]
56122987
DM
12433 },
12434 "returns" : {
56122987
DM
12435 "items" : {
12436 "properties" : {
44660702
DM
12437 "comment" : {
12438 "optional" : 1,
56122987
DM
12439 "type" : "string"
12440 },
12441 "name" : {
12442 "type" : "string"
12443 },
44660702
DM
12444 "type" : {
12445 "enum" : [
12446 "alias",
12447 "ipset"
12448 ],
7aacca6f 12449 "type" : "string"
56122987
DM
12450 }
12451 },
12452 "type" : "object"
7aacca6f
DM
12453 },
12454 "type" : "array"
12455 }
56122987 12456 }
44660702
DM
12457 },
12458 "leaf" : 1,
12459 "path" : "/nodes/{node}/qemu/{vmid}/firewall/refs",
12460 "text" : "refs"
56122987
DM
12461 }
12462 ],
56122987
DM
12463 "info" : {
12464 "GET" : {
e9cd3bd4 12465 "allowtoken" : 1,
44660702 12466 "description" : "Directory index.",
56122987 12467 "method" : "GET",
44660702 12468 "name" : "index",
56122987 12469 "parameters" : {
44660702 12470 "additionalProperties" : 0,
56122987
DM
12471 "properties" : {
12472 "node" : {
12473 "description" : "The cluster node name.",
44660702 12474 "format" : "pve-node",
013dc89f
DM
12475 "type" : "string",
12476 "typetext" : "<string>"
56122987
DM
12477 },
12478 "vmid" : {
44660702 12479 "description" : "The (unique) ID of the VM.",
56122987 12480 "format" : "pve-vmid",
8dd66e12
TL
12481 "maximum" : 999999999,
12482 "minimum" : 100,
4bd7df8b 12483 "type" : "integer",
8dd66e12 12484 "typetext" : "<integer> (100 - 999999999)"
56122987 12485 }
44660702 12486 }
56122987 12487 },
56122987 12488 "permissions" : {
27a7acb2
DM
12489 "user" : "all"
12490 },
12491 "returns" : {
12492 "items" : {
12493 "properties" : {},
12494 "type" : "object"
12495 },
12496 "links" : [
12497 {
12498 "href" : "{name}",
12499 "rel" : "child"
12500 }
12501 ],
12502 "type" : "array"
12503 }
12504 }
12505 },
12506 "leaf" : 0,
12507 "path" : "/nodes/{node}/qemu/{vmid}/firewall",
12508 "text" : "firewall"
12509 },
12510 {
12511 "children" : [
12512 {
12513 "info" : {
12514 "POST" : {
e9cd3bd4 12515 "allowtoken" : 1,
27a7acb2
DM
12516 "description" : "Execute fsfreeze-freeze.",
12517 "method" : "POST",
12518 "name" : "fsfreeze-freeze",
12519 "parameters" : {
12520 "additionalProperties" : 0,
12521 "properties" : {
12522 "node" : {
12523 "description" : "The cluster node name.",
12524 "format" : "pve-node",
12525 "type" : "string",
12526 "typetext" : "<string>"
12527 },
12528 "vmid" : {
12529 "description" : "The (unique) ID of the VM.",
12530 "format" : "pve-vmid",
8dd66e12
TL
12531 "maximum" : 999999999,
12532 "minimum" : 100,
27a7acb2 12533 "type" : "integer",
8dd66e12 12534 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
12535 }
12536 }
12537 },
12538 "permissions" : {
12539 "check" : [
12540 "perm",
12541 "/vms/{vmid}",
12542 [
12543 "VM.Monitor"
12544 ]
12545 ]
12546 },
12547 "protected" : 1,
12548 "proxyto" : "node",
12549 "returns" : {
12550 "description" : "Returns an object with a single `result` property.",
12551 "type" : "object"
12552 }
12553 }
12554 },
12555 "leaf" : 1,
12556 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-freeze",
12557 "text" : "fsfreeze-freeze"
12558 },
12559 {
12560 "info" : {
12561 "POST" : {
e9cd3bd4 12562 "allowtoken" : 1,
27a7acb2
DM
12563 "description" : "Execute fsfreeze-status.",
12564 "method" : "POST",
12565 "name" : "fsfreeze-status",
12566 "parameters" : {
12567 "additionalProperties" : 0,
12568 "properties" : {
12569 "node" : {
12570 "description" : "The cluster node name.",
12571 "format" : "pve-node",
12572 "type" : "string",
12573 "typetext" : "<string>"
12574 },
12575 "vmid" : {
12576 "description" : "The (unique) ID of the VM.",
12577 "format" : "pve-vmid",
8dd66e12
TL
12578 "maximum" : 999999999,
12579 "minimum" : 100,
27a7acb2 12580 "type" : "integer",
8dd66e12 12581 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
12582 }
12583 }
12584 },
12585 "permissions" : {
12586 "check" : [
12587 "perm",
12588 "/vms/{vmid}",
12589 [
12590 "VM.Monitor"
12591 ]
12592 ]
12593 },
12594 "protected" : 1,
12595 "proxyto" : "node",
12596 "returns" : {
12597 "description" : "Returns an object with a single `result` property.",
12598 "type" : "object"
12599 }
12600 }
12601 },
12602 "leaf" : 1,
12603 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-status",
12604 "text" : "fsfreeze-status"
12605 },
12606 {
12607 "info" : {
12608 "POST" : {
e9cd3bd4 12609 "allowtoken" : 1,
27a7acb2
DM
12610 "description" : "Execute fsfreeze-thaw.",
12611 "method" : "POST",
12612 "name" : "fsfreeze-thaw",
12613 "parameters" : {
12614 "additionalProperties" : 0,
12615 "properties" : {
12616 "node" : {
12617 "description" : "The cluster node name.",
12618 "format" : "pve-node",
12619 "type" : "string",
12620 "typetext" : "<string>"
12621 },
12622 "vmid" : {
12623 "description" : "The (unique) ID of the VM.",
12624 "format" : "pve-vmid",
8dd66e12
TL
12625 "maximum" : 999999999,
12626 "minimum" : 100,
27a7acb2 12627 "type" : "integer",
8dd66e12 12628 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
12629 }
12630 }
12631 },
12632 "permissions" : {
12633 "check" : [
12634 "perm",
12635 "/vms/{vmid}",
12636 [
12637 "VM.Monitor"
12638 ]
12639 ]
12640 },
12641 "protected" : 1,
12642 "proxyto" : "node",
12643 "returns" : {
12644 "description" : "Returns an object with a single `result` property.",
12645 "type" : "object"
12646 }
12647 }
12648 },
12649 "leaf" : 1,
12650 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-thaw",
12651 "text" : "fsfreeze-thaw"
12652 },
12653 {
12654 "info" : {
12655 "POST" : {
e9cd3bd4 12656 "allowtoken" : 1,
27a7acb2
DM
12657 "description" : "Execute fstrim.",
12658 "method" : "POST",
12659 "name" : "fstrim",
12660 "parameters" : {
12661 "additionalProperties" : 0,
12662 "properties" : {
12663 "node" : {
12664 "description" : "The cluster node name.",
12665 "format" : "pve-node",
12666 "type" : "string",
12667 "typetext" : "<string>"
12668 },
12669 "vmid" : {
12670 "description" : "The (unique) ID of the VM.",
12671 "format" : "pve-vmid",
8dd66e12
TL
12672 "maximum" : 999999999,
12673 "minimum" : 100,
27a7acb2 12674 "type" : "integer",
8dd66e12 12675 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
12676 }
12677 }
12678 },
12679 "permissions" : {
12680 "check" : [
12681 "perm",
12682 "/vms/{vmid}",
12683 [
12684 "VM.Monitor"
12685 ]
12686 ]
12687 },
12688 "protected" : 1,
12689 "proxyto" : "node",
12690 "returns" : {
12691 "description" : "Returns an object with a single `result` property.",
12692 "type" : "object"
12693 }
12694 }
12695 },
12696 "leaf" : 1,
12697 "path" : "/nodes/{node}/qemu/{vmid}/agent/fstrim",
12698 "text" : "fstrim"
12699 },
12700 {
12701 "info" : {
12702 "GET" : {
e9cd3bd4 12703 "allowtoken" : 1,
27a7acb2
DM
12704 "description" : "Execute get-fsinfo.",
12705 "method" : "GET",
12706 "name" : "get-fsinfo",
12707 "parameters" : {
12708 "additionalProperties" : 0,
12709 "properties" : {
12710 "node" : {
12711 "description" : "The cluster node name.",
12712 "format" : "pve-node",
12713 "type" : "string",
12714 "typetext" : "<string>"
12715 },
12716 "vmid" : {
12717 "description" : "The (unique) ID of the VM.",
12718 "format" : "pve-vmid",
8dd66e12
TL
12719 "maximum" : 999999999,
12720 "minimum" : 100,
27a7acb2 12721 "type" : "integer",
8dd66e12 12722 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
12723 }
12724 }
12725 },
12726 "permissions" : {
12727 "check" : [
12728 "perm",
12729 "/vms/{vmid}",
12730 [
12731 "VM.Monitor"
12732 ]
12733 ]
12734 },
12735 "protected" : 1,
12736 "proxyto" : "node",
12737 "returns" : {
12738 "description" : "Returns an object with a single `result` property.",
12739 "type" : "object"
12740 }
12741 }
12742 },
12743 "leaf" : 1,
12744 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-fsinfo",
12745 "text" : "get-fsinfo"
12746 },
12747 {
12748 "info" : {
12749 "GET" : {
e9cd3bd4 12750 "allowtoken" : 1,
27a7acb2
DM
12751 "description" : "Execute get-host-name.",
12752 "method" : "GET",
12753 "name" : "get-host-name",
12754 "parameters" : {
12755 "additionalProperties" : 0,
12756 "properties" : {
12757 "node" : {
12758 "description" : "The cluster node name.",
12759 "format" : "pve-node",
12760 "type" : "string",
12761 "typetext" : "<string>"
12762 },
12763 "vmid" : {
12764 "description" : "The (unique) ID of the VM.",
12765 "format" : "pve-vmid",
8dd66e12
TL
12766 "maximum" : 999999999,
12767 "minimum" : 100,
27a7acb2 12768 "type" : "integer",
8dd66e12 12769 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
12770 }
12771 }
12772 },
12773 "permissions" : {
12774 "check" : [
12775 "perm",
12776 "/vms/{vmid}",
12777 [
12778 "VM.Monitor"
12779 ]
12780 ]
12781 },
12782 "protected" : 1,
12783 "proxyto" : "node",
12784 "returns" : {
12785 "description" : "Returns an object with a single `result` property.",
12786 "type" : "object"
12787 }
12788 }
12789 },
12790 "leaf" : 1,
12791 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-host-name",
12792 "text" : "get-host-name"
12793 },
12794 {
12795 "info" : {
12796 "GET" : {
e9cd3bd4 12797 "allowtoken" : 1,
27a7acb2
DM
12798 "description" : "Execute get-memory-block-info.",
12799 "method" : "GET",
12800 "name" : "get-memory-block-info",
12801 "parameters" : {
12802 "additionalProperties" : 0,
12803 "properties" : {
12804 "node" : {
12805 "description" : "The cluster node name.",
12806 "format" : "pve-node",
12807 "type" : "string",
12808 "typetext" : "<string>"
12809 },
12810 "vmid" : {
12811 "description" : "The (unique) ID of the VM.",
12812 "format" : "pve-vmid",
8dd66e12
TL
12813 "maximum" : 999999999,
12814 "minimum" : 100,
27a7acb2 12815 "type" : "integer",
8dd66e12 12816 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
12817 }
12818 }
12819 },
12820 "permissions" : {
12821 "check" : [
12822 "perm",
12823 "/vms/{vmid}",
12824 [
12825 "VM.Monitor"
12826 ]
12827 ]
12828 },
12829 "protected" : 1,
12830 "proxyto" : "node",
12831 "returns" : {
12832 "description" : "Returns an object with a single `result` property.",
12833 "type" : "object"
12834 }
12835 }
12836 },
12837 "leaf" : 1,
12838 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-block-info",
12839 "text" : "get-memory-block-info"
12840 },
12841 {
12842 "info" : {
12843 "GET" : {
e9cd3bd4 12844 "allowtoken" : 1,
27a7acb2
DM
12845 "description" : "Execute get-memory-blocks.",
12846 "method" : "GET",
12847 "name" : "get-memory-blocks",
12848 "parameters" : {
12849 "additionalProperties" : 0,
12850 "properties" : {
12851 "node" : {
12852 "description" : "The cluster node name.",
12853 "format" : "pve-node",
12854 "type" : "string",
12855 "typetext" : "<string>"
12856 },
12857 "vmid" : {
12858 "description" : "The (unique) ID of the VM.",
12859 "format" : "pve-vmid",
8dd66e12
TL
12860 "maximum" : 999999999,
12861 "minimum" : 100,
27a7acb2 12862 "type" : "integer",
8dd66e12 12863 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
12864 }
12865 }
12866 },
12867 "permissions" : {
12868 "check" : [
12869 "perm",
12870 "/vms/{vmid}",
12871 [
12872 "VM.Monitor"
12873 ]
12874 ]
12875 },
12876 "protected" : 1,
12877 "proxyto" : "node",
12878 "returns" : {
12879 "description" : "Returns an object with a single `result` property.",
12880 "type" : "object"
12881 }
12882 }
12883 },
12884 "leaf" : 1,
12885 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-blocks",
12886 "text" : "get-memory-blocks"
12887 },
12888 {
12889 "info" : {
12890 "GET" : {
e9cd3bd4 12891 "allowtoken" : 1,
27a7acb2
DM
12892 "description" : "Execute get-osinfo.",
12893 "method" : "GET",
12894 "name" : "get-osinfo",
12895 "parameters" : {
12896 "additionalProperties" : 0,
12897 "properties" : {
12898 "node" : {
12899 "description" : "The cluster node name.",
12900 "format" : "pve-node",
12901 "type" : "string",
12902 "typetext" : "<string>"
12903 },
12904 "vmid" : {
12905 "description" : "The (unique) ID of the VM.",
12906 "format" : "pve-vmid",
8dd66e12
TL
12907 "maximum" : 999999999,
12908 "minimum" : 100,
27a7acb2 12909 "type" : "integer",
8dd66e12 12910 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
12911 }
12912 }
12913 },
12914 "permissions" : {
12915 "check" : [
12916 "perm",
12917 "/vms/{vmid}",
12918 [
12919 "VM.Monitor"
12920 ]
12921 ]
12922 },
12923 "protected" : 1,
12924 "proxyto" : "node",
12925 "returns" : {
12926 "description" : "Returns an object with a single `result` property.",
12927 "type" : "object"
12928 }
12929 }
12930 },
12931 "leaf" : 1,
12932 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-osinfo",
12933 "text" : "get-osinfo"
12934 },
12935 {
12936 "info" : {
12937 "GET" : {
e9cd3bd4 12938 "allowtoken" : 1,
27a7acb2
DM
12939 "description" : "Execute get-time.",
12940 "method" : "GET",
12941 "name" : "get-time",
12942 "parameters" : {
12943 "additionalProperties" : 0,
12944 "properties" : {
12945 "node" : {
12946 "description" : "The cluster node name.",
12947 "format" : "pve-node",
12948 "type" : "string",
12949 "typetext" : "<string>"
12950 },
12951 "vmid" : {
12952 "description" : "The (unique) ID of the VM.",
12953 "format" : "pve-vmid",
8dd66e12
TL
12954 "maximum" : 999999999,
12955 "minimum" : 100,
27a7acb2 12956 "type" : "integer",
8dd66e12 12957 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
12958 }
12959 }
12960 },
12961 "permissions" : {
12962 "check" : [
12963 "perm",
12964 "/vms/{vmid}",
12965 [
12966 "VM.Monitor"
12967 ]
12968 ]
12969 },
12970 "protected" : 1,
12971 "proxyto" : "node",
12972 "returns" : {
12973 "description" : "Returns an object with a single `result` property.",
12974 "type" : "object"
12975 }
12976 }
12977 },
12978 "leaf" : 1,
12979 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-time",
12980 "text" : "get-time"
12981 },
12982 {
12983 "info" : {
12984 "GET" : {
e9cd3bd4 12985 "allowtoken" : 1,
27a7acb2
DM
12986 "description" : "Execute get-timezone.",
12987 "method" : "GET",
12988 "name" : "get-timezone",
12989 "parameters" : {
12990 "additionalProperties" : 0,
12991 "properties" : {
12992 "node" : {
12993 "description" : "The cluster node name.",
12994 "format" : "pve-node",
12995 "type" : "string",
12996 "typetext" : "<string>"
12997 },
12998 "vmid" : {
12999 "description" : "The (unique) ID of the VM.",
13000 "format" : "pve-vmid",
8dd66e12
TL
13001 "maximum" : 999999999,
13002 "minimum" : 100,
27a7acb2 13003 "type" : "integer",
8dd66e12 13004 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
13005 }
13006 }
13007 },
13008 "permissions" : {
13009 "check" : [
13010 "perm",
13011 "/vms/{vmid}",
13012 [
13013 "VM.Monitor"
13014 ]
13015 ]
13016 },
13017 "protected" : 1,
13018 "proxyto" : "node",
13019 "returns" : {
13020 "description" : "Returns an object with a single `result` property.",
13021 "type" : "object"
13022 }
13023 }
13024 },
13025 "leaf" : 1,
13026 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-timezone",
13027 "text" : "get-timezone"
13028 },
13029 {
13030 "info" : {
13031 "GET" : {
e9cd3bd4 13032 "allowtoken" : 1,
27a7acb2
DM
13033 "description" : "Execute get-users.",
13034 "method" : "GET",
13035 "name" : "get-users",
13036 "parameters" : {
13037 "additionalProperties" : 0,
13038 "properties" : {
13039 "node" : {
13040 "description" : "The cluster node name.",
13041 "format" : "pve-node",
13042 "type" : "string",
13043 "typetext" : "<string>"
13044 },
13045 "vmid" : {
13046 "description" : "The (unique) ID of the VM.",
13047 "format" : "pve-vmid",
8dd66e12
TL
13048 "maximum" : 999999999,
13049 "minimum" : 100,
27a7acb2 13050 "type" : "integer",
8dd66e12 13051 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
13052 }
13053 }
13054 },
13055 "permissions" : {
13056 "check" : [
13057 "perm",
13058 "/vms/{vmid}",
13059 [
13060 "VM.Monitor"
13061 ]
13062 ]
13063 },
13064 "protected" : 1,
13065 "proxyto" : "node",
13066 "returns" : {
13067 "description" : "Returns an object with a single `result` property.",
13068 "type" : "object"
13069 }
13070 }
13071 },
13072 "leaf" : 1,
13073 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-users",
13074 "text" : "get-users"
13075 },
13076 {
13077 "info" : {
13078 "GET" : {
e9cd3bd4 13079 "allowtoken" : 1,
27a7acb2
DM
13080 "description" : "Execute get-vcpus.",
13081 "method" : "GET",
13082 "name" : "get-vcpus",
13083 "parameters" : {
13084 "additionalProperties" : 0,
13085 "properties" : {
13086 "node" : {
13087 "description" : "The cluster node name.",
13088 "format" : "pve-node",
13089 "type" : "string",
13090 "typetext" : "<string>"
13091 },
13092 "vmid" : {
13093 "description" : "The (unique) ID of the VM.",
13094 "format" : "pve-vmid",
8dd66e12
TL
13095 "maximum" : 999999999,
13096 "minimum" : 100,
27a7acb2 13097 "type" : "integer",
8dd66e12 13098 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
13099 }
13100 }
13101 },
13102 "permissions" : {
13103 "check" : [
13104 "perm",
13105 "/vms/{vmid}",
13106 [
13107 "VM.Monitor"
13108 ]
13109 ]
13110 },
13111 "protected" : 1,
13112 "proxyto" : "node",
13113 "returns" : {
13114 "description" : "Returns an object with a single `result` property.",
13115 "type" : "object"
13116 }
13117 }
13118 },
13119 "leaf" : 1,
13120 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-vcpus",
13121 "text" : "get-vcpus"
13122 },
13123 {
13124 "info" : {
13125 "GET" : {
e9cd3bd4 13126 "allowtoken" : 1,
27a7acb2
DM
13127 "description" : "Execute info.",
13128 "method" : "GET",
13129 "name" : "info",
13130 "parameters" : {
13131 "additionalProperties" : 0,
13132 "properties" : {
13133 "node" : {
13134 "description" : "The cluster node name.",
13135 "format" : "pve-node",
13136 "type" : "string",
13137 "typetext" : "<string>"
13138 },
13139 "vmid" : {
13140 "description" : "The (unique) ID of the VM.",
13141 "format" : "pve-vmid",
8dd66e12
TL
13142 "maximum" : 999999999,
13143 "minimum" : 100,
27a7acb2 13144 "type" : "integer",
8dd66e12 13145 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
13146 }
13147 }
13148 },
13149 "permissions" : {
13150 "check" : [
13151 "perm",
13152 "/vms/{vmid}",
13153 [
13154 "VM.Monitor"
13155 ]
13156 ]
13157 },
13158 "protected" : 1,
13159 "proxyto" : "node",
13160 "returns" : {
13161 "description" : "Returns an object with a single `result` property.",
13162 "type" : "object"
13163 }
13164 }
13165 },
13166 "leaf" : 1,
13167 "path" : "/nodes/{node}/qemu/{vmid}/agent/info",
13168 "text" : "info"
13169 },
13170 {
13171 "info" : {
13172 "GET" : {
e9cd3bd4 13173 "allowtoken" : 1,
27a7acb2
DM
13174 "description" : "Execute network-get-interfaces.",
13175 "method" : "GET",
13176 "name" : "network-get-interfaces",
13177 "parameters" : {
13178 "additionalProperties" : 0,
13179 "properties" : {
13180 "node" : {
13181 "description" : "The cluster node name.",
13182 "format" : "pve-node",
13183 "type" : "string",
13184 "typetext" : "<string>"
13185 },
13186 "vmid" : {
13187 "description" : "The (unique) ID of the VM.",
13188 "format" : "pve-vmid",
8dd66e12
TL
13189 "maximum" : 999999999,
13190 "minimum" : 100,
27a7acb2 13191 "type" : "integer",
8dd66e12 13192 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
13193 }
13194 }
13195 },
13196 "permissions" : {
13197 "check" : [
13198 "perm",
13199 "/vms/{vmid}",
13200 [
13201 "VM.Monitor"
13202 ]
13203 ]
13204 },
13205 "protected" : 1,
13206 "proxyto" : "node",
13207 "returns" : {
13208 "description" : "Returns an object with a single `result` property.",
13209 "type" : "object"
13210 }
13211 }
13212 },
13213 "leaf" : 1,
13214 "path" : "/nodes/{node}/qemu/{vmid}/agent/network-get-interfaces",
13215 "text" : "network-get-interfaces"
13216 },
13217 {
13218 "info" : {
13219 "POST" : {
e9cd3bd4 13220 "allowtoken" : 1,
27a7acb2
DM
13221 "description" : "Execute ping.",
13222 "method" : "POST",
13223 "name" : "ping",
13224 "parameters" : {
13225 "additionalProperties" : 0,
13226 "properties" : {
13227 "node" : {
13228 "description" : "The cluster node name.",
13229 "format" : "pve-node",
13230 "type" : "string",
13231 "typetext" : "<string>"
13232 },
13233 "vmid" : {
13234 "description" : "The (unique) ID of the VM.",
13235 "format" : "pve-vmid",
8dd66e12
TL
13236 "maximum" : 999999999,
13237 "minimum" : 100,
27a7acb2 13238 "type" : "integer",
8dd66e12 13239 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
13240 }
13241 }
13242 },
13243 "permissions" : {
13244 "check" : [
13245 "perm",
13246 "/vms/{vmid}",
13247 [
13248 "VM.Monitor"
13249 ]
13250 ]
13251 },
13252 "protected" : 1,
13253 "proxyto" : "node",
13254 "returns" : {
13255 "description" : "Returns an object with a single `result` property.",
13256 "type" : "object"
13257 }
13258 }
13259 },
13260 "leaf" : 1,
13261 "path" : "/nodes/{node}/qemu/{vmid}/agent/ping",
13262 "text" : "ping"
13263 },
13264 {
13265 "info" : {
13266 "POST" : {
e9cd3bd4 13267 "allowtoken" : 1,
27a7acb2
DM
13268 "description" : "Execute shutdown.",
13269 "method" : "POST",
13270 "name" : "shutdown",
13271 "parameters" : {
13272 "additionalProperties" : 0,
13273 "properties" : {
13274 "node" : {
13275 "description" : "The cluster node name.",
13276 "format" : "pve-node",
13277 "type" : "string",
13278 "typetext" : "<string>"
13279 },
13280 "vmid" : {
13281 "description" : "The (unique) ID of the VM.",
13282 "format" : "pve-vmid",
8dd66e12
TL
13283 "maximum" : 999999999,
13284 "minimum" : 100,
27a7acb2 13285 "type" : "integer",
8dd66e12 13286 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
13287 }
13288 }
13289 },
13290 "permissions" : {
13291 "check" : [
13292 "perm",
13293 "/vms/{vmid}",
13294 [
13295 "VM.Monitor"
13296 ]
13297 ]
13298 },
13299 "protected" : 1,
13300 "proxyto" : "node",
13301 "returns" : {
13302 "description" : "Returns an object with a single `result` property.",
13303 "type" : "object"
13304 }
13305 }
13306 },
13307 "leaf" : 1,
13308 "path" : "/nodes/{node}/qemu/{vmid}/agent/shutdown",
13309 "text" : "shutdown"
13310 },
13311 {
13312 "info" : {
13313 "POST" : {
e9cd3bd4 13314 "allowtoken" : 1,
27a7acb2
DM
13315 "description" : "Execute suspend-disk.",
13316 "method" : "POST",
13317 "name" : "suspend-disk",
13318 "parameters" : {
13319 "additionalProperties" : 0,
13320 "properties" : {
13321 "node" : {
13322 "description" : "The cluster node name.",
13323 "format" : "pve-node",
13324 "type" : "string",
13325 "typetext" : "<string>"
13326 },
13327 "vmid" : {
13328 "description" : "The (unique) ID of the VM.",
13329 "format" : "pve-vmid",
8dd66e12
TL
13330 "maximum" : 999999999,
13331 "minimum" : 100,
27a7acb2 13332 "type" : "integer",
8dd66e12 13333 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
13334 }
13335 }
13336 },
13337 "permissions" : {
13338 "check" : [
13339 "perm",
13340 "/vms/{vmid}",
13341 [
13342 "VM.Monitor"
13343 ]
13344 ]
13345 },
13346 "protected" : 1,
13347 "proxyto" : "node",
13348 "returns" : {
13349 "description" : "Returns an object with a single `result` property.",
13350 "type" : "object"
13351 }
13352 }
13353 },
13354 "leaf" : 1,
13355 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-disk",
13356 "text" : "suspend-disk"
13357 },
13358 {
13359 "info" : {
13360 "POST" : {
e9cd3bd4 13361 "allowtoken" : 1,
27a7acb2
DM
13362 "description" : "Execute suspend-hybrid.",
13363 "method" : "POST",
13364 "name" : "suspend-hybrid",
13365 "parameters" : {
13366 "additionalProperties" : 0,
13367 "properties" : {
13368 "node" : {
13369 "description" : "The cluster node name.",
13370 "format" : "pve-node",
13371 "type" : "string",
13372 "typetext" : "<string>"
13373 },
13374 "vmid" : {
13375 "description" : "The (unique) ID of the VM.",
13376 "format" : "pve-vmid",
8dd66e12
TL
13377 "maximum" : 999999999,
13378 "minimum" : 100,
27a7acb2 13379 "type" : "integer",
8dd66e12 13380 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
13381 }
13382 }
13383 },
13384 "permissions" : {
13385 "check" : [
13386 "perm",
13387 "/vms/{vmid}",
13388 [
13389 "VM.Monitor"
13390 ]
13391 ]
13392 },
13393 "protected" : 1,
13394 "proxyto" : "node",
13395 "returns" : {
13396 "description" : "Returns an object with a single `result` property.",
13397 "type" : "object"
13398 }
13399 }
13400 },
13401 "leaf" : 1,
13402 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-hybrid",
13403 "text" : "suspend-hybrid"
13404 },
13405 {
13406 "info" : {
13407 "POST" : {
e9cd3bd4 13408 "allowtoken" : 1,
27a7acb2
DM
13409 "description" : "Execute suspend-ram.",
13410 "method" : "POST",
13411 "name" : "suspend-ram",
13412 "parameters" : {
13413 "additionalProperties" : 0,
13414 "properties" : {
13415 "node" : {
13416 "description" : "The cluster node name.",
13417 "format" : "pve-node",
13418 "type" : "string",
13419 "typetext" : "<string>"
13420 },
13421 "vmid" : {
13422 "description" : "The (unique) ID of the VM.",
13423 "format" : "pve-vmid",
8dd66e12
TL
13424 "maximum" : 999999999,
13425 "minimum" : 100,
27a7acb2 13426 "type" : "integer",
8dd66e12 13427 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
13428 }
13429 }
13430 },
13431 "permissions" : {
13432 "check" : [
13433 "perm",
13434 "/vms/{vmid}",
13435 [
13436 "VM.Monitor"
13437 ]
13438 ]
13439 },
13440 "protected" : 1,
13441 "proxyto" : "node",
13442 "returns" : {
13443 "description" : "Returns an object with a single `result` property.",
13444 "type" : "object"
13445 }
13446 }
13447 },
13448 "leaf" : 1,
13449 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-ram",
13450 "text" : "suspend-ram"
4d47f125
TL
13451 },
13452 {
13453 "info" : {
13454 "POST" : {
e9cd3bd4 13455 "allowtoken" : 1,
4d47f125
TL
13456 "description" : "Sets the password for the given user to the given password",
13457 "method" : "POST",
13458 "name" : "set-user-password",
13459 "parameters" : {
13460 "additionalProperties" : 0,
13461 "properties" : {
13462 "crypted" : {
13463 "default" : 0,
13464 "description" : "set to 1 if the password has already been passed through crypt()",
13465 "optional" : 1,
13466 "type" : "boolean",
13467 "typetext" : "<boolean>"
13468 },
13469 "node" : {
13470 "description" : "The cluster node name.",
13471 "format" : "pve-node",
13472 "type" : "string",
13473 "typetext" : "<string>"
13474 },
13475 "password" : {
13476 "description" : "The new password.",
1c532546 13477 "maxLength" : 1024,
4d47f125
TL
13478 "minLength" : 5,
13479 "type" : "string",
13480 "typetext" : "<string>"
13481 },
13482 "username" : {
13483 "description" : "The user to set the password for.",
13484 "type" : "string",
13485 "typetext" : "<string>"
13486 },
13487 "vmid" : {
13488 "description" : "The (unique) ID of the VM.",
13489 "format" : "pve-vmid",
8dd66e12
TL
13490 "maximum" : 999999999,
13491 "minimum" : 100,
4d47f125 13492 "type" : "integer",
8dd66e12 13493 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
13494 }
13495 }
27a7acb2 13496 },
4d47f125
TL
13497 "permissions" : {
13498 "check" : [
13499 "perm",
13500 "/vms/{vmid}",
13501 [
13502 "VM.Monitor"
13503 ]
13504 ]
13505 },
13506 "protected" : 1,
13507 "proxyto" : "node",
13508 "returns" : {
13509 "description" : "Returns an object with a single `result` property.",
13510 "type" : "object"
27a7acb2
DM
13511 }
13512 }
13513 },
4d47f125
TL
13514 "leaf" : 1,
13515 "path" : "/nodes/{node}/qemu/{vmid}/agent/set-user-password",
13516 "text" : "set-user-password"
27a7acb2 13517 },
4d47f125
TL
13518 {
13519 "info" : {
13520 "POST" : {
e9cd3bd4 13521 "allowtoken" : 1,
4d47f125
TL
13522 "description" : "Executes the given command in the vm via the guest-agent and returns an object with the pid.",
13523 "method" : "POST",
13524 "name" : "exec",
13525 "parameters" : {
13526 "additionalProperties" : 0,
13527 "properties" : {
13528 "command" : {
4a407cfd
TL
13529 "description" : "The command as a list of program + arguments.",
13530 "items" : {
13531 "description" : "A single part of the program + arguments.",
13532 "format" : "string"
13533 },
13534 "type" : "array",
13535 "typetext" : "<array>"
c5aa7e14
TL
13536 },
13537 "input-data" : {
13538 "description" : "Data to pass as 'input-data' to the guest. Usually treated as STDIN to 'command'.",
13539 "maxLength" : 65536,
13540 "optional" : 1,
4d47f125
TL
13541 "type" : "string",
13542 "typetext" : "<string>"
13543 },
13544 "node" : {
13545 "description" : "The cluster node name.",
13546 "format" : "pve-node",
13547 "type" : "string",
13548 "typetext" : "<string>"
13549 },
13550 "vmid" : {
13551 "description" : "The (unique) ID of the VM.",
13552 "format" : "pve-vmid",
8dd66e12
TL
13553 "maximum" : 999999999,
13554 "minimum" : 100,
4d47f125 13555 "type" : "integer",
8dd66e12 13556 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
13557 }
13558 }
27a7acb2 13559 },
4d47f125
TL
13560 "permissions" : {
13561 "check" : [
13562 "perm",
13563 "/vms/{vmid}",
13564 [
13565 "VM.Monitor"
13566 ]
13567 ]
27a7acb2 13568 },
4d47f125
TL
13569 "protected" : 1,
13570 "proxyto" : "node",
13571 "returns" : {
13572 "properties" : {
13573 "pid" : {
13574 "description" : "The PID of the process started by the guest-agent.",
13575 "type" : "integer"
13576 }
13577 },
13578 "type" : "object"
27a7acb2
DM
13579 }
13580 }
13581 },
4d47f125
TL
13582 "leaf" : 1,
13583 "path" : "/nodes/{node}/qemu/{vmid}/agent/exec",
13584 "text" : "exec"
13585 },
13586 {
13587 "info" : {
13588 "GET" : {
e9cd3bd4 13589 "allowtoken" : 1,
4d47f125
TL
13590 "description" : "Gets the status of the given pid started by the guest-agent",
13591 "method" : "GET",
13592 "name" : "exec-status",
13593 "parameters" : {
13594 "additionalProperties" : 0,
13595 "properties" : {
13596 "node" : {
13597 "description" : "The cluster node name.",
13598 "format" : "pve-node",
13599 "type" : "string",
13600 "typetext" : "<string>"
13601 },
13602 "pid" : {
13603 "description" : "The PID to query",
13604 "type" : "integer",
13605 "typetext" : "<integer>"
13606 },
13607 "vmid" : {
13608 "description" : "The (unique) ID of the VM.",
13609 "format" : "pve-vmid",
8dd66e12
TL
13610 "maximum" : 999999999,
13611 "minimum" : 100,
4d47f125 13612 "type" : "integer",
8dd66e12 13613 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
13614 }
13615 }
56122987 13616 },
4d47f125
TL
13617 "permissions" : {
13618 "check" : [
13619 "perm",
13620 "/vms/{vmid}",
13621 [
13622 "VM.Monitor"
13623 ]
13624 ]
56122987 13625 },
4d47f125
TL
13626 "protected" : 1,
13627 "proxyto" : "node",
13628 "returns" : {
13629 "properties" : {
13630 "err-data" : {
13631 "description" : "stderr of the process",
13632 "optional" : 1,
13633 "type" : "string"
13634 },
13635 "err-truncated" : {
13636 "description" : "true if stderr was not fully captured",
13637 "optional" : 1,
13638 "type" : "boolean"
13639 },
13640 "exitcode" : {
13641 "description" : "process exit code if it was normally terminated.",
13642 "optional" : 1,
13643 "type" : "integer"
13644 },
13645 "exited" : {
13646 "description" : "Tells if the given command has exited yet.",
13647 "type" : "boolean"
13648 },
13649 "out-data" : {
13650 "description" : "stdout of the process",
13651 "optional" : 1,
13652 "type" : "string"
13653 },
13654 "out-truncated" : {
13655 "description" : "true if stdout was not fully captured",
13656 "optional" : 1,
13657 "type" : "boolean"
13658 },
13659 "signal" : {
13660 "description" : "signal number or exception code if the process was abnormally terminated.",
13661 "optional" : 1,
13662 "type" : "integer"
13663 }
13664 },
13665 "type" : "object"
56122987
DM
13666 }
13667 }
13668 },
4d47f125
TL
13669 "leaf" : 1,
13670 "path" : "/nodes/{node}/qemu/{vmid}/agent/exec-status",
13671 "text" : "exec-status"
13672 },
13673 {
13674 "info" : {
13675 "GET" : {
e9cd3bd4 13676 "allowtoken" : 1,
4d47f125
TL
13677 "description" : "Reads the given file via guest agent. Is limited to 16777216 bytes.",
13678 "method" : "GET",
13679 "name" : "file-read",
13680 "parameters" : {
13681 "additionalProperties" : 0,
13682 "properties" : {
13683 "file" : {
13684 "description" : "The path to the file",
13685 "type" : "string",
13686 "typetext" : "<string>"
13687 },
13688 "node" : {
13689 "description" : "The cluster node name.",
13690 "format" : "pve-node",
13691 "type" : "string",
13692 "typetext" : "<string>"
13693 },
13694 "vmid" : {
13695 "description" : "The (unique) ID of the VM.",
13696 "format" : "pve-vmid",
8dd66e12
TL
13697 "maximum" : 999999999,
13698 "minimum" : 100,
4d47f125 13699 "type" : "integer",
8dd66e12 13700 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
13701 }
13702 }
13703 },
13704 "permissions" : {
13705 "check" : [
13706 "perm",
13707 "/vms/{vmid}",
13708 [
13709 "VM.Monitor"
13710 ]
13711 ]
13712 },
13713 "protected" : 1,
13714 "proxyto" : "node",
13715 "returns" : {
13716 "description" : "Returns an object with a `content` property.",
13717 "properties" : {
13718 "content" : {
13719 "description" : "The content of the file, maximum 16777216",
13720 "type" : "string"
13721 },
13722 "truncated" : {
13723 "description" : "If set to 1, the output is truncated and not complete",
13724 "optional" : 1,
13725 "type" : "boolean"
13726 }
13727 },
13728 "type" : "object"
13729 }
13730 }
56122987 13731 },
4d47f125
TL
13732 "leaf" : 1,
13733 "path" : "/nodes/{node}/qemu/{vmid}/agent/file-read",
13734 "text" : "file-read"
13735 },
13736 {
13737 "info" : {
13738 "POST" : {
e9cd3bd4 13739 "allowtoken" : 1,
4d47f125
TL
13740 "description" : "Writes the given file via guest agent.",
13741 "method" : "POST",
13742 "name" : "file-write",
13743 "parameters" : {
13744 "additionalProperties" : 0,
13745 "properties" : {
13746 "content" : {
13747 "description" : "The content to write into the file.",
13748 "maxLength" : 61440,
13749 "type" : "string",
13750 "typetext" : "<string>"
13751 },
7af2edf9
TL
13752 "encode" : {
13753 "default" : 1,
13754 "description" : "If set, the content will be encoded as base64 (required by QEMU).Otherwise the content needs to be encoded beforehand - defaults to true.",
13755 "optional" : 1,
13756 "type" : "boolean",
13757 "typetext" : "<boolean>"
13758 },
4d47f125
TL
13759 "file" : {
13760 "description" : "The path to the file.",
13761 "type" : "string",
13762 "typetext" : "<string>"
13763 },
13764 "node" : {
13765 "description" : "The cluster node name.",
13766 "format" : "pve-node",
13767 "type" : "string",
13768 "typetext" : "<string>"
13769 },
13770 "vmid" : {
13771 "description" : "The (unique) ID of the VM.",
13772 "format" : "pve-vmid",
8dd66e12
TL
13773 "maximum" : 999999999,
13774 "minimum" : 100,
4d47f125 13775 "type" : "integer",
8dd66e12 13776 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
13777 }
13778 }
13779 },
13780 "permissions" : {
13781 "check" : [
13782 "perm",
13783 "/vms/{vmid}",
13784 [
13785 "VM.Monitor"
13786 ]
13787 ]
13788 },
13789 "protected" : 1,
13790 "proxyto" : "node",
13791 "returns" : {
13792 "type" : "null"
7aacca6f 13793 }
4d47f125
TL
13794 }
13795 },
13796 "leaf" : 1,
13797 "path" : "/nodes/{node}/qemu/{vmid}/agent/file-write",
13798 "text" : "file-write"
56122987 13799 }
4d47f125 13800 ],
7aacca6f 13801 "info" : {
56122987 13802 "GET" : {
e9cd3bd4 13803 "allowtoken" : 1,
9d2e98ed 13804 "description" : "QEMU Guest Agent command index.",
44660702 13805 "method" : "GET",
4d47f125 13806 "name" : "index",
56122987 13807 "parameters" : {
4d47f125 13808 "additionalProperties" : 1,
56122987
DM
13809 "properties" : {
13810 "node" : {
44660702 13811 "description" : "The cluster node name.",
56122987 13812 "format" : "pve-node",
013dc89f
DM
13813 "type" : "string",
13814 "typetext" : "<string>"
56122987 13815 },
7aacca6f 13816 "vmid" : {
7aacca6f
DM
13817 "description" : "The (unique) ID of the VM.",
13818 "format" : "pve-vmid",
8dd66e12
TL
13819 "maximum" : 999999999,
13820 "minimum" : 100,
4bd7df8b 13821 "type" : "integer",
8dd66e12 13822 "typetext" : "<integer> (100 - 999999999)"
56122987 13823 }
44660702 13824 }
56122987 13825 },
56122987 13826 "permissions" : {
4d47f125 13827 "user" : "all"
56122987 13828 },
4d47f125 13829 "proxyto" : "node",
7aacca6f 13830 "returns" : {
9d2e98ed 13831 "description" : "Returns the list of QEMU Guest Agent commands",
7aacca6f 13832 "items" : {
44660702
DM
13833 "properties" : {},
13834 "type" : "object"
13835 },
4d47f125
TL
13836 "links" : [
13837 {
13838 "href" : "{name}",
13839 "rel" : "child"
13840 }
13841 ],
44660702 13842 "type" : "array"
7aacca6f 13843 }
4d47f125
TL
13844 },
13845 "POST" : {
e9cd3bd4 13846 "allowtoken" : 1,
9d2e98ed 13847 "description" : "Execute QEMU Guest Agent commands.",
4d47f125
TL
13848 "method" : "POST",
13849 "name" : "agent",
44660702
DM
13850 "parameters" : {
13851 "additionalProperties" : 0,
13852 "properties" : {
4d47f125
TL
13853 "command" : {
13854 "description" : "The QGA command.",
13855 "enum" : [
13856 "fsfreeze-freeze",
13857 "fsfreeze-status",
13858 "fsfreeze-thaw",
13859 "fstrim",
13860 "get-fsinfo",
13861 "get-host-name",
13862 "get-memory-block-info",
13863 "get-memory-blocks",
13864 "get-osinfo",
13865 "get-time",
13866 "get-timezone",
13867 "get-users",
13868 "get-vcpus",
13869 "info",
13870 "network-get-interfaces",
13871 "ping",
13872 "shutdown",
13873 "suspend-disk",
13874 "suspend-hybrid",
13875 "suspend-ram"
13876 ],
13877 "type" : "string"
13878 },
13879 "node" : {
13880 "description" : "The cluster node name.",
13881 "format" : "pve-node",
13882 "type" : "string",
13883 "typetext" : "<string>"
13884 },
13885 "vmid" : {
13886 "description" : "The (unique) ID of the VM.",
13887 "format" : "pve-vmid",
8dd66e12
TL
13888 "maximum" : 999999999,
13889 "minimum" : 100,
4d47f125 13890 "type" : "integer",
8dd66e12 13891 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
13892 }
13893 }
13894 },
13895 "permissions" : {
13896 "check" : [
13897 "perm",
13898 "/vms/{vmid}",
13899 [
13900 "VM.Monitor"
13901 ]
13902 ]
13903 },
13904 "protected" : 1,
13905 "proxyto" : "node",
13906 "returns" : {
13907 "description" : "Returns an object with a single `result` property.",
13908 "type" : "object"
13909 }
13910 }
13911 },
13912 "leaf" : 0,
13913 "path" : "/nodes/{node}/qemu/{vmid}/agent",
13914 "text" : "agent"
13915 },
13916 {
13917 "info" : {
13918 "GET" : {
e9cd3bd4 13919 "allowtoken" : 1,
4d47f125
TL
13920 "description" : "Read VM RRD statistics (returns PNG)",
13921 "method" : "GET",
13922 "name" : "rrd",
13923 "parameters" : {
13924 "additionalProperties" : 0,
13925 "properties" : {
13926 "cf" : {
13927 "description" : "The RRD consolidation function",
13928 "enum" : [
13929 "AVERAGE",
13930 "MAX"
13931 ],
44660702 13932 "optional" : 1,
4d47f125
TL
13933 "type" : "string"
13934 },
13935 "ds" : {
13936 "description" : "The list of datasources you want to display.",
13937 "format" : "pve-configid-list",
13938 "type" : "string",
13939 "typetext" : "<string>"
44660702
DM
13940 },
13941 "node" : {
13942 "description" : "The cluster node name.",
13943 "format" : "pve-node",
013dc89f
DM
13944 "type" : "string",
13945 "typetext" : "<string>"
44660702 13946 },
4d47f125
TL
13947 "timeframe" : {
13948 "description" : "Specify the time frame you are interested in.",
13949 "enum" : [
13950 "hour",
13951 "day",
13952 "week",
13953 "month",
13954 "year"
13955 ],
13956 "type" : "string"
13957 },
44660702
DM
13958 "vmid" : {
13959 "description" : "The (unique) ID of the VM.",
13960 "format" : "pve-vmid",
8dd66e12
TL
13961 "maximum" : 999999999,
13962 "minimum" : 100,
4bd7df8b 13963 "type" : "integer",
8dd66e12 13964 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
13965 }
13966 }
7aacca6f 13967 },
56122987
DM
13968 "permissions" : {
13969 "check" : [
13970 "perm",
13971 "/vms/{vmid}",
13972 [
44660702
DM
13973 "VM.Audit"
13974 ]
56122987
DM
13975 ]
13976 },
4d47f125 13977 "protected" : 1,
44660702
DM
13978 "returns" : {
13979 "properties" : {
4d47f125 13980 "filename" : {
44660702
DM
13981 "type" : "string"
13982 }
13983 },
13984 "type" : "object"
13985 }
4d47f125
TL
13986 }
13987 },
13988 "leaf" : 1,
13989 "path" : "/nodes/{node}/qemu/{vmid}/rrd",
13990 "text" : "rrd"
13991 },
13992 {
13993 "info" : {
13994 "GET" : {
e9cd3bd4 13995 "allowtoken" : 1,
4d47f125
TL
13996 "description" : "Read VM RRD statistics",
13997 "method" : "GET",
13998 "name" : "rrddata",
13999 "parameters" : {
14000 "additionalProperties" : 0,
14001 "properties" : {
14002 "cf" : {
14003 "description" : "The RRD consolidation function",
14004 "enum" : [
14005 "AVERAGE",
14006 "MAX"
14007 ],
14008 "optional" : 1,
14009 "type" : "string"
14010 },
14011 "node" : {
14012 "description" : "The cluster node name.",
14013 "format" : "pve-node",
14014 "type" : "string",
14015 "typetext" : "<string>"
14016 },
14017 "timeframe" : {
14018 "description" : "Specify the time frame you are interested in.",
14019 "enum" : [
14020 "hour",
14021 "day",
14022 "week",
14023 "month",
14024 "year"
14025 ],
14026 "type" : "string"
14027 },
14028 "vmid" : {
14029 "description" : "The (unique) ID of the VM.",
14030 "format" : "pve-vmid",
8dd66e12
TL
14031 "maximum" : 999999999,
14032 "minimum" : 100,
4d47f125 14033 "type" : "integer",
8dd66e12 14034 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
14035 }
14036 }
14037 },
14038 "permissions" : {
14039 "check" : [
14040 "perm",
14041 "/vms/{vmid}",
14042 [
14043 "VM.Audit"
14044 ]
14045 ]
14046 },
14047 "protected" : 1,
14048 "returns" : {
14049 "items" : {
14050 "properties" : {},
14051 "type" : "object"
14052 },
14053 "type" : "array"
14054 }
14055 }
14056 },
14057 "leaf" : 1,
14058 "path" : "/nodes/{node}/qemu/{vmid}/rrddata",
14059 "text" : "rrddata"
14060 },
14061 {
14062 "info" : {
14063 "GET" : {
e9cd3bd4
TL
14064 "allowtoken" : 1,
14065 "description" : "Get the virtual machine configuration with pending configuration changes applied. Set the 'current' parameter to get the current configuration instead.",
4d47f125
TL
14066 "method" : "GET",
14067 "name" : "vm_config",
56122987 14068 "parameters" : {
44660702 14069 "additionalProperties" : 0,
4d47f125
TL
14070 "properties" : {
14071 "current" : {
14072 "default" : 0,
14073 "description" : "Get current values (instead of pending values).",
14074 "optional" : 1,
14075 "type" : "boolean",
14076 "typetext" : "<boolean>"
14077 },
14078 "node" : {
14079 "description" : "The cluster node name.",
14080 "format" : "pve-node",
14081 "type" : "string",
14082 "typetext" : "<string>"
14083 },
5f26e15b
TL
14084 "snapshot" : {
14085 "description" : "Fetch config values from given snapshot.",
14086 "format" : "pve-configid",
14087 "maxLength" : 40,
14088 "optional" : 1,
14089 "type" : "string",
14090 "typetext" : "<string>"
14091 },
4d47f125
TL
14092 "vmid" : {
14093 "description" : "The (unique) ID of the VM.",
14094 "format" : "pve-vmid",
8dd66e12
TL
14095 "maximum" : 999999999,
14096 "minimum" : 100,
4d47f125 14097 "type" : "integer",
8dd66e12 14098 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
14099 }
14100 }
14101 },
14102 "permissions" : {
14103 "check" : [
14104 "perm",
14105 "/vms/{vmid}",
14106 [
14107 "VM.Audit"
14108 ]
14109 ]
14110 },
14111 "proxyto" : "node",
14112 "returns" : {
e9cd3bd4 14113 "description" : "The VM configuration.",
56122987 14114 "properties" : {
44660702
DM
14115 "acpi" : {
14116 "default" : 1,
14117 "description" : "Enable/disable ACPI.",
14118 "optional" : 1,
4d47f125 14119 "type" : "boolean"
44660702 14120 },
4e7f60c2 14121 "affinity" : {
81a3384d 14122 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
14123 "format" : "pve-cpuset",
14124 "optional" : 1,
14125 "type" : "string"
14126 },
44660702 14127 "agent" : {
9d2e98ed 14128 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
14129 "format" : {
14130 "enabled" : {
14131 "default" : 0,
14132 "default_key" : 1,
9d2e98ed
TL
14133 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
14134 "type" : "boolean"
14135 },
14136 "freeze-fs-on-backup" : {
14137 "default" : 1,
14138 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
14139 "optional" : 1,
4d47f125
TL
14140 "type" : "boolean"
14141 },
14142 "fstrim_cloned_disks" : {
14143 "default" : 0,
d2656385 14144 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
14145 "optional" : 1,
14146 "type" : "boolean"
5c1699e5
TL
14147 },
14148 "type" : {
14149 "default" : "virtio",
14150 "description" : "Select the agent type",
14151 "enum" : [
14152 "virtio",
14153 "isa"
14154 ],
14155 "optional" : 1,
14156 "type" : "string"
4d47f125
TL
14157 }
14158 },
7aacca6f 14159 "optional" : 1,
4d47f125 14160 "type" : "string"
7aacca6f 14161 },
e2d681b3
TL
14162 "arch" : {
14163 "description" : "Virtual processor architecture. Defaults to the host.",
14164 "enum" : [
14165 "x86_64",
14166 "aarch64"
14167 ],
14168 "optional" : 1,
14169 "type" : "string"
14170 },
44660702 14171 "args" : {
c2993fe5 14172 "description" : "Arbitrary arguments passed to kvm.",
44660702 14173 "optional" : 1,
c2993fe5 14174 "type" : "string",
159464a9 14175 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -smbios 'type=0,vendor=FOO'\n\nNOTE: this option is for experts only.\n"
7aacca6f 14176 },
1c532546
TL
14177 "audio0" : {
14178 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
14179 "format" : {
14180 "device" : {
14181 "description" : "Configure an audio device.",
14182 "enum" : [
14183 "ich9-intel-hda",
14184 "intel-hda",
14185 "AC97"
14186 ],
14187 "type" : "string"
14188 },
14189 "driver" : {
14190 "default" : "spice",
14191 "description" : "Driver backend for the audio device.",
14192 "enum" : [
d2656385
TL
14193 "spice",
14194 "none"
1c532546
TL
14195 ],
14196 "optional" : 1,
14197 "type" : "string"
14198 }
14199 },
14200 "optional" : 1,
14201 "type" : "string"
14202 },
44660702
DM
14203 "autostart" : {
14204 "default" : 0,
14205 "description" : "Automatic restart after crash (currently ignored).",
56122987 14206 "optional" : 1,
4d47f125 14207 "type" : "boolean"
56122987 14208 },
4d47f125 14209 "balloon" : {
9d2e98ed 14210 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
4d47f125 14211 "minimum" : 0,
7aacca6f 14212 "optional" : 1,
4d47f125 14213 "type" : "integer"
7aacca6f 14214 },
44660702
DM
14215 "bios" : {
14216 "default" : "seabios",
14217 "description" : "Select BIOS implementation.",
14218 "enum" : [
14219 "seabios",
14220 "ovmf"
14221 ],
56122987 14222 "optional" : 1,
44660702 14223 "type" : "string"
7aacca6f 14224 },
44660702 14225 "boot" : {
5370fa8c 14226 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 14227 "format" : "pve-qm-boot",
44660702 14228 "optional" : 1,
44660702
DM
14229 "type" : "string"
14230 },
14231 "bootdisk" : {
4772952b 14232 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
14233 "format" : "pve-qm-bootdisk",
14234 "optional" : 1,
14235 "pattern" : "(ide|sata|scsi|virtio)\\d+",
14236 "type" : "string"
14237 },
14238 "cdrom" : {
14239 "description" : "This is an alias for option -ide2",
de0983cb 14240 "format" : "pve-qm-ide",
44660702 14241 "optional" : 1,
7aacca6f 14242 "type" : "string",
013dc89f 14243 "typetext" : "<volume>"
44660702 14244 },
95895385
TL
14245 "cicustom" : {
14246 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
14247 "format" : "pve-qm-cicustom",
14248 "optional" : 1,
14249 "type" : "string"
14250 },
27a7acb2
DM
14251 "cipassword" : {
14252 "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.",
14253 "optional" : 1,
4d47f125 14254 "type" : "string"
27a7acb2
DM
14255 },
14256 "citype" : {
14257 "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.",
14258 "enum" : [
14259 "configdrive2",
d2656385
TL
14260 "nocloud",
14261 "opennebula"
27a7acb2
DM
14262 ],
14263 "optional" : 1,
14264 "type" : "string"
14265 },
159464a9 14266 "ciupgrade" : {
c8eee6ff 14267 "default" : 1,
159464a9
TL
14268 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
14269 "optional" : 1,
14270 "type" : "boolean"
14271 },
27a7acb2
DM
14272 "ciuser" : {
14273 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
14274 "optional" : 1,
4d47f125 14275 "type" : "string"
27a7acb2 14276 },
44660702
DM
14277 "cores" : {
14278 "default" : 1,
14279 "description" : "The number of cores per socket.",
14280 "minimum" : 1,
7aacca6f 14281 "optional" : 1,
4d47f125 14282 "type" : "integer"
7aacca6f 14283 },
44660702
DM
14284 "cpu" : {
14285 "description" : "Emulated CPU type.",
c5aa7e14 14286 "format" : "pve-vm-cpu-conf",
44660702 14287 "optional" : 1,
4d47f125 14288 "type" : "string"
44660702
DM
14289 },
14290 "cpulimit" : {
14291 "default" : 0,
c2993fe5 14292 "description" : "Limit of CPU usage.",
44660702
DM
14293 "maximum" : 128,
14294 "minimum" : 0,
14295 "optional" : 1,
c2993fe5
DM
14296 "type" : "number",
14297 "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
14298 },
14299 "cpuunits" : {
5370fa8c
TL
14300 "default" : "cgroup v1: 1024, cgroup v2: 100",
14301 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 14302 "maximum" : 262144,
7af2edf9 14303 "minimum" : 1,
44660702 14304 "optional" : 1,
c2993fe5 14305 "type" : "integer",
2489d6df 14306 "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 14307 },
44660702 14308 "description" : {
8f4d9c87
TL
14309 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
14310 "maxLength" : 8192,
44660702 14311 "optional" : 1,
4d47f125 14312 "type" : "string"
44660702
DM
14313 },
14314 "digest" : {
4d47f125
TL
14315 "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
14316 "type" : "string"
44660702 14317 },
4d47f125 14318 "efidisk0" : {
9d2e98ed 14319 "description" : "Configure a disk for storing EFI vars.",
4d47f125 14320 "format" : {
5370fa8c
TL
14321 "efitype" : {
14322 "default" : "2m",
9d2e98ed 14323 "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified. Ignored for VMs with arch=aarc64 (ARM).",
5370fa8c
TL
14324 "enum" : [
14325 "2m",
14326 "4m"
14327 ],
14328 "optional" : 1,
14329 "type" : "string"
14330 },
4d47f125
TL
14331 "file" : {
14332 "default_key" : 1,
14333 "description" : "The drive's backing volume.",
14334 "format" : "pve-volume-id-or-qm-path",
14335 "format_description" : "volume",
14336 "type" : "string"
14337 },
14338 "format" : {
14339 "description" : "The drive's backing file's data format.",
14340 "enum" : [
14341 "raw",
14342 "cow",
14343 "qcow",
14344 "qed",
14345 "qcow2",
14346 "vmdk",
14347 "cloop"
14348 ],
14349 "optional" : 1,
14350 "type" : "string"
14351 },
5370fa8c
TL
14352 "pre-enrolled-keys" : {
14353 "default" : 0,
14354 "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.",
14355 "optional" : 1,
14356 "type" : "boolean"
14357 },
4d47f125
TL
14358 "size" : {
14359 "description" : "Disk size. This is purely informational and has no effect.",
14360 "format" : "disk-size",
14361 "format_description" : "DiskSize",
14362 "optional" : 1,
14363 "type" : "string"
14364 },
14365 "volume" : {
14366 "alias" : "file"
14367 }
14368 },
44660702 14369 "optional" : 1,
4d47f125 14370 "type" : "string"
44660702
DM
14371 },
14372 "freeze" : {
14373 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
14374 "optional" : 1,
4d47f125 14375 "type" : "boolean"
44660702 14376 },
5f26e15b
TL
14377 "hookscript" : {
14378 "description" : "Script that will be executed during various steps in the vms lifetime.",
14379 "format" : "pve-volume-id",
14380 "optional" : 1,
14381 "type" : "string"
14382 },
44660702 14383 "hostpci[n]" : {
c2993fe5 14384 "description" : "Map host PCI devices into guest.",
44660702
DM
14385 "format" : "pve-qm-hostpci",
14386 "optional" : 1,
57b78691 14387 "type" : "string",
bb4c8cf8 14388 "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
14389 },
14390 "hotplug" : {
14391 "default" : "network,disk,usb",
4e7f60c2 14392 "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
14393 "format" : "pve-hotplug-features",
14394 "optional" : 1,
4d47f125 14395 "type" : "string"
44660702 14396 },
4bd7df8b
DM
14397 "hugepages" : {
14398 "description" : "Enable/disable hugepages memory.",
14399 "enum" : [
14400 "any",
14401 "2",
14402 "1024"
14403 ],
14404 "optional" : 1,
14405 "type" : "string"
14406 },
44660702 14407 "ide[n]" : {
7af2edf9 14408 "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
44660702
DM
14409 "format" : {
14410 "aio" : {
14411 "description" : "AIO type to use.",
14412 "enum" : [
14413 "native",
8f4d9c87
TL
14414 "threads",
14415 "io_uring"
56122987 14416 ],
56122987 14417 "optional" : 1,
44660702 14418 "type" : "string"
56122987 14419 },
44660702
DM
14420 "backup" : {
14421 "description" : "Whether the drive should be included when making backups.",
56122987 14422 "optional" : 1,
44660702 14423 "type" : "boolean"
56122987 14424 },
7aacca6f 14425 "bps" : {
de0983cb 14426 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
14427 "format_description" : "bps",
14428 "optional" : 1,
14429 "type" : "integer"
14430 },
de0983cb
DM
14431 "bps_max_length" : {
14432 "description" : "Maximum length of I/O bursts in seconds.",
14433 "format_description" : "seconds",
14434 "minimum" : 1,
14435 "optional" : 1,
14436 "type" : "integer"
14437 },
44660702 14438 "bps_rd" : {
de0983cb 14439 "description" : "Maximum read speed in bytes per second.",
44660702 14440 "format_description" : "bps",
56122987 14441 "optional" : 1,
44660702 14442 "type" : "integer"
56122987 14443 },
de0983cb 14444 "bps_rd_length" : {
5d9c884c
DM
14445 "alias" : "bps_rd_max_length"
14446 },
14447 "bps_rd_max_length" : {
de0983cb
DM
14448 "description" : "Maximum length of read I/O bursts in seconds.",
14449 "format_description" : "seconds",
14450 "minimum" : 1,
14451 "optional" : 1,
14452 "type" : "integer"
14453 },
44660702 14454 "bps_wr" : {
de0983cb 14455 "description" : "Maximum write speed in bytes per second.",
44660702
DM
14456 "format_description" : "bps",
14457 "optional" : 1,
14458 "type" : "integer"
14459 },
de0983cb 14460 "bps_wr_length" : {
5d9c884c
DM
14461 "alias" : "bps_wr_max_length"
14462 },
14463 "bps_wr_max_length" : {
de0983cb
DM
14464 "description" : "Maximum length of write I/O bursts in seconds.",
14465 "format_description" : "seconds",
14466 "minimum" : 1,
14467 "optional" : 1,
14468 "type" : "integer"
14469 },
44660702
DM
14470 "cache" : {
14471 "description" : "The drive's cache mode",
14472 "enum" : [
14473 "none",
14474 "writethrough",
14475 "writeback",
14476 "unsafe",
14477 "directsync"
14478 ],
44660702
DM
14479 "optional" : 1,
14480 "type" : "string"
14481 },
14482 "cyls" : {
14483 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
14484 "optional" : 1,
14485 "type" : "integer"
14486 },
14487 "detect_zeroes" : {
14488 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
14489 "optional" : 1,
14490 "type" : "boolean"
14491 },
14492 "discard" : {
14493 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
14494 "enum" : [
14495 "ignore",
14496 "on"
14497 ],
56122987 14498 "optional" : 1,
44660702
DM
14499 "type" : "string"
14500 },
14501 "file" : {
14502 "default_key" : 1,
14503 "description" : "The drive's backing volume.",
14504 "format" : "pve-volume-id-or-qm-path",
14505 "format_description" : "volume",
14506 "type" : "string"
56122987 14507 },
7aacca6f 14508 "format" : {
7aacca6f 14509 "description" : "The drive's backing file's data format.",
56122987 14510 "enum" : [
7aacca6f
DM
14511 "raw",
14512 "cow",
14513 "qcow",
14514 "qed",
14515 "qcow2",
14516 "vmdk",
14517 "cloop"
56122987
DM
14518 ],
14519 "optional" : 1,
56122987
DM
14520 "type" : "string"
14521 },
44660702
DM
14522 "heads" : {
14523 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
14524 "optional" : 1,
14525 "type" : "integer"
7aacca6f 14526 },
44660702 14527 "iops" : {
de0983cb 14528 "description" : "Maximum r/w I/O in operations per second.",
44660702 14529 "format_description" : "iops",
56122987 14530 "optional" : 1,
44660702 14531 "type" : "integer"
56122987 14532 },
44660702 14533 "iops_max" : {
de0983cb 14534 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 14535 "format_description" : "iops",
56122987 14536 "optional" : 1,
44660702 14537 "type" : "integer"
56122987 14538 },
de0983cb
DM
14539 "iops_max_length" : {
14540 "description" : "Maximum length of I/O bursts in seconds.",
14541 "format_description" : "seconds",
14542 "minimum" : 1,
14543 "optional" : 1,
14544 "type" : "integer"
14545 },
44660702 14546 "iops_rd" : {
de0983cb 14547 "description" : "Maximum read I/O in operations per second.",
44660702
DM
14548 "format_description" : "iops",
14549 "optional" : 1,
14550 "type" : "integer"
14551 },
de0983cb 14552 "iops_rd_length" : {
5d9c884c 14553 "alias" : "iops_rd_max_length"
de0983cb 14554 },
44660702 14555 "iops_rd_max" : {
de0983cb 14556 "description" : "Maximum unthrottled read I/O pool in operations per second.",
7aacca6f 14557 "format_description" : "iops",
44660702
DM
14558 "optional" : 1,
14559 "type" : "integer"
14560 },
5d9c884c
DM
14561 "iops_rd_max_length" : {
14562 "description" : "Maximum length of read I/O bursts in seconds.",
14563 "format_description" : "seconds",
14564 "minimum" : 1,
14565 "optional" : 1,
14566 "type" : "integer"
14567 },
44660702 14568 "iops_wr" : {
de0983cb 14569 "description" : "Maximum write I/O in operations per second.",
44660702 14570 "format_description" : "iops",
56122987 14571 "optional" : 1,
7aacca6f 14572 "type" : "integer"
56122987 14573 },
de0983cb 14574 "iops_wr_length" : {
5d9c884c 14575 "alias" : "iops_wr_max_length"
de0983cb 14576 },
44660702 14577 "iops_wr_max" : {
de0983cb 14578 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 14579 "format_description" : "iops",
7aacca6f 14580 "optional" : 1,
44660702 14581 "type" : "integer"
56122987 14582 },
5d9c884c
DM
14583 "iops_wr_max_length" : {
14584 "description" : "Maximum length of write I/O bursts in seconds.",
14585 "format_description" : "seconds",
14586 "minimum" : 1,
14587 "optional" : 1,
14588 "type" : "integer"
14589 },
44660702 14590 "mbps" : {
de0983cb 14591 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
14592 "format_description" : "mbps",
14593 "optional" : 1,
14594 "type" : "number"
14595 },
14596 "mbps_max" : {
de0983cb 14597 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
14598 "format_description" : "mbps",
14599 "optional" : 1,
14600 "type" : "number"
14601 },
14602 "mbps_rd" : {
de0983cb 14603 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
14604 "format_description" : "mbps",
14605 "optional" : 1,
14606 "type" : "number"
14607 },
14608 "mbps_rd_max" : {
de0983cb 14609 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
14610 "format_description" : "mbps",
14611 "optional" : 1,
14612 "type" : "number"
14613 },
14614 "mbps_wr" : {
de0983cb 14615 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
14616 "format_description" : "mbps",
14617 "optional" : 1,
14618 "type" : "number"
14619 },
14620 "mbps_wr_max" : {
de0983cb 14621 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 14622 "format_description" : "mbps",
56122987 14623 "optional" : 1,
44660702 14624 "type" : "number"
56122987 14625 },
7aacca6f 14626 "media" : {
7aacca6f 14627 "default" : "disk",
7aacca6f
DM
14628 "description" : "The drive's media type.",
14629 "enum" : [
14630 "cdrom",
14631 "disk"
44660702 14632 ],
44660702
DM
14633 "optional" : 1,
14634 "type" : "string"
56122987 14635 },
44660702
DM
14636 "model" : {
14637 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
14638 "format" : "urlencoded",
14639 "format_description" : "model",
14640 "maxLength" : 120,
56122987 14641 "optional" : 1,
44660702 14642 "type" : "string"
56122987 14643 },
5d9c884c
DM
14644 "replicate" : {
14645 "default" : 1,
14646 "description" : "Whether the drive should considered for replication jobs.",
14647 "optional" : 1,
14648 "type" : "boolean"
14649 },
44660702
DM
14650 "rerror" : {
14651 "description" : "Read error action.",
14652 "enum" : [
14653 "ignore",
14654 "report",
14655 "stop"
14656 ],
56122987 14657 "optional" : 1,
44660702
DM
14658 "type" : "string"
14659 },
14660 "secs" : {
14661 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
14662 "optional" : 1,
14663 "type" : "integer"
14664 },
14665 "serial" : {
14666 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
14667 "format" : "urlencoded",
14668 "format_description" : "serial",
14669 "maxLength" : 60,
14670 "optional" : 1,
14671 "type" : "string"
14672 },
27a7acb2
DM
14673 "shared" : {
14674 "default" : 0,
14675 "description" : "Mark this locally-managed volume as available on all nodes",
14676 "optional" : 1,
14677 "type" : "boolean",
14678 "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!"
14679 },
44660702
DM
14680 "size" : {
14681 "description" : "Disk size. This is purely informational and has no effect.",
14682 "format" : "disk-size",
f004f5b9 14683 "format_description" : "DiskSize",
44660702
DM
14684 "optional" : 1,
14685 "type" : "string"
14686 },
14687 "snapshot" : {
27a7acb2 14688 "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
14689 "optional" : 1,
14690 "type" : "boolean"
14691 },
25203dc1
NC
14692 "ssd" : {
14693 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
14694 "optional" : 1,
14695 "type" : "boolean"
14696 },
44660702
DM
14697 "trans" : {
14698 "description" : "Force disk geometry bios translation mode.",
14699 "enum" : [
14700 "none",
14701 "lba",
14702 "auto"
14703 ],
44660702
DM
14704 "optional" : 1,
14705 "type" : "string"
14706 },
14707 "volume" : {
14708 "alias" : "file"
14709 },
14710 "werror" : {
14711 "description" : "Write error action.",
14712 "enum" : [
14713 "enospc",
14714 "ignore",
14715 "report",
14716 "stop"
14717 ],
44660702
DM
14718 "optional" : 1,
14719 "type" : "string"
95895385
TL
14720 },
14721 "wwn" : {
14722 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
14723 "format_description" : "wwn",
14724 "optional" : 1,
14725 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
14726 "type" : "string"
56122987
DM
14727 }
14728 },
44660702 14729 "optional" : 1,
4d47f125 14730 "type" : "string"
27a7acb2
DM
14731 },
14732 "ipconfig[n]" : {
d2656385 14733 "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
14734 "format" : "pve-qm-ipconfig",
14735 "optional" : 1,
4d47f125 14736 "type" : "string"
56122987 14737 },
95895385
TL
14738 "ivshmem" : {
14739 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
14740 "format" : {
14741 "name" : {
14742 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
14743 "format_description" : "string",
14744 "optional" : 1,
14745 "pattern" : "[a-zA-Z0-9\\-]+",
14746 "type" : "string"
14747 },
14748 "size" : {
14749 "description" : "The size of the file in MB.",
14750 "minimum" : 1,
14751 "type" : "integer"
14752 }
14753 },
14754 "optional" : 1,
14755 "type" : "string"
14756 },
4772952b
TL
14757 "keephugepages" : {
14758 "default" : 0,
14759 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
14760 "optional" : 1,
14761 "type" : "boolean"
14762 },
44660702 14763 "keyboard" : {
35a75dd3 14764 "default" : null,
7af2edf9 14765 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
44660702
DM
14766 "enum" : [
14767 "de",
14768 "de-ch",
14769 "da",
14770 "en-gb",
14771 "en-us",
14772 "es",
14773 "fi",
14774 "fr",
14775 "fr-be",
14776 "fr-ca",
14777 "fr-ch",
14778 "hu",
14779 "is",
14780 "it",
14781 "ja",
14782 "lt",
14783 "mk",
14784 "nl",
14785 "no",
14786 "pl",
14787 "pt",
14788 "pt-br",
14789 "sv",
14790 "sl",
14791 "tr"
14792 ],
56122987 14793 "optional" : 1,
44660702
DM
14794 "type" : "string"
14795 },
14796 "kvm" : {
7aacca6f 14797 "default" : 1,
44660702
DM
14798 "description" : "Enable/disable KVM hardware virtualization.",
14799 "optional" : 1,
4d47f125 14800 "type" : "boolean"
56122987 14801 },
44660702 14802 "localtime" : {
5370fa8c 14803 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
56122987 14804 "optional" : 1,
4d47f125 14805 "type" : "boolean"
56122987 14806 },
44660702
DM
14807 "lock" : {
14808 "description" : "Lock/unlock the VM.",
14809 "enum" : [
44660702 14810 "backup",
5f26e15b
TL
14811 "clone",
14812 "create",
14813 "migrate",
14814 "rollback",
44660702 14815 "snapshot",
95895385
TL
14816 "snapshot-delete",
14817 "suspending",
14818 "suspended"
44660702 14819 ],
7aacca6f 14820 "optional" : 1,
44660702
DM
14821 "type" : "string"
14822 },
14823 "machine" : {
9d2e98ed 14824 "description" : "Specifies the QEMU machine type.",
44660702
DM
14825 "maxLength" : 40,
14826 "optional" : 1,
5c1699e5 14827 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702
DM
14828 "type" : "string"
14829 },
14830 "memory" : {
14831 "default" : 512,
9d2e98ed 14832 "description" : "Amount of RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
44660702
DM
14833 "minimum" : 16,
14834 "optional" : 1,
4d47f125 14835 "type" : "integer"
44660702
DM
14836 },
14837 "migrate_downtime" : {
14838 "default" : 0.1,
14839 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
14840 "minimum" : 0,
14841 "optional" : 1,
4d47f125 14842 "type" : "number"
44660702
DM
14843 },
14844 "migrate_speed" : {
14845 "default" : 0,
14846 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
14847 "minimum" : 0,
14848 "optional" : 1,
4d47f125 14849 "type" : "integer"
44660702
DM
14850 },
14851 "name" : {
14852 "description" : "Set a name for the VM. Only used on the configuration web interface.",
14853 "format" : "dns-name",
14854 "optional" : 1,
4d47f125 14855 "type" : "string"
44660702 14856 },
27a7acb2 14857 "nameserver" : {
de786b48 14858 "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
14859 "format" : "address-list",
14860 "optional" : 1,
4d47f125 14861 "type" : "string"
27a7acb2 14862 },
44660702 14863 "net[n]" : {
c2993fe5 14864 "description" : "Specify network devices.",
f004f5b9
DM
14865 "format" : {
14866 "bridge" : {
c2993fe5 14867 "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 14868 "format" : "pve-bridge-id",
f004f5b9
DM
14869 "format_description" : "bridge",
14870 "optional" : 1,
14871 "type" : "string"
14872 },
14873 "e1000" : {
14874 "alias" : "macaddr",
14875 "keyAlias" : "model"
14876 },
14877 "e1000-82540em" : {
14878 "alias" : "macaddr",
14879 "keyAlias" : "model"
14880 },
14881 "e1000-82544gc" : {
14882 "alias" : "macaddr",
14883 "keyAlias" : "model"
14884 },
14885 "e1000-82545em" : {
14886 "alias" : "macaddr",
14887 "keyAlias" : "model"
14888 },
5370fa8c
TL
14889 "e1000e" : {
14890 "alias" : "macaddr",
14891 "keyAlias" : "model"
14892 },
f004f5b9
DM
14893 "firewall" : {
14894 "description" : "Whether this interface should be protected by the firewall.",
14895 "optional" : 1,
14896 "type" : "boolean"
14897 },
14898 "i82551" : {
14899 "alias" : "macaddr",
14900 "keyAlias" : "model"
14901 },
14902 "i82557b" : {
14903 "alias" : "macaddr",
14904 "keyAlias" : "model"
14905 },
14906 "i82559er" : {
14907 "alias" : "macaddr",
14908 "keyAlias" : "model"
14909 },
14910 "link_down" : {
c2993fe5 14911 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
14912 "optional" : 1,
14913 "type" : "boolean"
14914 },
14915 "macaddr" : {
c2993fe5 14916 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 14917 "format" : "mac-addr",
f004f5b9 14918 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 14919 "optional" : 1,
95895385
TL
14920 "type" : "string",
14921 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
14922 },
14923 "model" : {
14924 "default_key" : 1,
c2993fe5 14925 "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 14926 "enum" : [
f004f5b9 14927 "e1000",
5370fa8c
TL
14928 "e1000-82540em",
14929 "e1000-82544gc",
14930 "e1000-82545em",
14931 "e1000e",
f004f5b9
DM
14932 "i82551",
14933 "i82557b",
14934 "i82559er",
5370fa8c
TL
14935 "ne2k_isa",
14936 "ne2k_pci",
14937 "pcnet",
14938 "rtl8139",
14939 "virtio",
14940 "vmxnet3"
f004f5b9 14941 ],
f004f5b9
DM
14942 "type" : "string"
14943 },
ac70d7d1
TL
14944 "mtu" : {
14945 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
14946 "maximum" : 65520,
14947 "minimum" : 1,
14948 "optional" : 1,
14949 "type" : "integer"
14950 },
f004f5b9
DM
14951 "ne2k_isa" : {
14952 "alias" : "macaddr",
14953 "keyAlias" : "model"
14954 },
14955 "ne2k_pci" : {
14956 "alias" : "macaddr",
14957 "keyAlias" : "model"
14958 },
14959 "pcnet" : {
14960 "alias" : "macaddr",
14961 "keyAlias" : "model"
14962 },
14963 "queues" : {
14964 "description" : "Number of packet queues to be used on the device.",
81a3384d 14965 "maximum" : 64,
f004f5b9
DM
14966 "minimum" : 0,
14967 "optional" : 1,
14968 "type" : "integer"
14969 },
14970 "rate" : {
c2993fe5 14971 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
14972 "minimum" : 0,
14973 "optional" : 1,
14974 "type" : "number"
14975 },
14976 "rtl8139" : {
14977 "alias" : "macaddr",
14978 "keyAlias" : "model"
14979 },
14980 "tag" : {
14981 "description" : "VLAN tag to apply to packets on this interface.",
14982 "maximum" : 4094,
c2993fe5 14983 "minimum" : 1,
f004f5b9
DM
14984 "optional" : 1,
14985 "type" : "integer"
14986 },
14987 "trunks" : {
14988 "description" : "VLAN trunks to pass through this interface.",
14989 "format_description" : "vlanid[;vlanid...]",
14990 "optional" : 1,
14991 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
14992 "type" : "string"
14993 },
14994 "virtio" : {
14995 "alias" : "macaddr",
14996 "keyAlias" : "model"
14997 },
14998 "vmxnet3" : {
14999 "alias" : "macaddr",
15000 "keyAlias" : "model"
15001 }
15002 },
44660702 15003 "optional" : 1,
4d47f125 15004 "type" : "string"
44660702
DM
15005 },
15006 "numa" : {
15007 "default" : 0,
15008 "description" : "Enable/disable NUMA.",
15009 "optional" : 1,
4d47f125 15010 "type" : "boolean"
44660702
DM
15011 },
15012 "numa[n]" : {
c2993fe5 15013 "description" : "NUMA topology.",
56122987 15014 "format" : {
7aacca6f 15015 "cpus" : {
c2993fe5 15016 "description" : "CPUs accessing this NUMA node.",
44660702
DM
15017 "format_description" : "id[-id];...",
15018 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
15019 "type" : "string"
7aacca6f
DM
15020 },
15021 "hostnodes" : {
c2993fe5 15022 "description" : "Host NUMA nodes to use.",
44660702 15023 "format_description" : "id[-id];...",
7aacca6f 15024 "optional" : 1,
7aacca6f 15025 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
44660702 15026 "type" : "string"
7aacca6f 15027 },
44660702 15028 "memory" : {
c2993fe5 15029 "description" : "Amount of memory this NUMA node provides.",
7aacca6f 15030 "optional" : 1,
44660702
DM
15031 "type" : "number"
15032 },
15033 "policy" : {
c2993fe5 15034 "description" : "NUMA allocation policy.",
7aacca6f
DM
15035 "enum" : [
15036 "preferred",
15037 "bind",
15038 "interleave"
15039 ],
44660702
DM
15040 "optional" : 1,
15041 "type" : "string"
56122987 15042 }
44660702 15043 },
56122987 15044 "optional" : 1,
4d47f125 15045 "type" : "string"
56122987 15046 },
44660702 15047 "onboot" : {
7aacca6f 15048 "default" : 0,
44660702
DM
15049 "description" : "Specifies whether a VM will be started during system bootup.",
15050 "optional" : 1,
4d47f125 15051 "type" : "boolean"
7aacca6f
DM
15052 },
15053 "ostype" : {
c2993fe5 15054 "description" : "Specify guest operating system.",
7aacca6f
DM
15055 "enum" : [
15056 "other",
15057 "wxp",
15058 "w2k",
15059 "w2k3",
15060 "w2k8",
15061 "wvista",
15062 "win7",
15063 "win8",
32d876b5 15064 "win10",
5370fa8c 15065 "win11",
7aacca6f
DM
15066 "l24",
15067 "l26",
15068 "solaris"
15069 ],
7aacca6f 15070 "optional" : 1,
c2993fe5 15071 "type" : "string",
9d2e98ed 15072 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
56122987 15073 },
44660702 15074 "parallel[n]" : {
c2993fe5 15075 "description" : "Map host parallel devices (n is 0 to 2).",
7aacca6f 15076 "optional" : 1,
44660702 15077 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 15078 "type" : "string",
4772952b 15079 "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
15080 },
15081 "protection" : {
15082 "default" : 0,
c2993fe5 15083 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
7aacca6f 15084 "optional" : 1,
4d47f125 15085 "type" : "boolean"
7aacca6f 15086 },
44660702
DM
15087 "reboot" : {
15088 "default" : 1,
15089 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
7aacca6f 15090 "optional" : 1,
4d47f125 15091 "type" : "boolean"
44660702 15092 },
c5aa7e14
TL
15093 "rng0" : {
15094 "description" : "Configure a VirtIO-based Random Number Generator.",
15095 "format" : {
15096 "max_bytes" : {
15097 "default" : 1024,
5370fa8c 15098 "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
15099 "optional" : 1,
15100 "type" : "integer"
15101 },
15102 "period" : {
15103 "default" : 1000,
15104 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
15105 "optional" : 1,
15106 "type" : "integer"
15107 },
15108 "source" : {
15109 "default_key" : 1,
5370fa8c 15110 "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
15111 "enum" : [
15112 "/dev/urandom",
15113 "/dev/random",
15114 "/dev/hwrng"
15115 ],
15116 "type" : "string"
15117 }
15118 },
15119 "optional" : 1,
15120 "type" : "string"
15121 },
44660702 15122 "sata[n]" : {
7af2edf9 15123 "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
56122987 15124 "format" : {
44660702
DM
15125 "aio" : {
15126 "description" : "AIO type to use.",
7aacca6f 15127 "enum" : [
44660702 15128 "native",
8f4d9c87
TL
15129 "threads",
15130 "io_uring"
7aacca6f 15131 ],
44660702
DM
15132 "optional" : 1,
15133 "type" : "string"
7aacca6f 15134 },
44660702
DM
15135 "backup" : {
15136 "description" : "Whether the drive should be included when making backups.",
56122987 15137 "optional" : 1,
7aacca6f 15138 "type" : "boolean"
44660702
DM
15139 },
15140 "bps" : {
de0983cb 15141 "description" : "Maximum r/w speed in bytes per second.",
44660702 15142 "format_description" : "bps",
7aacca6f 15143 "optional" : 1,
44660702 15144 "type" : "integer"
56122987 15145 },
de0983cb
DM
15146 "bps_max_length" : {
15147 "description" : "Maximum length of I/O bursts in seconds.",
15148 "format_description" : "seconds",
15149 "minimum" : 1,
15150 "optional" : 1,
15151 "type" : "integer"
15152 },
44660702 15153 "bps_rd" : {
de0983cb 15154 "description" : "Maximum read speed in bytes per second.",
44660702 15155 "format_description" : "bps",
56122987 15156 "optional" : 1,
44660702 15157 "type" : "integer"
56122987 15158 },
de0983cb 15159 "bps_rd_length" : {
5d9c884c
DM
15160 "alias" : "bps_rd_max_length"
15161 },
15162 "bps_rd_max_length" : {
de0983cb
DM
15163 "description" : "Maximum length of read I/O bursts in seconds.",
15164 "format_description" : "seconds",
15165 "minimum" : 1,
15166 "optional" : 1,
15167 "type" : "integer"
15168 },
44660702 15169 "bps_wr" : {
de0983cb 15170 "description" : "Maximum write speed in bytes per second.",
44660702 15171 "format_description" : "bps",
56122987 15172 "optional" : 1,
44660702 15173 "type" : "integer"
56122987 15174 },
de0983cb 15175 "bps_wr_length" : {
5d9c884c
DM
15176 "alias" : "bps_wr_max_length"
15177 },
15178 "bps_wr_max_length" : {
de0983cb
DM
15179 "description" : "Maximum length of write I/O bursts in seconds.",
15180 "format_description" : "seconds",
15181 "minimum" : 1,
15182 "optional" : 1,
15183 "type" : "integer"
15184 },
56122987 15185 "cache" : {
44660702 15186 "description" : "The drive's cache mode",
56122987
DM
15187 "enum" : [
15188 "none",
15189 "writethrough",
15190 "writeback",
15191 "unsafe",
15192 "directsync"
15193 ],
56122987 15194 "optional" : 1,
44660702 15195 "type" : "string"
56122987 15196 },
44660702
DM
15197 "cyls" : {
15198 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 15199 "optional" : 1,
44660702 15200 "type" : "integer"
7aacca6f
DM
15201 },
15202 "detect_zeroes" : {
15203 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 15204 "optional" : 1,
44660702 15205 "type" : "boolean"
56122987 15206 },
44660702
DM
15207 "discard" : {
15208 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
15209 "enum" : [
15210 "ignore",
15211 "on"
15212 ],
56122987 15213 "optional" : 1,
44660702 15214 "type" : "string"
7aacca6f 15215 },
44660702
DM
15216 "file" : {
15217 "default_key" : 1,
15218 "description" : "The drive's backing volume.",
15219 "format" : "pve-volume-id-or-qm-path",
15220 "format_description" : "volume",
15221 "type" : "string"
56122987 15222 },
7aacca6f 15223 "format" : {
44660702 15224 "description" : "The drive's backing file's data format.",
7aacca6f
DM
15225 "enum" : [
15226 "raw",
15227 "cow",
15228 "qcow",
15229 "qed",
15230 "qcow2",
15231 "vmdk",
15232 "cloop"
15233 ],
7aacca6f 15234 "optional" : 1,
44660702 15235 "type" : "string"
56122987 15236 },
7aacca6f 15237 "heads" : {
7aacca6f 15238 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 15239 "optional" : 1,
7aacca6f 15240 "type" : "integer"
56122987 15241 },
44660702 15242 "iops" : {
de0983cb 15243 "description" : "Maximum r/w I/O in operations per second.",
44660702 15244 "format_description" : "iops",
56122987 15245 "optional" : 1,
44660702 15246 "type" : "integer"
56122987 15247 },
44660702 15248 "iops_max" : {
de0983cb 15249 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 15250 "format_description" : "iops",
56122987 15251 "optional" : 1,
44660702 15252 "type" : "integer"
56122987 15253 },
de0983cb
DM
15254 "iops_max_length" : {
15255 "description" : "Maximum length of I/O bursts in seconds.",
15256 "format_description" : "seconds",
15257 "minimum" : 1,
15258 "optional" : 1,
15259 "type" : "integer"
15260 },
44660702 15261 "iops_rd" : {
de0983cb 15262 "description" : "Maximum read I/O in operations per second.",
44660702 15263 "format_description" : "iops",
7aacca6f 15264 "optional" : 1,
44660702 15265 "type" : "integer"
56122987 15266 },
de0983cb 15267 "iops_rd_length" : {
5d9c884c 15268 "alias" : "iops_rd_max_length"
de0983cb 15269 },
44660702 15270 "iops_rd_max" : {
de0983cb 15271 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 15272 "format_description" : "iops",
56122987 15273 "optional" : 1,
44660702 15274 "type" : "integer"
7aacca6f 15275 },
5d9c884c
DM
15276 "iops_rd_max_length" : {
15277 "description" : "Maximum length of read I/O bursts in seconds.",
15278 "format_description" : "seconds",
15279 "minimum" : 1,
15280 "optional" : 1,
15281 "type" : "integer"
15282 },
44660702 15283 "iops_wr" : {
de0983cb 15284 "description" : "Maximum write I/O in operations per second.",
44660702 15285 "format_description" : "iops",
56122987 15286 "optional" : 1,
44660702 15287 "type" : "integer"
56122987 15288 },
de0983cb 15289 "iops_wr_length" : {
5d9c884c 15290 "alias" : "iops_wr_max_length"
de0983cb 15291 },
56122987 15292 "iops_wr_max" : {
de0983cb 15293 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 15294 "format_description" : "iops",
56122987 15295 "optional" : 1,
44660702 15296 "type" : "integer"
56122987 15297 },
5d9c884c
DM
15298 "iops_wr_max_length" : {
15299 "description" : "Maximum length of write I/O bursts in seconds.",
15300 "format_description" : "seconds",
15301 "minimum" : 1,
15302 "optional" : 1,
15303 "type" : "integer"
15304 },
44660702 15305 "mbps" : {
de0983cb 15306 "description" : "Maximum r/w speed in megabytes per second.",
44660702 15307 "format_description" : "mbps",
56122987 15308 "optional" : 1,
44660702 15309 "type" : "number"
56122987 15310 },
44660702 15311 "mbps_max" : {
de0983cb 15312 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
15313 "format_description" : "mbps",
15314 "optional" : 1,
15315 "type" : "number"
56122987 15316 },
44660702 15317 "mbps_rd" : {
de0983cb 15318 "description" : "Maximum read speed in megabytes per second.",
44660702 15319 "format_description" : "mbps",
56122987 15320 "optional" : 1,
44660702 15321 "type" : "number"
56122987 15322 },
44660702 15323 "mbps_rd_max" : {
de0983cb 15324 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 15325 "format_description" : "mbps",
56122987 15326 "optional" : 1,
44660702 15327 "type" : "number"
56122987 15328 },
44660702 15329 "mbps_wr" : {
de0983cb 15330 "description" : "Maximum write speed in megabytes per second.",
56122987 15331 "format_description" : "mbps",
44660702
DM
15332 "optional" : 1,
15333 "type" : "number"
56122987 15334 },
44660702 15335 "mbps_wr_max" : {
de0983cb 15336 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
15337 "format_description" : "mbps",
15338 "optional" : 1,
15339 "type" : "number"
7aacca6f 15340 },
44660702
DM
15341 "media" : {
15342 "default" : "disk",
15343 "description" : "The drive's media type.",
15344 "enum" : [
15345 "cdrom",
15346 "disk"
15347 ],
56122987 15348 "optional" : 1,
44660702
DM
15349 "type" : "string"
15350 },
5d9c884c
DM
15351 "replicate" : {
15352 "default" : 1,
15353 "description" : "Whether the drive should considered for replication jobs.",
15354 "optional" : 1,
15355 "type" : "boolean"
15356 },
44660702
DM
15357 "rerror" : {
15358 "description" : "Read error action.",
7aacca6f 15359 "enum" : [
44660702
DM
15360 "ignore",
15361 "report",
15362 "stop"
15363 ],
7aacca6f 15364 "optional" : 1,
44660702 15365 "type" : "string"
56122987 15366 },
44660702
DM
15367 "secs" : {
15368 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 15369 "optional" : 1,
44660702 15370 "type" : "integer"
56122987 15371 },
44660702
DM
15372 "serial" : {
15373 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
15374 "format" : "urlencoded",
15375 "format_description" : "serial",
15376 "maxLength" : 60,
56122987 15377 "optional" : 1,
44660702 15378 "type" : "string"
56122987 15379 },
27a7acb2
DM
15380 "shared" : {
15381 "default" : 0,
15382 "description" : "Mark this locally-managed volume as available on all nodes",
15383 "optional" : 1,
15384 "type" : "boolean",
15385 "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!"
15386 },
44660702
DM
15387 "size" : {
15388 "description" : "Disk size. This is purely informational and has no effect.",
15389 "format" : "disk-size",
f004f5b9 15390 "format_description" : "DiskSize",
44660702
DM
15391 "optional" : 1,
15392 "type" : "string"
15393 },
15394 "snapshot" : {
27a7acb2 15395 "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 15396 "optional" : 1,
44660702
DM
15397 "type" : "boolean"
15398 },
25203dc1
NC
15399 "ssd" : {
15400 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
15401 "optional" : 1,
15402 "type" : "boolean"
15403 },
44660702
DM
15404 "trans" : {
15405 "description" : "Force disk geometry bios translation mode.",
56122987 15406 "enum" : [
7aacca6f
DM
15407 "none",
15408 "lba",
15409 "auto"
56122987 15410 ],
44660702
DM
15411 "optional" : 1,
15412 "type" : "string"
56122987 15413 },
7aacca6f
DM
15414 "volume" : {
15415 "alias" : "file"
56122987 15416 },
44660702
DM
15417 "werror" : {
15418 "description" : "Write error action.",
15419 "enum" : [
15420 "enospc",
15421 "ignore",
15422 "report",
15423 "stop"
15424 ],
7aacca6f 15425 "optional" : 1,
44660702 15426 "type" : "string"
95895385
TL
15427 },
15428 "wwn" : {
15429 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
15430 "format_description" : "wwn",
15431 "optional" : 1,
15432 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
15433 "type" : "string"
44660702
DM
15434 }
15435 },
15436 "optional" : 1,
4d47f125 15437 "type" : "string"
44660702
DM
15438 },
15439 "scsi[n]" : {
7af2edf9 15440 "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).",
44660702 15441 "format" : {
56122987 15442 "aio" : {
56122987
DM
15443 "description" : "AIO type to use.",
15444 "enum" : [
15445 "native",
8f4d9c87
TL
15446 "threads",
15447 "io_uring"
56122987 15448 ],
7aacca6f 15449 "optional" : 1,
44660702 15450 "type" : "string"
56122987 15451 },
44660702
DM
15452 "backup" : {
15453 "description" : "Whether the drive should be included when making backups.",
56122987 15454 "optional" : 1,
44660702 15455 "type" : "boolean"
56122987 15456 },
44660702 15457 "bps" : {
de0983cb 15458 "description" : "Maximum r/w speed in bytes per second.",
44660702 15459 "format_description" : "bps",
56122987 15460 "optional" : 1,
44660702 15461 "type" : "integer"
56122987 15462 },
de0983cb
DM
15463 "bps_max_length" : {
15464 "description" : "Maximum length of I/O bursts in seconds.",
15465 "format_description" : "seconds",
15466 "minimum" : 1,
15467 "optional" : 1,
15468 "type" : "integer"
15469 },
44660702 15470 "bps_rd" : {
de0983cb 15471 "description" : "Maximum read speed in bytes per second.",
44660702 15472 "format_description" : "bps",
56122987 15473 "optional" : 1,
44660702 15474 "type" : "integer"
56122987 15475 },
de0983cb 15476 "bps_rd_length" : {
5d9c884c
DM
15477 "alias" : "bps_rd_max_length"
15478 },
15479 "bps_rd_max_length" : {
de0983cb
DM
15480 "description" : "Maximum length of read I/O bursts in seconds.",
15481 "format_description" : "seconds",
15482 "minimum" : 1,
15483 "optional" : 1,
15484 "type" : "integer"
15485 },
7aacca6f 15486 "bps_wr" : {
de0983cb 15487 "description" : "Maximum write speed in bytes per second.",
7aacca6f 15488 "format_description" : "bps",
56122987 15489 "optional" : 1,
44660702 15490 "type" : "integer"
56122987 15491 },
de0983cb 15492 "bps_wr_length" : {
5d9c884c
DM
15493 "alias" : "bps_wr_max_length"
15494 },
15495 "bps_wr_max_length" : {
de0983cb
DM
15496 "description" : "Maximum length of write I/O bursts in seconds.",
15497 "format_description" : "seconds",
15498 "minimum" : 1,
15499 "optional" : 1,
15500 "type" : "integer"
15501 },
44660702
DM
15502 "cache" : {
15503 "description" : "The drive's cache mode",
7aacca6f 15504 "enum" : [
44660702
DM
15505 "none",
15506 "writethrough",
15507 "writeback",
15508 "unsafe",
15509 "directsync"
7aacca6f 15510 ],
56122987 15511 "optional" : 1,
44660702 15512 "type" : "string"
56122987 15513 },
44660702
DM
15514 "cyls" : {
15515 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 15516 "optional" : 1,
44660702 15517 "type" : "integer"
56122987 15518 },
44660702
DM
15519 "detect_zeroes" : {
15520 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 15521 "optional" : 1,
44660702 15522 "type" : "boolean"
56122987 15523 },
44660702
DM
15524 "discard" : {
15525 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
15526 "enum" : [
15527 "ignore",
15528 "on"
15529 ],
7aacca6f 15530 "optional" : 1,
44660702 15531 "type" : "string"
56122987 15532 },
44660702
DM
15533 "file" : {
15534 "default_key" : 1,
15535 "description" : "The drive's backing volume.",
15536 "format" : "pve-volume-id-or-qm-path",
15537 "format_description" : "volume",
15538 "type" : "string"
56122987 15539 },
7aacca6f 15540 "format" : {
44660702 15541 "description" : "The drive's backing file's data format.",
56122987 15542 "enum" : [
7aacca6f
DM
15543 "raw",
15544 "cow",
15545 "qcow",
15546 "qed",
15547 "qcow2",
15548 "vmdk",
15549 "cloop"
15550 ],
44660702
DM
15551 "optional" : 1,
15552 "type" : "string"
56122987 15553 },
44660702
DM
15554 "heads" : {
15555 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 15556 "optional" : 1,
7aacca6f 15557 "type" : "integer"
56122987 15558 },
44660702 15559 "iops" : {
de0983cb 15560 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 15561 "format_description" : "iops",
44660702
DM
15562 "optional" : 1,
15563 "type" : "integer"
7aacca6f 15564 },
44660702 15565 "iops_max" : {
de0983cb 15566 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 15567 "format_description" : "iops",
56122987 15568 "optional" : 1,
44660702 15569 "type" : "integer"
7aacca6f 15570 },
de0983cb
DM
15571 "iops_max_length" : {
15572 "description" : "Maximum length of I/O bursts in seconds.",
15573 "format_description" : "seconds",
15574 "minimum" : 1,
15575 "optional" : 1,
15576 "type" : "integer"
15577 },
44660702 15578 "iops_rd" : {
de0983cb 15579 "description" : "Maximum read I/O in operations per second.",
44660702 15580 "format_description" : "iops",
7aacca6f 15581 "optional" : 1,
44660702 15582 "type" : "integer"
56122987 15583 },
de0983cb 15584 "iops_rd_length" : {
5d9c884c 15585 "alias" : "iops_rd_max_length"
de0983cb 15586 },
44660702 15587 "iops_rd_max" : {
de0983cb 15588 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
15589 "format_description" : "iops",
15590 "optional" : 1,
15591 "type" : "integer"
15592 },
5d9c884c
DM
15593 "iops_rd_max_length" : {
15594 "description" : "Maximum length of read I/O bursts in seconds.",
15595 "format_description" : "seconds",
15596 "minimum" : 1,
15597 "optional" : 1,
15598 "type" : "integer"
15599 },
44660702 15600 "iops_wr" : {
de0983cb 15601 "description" : "Maximum write I/O in operations per second.",
44660702 15602 "format_description" : "iops",
56122987 15603 "optional" : 1,
44660702
DM
15604 "type" : "integer"
15605 },
de0983cb 15606 "iops_wr_length" : {
5d9c884c 15607 "alias" : "iops_wr_max_length"
de0983cb 15608 },
44660702 15609 "iops_wr_max" : {
de0983cb 15610 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
15611 "format_description" : "iops",
15612 "optional" : 1,
15613 "type" : "integer"
56122987 15614 },
5d9c884c
DM
15615 "iops_wr_max_length" : {
15616 "description" : "Maximum length of write I/O bursts in seconds.",
15617 "format_description" : "seconds",
15618 "minimum" : 1,
15619 "optional" : 1,
15620 "type" : "integer"
15621 },
7aacca6f 15622 "iothread" : {
7aacca6f 15623 "description" : "Whether to use iothreads for this drive",
56122987 15624 "optional" : 1,
56122987
DM
15625 "type" : "boolean"
15626 },
44660702 15627 "mbps" : {
de0983cb 15628 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
15629 "format_description" : "mbps",
15630 "optional" : 1,
15631 "type" : "number"
15632 },
15633 "mbps_max" : {
de0983cb 15634 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
15635 "format_description" : "mbps",
15636 "optional" : 1,
15637 "type" : "number"
15638 },
15639 "mbps_rd" : {
de0983cb 15640 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
15641 "format_description" : "mbps",
15642 "optional" : 1,
15643 "type" : "number"
15644 },
15645 "mbps_rd_max" : {
de0983cb 15646 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
15647 "format_description" : "mbps",
15648 "optional" : 1,
15649 "type" : "number"
15650 },
15651 "mbps_wr" : {
de0983cb 15652 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
15653 "format_description" : "mbps",
15654 "optional" : 1,
15655 "type" : "number"
15656 },
15657 "mbps_wr_max" : {
de0983cb 15658 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
15659 "format_description" : "mbps",
15660 "optional" : 1,
15661 "type" : "number"
15662 },
7aacca6f 15663 "media" : {
44660702
DM
15664 "default" : "disk",
15665 "description" : "The drive's media type.",
7aacca6f
DM
15666 "enum" : [
15667 "cdrom",
15668 "disk"
15669 ],
56122987 15670 "optional" : 1,
44660702
DM
15671 "type" : "string"
15672 },
15673 "queues" : {
15674 "description" : "Number of queues.",
44660702
DM
15675 "minimum" : 2,
15676 "optional" : 1,
15677 "type" : "integer"
15678 },
5d9c884c
DM
15679 "replicate" : {
15680 "default" : 1,
15681 "description" : "Whether the drive should considered for replication jobs.",
15682 "optional" : 1,
15683 "type" : "boolean"
15684 },
15685 "rerror" : {
15686 "description" : "Read error action.",
15687 "enum" : [
15688 "ignore",
15689 "report",
15690 "stop"
15691 ],
15692 "optional" : 1,
15693 "type" : "string"
15694 },
5370fa8c
TL
15695 "ro" : {
15696 "description" : "Whether the drive is read-only.",
15697 "optional" : 1,
15698 "type" : "boolean"
15699 },
52e44c50
FG
15700 "scsiblock" : {
15701 "default" : 0,
15702 "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",
15703 "optional" : 1,
15704 "type" : "boolean"
15705 },
44660702
DM
15706 "secs" : {
15707 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
15708 "optional" : 1,
15709 "type" : "integer"
15710 },
15711 "serial" : {
15712 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
15713 "format" : "urlencoded",
15714 "format_description" : "serial",
15715 "maxLength" : 60,
15716 "optional" : 1,
15717 "type" : "string"
15718 },
27a7acb2
DM
15719 "shared" : {
15720 "default" : 0,
15721 "description" : "Mark this locally-managed volume as available on all nodes",
15722 "optional" : 1,
15723 "type" : "boolean",
15724 "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!"
15725 },
44660702
DM
15726 "size" : {
15727 "description" : "Disk size. This is purely informational and has no effect.",
15728 "format" : "disk-size",
f004f5b9 15729 "format_description" : "DiskSize",
44660702
DM
15730 "optional" : 1,
15731 "type" : "string"
56122987 15732 },
7aacca6f 15733 "snapshot" : {
27a7acb2 15734 "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 15735 "optional" : 1,
44660702 15736 "type" : "boolean"
7aacca6f 15737 },
25203dc1
NC
15738 "ssd" : {
15739 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
15740 "optional" : 1,
15741 "type" : "boolean"
15742 },
44660702
DM
15743 "trans" : {
15744 "description" : "Force disk geometry bios translation mode.",
15745 "enum" : [
15746 "none",
15747 "lba",
15748 "auto"
15749 ],
44660702
DM
15750 "optional" : 1,
15751 "type" : "string"
15752 },
15753 "volume" : {
15754 "alias" : "file"
15755 },
15756 "werror" : {
15757 "description" : "Write error action.",
15758 "enum" : [
15759 "enospc",
15760 "ignore",
15761 "report",
15762 "stop"
15763 ],
56122987 15764 "optional" : 1,
44660702 15765 "type" : "string"
95895385
TL
15766 },
15767 "wwn" : {
15768 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
15769 "format_description" : "wwn",
15770 "optional" : 1,
15771 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
15772 "type" : "string"
56122987 15773 }
44660702 15774 },
7aacca6f 15775 "optional" : 1,
4d47f125 15776 "type" : "string"
44660702
DM
15777 },
15778 "scsihw" : {
15779 "default" : "lsi",
c2993fe5 15780 "description" : "SCSI controller model",
7aacca6f 15781 "enum" : [
44660702
DM
15782 "lsi",
15783 "lsi53c810",
15784 "virtio-scsi-pci",
15785 "virtio-scsi-single",
15786 "megasas",
15787 "pvscsi"
7aacca6f 15788 ],
44660702
DM
15789 "optional" : 1,
15790 "type" : "string"
56122987 15791 },
27a7acb2 15792 "searchdomain" : {
de786b48 15793 "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 15794 "optional" : 1,
4d47f125 15795 "type" : "string"
27a7acb2 15796 },
44660702 15797 "serial[n]" : {
c2993fe5 15798 "description" : "Create a serial device inside the VM (n is 0 to 3)",
7aacca6f 15799 "optional" : 1,
44660702 15800 "pattern" : "(/dev/.+|socket)",
c2993fe5 15801 "type" : "string",
4772952b 15802 "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 15803 },
44660702
DM
15804 "shares" : {
15805 "default" : 1000,
5da3d723 15806 "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
15807 "maximum" : 50000,
15808 "minimum" : 0,
56122987 15809 "optional" : 1,
4d47f125 15810 "type" : "integer"
56122987 15811 },
44660702
DM
15812 "smbios1" : {
15813 "description" : "Specify SMBIOS type 1 fields.",
15814 "format" : "pve-qm-smbios1",
1e3f8156 15815 "maxLength" : 512,
56122987 15816 "optional" : 1,
4d47f125 15817 "type" : "string"
56122987 15818 },
44660702
DM
15819 "smp" : {
15820 "default" : 1,
15821 "description" : "The number of CPUs. Please use option -sockets instead.",
7aacca6f 15822 "minimum" : 1,
7aacca6f 15823 "optional" : 1,
4d47f125 15824 "type" : "integer"
7aacca6f 15825 },
44660702
DM
15826 "sockets" : {
15827 "default" : 1,
15828 "description" : "The number of CPU sockets.",
15829 "minimum" : 1,
7aacca6f 15830 "optional" : 1,
4d47f125 15831 "type" : "integer"
56122987 15832 },
1c532546
TL
15833 "spice_enhancements" : {
15834 "description" : "Configure additional enhancements for SPICE.",
15835 "format" : {
15836 "foldersharing" : {
15837 "default" : "0",
15838 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
15839 "optional" : 1,
15840 "type" : "boolean"
15841 },
15842 "videostreaming" : {
15843 "default" : "off",
15844 "description" : "Enable video streaming. Uses compression for detected video streams.",
15845 "enum" : [
15846 "off",
15847 "all",
15848 "filter"
15849 ],
15850 "optional" : 1,
15851 "type" : "string"
15852 }
15853 },
15854 "optional" : 1,
15855 "type" : "string"
15856 },
27a7acb2
DM
15857 "sshkeys" : {
15858 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
15859 "format" : "urlencoded",
15860 "optional" : 1,
4d47f125 15861 "type" : "string"
27a7acb2 15862 },
44660702
DM
15863 "startdate" : {
15864 "default" : "now",
4772952b 15865 "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 15866 "optional" : 1,
44660702 15867 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
7aacca6f 15868 "type" : "string",
44660702 15869 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
56122987 15870 },
7aacca6f 15871 "startup" : {
7aacca6f 15872 "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 15873 "format" : "pve-startup-order",
56122987 15874 "optional" : 1,
44660702
DM
15875 "type" : "string",
15876 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
56122987 15877 },
44660702 15878 "tablet" : {
7aacca6f 15879 "default" : 1,
c2993fe5 15880 "description" : "Enable/disable the USB tablet device.",
7aacca6f 15881 "optional" : 1,
c2993fe5 15882 "type" : "boolean",
4772952b 15883 "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 15884 },
5c1699e5
TL
15885 "tags" : {
15886 "description" : "Tags of the VM. This is only meta information.",
15887 "format" : "pve-tag-list",
15888 "optional" : 1,
15889 "type" : "string"
15890 },
44660702
DM
15891 "tdf" : {
15892 "default" : 0,
15893 "description" : "Enable/disable time drift fix.",
7aacca6f 15894 "optional" : 1,
4d47f125 15895 "type" : "boolean"
7aacca6f 15896 },
44660702
DM
15897 "template" : {
15898 "default" : 0,
15899 "description" : "Enable/disable Template.",
7aacca6f 15900 "optional" : 1,
4d47f125 15901 "type" : "boolean"
7aacca6f 15902 },
5370fa8c 15903 "tpmstate0" : {
7af2edf9 15904 "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'.",
5370fa8c
TL
15905 "format" : {
15906 "file" : {
15907 "default_key" : 1,
15908 "description" : "The drive's backing volume.",
15909 "format" : "pve-volume-id-or-qm-path",
15910 "format_description" : "volume",
15911 "type" : "string"
15912 },
15913 "size" : {
15914 "description" : "Disk size. This is purely informational and has no effect.",
15915 "format" : "disk-size",
15916 "format_description" : "DiskSize",
15917 "optional" : 1,
15918 "type" : "string"
15919 },
15920 "version" : {
15921 "default" : "v2.0",
15922 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
15923 "enum" : [
15924 "v1.2",
15925 "v2.0"
15926 ],
15927 "optional" : 1,
15928 "type" : "string"
15929 },
15930 "volume" : {
15931 "alias" : "file"
15932 }
15933 },
15934 "optional" : 1,
15935 "type" : "string"
15936 },
44660702 15937 "unused[n]" : {
c2993fe5 15938 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
15939 "format" : {
15940 "file" : {
15941 "default_key" : 1,
15942 "description" : "The drive's backing volume.",
15943 "format" : "pve-volume-id",
15944 "format_description" : "volume",
15945 "type" : "string"
15946 },
15947 "volume" : {
15948 "alias" : "file"
15949 }
15950 },
7aacca6f 15951 "optional" : 1,
4d47f125 15952 "type" : "string"
7aacca6f 15953 },
44660702 15954 "usb[n]" : {
4e7f60c2 15955 "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
15956 "format" : {
15957 "host" : {
15958 "default_key" : 1,
499c9b7f 15959 "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n\nEither this or the 'mapping' key must be set.\n",
44660702 15960 "format_description" : "HOSTUSBDEVICE|spice",
499c9b7f
TL
15961 "optional" : 1,
15962 "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
15963 "type" : "string"
15964 },
15965 "mapping" : {
15966 "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
15967 "format" : "pve-configid",
15968 "format_description" : "mapping-id",
15969 "optional" : 1,
44660702
DM
15970 "type" : "string"
15971 },
15972 "usb3" : {
c2993fe5 15973 "default" : 0,
4e7f60c2 15974 "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
15975 "optional" : 1,
15976 "type" : "boolean"
15977 }
15978 },
7aacca6f 15979 "optional" : 1,
4d47f125 15980 "type" : "string"
56122987 15981 },
44660702
DM
15982 "vcpus" : {
15983 "default" : 0,
15984 "description" : "Number of hotplugged vcpus.",
15985 "minimum" : 1,
56122987 15986 "optional" : 1,
4d47f125 15987 "type" : "integer"
56122987 15988 },
44660702 15989 "vga" : {
e2d681b3
TL
15990 "description" : "Configure the VGA hardware.",
15991 "format" : {
15992 "memory" : {
15993 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
15994 "maximum" : 512,
15995 "minimum" : 4,
15996 "optional" : 1,
15997 "type" : "integer"
15998 },
15999 "type" : {
16000 "default" : "std",
16001 "default_key" : 1,
16002 "description" : "Select the VGA type.",
16003 "enum" : [
16004 "cirrus",
16005 "qxl",
16006 "qxl2",
16007 "qxl3",
16008 "qxl4",
5f26e15b 16009 "none",
e2d681b3
TL
16010 "serial0",
16011 "serial1",
16012 "serial2",
16013 "serial3",
16014 "std",
16015 "virtio",
7af2edf9 16016 "virtio-gl",
e2d681b3
TL
16017 "vmware"
16018 ],
16019 "optional" : 1,
16020 "type" : "string"
16021 }
16022 },
56122987 16023 "optional" : 1,
c2993fe5 16024 "type" : "string",
e2d681b3 16025 "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 16026 },
44660702 16027 "virtio[n]" : {
7af2edf9 16028 "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
56122987 16029 "format" : {
44660702
DM
16030 "aio" : {
16031 "description" : "AIO type to use.",
56122987 16032 "enum" : [
44660702 16033 "native",
8f4d9c87
TL
16034 "threads",
16035 "io_uring"
56122987 16036 ],
56122987
DM
16037 "optional" : 1,
16038 "type" : "string"
16039 },
44660702
DM
16040 "backup" : {
16041 "description" : "Whether the drive should be included when making backups.",
44660702
DM
16042 "optional" : 1,
16043 "type" : "boolean"
7aacca6f 16044 },
44660702 16045 "bps" : {
de0983cb 16046 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
16047 "format_description" : "bps",
16048 "optional" : 1,
16049 "type" : "integer"
56122987 16050 },
de0983cb
DM
16051 "bps_max_length" : {
16052 "description" : "Maximum length of I/O bursts in seconds.",
16053 "format_description" : "seconds",
16054 "minimum" : 1,
16055 "optional" : 1,
16056 "type" : "integer"
16057 },
44660702 16058 "bps_rd" : {
de0983cb 16059 "description" : "Maximum read speed in bytes per second.",
44660702 16060 "format_description" : "bps",
56122987 16061 "optional" : 1,
44660702 16062 "type" : "integer"
56122987 16063 },
de0983cb 16064 "bps_rd_length" : {
5d9c884c
DM
16065 "alias" : "bps_rd_max_length"
16066 },
16067 "bps_rd_max_length" : {
de0983cb
DM
16068 "description" : "Maximum length of read I/O bursts in seconds.",
16069 "format_description" : "seconds",
16070 "minimum" : 1,
16071 "optional" : 1,
16072 "type" : "integer"
16073 },
44660702 16074 "bps_wr" : {
de0983cb 16075 "description" : "Maximum write speed in bytes per second.",
44660702 16076 "format_description" : "bps",
56122987 16077 "optional" : 1,
44660702
DM
16078 "type" : "integer"
16079 },
de0983cb 16080 "bps_wr_length" : {
5d9c884c
DM
16081 "alias" : "bps_wr_max_length"
16082 },
16083 "bps_wr_max_length" : {
de0983cb
DM
16084 "description" : "Maximum length of write I/O bursts in seconds.",
16085 "format_description" : "seconds",
16086 "minimum" : 1,
16087 "optional" : 1,
16088 "type" : "integer"
16089 },
44660702
DM
16090 "cache" : {
16091 "description" : "The drive's cache mode",
56122987 16092 "enum" : [
44660702
DM
16093 "none",
16094 "writethrough",
16095 "writeback",
16096 "unsafe",
16097 "directsync"
56122987 16098 ],
56122987 16099 "optional" : 1,
44660702 16100 "type" : "string"
56122987 16101 },
44660702
DM
16102 "cyls" : {
16103 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
56122987 16104 "optional" : 1,
44660702 16105 "type" : "integer"
7aacca6f 16106 },
44660702
DM
16107 "detect_zeroes" : {
16108 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
16109 "optional" : 1,
16110 "type" : "boolean"
7aacca6f 16111 },
44660702
DM
16112 "discard" : {
16113 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
16114 "enum" : [
16115 "ignore",
16116 "on"
16117 ],
56122987 16118 "optional" : 1,
44660702 16119 "type" : "string"
56122987
DM
16120 },
16121 "file" : {
7aacca6f 16122 "default_key" : 1,
44660702 16123 "description" : "The drive's backing volume.",
7aacca6f 16124 "format" : "pve-volume-id-or-qm-path",
44660702
DM
16125 "format_description" : "volume",
16126 "type" : "string"
7aacca6f
DM
16127 },
16128 "format" : {
7aacca6f
DM
16129 "description" : "The drive's backing file's data format.",
16130 "enum" : [
16131 "raw",
16132 "cow",
16133 "qcow",
16134 "qed",
16135 "qcow2",
16136 "vmdk",
16137 "cloop"
56122987
DM
16138 ],
16139 "optional" : 1,
56122987
DM
16140 "type" : "string"
16141 },
44660702
DM
16142 "heads" : {
16143 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 16144 "optional" : 1,
44660702 16145 "type" : "integer"
56122987 16146 },
44660702 16147 "iops" : {
de0983cb 16148 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 16149 "format_description" : "iops",
56122987 16150 "optional" : 1,
44660702 16151 "type" : "integer"
56122987 16152 },
44660702 16153 "iops_max" : {
de0983cb 16154 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 16155 "format_description" : "iops",
56122987 16156 "optional" : 1,
56122987
DM
16157 "type" : "integer"
16158 },
de0983cb
DM
16159 "iops_max_length" : {
16160 "description" : "Maximum length of I/O bursts in seconds.",
16161 "format_description" : "seconds",
16162 "minimum" : 1,
16163 "optional" : 1,
16164 "type" : "integer"
16165 },
44660702 16166 "iops_rd" : {
de0983cb 16167 "description" : "Maximum read I/O in operations per second.",
44660702 16168 "format_description" : "iops",
56122987 16169 "optional" : 1,
44660702 16170 "type" : "integer"
56122987 16171 },
de0983cb 16172 "iops_rd_length" : {
5d9c884c 16173 "alias" : "iops_rd_max_length"
de0983cb 16174 },
44660702 16175 "iops_rd_max" : {
de0983cb 16176 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 16177 "format_description" : "iops",
7aacca6f 16178 "optional" : 1,
44660702 16179 "type" : "integer"
56122987 16180 },
5d9c884c
DM
16181 "iops_rd_max_length" : {
16182 "description" : "Maximum length of read I/O bursts in seconds.",
16183 "format_description" : "seconds",
16184 "minimum" : 1,
16185 "optional" : 1,
16186 "type" : "integer"
16187 },
44660702 16188 "iops_wr" : {
de0983cb 16189 "description" : "Maximum write I/O in operations per second.",
44660702 16190 "format_description" : "iops",
7aacca6f 16191 "optional" : 1,
44660702 16192 "type" : "integer"
56122987 16193 },
de0983cb 16194 "iops_wr_length" : {
5d9c884c 16195 "alias" : "iops_wr_max_length"
de0983cb 16196 },
44660702 16197 "iops_wr_max" : {
de0983cb 16198 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 16199 "format_description" : "iops",
56122987
DM
16200 "optional" : 1,
16201 "type" : "integer"
16202 },
5d9c884c
DM
16203 "iops_wr_max_length" : {
16204 "description" : "Maximum length of write I/O bursts in seconds.",
16205 "format_description" : "seconds",
16206 "minimum" : 1,
16207 "optional" : 1,
16208 "type" : "integer"
16209 },
44660702
DM
16210 "iothread" : {
16211 "description" : "Whether to use iothreads for this drive",
44660702
DM
16212 "optional" : 1,
16213 "type" : "boolean"
16214 },
16215 "mbps" : {
de0983cb 16216 "description" : "Maximum r/w speed in megabytes per second.",
7aacca6f 16217 "format_description" : "mbps",
44660702
DM
16218 "optional" : 1,
16219 "type" : "number"
16220 },
16221 "mbps_max" : {
de0983cb 16222 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
16223 "format_description" : "mbps",
16224 "optional" : 1,
16225 "type" : "number"
7aacca6f 16226 },
44660702 16227 "mbps_rd" : {
de0983cb 16228 "description" : "Maximum read speed in megabytes per second.",
44660702 16229 "format_description" : "mbps",
56122987 16230 "optional" : 1,
44660702 16231 "type" : "number"
56122987 16232 },
44660702 16233 "mbps_rd_max" : {
de0983cb 16234 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 16235 "format_description" : "mbps",
7aacca6f 16236 "optional" : 1,
44660702 16237 "type" : "number"
56122987 16238 },
44660702 16239 "mbps_wr" : {
de0983cb 16240 "description" : "Maximum write speed in megabytes per second.",
44660702 16241 "format_description" : "mbps",
56122987 16242 "optional" : 1,
44660702 16243 "type" : "number"
56122987 16244 },
44660702 16245 "mbps_wr_max" : {
de0983cb 16246 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 16247 "format_description" : "mbps",
56122987 16248 "optional" : 1,
44660702 16249 "type" : "number"
56122987
DM
16250 },
16251 "media" : {
7aacca6f 16252 "default" : "disk",
44660702 16253 "description" : "The drive's media type.",
56122987
DM
16254 "enum" : [
16255 "cdrom",
16256 "disk"
16257 ],
44660702
DM
16258 "optional" : 1,
16259 "type" : "string"
56122987 16260 },
5d9c884c
DM
16261 "replicate" : {
16262 "default" : 1,
16263 "description" : "Whether the drive should considered for replication jobs.",
16264 "optional" : 1,
16265 "type" : "boolean"
16266 },
7aacca6f 16267 "rerror" : {
44660702 16268 "description" : "Read error action.",
56122987 16269 "enum" : [
7aacca6f
DM
16270 "ignore",
16271 "report",
16272 "stop"
56122987 16273 ],
56122987 16274 "optional" : 1,
44660702 16275 "type" : "string"
56122987 16276 },
5370fa8c
TL
16277 "ro" : {
16278 "description" : "Whether the drive is read-only.",
16279 "optional" : 1,
16280 "type" : "boolean"
16281 },
44660702
DM
16282 "secs" : {
16283 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
16284 "optional" : 1,
16285 "type" : "integer"
16286 },
16287 "serial" : {
16288 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
16289 "format" : "urlencoded",
16290 "format_description" : "serial",
16291 "maxLength" : 60,
56122987 16292 "optional" : 1,
7aacca6f 16293 "type" : "string"
56122987 16294 },
27a7acb2
DM
16295 "shared" : {
16296 "default" : 0,
16297 "description" : "Mark this locally-managed volume as available on all nodes",
16298 "optional" : 1,
16299 "type" : "boolean",
16300 "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!"
16301 },
44660702
DM
16302 "size" : {
16303 "description" : "Disk size. This is purely informational and has no effect.",
16304 "format" : "disk-size",
f004f5b9 16305 "format_description" : "DiskSize",
56122987 16306 "optional" : 1,
44660702 16307 "type" : "string"
56122987 16308 },
44660702 16309 "snapshot" : {
27a7acb2 16310 "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 16311 "optional" : 1,
44660702 16312 "type" : "boolean"
56122987 16313 },
44660702
DM
16314 "trans" : {
16315 "description" : "Force disk geometry bios translation mode.",
16316 "enum" : [
16317 "none",
16318 "lba",
16319 "auto"
16320 ],
44660702
DM
16321 "optional" : 1,
16322 "type" : "string"
16323 },
16324 "volume" : {
16325 "alias" : "file"
16326 },
16327 "werror" : {
16328 "description" : "Write error action.",
16329 "enum" : [
16330 "enospc",
16331 "ignore",
16332 "report",
16333 "stop"
16334 ],
56122987 16335 "optional" : 1,
44660702 16336 "type" : "string"
56122987 16337 }
44660702 16338 },
56122987 16339 "optional" : 1,
4d47f125 16340 "type" : "string"
56122987 16341 },
4d47f125
TL
16342 "vmgenid" : {
16343 "default" : "1 (autogenerated)",
16344 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
16345 "format_description" : "UUID",
16346 "optional" : 1,
16347 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
16348 "type" : "string",
4772952b 16349 "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 16350 },
2489d6df
WB
16351 "vmstatestorage" : {
16352 "description" : "Default storage for VM state volumes/files.",
16353 "format" : "pve-storage-id",
16354 "optional" : 1,
4d47f125 16355 "type" : "string"
2489d6df 16356 },
44660702 16357 "watchdog" : {
c2993fe5 16358 "description" : "Create a virtual hardware watchdog device.",
44660702 16359 "format" : "pve-qm-watchdog",
56122987 16360 "optional" : 1,
c2993fe5
DM
16361 "type" : "string",
16362 "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 16363 }
4d47f125
TL
16364 },
16365 "type" : "object"
44660702 16366 }
56122987 16367 },
4d47f125 16368 "POST" : {
e9cd3bd4 16369 "allowtoken" : 1,
4d47f125
TL
16370 "description" : "Set virtual machine options (asynchrounous API).",
16371 "method" : "POST",
16372 "name" : "update_vm_async",
56122987 16373 "parameters" : {
7aacca6f 16374 "additionalProperties" : 0,
56122987 16375 "properties" : {
44660702
DM
16376 "acpi" : {
16377 "default" : 1,
16378 "description" : "Enable/disable ACPI.",
7aacca6f 16379 "optional" : 1,
013dc89f
DM
16380 "type" : "boolean",
16381 "typetext" : "<boolean>"
7aacca6f 16382 },
4e7f60c2 16383 "affinity" : {
81a3384d 16384 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
16385 "format" : "pve-cpuset",
16386 "optional" : 1,
16387 "type" : "string",
16388 "typetext" : "<string>"
16389 },
44660702 16390 "agent" : {
9d2e98ed 16391 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
16392 "format" : {
16393 "enabled" : {
16394 "default" : 0,
16395 "default_key" : 1,
9d2e98ed
TL
16396 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
16397 "type" : "boolean"
16398 },
16399 "freeze-fs-on-backup" : {
16400 "default" : 1,
16401 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
16402 "optional" : 1,
4d47f125
TL
16403 "type" : "boolean"
16404 },
16405 "fstrim_cloned_disks" : {
16406 "default" : 0,
d2656385 16407 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
16408 "optional" : 1,
16409 "type" : "boolean"
5c1699e5
TL
16410 },
16411 "type" : {
16412 "default" : "virtio",
16413 "description" : "Select the agent type",
16414 "enum" : [
16415 "virtio",
16416 "isa"
16417 ],
16418 "optional" : 1,
16419 "type" : "string"
4d47f125
TL
16420 }
16421 },
7aacca6f 16422 "optional" : 1,
4d47f125 16423 "type" : "string",
9d2e98ed 16424 "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
56122987 16425 },
e2d681b3
TL
16426 "arch" : {
16427 "description" : "Virtual processor architecture. Defaults to the host.",
16428 "enum" : [
16429 "x86_64",
16430 "aarch64"
16431 ],
16432 "optional" : 1,
16433 "type" : "string"
16434 },
44660702 16435 "args" : {
c2993fe5 16436 "description" : "Arbitrary arguments passed to kvm.",
7aacca6f 16437 "optional" : 1,
c2993fe5 16438 "type" : "string",
013dc89f 16439 "typetext" : "<string>",
159464a9 16440 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -smbios 'type=0,vendor=FOO'\n\nNOTE: this option is for experts only.\n"
7aacca6f 16441 },
1c532546
TL
16442 "audio0" : {
16443 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
16444 "format" : {
16445 "device" : {
16446 "description" : "Configure an audio device.",
16447 "enum" : [
16448 "ich9-intel-hda",
16449 "intel-hda",
16450 "AC97"
16451 ],
16452 "type" : "string"
16453 },
16454 "driver" : {
16455 "default" : "spice",
16456 "description" : "Driver backend for the audio device.",
16457 "enum" : [
d2656385
TL
16458 "spice",
16459 "none"
1c532546
TL
16460 ],
16461 "optional" : 1,
16462 "type" : "string"
16463 }
16464 },
16465 "optional" : 1,
16466 "type" : "string",
d2656385 16467 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 16468 },
44660702
DM
16469 "autostart" : {
16470 "default" : 0,
16471 "description" : "Automatic restart after crash (currently ignored).",
7aacca6f 16472 "optional" : 1,
013dc89f
DM
16473 "type" : "boolean",
16474 "typetext" : "<boolean>"
7aacca6f 16475 },
4d47f125
TL
16476 "background_delay" : {
16477 "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
16478 "maximum" : 30,
16479 "minimum" : 1,
16480 "optional" : 1,
16481 "type" : "integer",
16482 "typetext" : "<integer> (1 - 30)"
16483 },
44660702 16484 "balloon" : {
9d2e98ed 16485 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
44660702
DM
16486 "minimum" : 0,
16487 "optional" : 1,
4bd7df8b 16488 "type" : "integer",
013dc89f 16489 "typetext" : "<integer> (0 - N)"
44660702
DM
16490 },
16491 "bios" : {
16492 "default" : "seabios",
16493 "description" : "Select BIOS implementation.",
7aacca6f 16494 "enum" : [
44660702
DM
16495 "seabios",
16496 "ovmf"
7aacca6f 16497 ],
56122987 16498 "optional" : 1,
7aacca6f
DM
16499 "type" : "string"
16500 },
44660702 16501 "boot" : {
5370fa8c 16502 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 16503 "format" : "pve-qm-boot",
7aacca6f 16504 "optional" : 1,
4772952b
TL
16505 "type" : "string",
16506 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
56122987 16507 },
44660702 16508 "bootdisk" : {
4772952b 16509 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
16510 "format" : "pve-qm-bootdisk",
16511 "optional" : 1,
16512 "pattern" : "(ide|sata|scsi|virtio)\\d+",
16513 "type" : "string"
16514 },
16515 "cdrom" : {
16516 "description" : "This is an alias for option -ide2",
de0983cb 16517 "format" : "pve-qm-ide",
56122987 16518 "optional" : 1,
7aacca6f 16519 "type" : "string",
013dc89f 16520 "typetext" : "<volume>"
44660702 16521 },
95895385
TL
16522 "cicustom" : {
16523 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
16524 "format" : "pve-qm-cicustom",
16525 "optional" : 1,
16526 "type" : "string",
5370fa8c 16527 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 16528 },
27a7acb2
DM
16529 "cipassword" : {
16530 "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.",
16531 "optional" : 1,
16532 "type" : "string",
16533 "typetext" : "<string>"
16534 },
16535 "citype" : {
16536 "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.",
16537 "enum" : [
16538 "configdrive2",
d2656385
TL
16539 "nocloud",
16540 "opennebula"
27a7acb2
DM
16541 ],
16542 "optional" : 1,
16543 "type" : "string"
16544 },
159464a9 16545 "ciupgrade" : {
c8eee6ff 16546 "default" : 1,
159464a9
TL
16547 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
16548 "optional" : 1,
16549 "type" : "boolean",
16550 "typetext" : "<boolean>"
16551 },
27a7acb2
DM
16552 "ciuser" : {
16553 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
16554 "optional" : 1,
16555 "type" : "string",
16556 "typetext" : "<string>"
16557 },
44660702
DM
16558 "cores" : {
16559 "default" : 1,
16560 "description" : "The number of cores per socket.",
16561 "minimum" : 1,
16562 "optional" : 1,
4bd7df8b 16563 "type" : "integer",
013dc89f 16564 "typetext" : "<integer> (1 - N)"
44660702
DM
16565 },
16566 "cpu" : {
16567 "description" : "Emulated CPU type.",
c5aa7e14 16568 "format" : "pve-vm-cpu-conf",
44660702 16569 "optional" : 1,
4bd7df8b 16570 "type" : "string",
04d22a9f 16571 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
44660702
DM
16572 },
16573 "cpulimit" : {
16574 "default" : 0,
c2993fe5 16575 "description" : "Limit of CPU usage.",
44660702
DM
16576 "maximum" : 128,
16577 "minimum" : 0,
16578 "optional" : 1,
c2993fe5 16579 "type" : "number",
013dc89f 16580 "typetext" : "<number> (0 - 128)",
c2993fe5 16581 "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
16582 },
16583 "cpuunits" : {
5370fa8c
TL
16584 "default" : "cgroup v1: 1024, cgroup v2: 100",
16585 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 16586 "maximum" : 262144,
7af2edf9 16587 "minimum" : 1,
44660702 16588 "optional" : 1,
c2993fe5 16589 "type" : "integer",
7af2edf9 16590 "typetext" : "<integer> (1 - 262144)",
2489d6df 16591 "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
16592 },
16593 "delete" : {
16594 "description" : "A list of settings you want to delete.",
16595 "format" : "pve-configid-list",
16596 "optional" : 1,
013dc89f
DM
16597 "type" : "string",
16598 "typetext" : "<string>"
44660702
DM
16599 },
16600 "description" : {
8f4d9c87
TL
16601 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
16602 "maxLength" : 8192,
44660702 16603 "optional" : 1,
013dc89f
DM
16604 "type" : "string",
16605 "typetext" : "<string>"
44660702
DM
16606 },
16607 "digest" : {
16608 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
16609 "maxLength" : 40,
16610 "optional" : 1,
013dc89f
DM
16611 "type" : "string",
16612 "typetext" : "<string>"
44660702 16613 },
4d47f125 16614 "efidisk0" : {
9d2e98ed 16615 "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 16616 "format" : {
5370fa8c
TL
16617 "efitype" : {
16618 "default" : "2m",
9d2e98ed 16619 "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified. Ignored for VMs with arch=aarc64 (ARM).",
5370fa8c
TL
16620 "enum" : [
16621 "2m",
16622 "4m"
16623 ],
16624 "optional" : 1,
16625 "type" : "string"
16626 },
4d47f125
TL
16627 "file" : {
16628 "default_key" : 1,
16629 "description" : "The drive's backing volume.",
16630 "format" : "pve-volume-id-or-qm-path",
16631 "format_description" : "volume",
16632 "type" : "string"
16633 },
16634 "format" : {
16635 "description" : "The drive's backing file's data format.",
16636 "enum" : [
16637 "raw",
16638 "cow",
16639 "qcow",
16640 "qed",
16641 "qcow2",
16642 "vmdk",
16643 "cloop"
16644 ],
16645 "optional" : 1,
16646 "type" : "string"
16647 },
7af2edf9
TL
16648 "import-from" : {
16649 "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!",
16650 "format" : "pve-volume-id-or-absolute-path",
16651 "format_description" : "source volume",
16652 "optional" : 1,
16653 "type" : "string"
16654 },
5370fa8c
TL
16655 "pre-enrolled-keys" : {
16656 "default" : 0,
16657 "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.",
16658 "optional" : 1,
16659 "type" : "boolean"
16660 },
4d47f125
TL
16661 "size" : {
16662 "description" : "Disk size. This is purely informational and has no effect.",
16663 "format" : "disk-size",
16664 "format_description" : "DiskSize",
16665 "optional" : 1,
16666 "type" : "string"
16667 },
16668 "volume" : {
16669 "alias" : "file"
16670 }
16671 },
16672 "optional" : 1,
16673 "type" : "string",
7af2edf9 16674 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125 16675 },
44660702
DM
16676 "force" : {
16677 "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.",
16678 "optional" : 1,
16679 "requires" : "delete",
013dc89f
DM
16680 "type" : "boolean",
16681 "typetext" : "<boolean>"
44660702
DM
16682 },
16683 "freeze" : {
16684 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
16685 "optional" : 1,
013dc89f
DM
16686 "type" : "boolean",
16687 "typetext" : "<boolean>"
44660702 16688 },
5f26e15b
TL
16689 "hookscript" : {
16690 "description" : "Script that will be executed during various steps in the vms lifetime.",
16691 "format" : "pve-volume-id",
16692 "optional" : 1,
16693 "type" : "string",
16694 "typetext" : "<string>"
16695 },
44660702 16696 "hostpci[n]" : {
c2993fe5 16697 "description" : "Map host PCI devices into guest.",
44660702
DM
16698 "format" : "pve-qm-hostpci",
16699 "optional" : 1,
57b78691 16700 "type" : "string",
499c9b7f 16701 "typetext" : "[[host=]<HOSTPCIID[;HOSTPCIID2...]>] [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
bb4c8cf8 16702 "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 16703 },
7aacca6f 16704 "hotplug" : {
7aacca6f 16705 "default" : "network,disk,usb",
4e7f60c2 16706 "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 16707 "format" : "pve-hotplug-features",
56122987 16708 "optional" : 1,
013dc89f
DM
16709 "type" : "string",
16710 "typetext" : "<string>"
56122987 16711 },
4bd7df8b
DM
16712 "hugepages" : {
16713 "description" : "Enable/disable hugepages memory.",
16714 "enum" : [
16715 "any",
16716 "2",
16717 "1024"
16718 ],
16719 "optional" : 1,
16720 "type" : "string"
16721 },
56122987 16722 "ide[n]" : {
7af2edf9 16723 "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 16724 "format" : {
44660702
DM
16725 "aio" : {
16726 "description" : "AIO type to use.",
16727 "enum" : [
16728 "native",
8f4d9c87
TL
16729 "threads",
16730 "io_uring"
44660702 16731 ],
56122987 16732 "optional" : 1,
44660702 16733 "type" : "string"
56122987 16734 },
44660702
DM
16735 "backup" : {
16736 "description" : "Whether the drive should be included when making backups.",
44660702
DM
16737 "optional" : 1,
16738 "type" : "boolean"
16739 },
16740 "bps" : {
de0983cb 16741 "description" : "Maximum r/w speed in bytes per second.",
44660702 16742 "format_description" : "bps",
56122987 16743 "optional" : 1,
44660702 16744 "type" : "integer"
56122987 16745 },
de0983cb
DM
16746 "bps_max_length" : {
16747 "description" : "Maximum length of I/O bursts in seconds.",
16748 "format_description" : "seconds",
16749 "minimum" : 1,
16750 "optional" : 1,
16751 "type" : "integer"
16752 },
44660702 16753 "bps_rd" : {
de0983cb 16754 "description" : "Maximum read speed in bytes per second.",
44660702 16755 "format_description" : "bps",
56122987 16756 "optional" : 1,
44660702 16757 "type" : "integer"
56122987 16758 },
de0983cb 16759 "bps_rd_length" : {
5d9c884c
DM
16760 "alias" : "bps_rd_max_length"
16761 },
16762 "bps_rd_max_length" : {
de0983cb
DM
16763 "description" : "Maximum length of read I/O bursts in seconds.",
16764 "format_description" : "seconds",
16765 "minimum" : 1,
16766 "optional" : 1,
16767 "type" : "integer"
16768 },
7aacca6f 16769 "bps_wr" : {
de0983cb 16770 "description" : "Maximum write speed in bytes per second.",
44660702
DM
16771 "format_description" : "bps",
16772 "optional" : 1,
16773 "type" : "integer"
7aacca6f 16774 },
de0983cb 16775 "bps_wr_length" : {
5d9c884c
DM
16776 "alias" : "bps_wr_max_length"
16777 },
16778 "bps_wr_max_length" : {
de0983cb
DM
16779 "description" : "Maximum length of write I/O bursts in seconds.",
16780 "format_description" : "seconds",
16781 "minimum" : 1,
16782 "optional" : 1,
16783 "type" : "integer"
16784 },
44660702
DM
16785 "cache" : {
16786 "description" : "The drive's cache mode",
16787 "enum" : [
16788 "none",
16789 "writethrough",
16790 "writeback",
16791 "unsafe",
16792 "directsync"
16793 ],
56122987 16794 "optional" : 1,
44660702
DM
16795 "type" : "string"
16796 },
16797 "cyls" : {
16798 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
16799 "optional" : 1,
16800 "type" : "integer"
16801 },
16802 "detect_zeroes" : {
16803 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
16804 "optional" : 1,
16805 "type" : "boolean"
56122987 16806 },
7aacca6f 16807 "discard" : {
7aacca6f 16808 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
56122987 16809 "enum" : [
7aacca6f
DM
16810 "ignore",
16811 "on"
56122987
DM
16812 ],
16813 "optional" : 1,
44660702 16814 "type" : "string"
7aacca6f 16815 },
44660702
DM
16816 "file" : {
16817 "default_key" : 1,
16818 "description" : "The drive's backing volume.",
16819 "format" : "pve-volume-id-or-qm-path",
16820 "format_description" : "volume",
16821 "type" : "string"
7aacca6f
DM
16822 },
16823 "format" : {
44660702 16824 "description" : "The drive's backing file's data format.",
7aacca6f
DM
16825 "enum" : [
16826 "raw",
16827 "cow",
16828 "qcow",
16829 "qed",
16830 "qcow2",
16831 "vmdk",
16832 "cloop"
16833 ],
7aacca6f 16834 "optional" : 1,
44660702 16835 "type" : "string"
56122987 16836 },
7aacca6f 16837 "heads" : {
44660702 16838 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 16839 "optional" : 1,
44660702 16840 "type" : "integer"
7aacca6f 16841 },
7af2edf9
TL
16842 "import-from" : {
16843 "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!",
16844 "format" : "pve-volume-id-or-absolute-path",
16845 "format_description" : "source volume",
16846 "optional" : 1,
16847 "type" : "string"
16848 },
44660702 16849 "iops" : {
de0983cb 16850 "description" : "Maximum r/w I/O in operations per second.",
44660702 16851 "format_description" : "iops",
7aacca6f 16852 "optional" : 1,
44660702 16853 "type" : "integer"
56122987 16854 },
44660702 16855 "iops_max" : {
de0983cb 16856 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 16857 "format_description" : "iops",
56122987 16858 "optional" : 1,
44660702 16859 "type" : "integer"
56122987 16860 },
de0983cb
DM
16861 "iops_max_length" : {
16862 "description" : "Maximum length of I/O bursts in seconds.",
16863 "format_description" : "seconds",
16864 "minimum" : 1,
16865 "optional" : 1,
16866 "type" : "integer"
16867 },
44660702 16868 "iops_rd" : {
de0983cb 16869 "description" : "Maximum read I/O in operations per second.",
44660702 16870 "format_description" : "iops",
56122987 16871 "optional" : 1,
44660702 16872 "type" : "integer"
7aacca6f 16873 },
de0983cb 16874 "iops_rd_length" : {
5d9c884c 16875 "alias" : "iops_rd_max_length"
de0983cb 16876 },
44660702 16877 "iops_rd_max" : {
de0983cb 16878 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 16879 "format_description" : "iops",
7aacca6f 16880 "optional" : 1,
44660702 16881 "type" : "integer"
7aacca6f 16882 },
5d9c884c
DM
16883 "iops_rd_max_length" : {
16884 "description" : "Maximum length of read I/O bursts in seconds.",
16885 "format_description" : "seconds",
16886 "minimum" : 1,
16887 "optional" : 1,
16888 "type" : "integer"
16889 },
44660702 16890 "iops_wr" : {
de0983cb 16891 "description" : "Maximum write I/O in operations per second.",
44660702 16892 "format_description" : "iops",
7aacca6f 16893 "optional" : 1,
44660702 16894 "type" : "integer"
56122987 16895 },
de0983cb 16896 "iops_wr_length" : {
5d9c884c 16897 "alias" : "iops_wr_max_length"
de0983cb 16898 },
44660702 16899 "iops_wr_max" : {
de0983cb 16900 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 16901 "format_description" : "iops",
7aacca6f 16902 "optional" : 1,
44660702 16903 "type" : "integer"
7aacca6f 16904 },
5d9c884c
DM
16905 "iops_wr_max_length" : {
16906 "description" : "Maximum length of write I/O bursts in seconds.",
16907 "format_description" : "seconds",
16908 "minimum" : 1,
16909 "optional" : 1,
16910 "type" : "integer"
16911 },
7aacca6f 16912 "mbps" : {
de0983cb 16913 "description" : "Maximum r/w speed in megabytes per second.",
7aacca6f 16914 "format_description" : "mbps",
7aacca6f 16915 "optional" : 1,
44660702 16916 "type" : "number"
7aacca6f 16917 },
44660702 16918 "mbps_max" : {
de0983cb 16919 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 16920 "format_description" : "mbps",
7aacca6f 16921 "optional" : 1,
44660702 16922 "type" : "number"
7aacca6f 16923 },
44660702 16924 "mbps_rd" : {
de0983cb 16925 "description" : "Maximum read speed in megabytes per second.",
44660702 16926 "format_description" : "mbps",
7aacca6f 16927 "optional" : 1,
44660702 16928 "type" : "number"
7aacca6f 16929 },
44660702 16930 "mbps_rd_max" : {
de0983cb 16931 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
16932 "format_description" : "mbps",
16933 "optional" : 1,
16934 "type" : "number"
7aacca6f 16935 },
44660702 16936 "mbps_wr" : {
de0983cb 16937 "description" : "Maximum write speed in megabytes per second.",
44660702 16938 "format_description" : "mbps",
7aacca6f 16939 "optional" : 1,
44660702
DM
16940 "type" : "number"
16941 },
16942 "mbps_wr_max" : {
de0983cb 16943 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
16944 "format_description" : "mbps",
16945 "optional" : 1,
16946 "type" : "number"
16947 },
16948 "media" : {
16949 "default" : "disk",
16950 "description" : "The drive's media type.",
56122987 16951 "enum" : [
44660702
DM
16952 "cdrom",
16953 "disk"
56122987 16954 ],
44660702
DM
16955 "optional" : 1,
16956 "type" : "string"
56122987 16957 },
7aacca6f 16958 "model" : {
44660702 16959 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
56122987 16960 "format" : "urlencoded",
7aacca6f 16961 "format_description" : "model",
44660702 16962 "maxLength" : 120,
56122987 16963 "optional" : 1,
44660702 16964 "type" : "string"
56122987 16965 },
5d9c884c
DM
16966 "replicate" : {
16967 "default" : 1,
16968 "description" : "Whether the drive should considered for replication jobs.",
16969 "optional" : 1,
16970 "type" : "boolean"
16971 },
44660702
DM
16972 "rerror" : {
16973 "description" : "Read error action.",
16974 "enum" : [
16975 "ignore",
16976 "report",
16977 "stop"
16978 ],
56122987 16979 "optional" : 1,
44660702 16980 "type" : "string"
56122987 16981 },
44660702
DM
16982 "secs" : {
16983 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
16984 "optional" : 1,
16985 "type" : "integer"
56122987 16986 },
44660702
DM
16987 "serial" : {
16988 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
16989 "format" : "urlencoded",
16990 "format_description" : "serial",
16991 "maxLength" : 60,
56122987 16992 "optional" : 1,
44660702 16993 "type" : "string"
56122987 16994 },
27a7acb2
DM
16995 "shared" : {
16996 "default" : 0,
16997 "description" : "Mark this locally-managed volume as available on all nodes",
16998 "optional" : 1,
16999 "type" : "boolean",
17000 "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!"
17001 },
44660702
DM
17002 "size" : {
17003 "description" : "Disk size. This is purely informational and has no effect.",
17004 "format" : "disk-size",
f004f5b9 17005 "format_description" : "DiskSize",
56122987 17006 "optional" : 1,
44660702 17007 "type" : "string"
56122987 17008 },
44660702 17009 "snapshot" : {
27a7acb2 17010 "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 17011 "optional" : 1,
44660702 17012 "type" : "boolean"
56122987 17013 },
25203dc1
NC
17014 "ssd" : {
17015 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
17016 "optional" : 1,
17017 "type" : "boolean"
17018 },
44660702
DM
17019 "trans" : {
17020 "description" : "Force disk geometry bios translation mode.",
17021 "enum" : [
17022 "none",
17023 "lba",
17024 "auto"
17025 ],
56122987 17026 "optional" : 1,
44660702
DM
17027 "type" : "string"
17028 },
17029 "volume" : {
17030 "alias" : "file"
56122987 17031 },
7aacca6f 17032 "werror" : {
44660702 17033 "description" : "Write error action.",
7aacca6f
DM
17034 "enum" : [
17035 "enospc",
17036 "ignore",
17037 "report",
17038 "stop"
17039 ],
56122987 17040 "optional" : 1,
44660702 17041 "type" : "string"
95895385
TL
17042 },
17043 "wwn" : {
17044 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
17045 "format_description" : "wwn",
17046 "optional" : 1,
17047 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
17048 "type" : "string"
7aacca6f 17049 }
44660702
DM
17050 },
17051 "optional" : 1,
4bd7df8b 17052 "type" : "string",
7af2edf9 17053 "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
17054 },
17055 "ipconfig[n]" : {
d2656385 17056 "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
17057 "format" : "pve-qm-ipconfig",
17058 "optional" : 1,
17059 "type" : "string",
17060 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
7aacca6f 17061 },
95895385
TL
17062 "ivshmem" : {
17063 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
17064 "format" : {
17065 "name" : {
17066 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
17067 "format_description" : "string",
17068 "optional" : 1,
17069 "pattern" : "[a-zA-Z0-9\\-]+",
17070 "type" : "string"
17071 },
17072 "size" : {
17073 "description" : "The size of the file in MB.",
17074 "minimum" : 1,
17075 "type" : "integer"
17076 }
17077 },
17078 "optional" : 1,
17079 "type" : "string",
17080 "typetext" : "size=<integer> [,name=<string>]"
17081 },
4772952b
TL
17082 "keephugepages" : {
17083 "default" : 0,
17084 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
17085 "optional" : 1,
17086 "type" : "boolean",
17087 "typetext" : "<boolean>"
17088 },
44660702 17089 "keyboard" : {
35a75dd3 17090 "default" : null,
7af2edf9 17091 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
44660702
DM
17092 "enum" : [
17093 "de",
17094 "de-ch",
17095 "da",
17096 "en-gb",
17097 "en-us",
17098 "es",
17099 "fi",
17100 "fr",
17101 "fr-be",
17102 "fr-ca",
17103 "fr-ch",
17104 "hu",
17105 "is",
17106 "it",
17107 "ja",
17108 "lt",
17109 "mk",
17110 "nl",
17111 "no",
17112 "pl",
17113 "pt",
17114 "pt-br",
17115 "sv",
17116 "sl",
17117 "tr"
17118 ],
7aacca6f 17119 "optional" : 1,
44660702 17120 "type" : "string"
7aacca6f 17121 },
44660702 17122 "kvm" : {
7aacca6f 17123 "default" : 1,
44660702 17124 "description" : "Enable/disable KVM hardware virtualization.",
7aacca6f 17125 "optional" : 1,
013dc89f
DM
17126 "type" : "boolean",
17127 "typetext" : "<boolean>"
7aacca6f 17128 },
44660702 17129 "localtime" : {
5370fa8c 17130 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
7aacca6f 17131 "optional" : 1,
013dc89f
DM
17132 "type" : "boolean",
17133 "typetext" : "<boolean>"
7aacca6f 17134 },
44660702
DM
17135 "lock" : {
17136 "description" : "Lock/unlock the VM.",
17137 "enum" : [
44660702 17138 "backup",
5f26e15b
TL
17139 "clone",
17140 "create",
17141 "migrate",
17142 "rollback",
44660702 17143 "snapshot",
95895385
TL
17144 "snapshot-delete",
17145 "suspending",
17146 "suspended"
44660702 17147 ],
7aacca6f 17148 "optional" : 1,
44660702 17149 "type" : "string"
7aacca6f 17150 },
44660702 17151 "machine" : {
9d2e98ed 17152 "description" : "Specifies the QEMU machine type.",
44660702 17153 "maxLength" : 40,
7aacca6f 17154 "optional" : 1,
5c1699e5 17155 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702 17156 "type" : "string"
7aacca6f 17157 },
44660702
DM
17158 "memory" : {
17159 "default" : 512,
9d2e98ed 17160 "description" : "Amount of RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
44660702 17161 "minimum" : 16,
7aacca6f 17162 "optional" : 1,
4bd7df8b 17163 "type" : "integer",
013dc89f 17164 "typetext" : "<integer> (16 - N)"
7aacca6f 17165 },
44660702
DM
17166 "migrate_downtime" : {
17167 "default" : 0.1,
17168 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
17169 "minimum" : 0,
7aacca6f 17170 "optional" : 1,
4bd7df8b 17171 "type" : "number",
013dc89f 17172 "typetext" : "<number> (0 - N)"
7aacca6f 17173 },
44660702 17174 "migrate_speed" : {
7aacca6f 17175 "default" : 0,
44660702
DM
17176 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
17177 "minimum" : 0,
17178 "optional" : 1,
4bd7df8b 17179 "type" : "integer",
013dc89f 17180 "typetext" : "<integer> (0 - N)"
7aacca6f 17181 },
44660702
DM
17182 "name" : {
17183 "description" : "Set a name for the VM. Only used on the configuration web interface.",
17184 "format" : "dns-name",
7aacca6f 17185 "optional" : 1,
013dc89f
DM
17186 "type" : "string",
17187 "typetext" : "<string>"
7aacca6f 17188 },
27a7acb2 17189 "nameserver" : {
de786b48 17190 "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
17191 "format" : "address-list",
17192 "optional" : 1,
17193 "type" : "string",
17194 "typetext" : "<string>"
17195 },
44660702 17196 "net[n]" : {
c2993fe5 17197 "description" : "Specify network devices.",
f004f5b9
DM
17198 "format" : {
17199 "bridge" : {
c2993fe5 17200 "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 17201 "format" : "pve-bridge-id",
f004f5b9
DM
17202 "format_description" : "bridge",
17203 "optional" : 1,
17204 "type" : "string"
17205 },
17206 "e1000" : {
17207 "alias" : "macaddr",
17208 "keyAlias" : "model"
17209 },
17210 "e1000-82540em" : {
17211 "alias" : "macaddr",
17212 "keyAlias" : "model"
17213 },
17214 "e1000-82544gc" : {
17215 "alias" : "macaddr",
17216 "keyAlias" : "model"
17217 },
17218 "e1000-82545em" : {
17219 "alias" : "macaddr",
17220 "keyAlias" : "model"
17221 },
5370fa8c
TL
17222 "e1000e" : {
17223 "alias" : "macaddr",
17224 "keyAlias" : "model"
17225 },
f004f5b9
DM
17226 "firewall" : {
17227 "description" : "Whether this interface should be protected by the firewall.",
17228 "optional" : 1,
17229 "type" : "boolean"
17230 },
17231 "i82551" : {
17232 "alias" : "macaddr",
17233 "keyAlias" : "model"
17234 },
17235 "i82557b" : {
17236 "alias" : "macaddr",
17237 "keyAlias" : "model"
17238 },
17239 "i82559er" : {
17240 "alias" : "macaddr",
17241 "keyAlias" : "model"
17242 },
17243 "link_down" : {
c2993fe5 17244 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
17245 "optional" : 1,
17246 "type" : "boolean"
17247 },
17248 "macaddr" : {
c2993fe5 17249 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 17250 "format" : "mac-addr",
f004f5b9 17251 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 17252 "optional" : 1,
95895385
TL
17253 "type" : "string",
17254 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
17255 },
17256 "model" : {
17257 "default_key" : 1,
c2993fe5 17258 "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 17259 "enum" : [
f004f5b9 17260 "e1000",
5370fa8c
TL
17261 "e1000-82540em",
17262 "e1000-82544gc",
17263 "e1000-82545em",
17264 "e1000e",
f004f5b9
DM
17265 "i82551",
17266 "i82557b",
17267 "i82559er",
5370fa8c
TL
17268 "ne2k_isa",
17269 "ne2k_pci",
17270 "pcnet",
17271 "rtl8139",
17272 "virtio",
17273 "vmxnet3"
f004f5b9 17274 ],
f004f5b9
DM
17275 "type" : "string"
17276 },
ac70d7d1
TL
17277 "mtu" : {
17278 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
17279 "maximum" : 65520,
17280 "minimum" : 1,
17281 "optional" : 1,
17282 "type" : "integer"
17283 },
f004f5b9
DM
17284 "ne2k_isa" : {
17285 "alias" : "macaddr",
17286 "keyAlias" : "model"
17287 },
17288 "ne2k_pci" : {
17289 "alias" : "macaddr",
17290 "keyAlias" : "model"
17291 },
17292 "pcnet" : {
17293 "alias" : "macaddr",
17294 "keyAlias" : "model"
17295 },
17296 "queues" : {
17297 "description" : "Number of packet queues to be used on the device.",
81a3384d 17298 "maximum" : 64,
f004f5b9
DM
17299 "minimum" : 0,
17300 "optional" : 1,
17301 "type" : "integer"
17302 },
17303 "rate" : {
c2993fe5 17304 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
17305 "minimum" : 0,
17306 "optional" : 1,
17307 "type" : "number"
17308 },
17309 "rtl8139" : {
17310 "alias" : "macaddr",
17311 "keyAlias" : "model"
17312 },
17313 "tag" : {
17314 "description" : "VLAN tag to apply to packets on this interface.",
17315 "maximum" : 4094,
c2993fe5 17316 "minimum" : 1,
f004f5b9
DM
17317 "optional" : 1,
17318 "type" : "integer"
17319 },
17320 "trunks" : {
17321 "description" : "VLAN trunks to pass through this interface.",
17322 "format_description" : "vlanid[;vlanid...]",
17323 "optional" : 1,
17324 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
17325 "type" : "string"
17326 },
17327 "virtio" : {
17328 "alias" : "macaddr",
17329 "keyAlias" : "model"
17330 },
17331 "vmxnet3" : {
17332 "alias" : "macaddr",
17333 "keyAlias" : "model"
17334 }
17335 },
7aacca6f 17336 "optional" : 1,
4bd7df8b 17337 "type" : "string",
ac70d7d1 17338 "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 17339 },
44660702
DM
17340 "node" : {
17341 "description" : "The cluster node name.",
17342 "format" : "pve-node",
013dc89f
DM
17343 "type" : "string",
17344 "typetext" : "<string>"
44660702
DM
17345 },
17346 "numa" : {
17347 "default" : 0,
17348 "description" : "Enable/disable NUMA.",
7aacca6f 17349 "optional" : 1,
013dc89f
DM
17350 "type" : "boolean",
17351 "typetext" : "<boolean>"
7aacca6f 17352 },
44660702 17353 "numa[n]" : {
c2993fe5 17354 "description" : "NUMA topology.",
44660702
DM
17355 "format" : {
17356 "cpus" : {
c2993fe5 17357 "description" : "CPUs accessing this NUMA node.",
44660702
DM
17358 "format_description" : "id[-id];...",
17359 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
17360 "type" : "string"
17361 },
17362 "hostnodes" : {
c2993fe5 17363 "description" : "Host NUMA nodes to use.",
44660702
DM
17364 "format_description" : "id[-id];...",
17365 "optional" : 1,
17366 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
17367 "type" : "string"
17368 },
17369 "memory" : {
c2993fe5 17370 "description" : "Amount of memory this NUMA node provides.",
44660702
DM
17371 "optional" : 1,
17372 "type" : "number"
17373 },
17374 "policy" : {
c2993fe5 17375 "description" : "NUMA allocation policy.",
44660702
DM
17376 "enum" : [
17377 "preferred",
17378 "bind",
17379 "interleave"
17380 ],
44660702
DM
17381 "optional" : 1,
17382 "type" : "string"
17383 }
17384 },
7aacca6f 17385 "optional" : 1,
4bd7df8b
DM
17386 "type" : "string",
17387 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
7aacca6f 17388 },
44660702
DM
17389 "onboot" : {
17390 "default" : 0,
17391 "description" : "Specifies whether a VM will be started during system bootup.",
7aacca6f 17392 "optional" : 1,
013dc89f
DM
17393 "type" : "boolean",
17394 "typetext" : "<boolean>"
7aacca6f 17395 },
44660702 17396 "ostype" : {
c2993fe5 17397 "description" : "Specify guest operating system.",
44660702
DM
17398 "enum" : [
17399 "other",
17400 "wxp",
17401 "w2k",
17402 "w2k3",
17403 "w2k8",
17404 "wvista",
17405 "win7",
17406 "win8",
32d876b5 17407 "win10",
5370fa8c 17408 "win11",
44660702
DM
17409 "l24",
17410 "l26",
17411 "solaris"
17412 ],
7aacca6f 17413 "optional" : 1,
c2993fe5 17414 "type" : "string",
9d2e98ed 17415 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
7aacca6f 17416 },
44660702 17417 "parallel[n]" : {
c2993fe5 17418 "description" : "Map host parallel devices (n is 0 to 2).",
7aacca6f 17419 "optional" : 1,
44660702 17420 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 17421 "type" : "string",
4772952b 17422 "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 17423 },
44660702
DM
17424 "protection" : {
17425 "default" : 0,
c2993fe5 17426 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
7aacca6f 17427 "optional" : 1,
013dc89f
DM
17428 "type" : "boolean",
17429 "typetext" : "<boolean>"
7aacca6f 17430 },
44660702
DM
17431 "reboot" : {
17432 "default" : 1,
17433 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
7aacca6f 17434 "optional" : 1,
013dc89f
DM
17435 "type" : "boolean",
17436 "typetext" : "<boolean>"
7aacca6f 17437 },
44660702
DM
17438 "revert" : {
17439 "description" : "Revert a pending change.",
17440 "format" : "pve-configid-list",
7aacca6f 17441 "optional" : 1,
013dc89f
DM
17442 "type" : "string",
17443 "typetext" : "<string>"
7aacca6f 17444 },
c5aa7e14
TL
17445 "rng0" : {
17446 "description" : "Configure a VirtIO-based Random Number Generator.",
17447 "format" : {
17448 "max_bytes" : {
17449 "default" : 1024,
5370fa8c 17450 "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
17451 "optional" : 1,
17452 "type" : "integer"
17453 },
17454 "period" : {
17455 "default" : 1000,
17456 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
17457 "optional" : 1,
17458 "type" : "integer"
17459 },
17460 "source" : {
17461 "default_key" : 1,
5370fa8c 17462 "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
17463 "enum" : [
17464 "/dev/urandom",
17465 "/dev/random",
17466 "/dev/hwrng"
17467 ],
17468 "type" : "string"
17469 }
17470 },
17471 "optional" : 1,
17472 "type" : "string",
17473 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
17474 },
44660702 17475 "sata[n]" : {
7af2edf9 17476 "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 17477 "format" : {
44660702
DM
17478 "aio" : {
17479 "description" : "AIO type to use.",
17480 "enum" : [
17481 "native",
8f4d9c87
TL
17482 "threads",
17483 "io_uring"
44660702 17484 ],
44660702
DM
17485 "optional" : 1,
17486 "type" : "string"
17487 },
17488 "backup" : {
17489 "description" : "Whether the drive should be included when making backups.",
44660702
DM
17490 "optional" : 1,
17491 "type" : "boolean"
17492 },
17493 "bps" : {
de0983cb 17494 "description" : "Maximum r/w speed in bytes per second.",
7aacca6f 17495 "format_description" : "bps",
7aacca6f
DM
17496 "optional" : 1,
17497 "type" : "integer"
56122987 17498 },
de0983cb
DM
17499 "bps_max_length" : {
17500 "description" : "Maximum length of I/O bursts in seconds.",
17501 "format_description" : "seconds",
17502 "minimum" : 1,
17503 "optional" : 1,
17504 "type" : "integer"
17505 },
44660702 17506 "bps_rd" : {
de0983cb 17507 "description" : "Maximum read speed in bytes per second.",
44660702 17508 "format_description" : "bps",
7aacca6f 17509 "optional" : 1,
44660702 17510 "type" : "integer"
7aacca6f 17511 },
de0983cb 17512 "bps_rd_length" : {
5d9c884c
DM
17513 "alias" : "bps_rd_max_length"
17514 },
17515 "bps_rd_max_length" : {
de0983cb
DM
17516 "description" : "Maximum length of read I/O bursts in seconds.",
17517 "format_description" : "seconds",
17518 "minimum" : 1,
17519 "optional" : 1,
17520 "type" : "integer"
17521 },
44660702 17522 "bps_wr" : {
de0983cb 17523 "description" : "Maximum write speed in bytes per second.",
44660702 17524 "format_description" : "bps",
7aacca6f 17525 "optional" : 1,
44660702 17526 "type" : "integer"
7aacca6f 17527 },
de0983cb 17528 "bps_wr_length" : {
5d9c884c
DM
17529 "alias" : "bps_wr_max_length"
17530 },
17531 "bps_wr_max_length" : {
de0983cb
DM
17532 "description" : "Maximum length of write I/O bursts in seconds.",
17533 "format_description" : "seconds",
17534 "minimum" : 1,
17535 "optional" : 1,
17536 "type" : "integer"
17537 },
44660702
DM
17538 "cache" : {
17539 "description" : "The drive's cache mode",
17540 "enum" : [
17541 "none",
17542 "writethrough",
17543 "writeback",
17544 "unsafe",
17545 "directsync"
17546 ],
7aacca6f 17547 "optional" : 1,
44660702 17548 "type" : "string"
7aacca6f 17549 },
44660702
DM
17550 "cyls" : {
17551 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 17552 "optional" : 1,
44660702 17553 "type" : "integer"
7aacca6f 17554 },
44660702
DM
17555 "detect_zeroes" : {
17556 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
7aacca6f 17557 "optional" : 1,
44660702 17558 "type" : "boolean"
7aacca6f 17559 },
44660702
DM
17560 "discard" : {
17561 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
17562 "enum" : [
17563 "ignore",
17564 "on"
17565 ],
7aacca6f 17566 "optional" : 1,
44660702
DM
17567 "type" : "string"
17568 },
17569 "file" : {
17570 "default_key" : 1,
17571 "description" : "The drive's backing volume.",
17572 "format" : "pve-volume-id-or-qm-path",
17573 "format_description" : "volume",
17574 "type" : "string"
7aacca6f
DM
17575 },
17576 "format" : {
7aacca6f 17577 "description" : "The drive's backing file's data format.",
56122987
DM
17578 "enum" : [
17579 "raw",
17580 "cow",
17581 "qcow",
17582 "qed",
17583 "qcow2",
17584 "vmdk",
17585 "cloop"
17586 ],
17587 "optional" : 1,
7aacca6f 17588 "type" : "string"
56122987 17589 },
7aacca6f 17590 "heads" : {
7aacca6f 17591 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
17592 "optional" : 1,
17593 "type" : "integer"
56122987 17594 },
7af2edf9
TL
17595 "import-from" : {
17596 "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!",
17597 "format" : "pve-volume-id-or-absolute-path",
17598 "format_description" : "source volume",
17599 "optional" : 1,
17600 "type" : "string"
17601 },
44660702 17602 "iops" : {
de0983cb 17603 "description" : "Maximum r/w I/O in operations per second.",
44660702 17604 "format_description" : "iops",
56122987 17605 "optional" : 1,
44660702 17606 "type" : "integer"
7aacca6f 17607 },
44660702 17608 "iops_max" : {
de0983cb 17609 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 17610 "format_description" : "iops",
7aacca6f 17611 "optional" : 1,
44660702 17612 "type" : "integer"
56122987 17613 },
de0983cb
DM
17614 "iops_max_length" : {
17615 "description" : "Maximum length of I/O bursts in seconds.",
17616 "format_description" : "seconds",
17617 "minimum" : 1,
17618 "optional" : 1,
17619 "type" : "integer"
17620 },
44660702 17621 "iops_rd" : {
de0983cb 17622 "description" : "Maximum read I/O in operations per second.",
44660702 17623 "format_description" : "iops",
56122987 17624 "optional" : 1,
44660702 17625 "type" : "integer"
7aacca6f 17626 },
de0983cb 17627 "iops_rd_length" : {
5d9c884c 17628 "alias" : "iops_rd_max_length"
de0983cb 17629 },
44660702 17630 "iops_rd_max" : {
de0983cb 17631 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 17632 "format_description" : "iops",
56122987 17633 "optional" : 1,
44660702 17634 "type" : "integer"
56122987 17635 },
5d9c884c
DM
17636 "iops_rd_max_length" : {
17637 "description" : "Maximum length of read I/O bursts in seconds.",
17638 "format_description" : "seconds",
17639 "minimum" : 1,
17640 "optional" : 1,
17641 "type" : "integer"
17642 },
44660702 17643 "iops_wr" : {
de0983cb 17644 "description" : "Maximum write I/O in operations per second.",
44660702
DM
17645 "format_description" : "iops",
17646 "optional" : 1,
17647 "type" : "integer"
56122987 17648 },
de0983cb 17649 "iops_wr_length" : {
5d9c884c 17650 "alias" : "iops_wr_max_length"
de0983cb 17651 },
44660702 17652 "iops_wr_max" : {
de0983cb 17653 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
17654 "format_description" : "iops",
17655 "optional" : 1,
17656 "type" : "integer"
17657 },
5d9c884c
DM
17658 "iops_wr_max_length" : {
17659 "description" : "Maximum length of write I/O bursts in seconds.",
17660 "format_description" : "seconds",
17661 "minimum" : 1,
17662 "optional" : 1,
17663 "type" : "integer"
17664 },
44660702 17665 "mbps" : {
de0983cb 17666 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
17667 "format_description" : "mbps",
17668 "optional" : 1,
17669 "type" : "number"
17670 },
17671 "mbps_max" : {
de0983cb 17672 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
17673 "format_description" : "mbps",
17674 "optional" : 1,
17675 "type" : "number"
17676 },
17677 "mbps_rd" : {
de0983cb 17678 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
17679 "format_description" : "mbps",
17680 "optional" : 1,
17681 "type" : "number"
17682 },
17683 "mbps_rd_max" : {
de0983cb 17684 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
17685 "format_description" : "mbps",
17686 "optional" : 1,
17687 "type" : "number"
17688 },
17689 "mbps_wr" : {
de0983cb 17690 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
17691 "format_description" : "mbps",
17692 "optional" : 1,
17693 "type" : "number"
17694 },
17695 "mbps_wr_max" : {
de0983cb 17696 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
17697 "format_description" : "mbps",
17698 "optional" : 1,
17699 "type" : "number"
17700 },
17701 "media" : {
17702 "default" : "disk",
17703 "description" : "The drive's media type.",
17704 "enum" : [
17705 "cdrom",
17706 "disk"
17707 ],
56122987 17708 "optional" : 1,
44660702
DM
17709 "type" : "string"
17710 },
5d9c884c
DM
17711 "replicate" : {
17712 "default" : 1,
17713 "description" : "Whether the drive should considered for replication jobs.",
17714 "optional" : 1,
17715 "type" : "boolean"
17716 },
44660702 17717 "rerror" : {
7aacca6f
DM
17718 "description" : "Read error action.",
17719 "enum" : [
17720 "ignore",
17721 "report",
17722 "stop"
44660702 17723 ],
56122987 17724 "optional" : 1,
44660702 17725 "type" : "string"
56122987 17726 },
7aacca6f 17727 "secs" : {
44660702 17728 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 17729 "optional" : 1,
44660702 17730 "type" : "integer"
56122987 17731 },
44660702
DM
17732 "serial" : {
17733 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
17734 "format" : "urlencoded",
17735 "format_description" : "serial",
17736 "maxLength" : 60,
56122987 17737 "optional" : 1,
44660702 17738 "type" : "string"
56122987 17739 },
27a7acb2
DM
17740 "shared" : {
17741 "default" : 0,
17742 "description" : "Mark this locally-managed volume as available on all nodes",
17743 "optional" : 1,
17744 "type" : "boolean",
17745 "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!"
17746 },
44660702
DM
17747 "size" : {
17748 "description" : "Disk size. This is purely informational and has no effect.",
17749 "format" : "disk-size",
f004f5b9 17750 "format_description" : "DiskSize",
56122987 17751 "optional" : 1,
44660702 17752 "type" : "string"
56122987
DM
17753 },
17754 "snapshot" : {
27a7acb2 17755 "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 17756 "optional" : 1,
44660702 17757 "type" : "boolean"
56122987 17758 },
25203dc1
NC
17759 "ssd" : {
17760 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
17761 "optional" : 1,
17762 "type" : "boolean"
17763 },
56122987 17764 "trans" : {
7aacca6f 17765 "description" : "Force disk geometry bios translation mode.",
56122987
DM
17766 "enum" : [
17767 "none",
17768 "lba",
17769 "auto"
17770 ],
17771 "optional" : 1,
44660702 17772 "type" : "string"
56122987 17773 },
44660702
DM
17774 "volume" : {
17775 "alias" : "file"
56122987 17776 },
7aacca6f 17777 "werror" : {
44660702 17778 "description" : "Write error action.",
56122987 17779 "enum" : [
7aacca6f 17780 "enospc",
56122987 17781 "ignore",
7aacca6f
DM
17782 "report",
17783 "stop"
17784 ],
7aacca6f 17785 "optional" : 1,
44660702 17786 "type" : "string"
95895385
TL
17787 },
17788 "wwn" : {
17789 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
17790 "format_description" : "wwn",
17791 "optional" : 1,
17792 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
17793 "type" : "string"
44660702
DM
17794 }
17795 },
17796 "optional" : 1,
4bd7df8b 17797 "type" : "string",
7af2edf9 17798 "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
17799 },
17800 "scsi[n]" : {
7af2edf9 17801 "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
17802 "format" : {
17803 "aio" : {
7aacca6f 17804 "description" : "AIO type to use.",
56122987
DM
17805 "enum" : [
17806 "native",
8f4d9c87
TL
17807 "threads",
17808 "io_uring"
44660702 17809 ],
56122987 17810 "optional" : 1,
44660702 17811 "type" : "string"
56122987 17812 },
7aacca6f 17813 "backup" : {
7aacca6f 17814 "description" : "Whether the drive should be included when making backups.",
7aacca6f 17815 "optional" : 1,
44660702 17816 "type" : "boolean"
56122987 17817 },
44660702 17818 "bps" : {
de0983cb 17819 "description" : "Maximum r/w speed in bytes per second.",
44660702 17820 "format_description" : "bps",
7aacca6f 17821 "optional" : 1,
44660702 17822 "type" : "integer"
7aacca6f 17823 },
de0983cb
DM
17824 "bps_max_length" : {
17825 "description" : "Maximum length of I/O bursts in seconds.",
17826 "format_description" : "seconds",
17827 "minimum" : 1,
17828 "optional" : 1,
17829 "type" : "integer"
17830 },
44660702 17831 "bps_rd" : {
de0983cb 17832 "description" : "Maximum read speed in bytes per second.",
44660702 17833 "format_description" : "bps",
56122987 17834 "optional" : 1,
44660702 17835 "type" : "integer"
56122987 17836 },
de0983cb 17837 "bps_rd_length" : {
5d9c884c
DM
17838 "alias" : "bps_rd_max_length"
17839 },
17840 "bps_rd_max_length" : {
de0983cb
DM
17841 "description" : "Maximum length of read I/O bursts in seconds.",
17842 "format_description" : "seconds",
17843 "minimum" : 1,
17844 "optional" : 1,
17845 "type" : "integer"
17846 },
44660702 17847 "bps_wr" : {
de0983cb 17848 "description" : "Maximum write speed in bytes per second.",
44660702 17849 "format_description" : "bps",
56122987 17850 "optional" : 1,
44660702 17851 "type" : "integer"
56122987 17852 },
de0983cb 17853 "bps_wr_length" : {
5d9c884c
DM
17854 "alias" : "bps_wr_max_length"
17855 },
17856 "bps_wr_max_length" : {
de0983cb
DM
17857 "description" : "Maximum length of write I/O bursts in seconds.",
17858 "format_description" : "seconds",
17859 "minimum" : 1,
17860 "optional" : 1,
17861 "type" : "integer"
17862 },
44660702
DM
17863 "cache" : {
17864 "description" : "The drive's cache mode",
17865 "enum" : [
17866 "none",
17867 "writethrough",
17868 "writeback",
17869 "unsafe",
17870 "directsync"
17871 ],
56122987 17872 "optional" : 1,
44660702
DM
17873 "type" : "string"
17874 },
17875 "cyls" : {
17876 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
17877 "optional" : 1,
17878 "type" : "integer"
17879 },
17880 "detect_zeroes" : {
17881 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
17882 "optional" : 1,
17883 "type" : "boolean"
17884 },
17885 "discard" : {
17886 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
17887 "enum" : [
17888 "ignore",
17889 "on"
17890 ],
44660702
DM
17891 "optional" : 1,
17892 "type" : "string"
17893 },
17894 "file" : {
17895 "default_key" : 1,
17896 "description" : "The drive's backing volume.",
17897 "format" : "pve-volume-id-or-qm-path",
17898 "format_description" : "volume",
17899 "type" : "string"
56122987 17900 },
7aacca6f 17901 "format" : {
44660702 17902 "description" : "The drive's backing file's data format.",
7aacca6f
DM
17903 "enum" : [
17904 "raw",
17905 "cow",
17906 "qcow",
17907 "qed",
17908 "qcow2",
17909 "vmdk",
17910 "cloop"
17911 ],
56122987 17912 "optional" : 1,
44660702 17913 "type" : "string"
56122987 17914 },
44660702
DM
17915 "heads" : {
17916 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 17917 "optional" : 1,
44660702 17918 "type" : "integer"
56122987 17919 },
7af2edf9
TL
17920 "import-from" : {
17921 "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!",
17922 "format" : "pve-volume-id-or-absolute-path",
17923 "format_description" : "source volume",
17924 "optional" : 1,
17925 "type" : "string"
17926 },
44660702 17927 "iops" : {
de0983cb 17928 "description" : "Maximum r/w I/O in operations per second.",
44660702 17929 "format_description" : "iops",
7aacca6f 17930 "optional" : 1,
44660702 17931 "type" : "integer"
56122987 17932 },
44660702 17933 "iops_max" : {
de0983cb 17934 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
7aacca6f 17935 "format_description" : "iops",
7aacca6f 17936 "optional" : 1,
44660702 17937 "type" : "integer"
56122987 17938 },
de0983cb
DM
17939 "iops_max_length" : {
17940 "description" : "Maximum length of I/O bursts in seconds.",
17941 "format_description" : "seconds",
17942 "minimum" : 1,
17943 "optional" : 1,
17944 "type" : "integer"
17945 },
44660702 17946 "iops_rd" : {
de0983cb 17947 "description" : "Maximum read I/O in operations per second.",
44660702 17948 "format_description" : "iops",
56122987 17949 "optional" : 1,
44660702 17950 "type" : "integer"
56122987 17951 },
de0983cb 17952 "iops_rd_length" : {
5d9c884c 17953 "alias" : "iops_rd_max_length"
de0983cb 17954 },
44660702 17955 "iops_rd_max" : {
de0983cb 17956 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 17957 "format_description" : "iops",
56122987 17958 "optional" : 1,
44660702 17959 "type" : "integer"
56122987 17960 },
5d9c884c
DM
17961 "iops_rd_max_length" : {
17962 "description" : "Maximum length of read I/O bursts in seconds.",
17963 "format_description" : "seconds",
17964 "minimum" : 1,
17965 "optional" : 1,
17966 "type" : "integer"
17967 },
44660702 17968 "iops_wr" : {
de0983cb 17969 "description" : "Maximum write I/O in operations per second.",
44660702 17970 "format_description" : "iops",
56122987 17971 "optional" : 1,
44660702 17972 "type" : "integer"
56122987 17973 },
de0983cb 17974 "iops_wr_length" : {
5d9c884c 17975 "alias" : "iops_wr_max_length"
de0983cb 17976 },
44660702 17977 "iops_wr_max" : {
de0983cb 17978 "description" : "Maximum unthrottled write I/O pool in operations per second.",
7aacca6f 17979 "format_description" : "iops",
44660702
DM
17980 "optional" : 1,
17981 "type" : "integer"
7aacca6f 17982 },
5d9c884c
DM
17983 "iops_wr_max_length" : {
17984 "description" : "Maximum length of write I/O bursts in seconds.",
17985 "format_description" : "seconds",
17986 "minimum" : 1,
17987 "optional" : 1,
17988 "type" : "integer"
17989 },
7aacca6f 17990 "iothread" : {
44660702 17991 "description" : "Whether to use iothreads for this drive",
56122987 17992 "optional" : 1,
44660702 17993 "type" : "boolean"
56122987 17994 },
44660702 17995 "mbps" : {
de0983cb 17996 "description" : "Maximum r/w speed in megabytes per second.",
44660702 17997 "format_description" : "mbps",
56122987 17998 "optional" : 1,
44660702 17999 "type" : "number"
56122987 18000 },
44660702 18001 "mbps_max" : {
de0983cb 18002 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 18003 "format_description" : "mbps",
56122987 18004 "optional" : 1,
44660702 18005 "type" : "number"
56122987 18006 },
44660702 18007 "mbps_rd" : {
de0983cb 18008 "description" : "Maximum read speed in megabytes per second.",
44660702 18009 "format_description" : "mbps",
7aacca6f 18010 "optional" : 1,
44660702 18011 "type" : "number"
56122987 18012 },
44660702 18013 "mbps_rd_max" : {
de0983cb 18014 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 18015 "format_description" : "mbps",
7aacca6f 18016 "optional" : 1,
44660702 18017 "type" : "number"
7aacca6f 18018 },
44660702 18019 "mbps_wr" : {
de0983cb 18020 "description" : "Maximum write speed in megabytes per second.",
44660702 18021 "format_description" : "mbps",
56122987 18022 "optional" : 1,
44660702 18023 "type" : "number"
56122987 18024 },
44660702 18025 "mbps_wr_max" : {
de0983cb 18026 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 18027 "format_description" : "mbps",
56122987 18028 "optional" : 1,
44660702
DM
18029 "type" : "number"
18030 },
18031 "media" : {
18032 "default" : "disk",
18033 "description" : "The drive's media type.",
7aacca6f 18034 "enum" : [
44660702
DM
18035 "cdrom",
18036 "disk"
7aacca6f 18037 ],
56122987 18038 "optional" : 1,
44660702 18039 "type" : "string"
56122987 18040 },
7aacca6f 18041 "queues" : {
44660702 18042 "description" : "Number of queues.",
7aacca6f 18043 "minimum" : 2,
7aacca6f
DM
18044 "optional" : 1,
18045 "type" : "integer"
56122987 18046 },
5d9c884c
DM
18047 "replicate" : {
18048 "default" : 1,
18049 "description" : "Whether the drive should considered for replication jobs.",
18050 "optional" : 1,
18051 "type" : "boolean"
18052 },
18053 "rerror" : {
18054 "description" : "Read error action.",
18055 "enum" : [
18056 "ignore",
18057 "report",
18058 "stop"
18059 ],
18060 "optional" : 1,
18061 "type" : "string"
18062 },
5370fa8c
TL
18063 "ro" : {
18064 "description" : "Whether the drive is read-only.",
18065 "optional" : 1,
18066 "type" : "boolean"
18067 },
52e44c50
FG
18068 "scsiblock" : {
18069 "default" : 0,
18070 "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",
18071 "optional" : 1,
18072 "type" : "boolean"
18073 },
44660702
DM
18074 "secs" : {
18075 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 18076 "optional" : 1,
44660702 18077 "type" : "integer"
56122987 18078 },
44660702
DM
18079 "serial" : {
18080 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
18081 "format" : "urlencoded",
18082 "format_description" : "serial",
18083 "maxLength" : 60,
56122987 18084 "optional" : 1,
44660702 18085 "type" : "string"
56122987 18086 },
27a7acb2
DM
18087 "shared" : {
18088 "default" : 0,
18089 "description" : "Mark this locally-managed volume as available on all nodes",
18090 "optional" : 1,
18091 "type" : "boolean",
18092 "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!"
18093 },
44660702
DM
18094 "size" : {
18095 "description" : "Disk size. This is purely informational and has no effect.",
18096 "format" : "disk-size",
f004f5b9 18097 "format_description" : "DiskSize",
44660702
DM
18098 "optional" : 1,
18099 "type" : "string"
18100 },
18101 "snapshot" : {
27a7acb2 18102 "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 18103 "optional" : 1,
44660702
DM
18104 "type" : "boolean"
18105 },
25203dc1
NC
18106 "ssd" : {
18107 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
18108 "optional" : 1,
18109 "type" : "boolean"
18110 },
44660702
DM
18111 "trans" : {
18112 "description" : "Force disk geometry bios translation mode.",
56122987 18113 "enum" : [
44660702
DM
18114 "none",
18115 "lba",
18116 "auto"
56122987 18117 ],
44660702
DM
18118 "optional" : 1,
18119 "type" : "string"
18120 },
18121 "volume" : {
18122 "alias" : "file"
56122987 18123 },
7aacca6f 18124 "werror" : {
7aacca6f
DM
18125 "description" : "Write error action.",
18126 "enum" : [
18127 "enospc",
18128 "ignore",
18129 "report",
18130 "stop"
44660702 18131 ],
56122987 18132 "optional" : 1,
7aacca6f 18133 "type" : "string"
95895385
TL
18134 },
18135 "wwn" : {
18136 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
18137 "format_description" : "wwn",
18138 "optional" : 1,
18139 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
18140 "type" : "string"
56122987 18141 }
44660702 18142 },
56122987 18143 "optional" : 1,
4bd7df8b 18144 "type" : "string",
7af2edf9 18145 "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
18146 },
18147 "scsihw" : {
44660702 18148 "default" : "lsi",
c2993fe5 18149 "description" : "SCSI controller model",
56122987
DM
18150 "enum" : [
18151 "lsi",
18152 "lsi53c810",
18153 "virtio-scsi-pci",
18154 "virtio-scsi-single",
18155 "megasas",
18156 "pvscsi"
18157 ],
18158 "optional" : 1,
56122987
DM
18159 "type" : "string"
18160 },
27a7acb2 18161 "searchdomain" : {
de786b48 18162 "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
18163 "optional" : 1,
18164 "type" : "string",
18165 "typetext" : "<string>"
18166 },
44660702 18167 "serial[n]" : {
c2993fe5 18168 "description" : "Create a serial device inside the VM (n is 0 to 3)",
56122987 18169 "optional" : 1,
44660702 18170 "pattern" : "(/dev/.+|socket)",
c2993fe5 18171 "type" : "string",
4772952b 18172 "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 18173 },
44660702
DM
18174 "shares" : {
18175 "default" : 1000,
5da3d723 18176 "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
18177 "maximum" : 50000,
18178 "minimum" : 0,
7aacca6f 18179 "optional" : 1,
4bd7df8b 18180 "type" : "integer",
013dc89f 18181 "typetext" : "<integer> (0 - 50000)"
56122987 18182 },
7aacca6f
DM
18183 "skiplock" : {
18184 "description" : "Ignore locks - only root is allowed to use this option.",
44660702 18185 "optional" : 1,
013dc89f
DM
18186 "type" : "boolean",
18187 "typetext" : "<boolean>"
56122987 18188 },
44660702
DM
18189 "smbios1" : {
18190 "description" : "Specify SMBIOS type 1 fields.",
18191 "format" : "pve-qm-smbios1",
1e3f8156 18192 "maxLength" : 512,
56122987 18193 "optional" : 1,
4bd7df8b 18194 "type" : "string",
1e3f8156 18195 "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 18196 },
44660702
DM
18197 "smp" : {
18198 "default" : 1,
18199 "description" : "The number of CPUs. Please use option -sockets instead.",
18200 "minimum" : 1,
56122987 18201 "optional" : 1,
4bd7df8b 18202 "type" : "integer",
013dc89f 18203 "typetext" : "<integer> (1 - N)"
56122987 18204 },
44660702
DM
18205 "sockets" : {
18206 "default" : 1,
18207 "description" : "The number of CPU sockets.",
18208 "minimum" : 1,
56122987 18209 "optional" : 1,
4bd7df8b 18210 "type" : "integer",
013dc89f 18211 "typetext" : "<integer> (1 - N)"
56122987 18212 },
1c532546
TL
18213 "spice_enhancements" : {
18214 "description" : "Configure additional enhancements for SPICE.",
18215 "format" : {
18216 "foldersharing" : {
18217 "default" : "0",
18218 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
18219 "optional" : 1,
18220 "type" : "boolean"
18221 },
18222 "videostreaming" : {
18223 "default" : "off",
18224 "description" : "Enable video streaming. Uses compression for detected video streams.",
18225 "enum" : [
18226 "off",
18227 "all",
18228 "filter"
18229 ],
18230 "optional" : 1,
18231 "type" : "string"
18232 }
18233 },
18234 "optional" : 1,
18235 "type" : "string",
18236 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
18237 },
27a7acb2
DM
18238 "sshkeys" : {
18239 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
18240 "format" : "urlencoded",
18241 "optional" : 1,
18242 "type" : "string",
18243 "typetext" : "<string>"
18244 },
44660702
DM
18245 "startdate" : {
18246 "default" : "now",
4772952b 18247 "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
18248 "optional" : 1,
18249 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
7aacca6f 18250 "type" : "string",
44660702
DM
18251 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
18252 },
18253 "startup" : {
18254 "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.",
18255 "format" : "pve-startup-order",
7aacca6f 18256 "optional" : 1,
44660702
DM
18257 "type" : "string",
18258 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
7aacca6f 18259 },
44660702
DM
18260 "tablet" : {
18261 "default" : 1,
c2993fe5 18262 "description" : "Enable/disable the USB tablet device.",
7aacca6f 18263 "optional" : 1,
c2993fe5 18264 "type" : "boolean",
013dc89f 18265 "typetext" : "<boolean>",
4772952b 18266 "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 18267 },
5c1699e5
TL
18268 "tags" : {
18269 "description" : "Tags of the VM. This is only meta information.",
18270 "format" : "pve-tag-list",
18271 "optional" : 1,
18272 "type" : "string",
18273 "typetext" : "<string>"
18274 },
44660702
DM
18275 "tdf" : {
18276 "default" : 0,
18277 "description" : "Enable/disable time drift fix.",
7aacca6f 18278 "optional" : 1,
013dc89f
DM
18279 "type" : "boolean",
18280 "typetext" : "<boolean>"
7aacca6f 18281 },
44660702
DM
18282 "template" : {
18283 "default" : 0,
18284 "description" : "Enable/disable Template.",
7aacca6f 18285 "optional" : 1,
013dc89f
DM
18286 "type" : "boolean",
18287 "typetext" : "<boolean>"
7aacca6f 18288 },
5370fa8c 18289 "tpmstate0" : {
7af2edf9 18290 "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
18291 "format" : {
18292 "file" : {
18293 "default_key" : 1,
18294 "description" : "The drive's backing volume.",
18295 "format" : "pve-volume-id-or-qm-path",
18296 "format_description" : "volume",
18297 "type" : "string"
18298 },
7af2edf9
TL
18299 "import-from" : {
18300 "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!",
18301 "format" : "pve-volume-id-or-absolute-path",
18302 "format_description" : "source volume",
18303 "optional" : 1,
18304 "type" : "string"
18305 },
5370fa8c
TL
18306 "size" : {
18307 "description" : "Disk size. This is purely informational and has no effect.",
18308 "format" : "disk-size",
18309 "format_description" : "DiskSize",
18310 "optional" : 1,
18311 "type" : "string"
18312 },
18313 "version" : {
18314 "default" : "v2.0",
18315 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
18316 "enum" : [
18317 "v1.2",
18318 "v2.0"
18319 ],
18320 "optional" : 1,
18321 "type" : "string"
18322 },
18323 "volume" : {
18324 "alias" : "file"
18325 }
18326 },
18327 "optional" : 1,
18328 "type" : "string",
7af2edf9 18329 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 18330 },
44660702 18331 "unused[n]" : {
c2993fe5 18332 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
18333 "format" : {
18334 "file" : {
18335 "default_key" : 1,
18336 "description" : "The drive's backing volume.",
18337 "format" : "pve-volume-id",
18338 "format_description" : "volume",
18339 "type" : "string"
18340 },
18341 "volume" : {
18342 "alias" : "file"
18343 }
18344 },
7aacca6f 18345 "optional" : 1,
013dc89f 18346 "type" : "string",
c5aa7e14 18347 "typetext" : "[file=]<volume>"
7aacca6f 18348 },
44660702 18349 "usb[n]" : {
4e7f60c2 18350 "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 18351 "format" : {
44660702
DM
18352 "host" : {
18353 "default_key" : 1,
499c9b7f 18354 "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n\nEither this or the 'mapping' key must be set.\n",
44660702 18355 "format_description" : "HOSTUSBDEVICE|spice",
499c9b7f
TL
18356 "optional" : 1,
18357 "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
18358 "type" : "string"
18359 },
18360 "mapping" : {
18361 "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
18362 "format" : "pve-configid",
18363 "format_description" : "mapping-id",
18364 "optional" : 1,
44660702 18365 "type" : "string"
7aacca6f 18366 },
44660702 18367 "usb3" : {
c2993fe5 18368 "default" : 0,
4e7f60c2 18369 "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 18370 "optional" : 1,
44660702 18371 "type" : "boolean"
7aacca6f 18372 }
44660702 18373 },
7aacca6f 18374 "optional" : 1,
4bd7df8b 18375 "type" : "string",
499c9b7f 18376 "typetext" : "[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]"
7aacca6f 18377 },
44660702 18378 "vcpus" : {
7aacca6f 18379 "default" : 0,
44660702
DM
18380 "description" : "Number of hotplugged vcpus.",
18381 "minimum" : 1,
7aacca6f 18382 "optional" : 1,
4bd7df8b 18383 "type" : "integer",
013dc89f 18384 "typetext" : "<integer> (1 - N)"
7aacca6f 18385 },
44660702 18386 "vga" : {
e2d681b3
TL
18387 "description" : "Configure the VGA hardware.",
18388 "format" : {
18389 "memory" : {
18390 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
18391 "maximum" : 512,
18392 "minimum" : 4,
18393 "optional" : 1,
18394 "type" : "integer"
18395 },
18396 "type" : {
18397 "default" : "std",
18398 "default_key" : 1,
18399 "description" : "Select the VGA type.",
18400 "enum" : [
18401 "cirrus",
18402 "qxl",
18403 "qxl2",
18404 "qxl3",
18405 "qxl4",
5f26e15b 18406 "none",
e2d681b3
TL
18407 "serial0",
18408 "serial1",
18409 "serial2",
18410 "serial3",
18411 "std",
18412 "virtio",
7af2edf9 18413 "virtio-gl",
e2d681b3
TL
18414 "vmware"
18415 ],
18416 "optional" : 1,
18417 "type" : "string"
18418 }
18419 },
7aacca6f 18420 "optional" : 1,
c2993fe5 18421 "type" : "string",
e2d681b3
TL
18422 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
18423 "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 18424 },
44660702 18425 "virtio[n]" : {
7af2edf9 18426 "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 18427 "format" : {
7aacca6f 18428 "aio" : {
7aacca6f 18429 "description" : "AIO type to use.",
56122987 18430 "enum" : [
7aacca6f 18431 "native",
8f4d9c87
TL
18432 "threads",
18433 "io_uring"
7aacca6f 18434 ],
44660702
DM
18435 "optional" : 1,
18436 "type" : "string"
56122987 18437 },
44660702
DM
18438 "backup" : {
18439 "description" : "Whether the drive should be included when making backups.",
56122987 18440 "optional" : 1,
44660702 18441 "type" : "boolean"
7aacca6f 18442 },
44660702 18443 "bps" : {
de0983cb 18444 "description" : "Maximum r/w speed in bytes per second.",
44660702 18445 "format_description" : "bps",
7aacca6f 18446 "optional" : 1,
44660702 18447 "type" : "integer"
56122987 18448 },
de0983cb
DM
18449 "bps_max_length" : {
18450 "description" : "Maximum length of I/O bursts in seconds.",
18451 "format_description" : "seconds",
18452 "minimum" : 1,
18453 "optional" : 1,
18454 "type" : "integer"
18455 },
56122987 18456 "bps_rd" : {
de0983cb 18457 "description" : "Maximum read speed in bytes per second.",
44660702 18458 "format_description" : "bps",
56122987 18459 "optional" : 1,
7aacca6f 18460 "type" : "integer"
56122987 18461 },
de0983cb 18462 "bps_rd_length" : {
5d9c884c
DM
18463 "alias" : "bps_rd_max_length"
18464 },
18465 "bps_rd_max_length" : {
de0983cb
DM
18466 "description" : "Maximum length of read I/O bursts in seconds.",
18467 "format_description" : "seconds",
18468 "minimum" : 1,
18469 "optional" : 1,
18470 "type" : "integer"
18471 },
44660702 18472 "bps_wr" : {
de0983cb 18473 "description" : "Maximum write speed in bytes per second.",
44660702 18474 "format_description" : "bps",
56122987 18475 "optional" : 1,
7aacca6f 18476 "type" : "integer"
56122987 18477 },
de0983cb 18478 "bps_wr_length" : {
5d9c884c
DM
18479 "alias" : "bps_wr_max_length"
18480 },
18481 "bps_wr_max_length" : {
de0983cb
DM
18482 "description" : "Maximum length of write I/O bursts in seconds.",
18483 "format_description" : "seconds",
18484 "minimum" : 1,
18485 "optional" : 1,
18486 "type" : "integer"
18487 },
7aacca6f 18488 "cache" : {
44660702 18489 "description" : "The drive's cache mode",
7aacca6f
DM
18490 "enum" : [
18491 "none",
18492 "writethrough",
18493 "writeback",
18494 "unsafe",
18495 "directsync"
18496 ],
56122987 18497 "optional" : 1,
44660702 18498 "type" : "string"
7aacca6f 18499 },
44660702
DM
18500 "cyls" : {
18501 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
18502 "optional" : 1,
18503 "type" : "integer"
18504 },
18505 "detect_zeroes" : {
18506 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
18507 "optional" : 1,
18508 "type" : "boolean"
18509 },
18510 "discard" : {
18511 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
56122987 18512 "enum" : [
44660702
DM
18513 "ignore",
18514 "on"
56122987
DM
18515 ],
18516 "optional" : 1,
44660702 18517 "type" : "string"
56122987 18518 },
44660702
DM
18519 "file" : {
18520 "default_key" : 1,
18521 "description" : "The drive's backing volume.",
18522 "format" : "pve-volume-id-or-qm-path",
18523 "format_description" : "volume",
18524 "type" : "string"
18525 },
18526 "format" : {
18527 "description" : "The drive's backing file's data format.",
18528 "enum" : [
18529 "raw",
18530 "cow",
18531 "qcow",
18532 "qed",
18533 "qcow2",
18534 "vmdk",
18535 "cloop"
18536 ],
56122987 18537 "optional" : 1,
44660702 18538 "type" : "string"
56122987 18539 },
44660702
DM
18540 "heads" : {
18541 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
18542 "optional" : 1,
18543 "type" : "integer"
18544 },
7af2edf9
TL
18545 "import-from" : {
18546 "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!",
18547 "format" : "pve-volume-id-or-absolute-path",
18548 "format_description" : "source volume",
18549 "optional" : 1,
18550 "type" : "string"
18551 },
44660702 18552 "iops" : {
de0983cb 18553 "description" : "Maximum r/w I/O in operations per second.",
44660702 18554 "format_description" : "iops",
56122987 18555 "optional" : 1,
44660702
DM
18556 "type" : "integer"
18557 },
18558 "iops_max" : {
de0983cb 18559 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702
DM
18560 "format_description" : "iops",
18561 "optional" : 1,
18562 "type" : "integer"
56122987 18563 },
de0983cb
DM
18564 "iops_max_length" : {
18565 "description" : "Maximum length of I/O bursts in seconds.",
18566 "format_description" : "seconds",
18567 "minimum" : 1,
18568 "optional" : 1,
18569 "type" : "integer"
18570 },
7aacca6f 18571 "iops_rd" : {
de0983cb 18572 "description" : "Maximum read I/O in operations per second.",
7aacca6f 18573 "format_description" : "iops",
7aacca6f 18574 "optional" : 1,
44660702 18575 "type" : "integer"
56122987 18576 },
de0983cb 18577 "iops_rd_length" : {
5d9c884c 18578 "alias" : "iops_rd_max_length"
de0983cb 18579 },
44660702 18580 "iops_rd_max" : {
de0983cb 18581 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
18582 "format_description" : "iops",
18583 "optional" : 1,
18584 "type" : "integer"
18585 },
5d9c884c
DM
18586 "iops_rd_max_length" : {
18587 "description" : "Maximum length of read I/O bursts in seconds.",
18588 "format_description" : "seconds",
18589 "minimum" : 1,
18590 "optional" : 1,
18591 "type" : "integer"
18592 },
44660702 18593 "iops_wr" : {
de0983cb 18594 "description" : "Maximum write I/O in operations per second.",
44660702
DM
18595 "format_description" : "iops",
18596 "optional" : 1,
18597 "type" : "integer"
18598 },
de0983cb 18599 "iops_wr_length" : {
5d9c884c 18600 "alias" : "iops_wr_max_length"
de0983cb 18601 },
44660702 18602 "iops_wr_max" : {
de0983cb 18603 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
18604 "format_description" : "iops",
18605 "optional" : 1,
18606 "type" : "integer"
18607 },
5d9c884c
DM
18608 "iops_wr_max_length" : {
18609 "description" : "Maximum length of write I/O bursts in seconds.",
18610 "format_description" : "seconds",
18611 "minimum" : 1,
18612 "optional" : 1,
18613 "type" : "integer"
18614 },
44660702
DM
18615 "iothread" : {
18616 "description" : "Whether to use iothreads for this drive",
44660702
DM
18617 "optional" : 1,
18618 "type" : "boolean"
18619 },
18620 "mbps" : {
de0983cb 18621 "description" : "Maximum r/w speed in megabytes per second.",
44660702 18622 "format_description" : "mbps",
7aacca6f 18623 "optional" : 1,
44660702 18624 "type" : "number"
7aacca6f
DM
18625 },
18626 "mbps_max" : {
de0983cb 18627 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 18628 "format_description" : "mbps",
56122987 18629 "optional" : 1,
44660702 18630 "type" : "number"
56122987 18631 },
44660702 18632 "mbps_rd" : {
de0983cb 18633 "description" : "Maximum read speed in megabytes per second.",
44660702 18634 "format_description" : "mbps",
56122987 18635 "optional" : 1,
44660702 18636 "type" : "number"
56122987 18637 },
44660702 18638 "mbps_rd_max" : {
de0983cb 18639 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
18640 "format_description" : "mbps",
18641 "optional" : 1,
18642 "type" : "number"
18643 },
18644 "mbps_wr" : {
de0983cb 18645 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
18646 "format_description" : "mbps",
18647 "optional" : 1,
18648 "type" : "number"
18649 },
18650 "mbps_wr_max" : {
de0983cb 18651 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
18652 "format_description" : "mbps",
18653 "optional" : 1,
18654 "type" : "number"
18655 },
18656 "media" : {
18657 "default" : "disk",
18658 "description" : "The drive's media type.",
56122987 18659 "enum" : [
44660702
DM
18660 "cdrom",
18661 "disk"
56122987
DM
18662 ],
18663 "optional" : 1,
44660702 18664 "type" : "string"
56122987 18665 },
5d9c884c
DM
18666 "replicate" : {
18667 "default" : 1,
18668 "description" : "Whether the drive should considered for replication jobs.",
18669 "optional" : 1,
18670 "type" : "boolean"
18671 },
44660702
DM
18672 "rerror" : {
18673 "description" : "Read error action.",
18674 "enum" : [
18675 "ignore",
18676 "report",
18677 "stop"
18678 ],
56122987 18679 "optional" : 1,
44660702 18680 "type" : "string"
56122987 18681 },
5370fa8c
TL
18682 "ro" : {
18683 "description" : "Whether the drive is read-only.",
18684 "optional" : 1,
18685 "type" : "boolean"
18686 },
44660702
DM
18687 "secs" : {
18688 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 18689 "optional" : 1,
44660702 18690 "type" : "integer"
56122987 18691 },
7aacca6f
DM
18692 "serial" : {
18693 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
7aacca6f 18694 "format" : "urlencoded",
44660702 18695 "format_description" : "serial",
7aacca6f 18696 "maxLength" : 60,
44660702
DM
18697 "optional" : 1,
18698 "type" : "string"
56122987 18699 },
27a7acb2
DM
18700 "shared" : {
18701 "default" : 0,
18702 "description" : "Mark this locally-managed volume as available on all nodes",
18703 "optional" : 1,
18704 "type" : "boolean",
18705 "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!"
18706 },
44660702
DM
18707 "size" : {
18708 "description" : "Disk size. This is purely informational and has no effect.",
18709 "format" : "disk-size",
f004f5b9 18710 "format_description" : "DiskSize",
44660702
DM
18711 "optional" : 1,
18712 "type" : "string"
56122987 18713 },
44660702 18714 "snapshot" : {
27a7acb2 18715 "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 18716 "optional" : 1,
44660702 18717 "type" : "boolean"
56122987 18718 },
44660702
DM
18719 "trans" : {
18720 "description" : "Force disk geometry bios translation mode.",
18721 "enum" : [
18722 "none",
18723 "lba",
18724 "auto"
18725 ],
7aacca6f 18726 "optional" : 1,
44660702 18727 "type" : "string"
7aacca6f 18728 },
44660702
DM
18729 "volume" : {
18730 "alias" : "file"
18731 },
18732 "werror" : {
18733 "description" : "Write error action.",
18734 "enum" : [
18735 "enospc",
18736 "ignore",
18737 "report",
18738 "stop"
18739 ],
7aacca6f 18740 "optional" : 1,
44660702 18741 "type" : "string"
56122987
DM
18742 }
18743 },
7aacca6f 18744 "optional" : 1,
4bd7df8b 18745 "type" : "string",
7af2edf9 18746 "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 18747 },
4d47f125
TL
18748 "vmgenid" : {
18749 "default" : "1 (autogenerated)",
18750 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
18751 "format_description" : "UUID",
18752 "optional" : 1,
18753 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
18754 "type" : "string",
4772952b 18755 "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 18756 },
44660702
DM
18757 "vmid" : {
18758 "description" : "The (unique) ID of the VM.",
18759 "format" : "pve-vmid",
8dd66e12
TL
18760 "maximum" : 999999999,
18761 "minimum" : 100,
4bd7df8b 18762 "type" : "integer",
8dd66e12 18763 "typetext" : "<integer> (100 - 999999999)"
56122987 18764 },
2489d6df
WB
18765 "vmstatestorage" : {
18766 "description" : "Default storage for VM state volumes/files.",
18767 "format" : "pve-storage-id",
18768 "optional" : 1,
18769 "type" : "string",
18770 "typetext" : "<string>"
18771 },
44660702 18772 "watchdog" : {
c2993fe5 18773 "description" : "Create a virtual hardware watchdog device.",
44660702 18774 "format" : "pve-qm-watchdog",
56122987 18775 "optional" : 1,
c2993fe5 18776 "type" : "string",
013dc89f 18777 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
c2993fe5 18778 "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 18779 }
7aacca6f 18780 }
56122987 18781 },
56122987
DM
18782 "permissions" : {
18783 "check" : [
18784 "perm",
18785 "/vms/{vmid}",
18786 [
18787 "VM.Config.Disk",
18788 "VM.Config.CDROM",
18789 "VM.Config.CPU",
18790 "VM.Config.Memory",
18791 "VM.Config.Network",
18792 "VM.Config.HWType",
ac70d7d1
TL
18793 "VM.Config.Options",
18794 "VM.Config.Cloudinit"
56122987
DM
18795 ],
18796 "any",
18797 1
18798 ]
18799 },
44660702 18800 "protected" : 1,
7aacca6f 18801 "proxyto" : "node",
56122987 18802 "returns" : {
4d47f125
TL
18803 "optional" : 1,
18804 "type" : "string"
7aacca6f 18805 }
4d47f125
TL
18806 },
18807 "PUT" : {
e9cd3bd4 18808 "allowtoken" : 1,
4d47f125
TL
18809 "description" : "Set virtual machine options (synchrounous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.",
18810 "method" : "PUT",
18811 "name" : "update_vm",
7aacca6f 18812 "parameters" : {
44660702 18813 "additionalProperties" : 0,
7aacca6f 18814 "properties" : {
4d47f125
TL
18815 "acpi" : {
18816 "default" : 1,
18817 "description" : "Enable/disable ACPI.",
18818 "optional" : 1,
18819 "type" : "boolean",
18820 "typetext" : "<boolean>"
7aacca6f 18821 },
4e7f60c2 18822 "affinity" : {
81a3384d 18823 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
18824 "format" : "pve-cpuset",
18825 "optional" : 1,
18826 "type" : "string",
18827 "typetext" : "<string>"
18828 },
4d47f125 18829 "agent" : {
9d2e98ed 18830 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
18831 "format" : {
18832 "enabled" : {
18833 "default" : 0,
18834 "default_key" : 1,
9d2e98ed
TL
18835 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
18836 "type" : "boolean"
18837 },
18838 "freeze-fs-on-backup" : {
18839 "default" : 1,
18840 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
18841 "optional" : 1,
4d47f125
TL
18842 "type" : "boolean"
18843 },
18844 "fstrim_cloned_disks" : {
18845 "default" : 0,
d2656385 18846 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
18847 "optional" : 1,
18848 "type" : "boolean"
5c1699e5
TL
18849 },
18850 "type" : {
18851 "default" : "virtio",
18852 "description" : "Select the agent type",
18853 "enum" : [
18854 "virtio",
18855 "isa"
18856 ],
18857 "optional" : 1,
18858 "type" : "string"
4d47f125 18859 }
44660702 18860 },
4d47f125
TL
18861 "optional" : 1,
18862 "type" : "string",
9d2e98ed 18863 "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
44660702 18864 },
e2d681b3
TL
18865 "arch" : {
18866 "description" : "Virtual processor architecture. Defaults to the host.",
18867 "enum" : [
18868 "x86_64",
18869 "aarch64"
18870 ],
18871 "optional" : 1,
18872 "type" : "string"
18873 },
4d47f125
TL
18874 "args" : {
18875 "description" : "Arbitrary arguments passed to kvm.",
18876 "optional" : 1,
18877 "type" : "string",
18878 "typetext" : "<string>",
159464a9 18879 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -smbios 'type=0,vendor=FOO'\n\nNOTE: this option is for experts only.\n"
4d47f125 18880 },
1c532546
TL
18881 "audio0" : {
18882 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
18883 "format" : {
18884 "device" : {
18885 "description" : "Configure an audio device.",
18886 "enum" : [
18887 "ich9-intel-hda",
18888 "intel-hda",
18889 "AC97"
18890 ],
18891 "type" : "string"
18892 },
18893 "driver" : {
18894 "default" : "spice",
18895 "description" : "Driver backend for the audio device.",
18896 "enum" : [
d2656385
TL
18897 "spice",
18898 "none"
1c532546
TL
18899 ],
18900 "optional" : 1,
18901 "type" : "string"
18902 }
18903 },
18904 "optional" : 1,
18905 "type" : "string",
d2656385 18906 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 18907 },
4d47f125
TL
18908 "autostart" : {
18909 "default" : 0,
18910 "description" : "Automatic restart after crash (currently ignored).",
7aacca6f 18911 "optional" : 1,
013dc89f
DM
18912 "type" : "boolean",
18913 "typetext" : "<boolean>"
7aacca6f 18914 },
4d47f125 18915 "balloon" : {
9d2e98ed 18916 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
4d47f125
TL
18917 "minimum" : 0,
18918 "optional" : 1,
18919 "type" : "integer",
18920 "typetext" : "<integer> (0 - N)"
18921 },
18922 "bios" : {
18923 "default" : "seabios",
18924 "description" : "Select BIOS implementation.",
18925 "enum" : [
18926 "seabios",
18927 "ovmf"
18928 ],
18929 "optional" : 1,
18930 "type" : "string"
18931 },
18932 "boot" : {
5370fa8c 18933 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 18934 "format" : "pve-qm-boot",
4d47f125 18935 "optional" : 1,
4772952b
TL
18936 "type" : "string",
18937 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
4d47f125
TL
18938 },
18939 "bootdisk" : {
4772952b 18940 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
4d47f125
TL
18941 "format" : "pve-qm-bootdisk",
18942 "optional" : 1,
18943 "pattern" : "(ide|sata|scsi|virtio)\\d+",
18944 "type" : "string"
18945 },
18946 "cdrom" : {
18947 "description" : "This is an alias for option -ide2",
18948 "format" : "pve-qm-ide",
18949 "optional" : 1,
18950 "type" : "string",
18951 "typetext" : "<volume>"
18952 },
95895385
TL
18953 "cicustom" : {
18954 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
18955 "format" : "pve-qm-cicustom",
18956 "optional" : 1,
18957 "type" : "string",
5370fa8c 18958 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 18959 },
4d47f125
TL
18960 "cipassword" : {
18961 "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.",
18962 "optional" : 1,
013dc89f
DM
18963 "type" : "string",
18964 "typetext" : "<string>"
44660702 18965 },
4d47f125
TL
18966 "citype" : {
18967 "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.",
18968 "enum" : [
18969 "configdrive2",
d2656385
TL
18970 "nocloud",
18971 "opennebula"
4d47f125
TL
18972 ],
18973 "optional" : 1,
18974 "type" : "string"
18975 },
159464a9 18976 "ciupgrade" : {
c8eee6ff 18977 "default" : 1,
159464a9
TL
18978 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
18979 "optional" : 1,
18980 "type" : "boolean",
18981 "typetext" : "<boolean>"
18982 },
4d47f125
TL
18983 "ciuser" : {
18984 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
18985 "optional" : 1,
013dc89f
DM
18986 "type" : "string",
18987 "typetext" : "<string>"
56122987 18988 },
4d47f125
TL
18989 "cores" : {
18990 "default" : 1,
18991 "description" : "The number of cores per socket.",
7aacca6f 18992 "minimum" : 1,
4d47f125 18993 "optional" : 1,
4bd7df8b 18994 "type" : "integer",
013dc89f 18995 "typetext" : "<integer> (1 - N)"
4d47f125
TL
18996 },
18997 "cpu" : {
18998 "description" : "Emulated CPU type.",
c5aa7e14 18999 "format" : "pve-vm-cpu-conf",
4d47f125 19000 "optional" : 1,
013dc89f 19001 "type" : "string",
04d22a9f 19002 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
44660702 19003 },
4d47f125
TL
19004 "cpulimit" : {
19005 "default" : 0,
19006 "description" : "Limit of CPU usage.",
19007 "maximum" : 128,
19008 "minimum" : 0,
19009 "optional" : 1,
19010 "type" : "number",
19011 "typetext" : "<number> (0 - 128)",
19012 "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."
19013 },
19014 "cpuunits" : {
5370fa8c
TL
19015 "default" : "cgroup v1: 1024, cgroup v2: 100",
19016 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
4d47f125 19017 "maximum" : 262144,
7af2edf9 19018 "minimum" : 1,
4d47f125 19019 "optional" : 1,
4bd7df8b 19020 "type" : "integer",
7af2edf9 19021 "typetext" : "<integer> (1 - 262144)",
4d47f125 19022 "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 19023 },
4d47f125
TL
19024 "delete" : {
19025 "description" : "A list of settings you want to delete.",
19026 "format" : "pve-configid-list",
19027 "optional" : 1,
19028 "type" : "string",
19029 "typetext" : "<string>"
19030 },
19031 "description" : {
8f4d9c87
TL
19032 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
19033 "maxLength" : 8192,
4d47f125
TL
19034 "optional" : 1,
19035 "type" : "string",
19036 "typetext" : "<string>"
19037 },
19038 "digest" : {
19039 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
19040 "maxLength" : 40,
44660702 19041 "optional" : 1,
4d47f125
TL
19042 "type" : "string",
19043 "typetext" : "<string>"
19044 },
19045 "efidisk0" : {
9d2e98ed 19046 "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 19047 "format" : {
5370fa8c
TL
19048 "efitype" : {
19049 "default" : "2m",
9d2e98ed 19050 "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified. Ignored for VMs with arch=aarc64 (ARM).",
5370fa8c
TL
19051 "enum" : [
19052 "2m",
19053 "4m"
19054 ],
19055 "optional" : 1,
19056 "type" : "string"
19057 },
4d47f125
TL
19058 "file" : {
19059 "default_key" : 1,
19060 "description" : "The drive's backing volume.",
19061 "format" : "pve-volume-id-or-qm-path",
19062 "format_description" : "volume",
19063 "type" : "string"
19064 },
19065 "format" : {
19066 "description" : "The drive's backing file's data format.",
19067 "enum" : [
19068 "raw",
19069 "cow",
19070 "qcow",
19071 "qed",
19072 "qcow2",
19073 "vmdk",
19074 "cloop"
19075 ],
19076 "optional" : 1,
19077 "type" : "string"
19078 },
7af2edf9
TL
19079 "import-from" : {
19080 "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!",
19081 "format" : "pve-volume-id-or-absolute-path",
19082 "format_description" : "source volume",
19083 "optional" : 1,
19084 "type" : "string"
19085 },
5370fa8c
TL
19086 "pre-enrolled-keys" : {
19087 "default" : 0,
19088 "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.",
19089 "optional" : 1,
19090 "type" : "boolean"
19091 },
4d47f125
TL
19092 "size" : {
19093 "description" : "Disk size. This is purely informational and has no effect.",
19094 "format" : "disk-size",
19095 "format_description" : "DiskSize",
19096 "optional" : 1,
19097 "type" : "string"
19098 },
19099 "volume" : {
19100 "alias" : "file"
19101 }
19102 },
19103 "optional" : 1,
19104 "type" : "string",
7af2edf9 19105 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125
TL
19106 },
19107 "force" : {
19108 "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.",
19109 "optional" : 1,
19110 "requires" : "delete",
013dc89f
DM
19111 "type" : "boolean",
19112 "typetext" : "<boolean>"
56122987 19113 },
4d47f125
TL
19114 "freeze" : {
19115 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
19116 "optional" : 1,
19117 "type" : "boolean",
19118 "typetext" : "<boolean>"
7aacca6f 19119 },
5f26e15b
TL
19120 "hookscript" : {
19121 "description" : "Script that will be executed during various steps in the vms lifetime.",
19122 "format" : "pve-volume-id",
19123 "optional" : 1,
19124 "type" : "string",
19125 "typetext" : "<string>"
19126 },
4d47f125
TL
19127 "hostpci[n]" : {
19128 "description" : "Map host PCI devices into guest.",
19129 "format" : "pve-qm-hostpci",
19130 "optional" : 1,
19131 "type" : "string",
499c9b7f 19132 "typetext" : "[[host=]<HOSTPCIID[;HOSTPCIID2...]>] [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
bb4c8cf8 19133 "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 19134 },
4d47f125
TL
19135 "hotplug" : {
19136 "default" : "network,disk,usb",
4e7f60c2 19137 "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
19138 "format" : "pve-hotplug-features",
19139 "optional" : 1,
35a75dd3
DM
19140 "type" : "string",
19141 "typetext" : "<string>"
19142 },
4d47f125
TL
19143 "hugepages" : {
19144 "description" : "Enable/disable hugepages memory.",
35a75dd3 19145 "enum" : [
4d47f125
TL
19146 "any",
19147 "2",
19148 "1024"
35a75dd3
DM
19149 ],
19150 "optional" : 1,
19151 "type" : "string"
19152 },
4d47f125 19153 "ide[n]" : {
7af2edf9 19154 "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
19155 "format" : {
19156 "aio" : {
19157 "description" : "AIO type to use.",
19158 "enum" : [
19159 "native",
8f4d9c87
TL
19160 "threads",
19161 "io_uring"
4d47f125 19162 ],
44660702 19163 "optional" : 1,
44660702
DM
19164 "type" : "string"
19165 },
4d47f125
TL
19166 "backup" : {
19167 "description" : "Whether the drive should be included when making backups.",
56122987 19168 "optional" : 1,
4d47f125 19169 "type" : "boolean"
56122987 19170 },
4d47f125
TL
19171 "bps" : {
19172 "description" : "Maximum r/w speed in bytes per second.",
19173 "format_description" : "bps",
de0983cb 19174 "optional" : 1,
4d47f125 19175 "type" : "integer"
de0983cb 19176 },
4d47f125
TL
19177 "bps_max_length" : {
19178 "description" : "Maximum length of I/O bursts in seconds.",
19179 "format_description" : "seconds",
19180 "minimum" : 1,
de0983cb 19181 "optional" : 1,
4d47f125 19182 "type" : "integer"
7aacca6f 19183 },
4d47f125
TL
19184 "bps_rd" : {
19185 "description" : "Maximum read speed in bytes per second.",
19186 "format_description" : "bps",
7aacca6f 19187 "optional" : 1,
4d47f125 19188 "type" : "integer"
56122987 19189 },
4d47f125
TL
19190 "bps_rd_length" : {
19191 "alias" : "bps_rd_max_length"
19192 },
19193 "bps_rd_max_length" : {
19194 "description" : "Maximum length of read I/O bursts in seconds.",
19195 "format_description" : "seconds",
19196 "minimum" : 1,
56122987 19197 "optional" : 1,
4d47f125 19198 "type" : "integer"
56122987 19199 },
4d47f125
TL
19200 "bps_wr" : {
19201 "description" : "Maximum write speed in bytes per second.",
19202 "format_description" : "bps",
52e44c50 19203 "optional" : 1,
4d47f125 19204 "type" : "integer"
52e44c50 19205 },
4d47f125
TL
19206 "bps_wr_length" : {
19207 "alias" : "bps_wr_max_length"
19208 },
19209 "bps_wr_max_length" : {
19210 "description" : "Maximum length of write I/O bursts in seconds.",
19211 "format_description" : "seconds",
44660702 19212 "minimum" : 1,
56122987 19213 "optional" : 1,
4d47f125 19214 "type" : "integer"
56122987 19215 },
4d47f125
TL
19216 "cache" : {
19217 "description" : "The drive's cache mode",
19218 "enum" : [
19219 "none",
19220 "writethrough",
19221 "writeback",
19222 "unsafe",
19223 "directsync"
19224 ],
7aacca6f 19225 "optional" : 1,
4d47f125 19226 "type" : "string"
7aacca6f 19227 },
4d47f125
TL
19228 "cyls" : {
19229 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
19230 "optional" : 1,
19231 "type" : "integer"
56122987 19232 },
4d47f125
TL
19233 "detect_zeroes" : {
19234 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 19235 "optional" : 1,
4d47f125 19236 "type" : "boolean"
56122987 19237 },
4d47f125
TL
19238 "discard" : {
19239 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
19240 "enum" : [
19241 "ignore",
19242 "on"
19243 ],
56122987 19244 "optional" : 1,
4d47f125 19245 "type" : "string"
7aacca6f 19246 },
4d47f125
TL
19247 "file" : {
19248 "default_key" : 1,
19249 "description" : "The drive's backing volume.",
19250 "format" : "pve-volume-id-or-qm-path",
19251 "format_description" : "volume",
19252 "type" : "string"
56122987 19253 },
4d47f125
TL
19254 "format" : {
19255 "description" : "The drive's backing file's data format.",
19256 "enum" : [
19257 "raw",
19258 "cow",
19259 "qcow",
19260 "qed",
19261 "qcow2",
19262 "vmdk",
19263 "cloop"
19264 ],
7aacca6f 19265 "optional" : 1,
4d47f125 19266 "type" : "string"
7aacca6f 19267 },
4d47f125
TL
19268 "heads" : {
19269 "description" : "Force the drive's physical geometry to have a specific head count.",
7aacca6f 19270 "optional" : 1,
4d47f125 19271 "type" : "integer"
56122987 19272 },
7af2edf9
TL
19273 "import-from" : {
19274 "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!",
19275 "format" : "pve-volume-id-or-absolute-path",
19276 "format_description" : "source volume",
19277 "optional" : 1,
19278 "type" : "string"
19279 },
4d47f125
TL
19280 "iops" : {
19281 "description" : "Maximum r/w I/O in operations per second.",
19282 "format_description" : "iops",
44660702 19283 "optional" : 1,
4d47f125 19284 "type" : "integer"
44660702 19285 },
4d47f125
TL
19286 "iops_max" : {
19287 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
19288 "format_description" : "iops",
44660702 19289 "optional" : 1,
4d47f125 19290 "type" : "integer"
56122987 19291 },
4d47f125
TL
19292 "iops_max_length" : {
19293 "description" : "Maximum length of I/O bursts in seconds.",
19294 "format_description" : "seconds",
19295 "minimum" : 1,
7aacca6f 19296 "optional" : 1,
4d47f125 19297 "type" : "integer"
7aacca6f 19298 },
4d47f125
TL
19299 "iops_rd" : {
19300 "description" : "Maximum read I/O in operations per second.",
19301 "format_description" : "iops",
19302 "optional" : 1,
19303 "type" : "integer"
19304 },
19305 "iops_rd_length" : {
19306 "alias" : "iops_rd_max_length"
19307 },
19308 "iops_rd_max" : {
19309 "description" : "Maximum unthrottled read I/O pool in operations per second.",
19310 "format_description" : "iops",
19311 "optional" : 1,
19312 "type" : "integer"
19313 },
19314 "iops_rd_max_length" : {
19315 "description" : "Maximum length of read I/O bursts in seconds.",
19316 "format_description" : "seconds",
44660702 19317 "minimum" : 1,
4d47f125
TL
19318 "optional" : 1,
19319 "type" : "integer"
7aacca6f 19320 },
4d47f125
TL
19321 "iops_wr" : {
19322 "description" : "Maximum write I/O in operations per second.",
19323 "format_description" : "iops",
44660702 19324 "optional" : 1,
4d47f125 19325 "type" : "integer"
44660702 19326 },
4d47f125
TL
19327 "iops_wr_length" : {
19328 "alias" : "iops_wr_max_length"
19329 },
19330 "iops_wr_max" : {
19331 "description" : "Maximum unthrottled write I/O pool in operations per second.",
19332 "format_description" : "iops",
19333 "optional" : 1,
19334 "type" : "integer"
19335 },
19336 "iops_wr_max_length" : {
19337 "description" : "Maximum length of write I/O bursts in seconds.",
19338 "format_description" : "seconds",
44660702 19339 "minimum" : 1,
44660702 19340 "optional" : 1,
4d47f125 19341 "type" : "integer"
44660702 19342 },
4d47f125
TL
19343 "mbps" : {
19344 "description" : "Maximum r/w speed in megabytes per second.",
19345 "format_description" : "mbps",
19346 "optional" : 1,
19347 "type" : "number"
56122987 19348 },
4d47f125
TL
19349 "mbps_max" : {
19350 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
19351 "format_description" : "mbps",
19352 "optional" : 1,
19353 "type" : "number"
19354 },
19355 "mbps_rd" : {
19356 "description" : "Maximum read speed in megabytes per second.",
19357 "format_description" : "mbps",
19358 "optional" : 1,
19359 "type" : "number"
19360 },
19361 "mbps_rd_max" : {
19362 "description" : "Maximum unthrottled read pool in megabytes per second.",
19363 "format_description" : "mbps",
19364 "optional" : 1,
19365 "type" : "number"
19366 },
19367 "mbps_wr" : {
19368 "description" : "Maximum write speed in megabytes per second.",
19369 "format_description" : "mbps",
19370 "optional" : 1,
19371 "type" : "number"
19372 },
19373 "mbps_wr_max" : {
19374 "description" : "Maximum unthrottled write pool in megabytes per second.",
19375 "format_description" : "mbps",
19376 "optional" : 1,
19377 "type" : "number"
19378 },
19379 "media" : {
19380 "default" : "disk",
19381 "description" : "The drive's media type.",
19382 "enum" : [
19383 "cdrom",
19384 "disk"
19385 ],
19386 "optional" : 1,
19387 "type" : "string"
19388 },
19389 "model" : {
19390 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
19391 "format" : "urlencoded",
19392 "format_description" : "model",
19393 "maxLength" : 120,
19394 "optional" : 1,
19395 "type" : "string"
19396 },
19397 "replicate" : {
19398 "default" : 1,
19399 "description" : "Whether the drive should considered for replication jobs.",
19400 "optional" : 1,
19401 "type" : "boolean"
19402 },
19403 "rerror" : {
19404 "description" : "Read error action.",
19405 "enum" : [
19406 "ignore",
19407 "report",
19408 "stop"
19409 ],
19410 "optional" : 1,
19411 "type" : "string"
19412 },
19413 "secs" : {
19414 "description" : "Force the drive's physical geometry to have a specific sector count.",
19415 "optional" : 1,
19416 "type" : "integer"
19417 },
19418 "serial" : {
19419 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
19420 "format" : "urlencoded",
19421 "format_description" : "serial",
19422 "maxLength" : 60,
19423 "optional" : 1,
19424 "type" : "string"
19425 },
19426 "shared" : {
19427 "default" : 0,
19428 "description" : "Mark this locally-managed volume as available on all nodes",
44660702 19429 "optional" : 1,
013dc89f 19430 "type" : "boolean",
4d47f125 19431 "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 19432 },
4d47f125
TL
19433 "size" : {
19434 "description" : "Disk size. This is purely informational and has no effect.",
19435 "format" : "disk-size",
19436 "format_description" : "DiskSize",
19437 "optional" : 1,
19438 "type" : "string"
19439 },
19440 "snapshot" : {
19441 "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.",
19442 "optional" : 1,
19443 "type" : "boolean"
19444 },
25203dc1
NC
19445 "ssd" : {
19446 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
19447 "optional" : 1,
19448 "type" : "boolean"
19449 },
4d47f125
TL
19450 "trans" : {
19451 "description" : "Force disk geometry bios translation mode.",
19452 "enum" : [
19453 "none",
19454 "lba",
19455 "auto"
19456 ],
19457 "optional" : 1,
19458 "type" : "string"
19459 },
19460 "volume" : {
19461 "alias" : "file"
19462 },
19463 "werror" : {
19464 "description" : "Write error action.",
19465 "enum" : [
19466 "enospc",
19467 "ignore",
19468 "report",
19469 "stop"
19470 ],
19471 "optional" : 1,
19472 "type" : "string"
95895385
TL
19473 },
19474 "wwn" : {
19475 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
19476 "format_description" : "wwn",
19477 "optional" : 1,
19478 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
19479 "type" : "string"
4d47f125
TL
19480 }
19481 },
19482 "optional" : 1,
013dc89f 19483 "type" : "string",
7af2edf9 19484 "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 19485 },
4d47f125 19486 "ipconfig[n]" : {
d2656385 19487 "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
19488 "format" : "pve-qm-ipconfig",
19489 "optional" : 1,
013dc89f 19490 "type" : "string",
4d47f125 19491 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
44660702 19492 },
95895385
TL
19493 "ivshmem" : {
19494 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
19495 "format" : {
19496 "name" : {
19497 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
19498 "format_description" : "string",
19499 "optional" : 1,
19500 "pattern" : "[a-zA-Z0-9\\-]+",
19501 "type" : "string"
19502 },
19503 "size" : {
19504 "description" : "The size of the file in MB.",
19505 "minimum" : 1,
19506 "type" : "integer"
19507 }
19508 },
19509 "optional" : 1,
19510 "type" : "string",
19511 "typetext" : "size=<integer> [,name=<string>]"
19512 },
4772952b
TL
19513 "keephugepages" : {
19514 "default" : 0,
19515 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
19516 "optional" : 1,
19517 "type" : "boolean",
19518 "typetext" : "<boolean>"
19519 },
4d47f125
TL
19520 "keyboard" : {
19521 "default" : null,
7af2edf9 19522 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
4d47f125
TL
19523 "enum" : [
19524 "de",
19525 "de-ch",
19526 "da",
19527 "en-gb",
19528 "en-us",
19529 "es",
19530 "fi",
19531 "fr",
19532 "fr-be",
19533 "fr-ca",
19534 "fr-ch",
19535 "hu",
19536 "is",
19537 "it",
19538 "ja",
19539 "lt",
19540 "mk",
19541 "nl",
19542 "no",
19543 "pl",
19544 "pt",
19545 "pt-br",
19546 "sv",
19547 "sl",
19548 "tr"
19549 ],
19550 "optional" : 1,
19551 "type" : "string"
44660702 19552 },
4d47f125
TL
19553 "kvm" : {
19554 "default" : 1,
19555 "description" : "Enable/disable KVM hardware virtualization.",
44660702 19556 "optional" : 1,
013dc89f
DM
19557 "type" : "boolean",
19558 "typetext" : "<boolean>"
7aacca6f 19559 },
4d47f125 19560 "localtime" : {
5370fa8c 19561 "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
19562 "optional" : 1,
19563 "type" : "boolean",
19564 "typetext" : "<boolean>"
19565 },
19566 "lock" : {
19567 "description" : "Lock/unlock the VM.",
56122987 19568 "enum" : [
4d47f125 19569 "backup",
5f26e15b
TL
19570 "clone",
19571 "create",
19572 "migrate",
19573 "rollback",
56122987 19574 "snapshot",
95895385
TL
19575 "snapshot-delete",
19576 "suspending",
19577 "suspended"
56122987 19578 ],
4d47f125 19579 "optional" : 1,
44660702
DM
19580 "type" : "string"
19581 },
4d47f125 19582 "machine" : {
9d2e98ed 19583 "description" : "Specifies the QEMU machine type.",
4d47f125
TL
19584 "maxLength" : 40,
19585 "optional" : 1,
5c1699e5 19586 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
4d47f125
TL
19587 "type" : "string"
19588 },
19589 "memory" : {
19590 "default" : 512,
9d2e98ed 19591 "description" : "Amount of RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
4d47f125
TL
19592 "minimum" : 16,
19593 "optional" : 1,
19594 "type" : "integer",
19595 "typetext" : "<integer> (16 - N)"
19596 },
19597 "migrate_downtime" : {
19598 "default" : 0.1,
19599 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
19600 "minimum" : 0,
19601 "optional" : 1,
19602 "type" : "number",
19603 "typetext" : "<number> (0 - N)"
19604 },
19605 "migrate_speed" : {
19606 "default" : 0,
19607 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
19608 "minimum" : 0,
19609 "optional" : 1,
19610 "type" : "integer",
19611 "typetext" : "<integer> (0 - N)"
19612 },
19613 "name" : {
19614 "description" : "Set a name for the VM. Only used on the configuration web interface.",
19615 "format" : "dns-name",
19616 "optional" : 1,
013dc89f
DM
19617 "type" : "string",
19618 "typetext" : "<string>"
56122987 19619 },
4d47f125 19620 "nameserver" : {
de786b48 19621 "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 19622 "format" : "address-list",
7aacca6f 19623 "optional" : 1,
013dc89f
DM
19624 "type" : "string",
19625 "typetext" : "<string>"
7aacca6f 19626 },
4d47f125
TL
19627 "net[n]" : {
19628 "description" : "Specify network devices.",
19629 "format" : {
19630 "bridge" : {
19631 "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 19632 "format" : "pve-bridge-id",
4d47f125
TL
19633 "format_description" : "bridge",
19634 "optional" : 1,
19635 "type" : "string"
19636 },
19637 "e1000" : {
19638 "alias" : "macaddr",
19639 "keyAlias" : "model"
19640 },
19641 "e1000-82540em" : {
19642 "alias" : "macaddr",
19643 "keyAlias" : "model"
19644 },
19645 "e1000-82544gc" : {
19646 "alias" : "macaddr",
19647 "keyAlias" : "model"
19648 },
19649 "e1000-82545em" : {
19650 "alias" : "macaddr",
19651 "keyAlias" : "model"
19652 },
5370fa8c
TL
19653 "e1000e" : {
19654 "alias" : "macaddr",
19655 "keyAlias" : "model"
19656 },
4d47f125
TL
19657 "firewall" : {
19658 "description" : "Whether this interface should be protected by the firewall.",
19659 "optional" : 1,
19660 "type" : "boolean"
19661 },
19662 "i82551" : {
19663 "alias" : "macaddr",
19664 "keyAlias" : "model"
19665 },
19666 "i82557b" : {
19667 "alias" : "macaddr",
19668 "keyAlias" : "model"
19669 },
19670 "i82559er" : {
19671 "alias" : "macaddr",
19672 "keyAlias" : "model"
19673 },
19674 "link_down" : {
19675 "description" : "Whether this interface should be disconnected (like pulling the plug).",
19676 "optional" : 1,
19677 "type" : "boolean"
19678 },
19679 "macaddr" : {
19680 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 19681 "format" : "mac-addr",
4d47f125
TL
19682 "format_description" : "XX:XX:XX:XX:XX:XX",
19683 "optional" : 1,
95895385
TL
19684 "type" : "string",
19685 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
19686 },
19687 "model" : {
19688 "default_key" : 1,
19689 "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'.",
19690 "enum" : [
4d47f125 19691 "e1000",
5370fa8c
TL
19692 "e1000-82540em",
19693 "e1000-82544gc",
19694 "e1000-82545em",
19695 "e1000e",
4d47f125
TL
19696 "i82551",
19697 "i82557b",
19698 "i82559er",
5370fa8c
TL
19699 "ne2k_isa",
19700 "ne2k_pci",
19701 "pcnet",
19702 "rtl8139",
19703 "virtio",
19704 "vmxnet3"
4d47f125
TL
19705 ],
19706 "type" : "string"
19707 },
ac70d7d1
TL
19708 "mtu" : {
19709 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
19710 "maximum" : 65520,
19711 "minimum" : 1,
19712 "optional" : 1,
19713 "type" : "integer"
19714 },
4d47f125
TL
19715 "ne2k_isa" : {
19716 "alias" : "macaddr",
19717 "keyAlias" : "model"
19718 },
19719 "ne2k_pci" : {
19720 "alias" : "macaddr",
19721 "keyAlias" : "model"
19722 },
19723 "pcnet" : {
19724 "alias" : "macaddr",
19725 "keyAlias" : "model"
19726 },
19727 "queues" : {
19728 "description" : "Number of packet queues to be used on the device.",
81a3384d 19729 "maximum" : 64,
4d47f125
TL
19730 "minimum" : 0,
19731 "optional" : 1,
19732 "type" : "integer"
19733 },
19734 "rate" : {
19735 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
19736 "minimum" : 0,
19737 "optional" : 1,
19738 "type" : "number"
19739 },
19740 "rtl8139" : {
19741 "alias" : "macaddr",
19742 "keyAlias" : "model"
19743 },
19744 "tag" : {
19745 "description" : "VLAN tag to apply to packets on this interface.",
19746 "maximum" : 4094,
19747 "minimum" : 1,
19748 "optional" : 1,
19749 "type" : "integer"
19750 },
19751 "trunks" : {
19752 "description" : "VLAN trunks to pass through this interface.",
19753 "format_description" : "vlanid[;vlanid...]",
19754 "optional" : 1,
19755 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
19756 "type" : "string"
19757 },
19758 "virtio" : {
19759 "alias" : "macaddr",
19760 "keyAlias" : "model"
19761 },
19762 "vmxnet3" : {
19763 "alias" : "macaddr",
19764 "keyAlias" : "model"
19765 }
44660702 19766 },
44660702 19767 "optional" : 1,
013dc89f 19768 "type" : "string",
ac70d7d1 19769 "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
19770 },
19771 "node" : {
19772 "description" : "The cluster node name.",
19773 "format" : "pve-node",
013dc89f
DM
19774 "type" : "string",
19775 "typetext" : "<string>"
7aacca6f 19776 },
4d47f125
TL
19777 "numa" : {
19778 "default" : 0,
19779 "description" : "Enable/disable NUMA.",
56122987 19780 "optional" : 1,
4d47f125
TL
19781 "type" : "boolean",
19782 "typetext" : "<boolean>"
56122987 19783 },
4d47f125
TL
19784 "numa[n]" : {
19785 "description" : "NUMA topology.",
19786 "format" : {
19787 "cpus" : {
19788 "description" : "CPUs accessing this NUMA node.",
19789 "format_description" : "id[-id];...",
19790 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
19791 "type" : "string"
19792 },
19793 "hostnodes" : {
19794 "description" : "Host NUMA nodes to use.",
19795 "format_description" : "id[-id];...",
19796 "optional" : 1,
19797 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
19798 "type" : "string"
19799 },
19800 "memory" : {
19801 "description" : "Amount of memory this NUMA node provides.",
19802 "optional" : 1,
19803 "type" : "number"
19804 },
19805 "policy" : {
19806 "description" : "NUMA allocation policy.",
19807 "enum" : [
19808 "preferred",
19809 "bind",
19810 "interleave"
19811 ],
19812 "optional" : 1,
19813 "type" : "string"
19814 }
19815 },
7aacca6f 19816 "optional" : 1,
013dc89f 19817 "type" : "string",
4d47f125 19818 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
56122987 19819 },
4d47f125 19820 "onboot" : {
44660702 19821 "default" : 0,
4d47f125 19822 "description" : "Specifies whether a VM will be started during system bootup.",
7aacca6f 19823 "optional" : 1,
013dc89f
DM
19824 "type" : "boolean",
19825 "typetext" : "<boolean>"
56122987 19826 },
4d47f125
TL
19827 "ostype" : {
19828 "description" : "Specify guest operating system.",
7aacca6f 19829 "enum" : [
4d47f125
TL
19830 "other",
19831 "wxp",
19832 "w2k",
19833 "w2k3",
19834 "w2k8",
19835 "wvista",
19836 "win7",
19837 "win8",
19838 "win10",
5370fa8c 19839 "win11",
4d47f125
TL
19840 "l24",
19841 "l26",
19842 "solaris"
7aacca6f
DM
19843 ],
19844 "optional" : 1,
013dc89f 19845 "type" : "string",
9d2e98ed 19846 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
44660702 19847 },
4d47f125
TL
19848 "parallel[n]" : {
19849 "description" : "Map host parallel devices (n is 0 to 2).",
19850 "optional" : 1,
19851 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
013dc89f 19852 "type" : "string",
4772952b 19853 "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 19854 },
4d47f125
TL
19855 "protection" : {
19856 "default" : 0,
19857 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
44660702 19858 "optional" : 1,
013dc89f
DM
19859 "type" : "boolean",
19860 "typetext" : "<boolean>"
44660702 19861 },
4d47f125
TL
19862 "reboot" : {
19863 "default" : 1,
19864 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
56122987 19865 "optional" : 1,
013dc89f
DM
19866 "type" : "boolean",
19867 "typetext" : "<boolean>"
56122987 19868 },
4d47f125
TL
19869 "revert" : {
19870 "description" : "Revert a pending change.",
19871 "format" : "pve-configid-list",
19872 "optional" : 1,
013dc89f
DM
19873 "type" : "string",
19874 "typetext" : "<string>"
56122987 19875 },
c5aa7e14
TL
19876 "rng0" : {
19877 "description" : "Configure a VirtIO-based Random Number Generator.",
19878 "format" : {
19879 "max_bytes" : {
19880 "default" : 1024,
5370fa8c 19881 "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
19882 "optional" : 1,
19883 "type" : "integer"
19884 },
19885 "period" : {
19886 "default" : 1000,
19887 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
19888 "optional" : 1,
19889 "type" : "integer"
19890 },
19891 "source" : {
19892 "default_key" : 1,
5370fa8c 19893 "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
19894 "enum" : [
19895 "/dev/urandom",
19896 "/dev/random",
19897 "/dev/hwrng"
19898 ],
19899 "type" : "string"
19900 }
19901 },
19902 "optional" : 1,
19903 "type" : "string",
19904 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
19905 },
4d47f125 19906 "sata[n]" : {
7af2edf9 19907 "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
19908 "format" : {
19909 "aio" : {
19910 "description" : "AIO type to use.",
19911 "enum" : [
19912 "native",
8f4d9c87
TL
19913 "threads",
19914 "io_uring"
4d47f125
TL
19915 ],
19916 "optional" : 1,
19917 "type" : "string"
19918 },
19919 "backup" : {
19920 "description" : "Whether the drive should be included when making backups.",
19921 "optional" : 1,
19922 "type" : "boolean"
19923 },
19924 "bps" : {
19925 "description" : "Maximum r/w speed in bytes per second.",
19926 "format_description" : "bps",
19927 "optional" : 1,
19928 "type" : "integer"
19929 },
19930 "bps_max_length" : {
19931 "description" : "Maximum length of I/O bursts in seconds.",
19932 "format_description" : "seconds",
19933 "minimum" : 1,
19934 "optional" : 1,
19935 "type" : "integer"
19936 },
19937 "bps_rd" : {
19938 "description" : "Maximum read speed in bytes per second.",
19939 "format_description" : "bps",
19940 "optional" : 1,
19941 "type" : "integer"
19942 },
19943 "bps_rd_length" : {
19944 "alias" : "bps_rd_max_length"
19945 },
19946 "bps_rd_max_length" : {
19947 "description" : "Maximum length of read I/O bursts in seconds.",
19948 "format_description" : "seconds",
19949 "minimum" : 1,
19950 "optional" : 1,
19951 "type" : "integer"
19952 },
19953 "bps_wr" : {
19954 "description" : "Maximum write speed in bytes per second.",
19955 "format_description" : "bps",
19956 "optional" : 1,
19957 "type" : "integer"
19958 },
19959 "bps_wr_length" : {
19960 "alias" : "bps_wr_max_length"
19961 },
19962 "bps_wr_max_length" : {
19963 "description" : "Maximum length of write I/O bursts in seconds.",
19964 "format_description" : "seconds",
19965 "minimum" : 1,
19966 "optional" : 1,
19967 "type" : "integer"
19968 },
19969 "cache" : {
19970 "description" : "The drive's cache mode",
19971 "enum" : [
19972 "none",
19973 "writethrough",
19974 "writeback",
19975 "unsafe",
19976 "directsync"
19977 ],
19978 "optional" : 1,
19979 "type" : "string"
19980 },
19981 "cyls" : {
19982 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
19983 "optional" : 1,
19984 "type" : "integer"
19985 },
19986 "detect_zeroes" : {
19987 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
19988 "optional" : 1,
19989 "type" : "boolean"
19990 },
19991 "discard" : {
19992 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
19993 "enum" : [
19994 "ignore",
19995 "on"
19996 ],
19997 "optional" : 1,
19998 "type" : "string"
19999 },
20000 "file" : {
20001 "default_key" : 1,
20002 "description" : "The drive's backing volume.",
20003 "format" : "pve-volume-id-or-qm-path",
20004 "format_description" : "volume",
20005 "type" : "string"
20006 },
20007 "format" : {
20008 "description" : "The drive's backing file's data format.",
20009 "enum" : [
20010 "raw",
20011 "cow",
20012 "qcow",
20013 "qed",
20014 "qcow2",
20015 "vmdk",
20016 "cloop"
20017 ],
20018 "optional" : 1,
20019 "type" : "string"
20020 },
20021 "heads" : {
20022 "description" : "Force the drive's physical geometry to have a specific head count.",
20023 "optional" : 1,
20024 "type" : "integer"
20025 },
7af2edf9
TL
20026 "import-from" : {
20027 "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!",
20028 "format" : "pve-volume-id-or-absolute-path",
20029 "format_description" : "source volume",
20030 "optional" : 1,
20031 "type" : "string"
20032 },
4d47f125
TL
20033 "iops" : {
20034 "description" : "Maximum r/w I/O in operations per second.",
20035 "format_description" : "iops",
20036 "optional" : 1,
20037 "type" : "integer"
20038 },
20039 "iops_max" : {
20040 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
20041 "format_description" : "iops",
20042 "optional" : 1,
20043 "type" : "integer"
20044 },
20045 "iops_max_length" : {
20046 "description" : "Maximum length of I/O bursts in seconds.",
20047 "format_description" : "seconds",
20048 "minimum" : 1,
20049 "optional" : 1,
20050 "type" : "integer"
20051 },
20052 "iops_rd" : {
20053 "description" : "Maximum read I/O in operations per second.",
20054 "format_description" : "iops",
20055 "optional" : 1,
20056 "type" : "integer"
20057 },
20058 "iops_rd_length" : {
20059 "alias" : "iops_rd_max_length"
20060 },
20061 "iops_rd_max" : {
20062 "description" : "Maximum unthrottled read I/O pool in operations per second.",
20063 "format_description" : "iops",
20064 "optional" : 1,
20065 "type" : "integer"
20066 },
20067 "iops_rd_max_length" : {
20068 "description" : "Maximum length of read I/O bursts in seconds.",
20069 "format_description" : "seconds",
20070 "minimum" : 1,
20071 "optional" : 1,
20072 "type" : "integer"
20073 },
20074 "iops_wr" : {
20075 "description" : "Maximum write I/O in operations per second.",
20076 "format_description" : "iops",
20077 "optional" : 1,
20078 "type" : "integer"
20079 },
20080 "iops_wr_length" : {
20081 "alias" : "iops_wr_max_length"
20082 },
20083 "iops_wr_max" : {
20084 "description" : "Maximum unthrottled write I/O pool in operations per second.",
20085 "format_description" : "iops",
20086 "optional" : 1,
20087 "type" : "integer"
20088 },
20089 "iops_wr_max_length" : {
20090 "description" : "Maximum length of write I/O bursts in seconds.",
20091 "format_description" : "seconds",
20092 "minimum" : 1,
20093 "optional" : 1,
20094 "type" : "integer"
20095 },
20096 "mbps" : {
20097 "description" : "Maximum r/w speed in megabytes per second.",
20098 "format_description" : "mbps",
20099 "optional" : 1,
20100 "type" : "number"
20101 },
20102 "mbps_max" : {
20103 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
20104 "format_description" : "mbps",
20105 "optional" : 1,
20106 "type" : "number"
20107 },
20108 "mbps_rd" : {
20109 "description" : "Maximum read speed in megabytes per second.",
20110 "format_description" : "mbps",
20111 "optional" : 1,
20112 "type" : "number"
20113 },
20114 "mbps_rd_max" : {
20115 "description" : "Maximum unthrottled read pool in megabytes per second.",
20116 "format_description" : "mbps",
20117 "optional" : 1,
20118 "type" : "number"
20119 },
20120 "mbps_wr" : {
20121 "description" : "Maximum write speed in megabytes per second.",
20122 "format_description" : "mbps",
20123 "optional" : 1,
20124 "type" : "number"
20125 },
20126 "mbps_wr_max" : {
20127 "description" : "Maximum unthrottled write pool in megabytes per second.",
20128 "format_description" : "mbps",
20129 "optional" : 1,
20130 "type" : "number"
20131 },
20132 "media" : {
20133 "default" : "disk",
20134 "description" : "The drive's media type.",
20135 "enum" : [
20136 "cdrom",
20137 "disk"
20138 ],
20139 "optional" : 1,
20140 "type" : "string"
20141 },
20142 "replicate" : {
20143 "default" : 1,
20144 "description" : "Whether the drive should considered for replication jobs.",
20145 "optional" : 1,
20146 "type" : "boolean"
20147 },
20148 "rerror" : {
20149 "description" : "Read error action.",
20150 "enum" : [
20151 "ignore",
20152 "report",
20153 "stop"
20154 ],
20155 "optional" : 1,
20156 "type" : "string"
20157 },
20158 "secs" : {
20159 "description" : "Force the drive's physical geometry to have a specific sector count.",
20160 "optional" : 1,
20161 "type" : "integer"
20162 },
20163 "serial" : {
20164 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
20165 "format" : "urlencoded",
20166 "format_description" : "serial",
20167 "maxLength" : 60,
20168 "optional" : 1,
20169 "type" : "string"
20170 },
20171 "shared" : {
20172 "default" : 0,
20173 "description" : "Mark this locally-managed volume as available on all nodes",
20174 "optional" : 1,
20175 "type" : "boolean",
20176 "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!"
20177 },
20178 "size" : {
20179 "description" : "Disk size. This is purely informational and has no effect.",
20180 "format" : "disk-size",
20181 "format_description" : "DiskSize",
20182 "optional" : 1,
20183 "type" : "string"
20184 },
20185 "snapshot" : {
20186 "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.",
20187 "optional" : 1,
20188 "type" : "boolean"
20189 },
25203dc1
NC
20190 "ssd" : {
20191 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
20192 "optional" : 1,
20193 "type" : "boolean"
20194 },
4d47f125
TL
20195 "trans" : {
20196 "description" : "Force disk geometry bios translation mode.",
20197 "enum" : [
20198 "none",
20199 "lba",
20200 "auto"
20201 ],
20202 "optional" : 1,
20203 "type" : "string"
20204 },
20205 "volume" : {
20206 "alias" : "file"
20207 },
20208 "werror" : {
20209 "description" : "Write error action.",
20210 "enum" : [
20211 "enospc",
20212 "ignore",
20213 "report",
20214 "stop"
20215 ],
20216 "optional" : 1,
20217 "type" : "string"
95895385
TL
20218 },
20219 "wwn" : {
20220 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
20221 "format_description" : "wwn",
20222 "optional" : 1,
20223 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
20224 "type" : "string"
4d47f125
TL
20225 }
20226 },
20227 "optional" : 1,
20228 "type" : "string",
7af2edf9 20229 "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
20230 },
20231 "scsi[n]" : {
7af2edf9 20232 "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
20233 "format" : {
20234 "aio" : {
20235 "description" : "AIO type to use.",
20236 "enum" : [
20237 "native",
8f4d9c87
TL
20238 "threads",
20239 "io_uring"
4d47f125
TL
20240 ],
20241 "optional" : 1,
20242 "type" : "string"
20243 },
20244 "backup" : {
20245 "description" : "Whether the drive should be included when making backups.",
20246 "optional" : 1,
20247 "type" : "boolean"
20248 },
20249 "bps" : {
20250 "description" : "Maximum r/w speed in bytes per second.",
20251 "format_description" : "bps",
20252 "optional" : 1,
20253 "type" : "integer"
20254 },
20255 "bps_max_length" : {
20256 "description" : "Maximum length of I/O bursts in seconds.",
20257 "format_description" : "seconds",
20258 "minimum" : 1,
20259 "optional" : 1,
20260 "type" : "integer"
20261 },
20262 "bps_rd" : {
20263 "description" : "Maximum read speed in bytes per second.",
20264 "format_description" : "bps",
20265 "optional" : 1,
20266 "type" : "integer"
20267 },
20268 "bps_rd_length" : {
20269 "alias" : "bps_rd_max_length"
20270 },
20271 "bps_rd_max_length" : {
20272 "description" : "Maximum length of read I/O bursts in seconds.",
20273 "format_description" : "seconds",
20274 "minimum" : 1,
20275 "optional" : 1,
20276 "type" : "integer"
20277 },
20278 "bps_wr" : {
20279 "description" : "Maximum write speed in bytes per second.",
20280 "format_description" : "bps",
20281 "optional" : 1,
20282 "type" : "integer"
20283 },
20284 "bps_wr_length" : {
20285 "alias" : "bps_wr_max_length"
20286 },
20287 "bps_wr_max_length" : {
20288 "description" : "Maximum length of write I/O bursts in seconds.",
20289 "format_description" : "seconds",
20290 "minimum" : 1,
20291 "optional" : 1,
20292 "type" : "integer"
20293 },
20294 "cache" : {
20295 "description" : "The drive's cache mode",
20296 "enum" : [
20297 "none",
20298 "writethrough",
20299 "writeback",
20300 "unsafe",
20301 "directsync"
20302 ],
20303 "optional" : 1,
20304 "type" : "string"
20305 },
20306 "cyls" : {
20307 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
20308 "optional" : 1,
20309 "type" : "integer"
20310 },
20311 "detect_zeroes" : {
20312 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
20313 "optional" : 1,
20314 "type" : "boolean"
20315 },
20316 "discard" : {
20317 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
20318 "enum" : [
20319 "ignore",
20320 "on"
20321 ],
20322 "optional" : 1,
20323 "type" : "string"
20324 },
20325 "file" : {
20326 "default_key" : 1,
20327 "description" : "The drive's backing volume.",
20328 "format" : "pve-volume-id-or-qm-path",
20329 "format_description" : "volume",
20330 "type" : "string"
20331 },
20332 "format" : {
20333 "description" : "The drive's backing file's data format.",
20334 "enum" : [
20335 "raw",
20336 "cow",
20337 "qcow",
20338 "qed",
20339 "qcow2",
20340 "vmdk",
20341 "cloop"
20342 ],
20343 "optional" : 1,
20344 "type" : "string"
20345 },
20346 "heads" : {
20347 "description" : "Force the drive's physical geometry to have a specific head count.",
20348 "optional" : 1,
20349 "type" : "integer"
20350 },
7af2edf9
TL
20351 "import-from" : {
20352 "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!",
20353 "format" : "pve-volume-id-or-absolute-path",
20354 "format_description" : "source volume",
20355 "optional" : 1,
20356 "type" : "string"
20357 },
4d47f125
TL
20358 "iops" : {
20359 "description" : "Maximum r/w I/O in operations per second.",
20360 "format_description" : "iops",
20361 "optional" : 1,
20362 "type" : "integer"
20363 },
20364 "iops_max" : {
20365 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
20366 "format_description" : "iops",
20367 "optional" : 1,
20368 "type" : "integer"
20369 },
20370 "iops_max_length" : {
20371 "description" : "Maximum length of I/O bursts in seconds.",
20372 "format_description" : "seconds",
20373 "minimum" : 1,
20374 "optional" : 1,
20375 "type" : "integer"
20376 },
20377 "iops_rd" : {
20378 "description" : "Maximum read I/O in operations per second.",
20379 "format_description" : "iops",
20380 "optional" : 1,
20381 "type" : "integer"
20382 },
20383 "iops_rd_length" : {
20384 "alias" : "iops_rd_max_length"
20385 },
20386 "iops_rd_max" : {
20387 "description" : "Maximum unthrottled read I/O pool in operations per second.",
20388 "format_description" : "iops",
20389 "optional" : 1,
20390 "type" : "integer"
20391 },
20392 "iops_rd_max_length" : {
20393 "description" : "Maximum length of read I/O bursts in seconds.",
20394 "format_description" : "seconds",
20395 "minimum" : 1,
20396 "optional" : 1,
20397 "type" : "integer"
20398 },
20399 "iops_wr" : {
20400 "description" : "Maximum write I/O in operations per second.",
20401 "format_description" : "iops",
20402 "optional" : 1,
20403 "type" : "integer"
20404 },
20405 "iops_wr_length" : {
20406 "alias" : "iops_wr_max_length"
20407 },
20408 "iops_wr_max" : {
20409 "description" : "Maximum unthrottled write I/O pool in operations per second.",
20410 "format_description" : "iops",
20411 "optional" : 1,
20412 "type" : "integer"
20413 },
20414 "iops_wr_max_length" : {
20415 "description" : "Maximum length of write I/O bursts in seconds.",
20416 "format_description" : "seconds",
20417 "minimum" : 1,
20418 "optional" : 1,
20419 "type" : "integer"
20420 },
20421 "iothread" : {
20422 "description" : "Whether to use iothreads for this drive",
20423 "optional" : 1,
20424 "type" : "boolean"
20425 },
20426 "mbps" : {
20427 "description" : "Maximum r/w speed in megabytes per second.",
20428 "format_description" : "mbps",
20429 "optional" : 1,
20430 "type" : "number"
20431 },
20432 "mbps_max" : {
20433 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
20434 "format_description" : "mbps",
20435 "optional" : 1,
20436 "type" : "number"
20437 },
20438 "mbps_rd" : {
20439 "description" : "Maximum read speed in megabytes per second.",
20440 "format_description" : "mbps",
20441 "optional" : 1,
20442 "type" : "number"
20443 },
20444 "mbps_rd_max" : {
20445 "description" : "Maximum unthrottled read pool in megabytes per second.",
20446 "format_description" : "mbps",
20447 "optional" : 1,
20448 "type" : "number"
20449 },
20450 "mbps_wr" : {
20451 "description" : "Maximum write speed in megabytes per second.",
20452 "format_description" : "mbps",
20453 "optional" : 1,
20454 "type" : "number"
20455 },
20456 "mbps_wr_max" : {
20457 "description" : "Maximum unthrottled write pool in megabytes per second.",
20458 "format_description" : "mbps",
20459 "optional" : 1,
20460 "type" : "number"
20461 },
20462 "media" : {
20463 "default" : "disk",
20464 "description" : "The drive's media type.",
20465 "enum" : [
20466 "cdrom",
20467 "disk"
20468 ],
20469 "optional" : 1,
20470 "type" : "string"
20471 },
20472 "queues" : {
20473 "description" : "Number of queues.",
20474 "minimum" : 2,
20475 "optional" : 1,
20476 "type" : "integer"
20477 },
20478 "replicate" : {
20479 "default" : 1,
20480 "description" : "Whether the drive should considered for replication jobs.",
20481 "optional" : 1,
20482 "type" : "boolean"
20483 },
20484 "rerror" : {
20485 "description" : "Read error action.",
20486 "enum" : [
20487 "ignore",
20488 "report",
20489 "stop"
20490 ],
20491 "optional" : 1,
20492 "type" : "string"
20493 },
5370fa8c
TL
20494 "ro" : {
20495 "description" : "Whether the drive is read-only.",
20496 "optional" : 1,
20497 "type" : "boolean"
20498 },
4d47f125
TL
20499 "scsiblock" : {
20500 "default" : 0,
20501 "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",
20502 "optional" : 1,
20503 "type" : "boolean"
20504 },
20505 "secs" : {
20506 "description" : "Force the drive's physical geometry to have a specific sector count.",
20507 "optional" : 1,
20508 "type" : "integer"
20509 },
20510 "serial" : {
20511 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
20512 "format" : "urlencoded",
20513 "format_description" : "serial",
20514 "maxLength" : 60,
20515 "optional" : 1,
20516 "type" : "string"
20517 },
20518 "shared" : {
20519 "default" : 0,
20520 "description" : "Mark this locally-managed volume as available on all nodes",
20521 "optional" : 1,
20522 "type" : "boolean",
20523 "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!"
20524 },
20525 "size" : {
20526 "description" : "Disk size. This is purely informational and has no effect.",
20527 "format" : "disk-size",
20528 "format_description" : "DiskSize",
20529 "optional" : 1,
20530 "type" : "string"
20531 },
20532 "snapshot" : {
20533 "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.",
20534 "optional" : 1,
20535 "type" : "boolean"
20536 },
25203dc1
NC
20537 "ssd" : {
20538 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
20539 "optional" : 1,
20540 "type" : "boolean"
20541 },
4d47f125
TL
20542 "trans" : {
20543 "description" : "Force disk geometry bios translation mode.",
20544 "enum" : [
20545 "none",
20546 "lba",
20547 "auto"
20548 ],
20549 "optional" : 1,
20550 "type" : "string"
20551 },
20552 "volume" : {
20553 "alias" : "file"
20554 },
20555 "werror" : {
20556 "description" : "Write error action.",
20557 "enum" : [
20558 "enospc",
20559 "ignore",
20560 "report",
20561 "stop"
20562 ],
20563 "optional" : 1,
20564 "type" : "string"
95895385
TL
20565 },
20566 "wwn" : {
20567 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
20568 "format_description" : "wwn",
20569 "optional" : 1,
20570 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
20571 "type" : "string"
4d47f125
TL
20572 }
20573 },
20574 "optional" : 1,
20575 "type" : "string",
7af2edf9 20576 "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
20577 },
20578 "scsihw" : {
20579 "default" : "lsi",
20580 "description" : "SCSI controller model",
20581 "enum" : [
20582 "lsi",
20583 "lsi53c810",
20584 "virtio-scsi-pci",
20585 "virtio-scsi-single",
20586 "megasas",
20587 "pvscsi"
20588 ],
20589 "optional" : 1,
20590 "type" : "string"
20591 },
20592 "searchdomain" : {
de786b48 20593 "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
20594 "optional" : 1,
20595 "type" : "string",
20596 "typetext" : "<string>"
20597 },
20598 "serial[n]" : {
20599 "description" : "Create a serial device inside the VM (n is 0 to 3)",
20600 "optional" : 1,
20601 "pattern" : "(/dev/.+|socket)",
20602 "type" : "string",
4772952b 20603 "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
20604 },
20605 "shares" : {
20606 "default" : 1000,
20607 "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.",
20608 "maximum" : 50000,
20609 "minimum" : 0,
20610 "optional" : 1,
20611 "type" : "integer",
20612 "typetext" : "<integer> (0 - 50000)"
20613 },
20614 "skiplock" : {
20615 "description" : "Ignore locks - only root is allowed to use this option.",
20616 "optional" : 1,
20617 "type" : "boolean",
20618 "typetext" : "<boolean>"
20619 },
20620 "smbios1" : {
20621 "description" : "Specify SMBIOS type 1 fields.",
20622 "format" : "pve-qm-smbios1",
1e3f8156 20623 "maxLength" : 512,
4d47f125
TL
20624 "optional" : 1,
20625 "type" : "string",
1e3f8156 20626 "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
20627 },
20628 "smp" : {
20629 "default" : 1,
20630 "description" : "The number of CPUs. Please use option -sockets instead.",
20631 "minimum" : 1,
20632 "optional" : 1,
20633 "type" : "integer",
20634 "typetext" : "<integer> (1 - N)"
20635 },
20636 "sockets" : {
20637 "default" : 1,
20638 "description" : "The number of CPU sockets.",
20639 "minimum" : 1,
20640 "optional" : 1,
20641 "type" : "integer",
20642 "typetext" : "<integer> (1 - N)"
20643 },
1c532546
TL
20644 "spice_enhancements" : {
20645 "description" : "Configure additional enhancements for SPICE.",
20646 "format" : {
20647 "foldersharing" : {
20648 "default" : "0",
20649 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
20650 "optional" : 1,
20651 "type" : "boolean"
20652 },
20653 "videostreaming" : {
20654 "default" : "off",
20655 "description" : "Enable video streaming. Uses compression for detected video streams.",
20656 "enum" : [
20657 "off",
20658 "all",
20659 "filter"
20660 ],
20661 "optional" : 1,
20662 "type" : "string"
20663 }
20664 },
20665 "optional" : 1,
20666 "type" : "string",
20667 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
20668 },
4d47f125
TL
20669 "sshkeys" : {
20670 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
20671 "format" : "urlencoded",
20672 "optional" : 1,
20673 "type" : "string",
20674 "typetext" : "<string>"
20675 },
20676 "startdate" : {
20677 "default" : "now",
4772952b 20678 "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
20679 "optional" : 1,
20680 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
20681 "type" : "string",
20682 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
20683 },
20684 "startup" : {
20685 "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.",
20686 "format" : "pve-startup-order",
20687 "optional" : 1,
20688 "type" : "string",
20689 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
20690 },
20691 "tablet" : {
20692 "default" : 1,
20693 "description" : "Enable/disable the USB tablet device.",
20694 "optional" : 1,
20695 "type" : "boolean",
20696 "typetext" : "<boolean>",
4772952b 20697 "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 20698 },
5c1699e5
TL
20699 "tags" : {
20700 "description" : "Tags of the VM. This is only meta information.",
20701 "format" : "pve-tag-list",
20702 "optional" : 1,
20703 "type" : "string",
20704 "typetext" : "<string>"
20705 },
4d47f125
TL
20706 "tdf" : {
20707 "default" : 0,
20708 "description" : "Enable/disable time drift fix.",
20709 "optional" : 1,
20710 "type" : "boolean",
20711 "typetext" : "<boolean>"
20712 },
20713 "template" : {
20714 "default" : 0,
20715 "description" : "Enable/disable Template.",
20716 "optional" : 1,
20717 "type" : "boolean",
20718 "typetext" : "<boolean>"
20719 },
5370fa8c 20720 "tpmstate0" : {
7af2edf9 20721 "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
20722 "format" : {
20723 "file" : {
20724 "default_key" : 1,
20725 "description" : "The drive's backing volume.",
20726 "format" : "pve-volume-id-or-qm-path",
20727 "format_description" : "volume",
20728 "type" : "string"
20729 },
7af2edf9
TL
20730 "import-from" : {
20731 "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!",
20732 "format" : "pve-volume-id-or-absolute-path",
20733 "format_description" : "source volume",
20734 "optional" : 1,
20735 "type" : "string"
20736 },
5370fa8c
TL
20737 "size" : {
20738 "description" : "Disk size. This is purely informational and has no effect.",
20739 "format" : "disk-size",
20740 "format_description" : "DiskSize",
20741 "optional" : 1,
20742 "type" : "string"
20743 },
20744 "version" : {
20745 "default" : "v2.0",
20746 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
20747 "enum" : [
20748 "v1.2",
20749 "v2.0"
20750 ],
20751 "optional" : 1,
20752 "type" : "string"
20753 },
20754 "volume" : {
20755 "alias" : "file"
20756 }
20757 },
20758 "optional" : 1,
20759 "type" : "string",
7af2edf9 20760 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 20761 },
4d47f125
TL
20762 "unused[n]" : {
20763 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
20764 "format" : {
20765 "file" : {
20766 "default_key" : 1,
20767 "description" : "The drive's backing volume.",
20768 "format" : "pve-volume-id",
20769 "format_description" : "volume",
20770 "type" : "string"
20771 },
20772 "volume" : {
20773 "alias" : "file"
20774 }
20775 },
4d47f125
TL
20776 "optional" : 1,
20777 "type" : "string",
c5aa7e14 20778 "typetext" : "[file=]<volume>"
4d47f125
TL
20779 },
20780 "usb[n]" : {
4e7f60c2 20781 "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
20782 "format" : {
20783 "host" : {
20784 "default_key" : 1,
499c9b7f 20785 "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n\nEither this or the 'mapping' key must be set.\n",
4d47f125 20786 "format_description" : "HOSTUSBDEVICE|spice",
499c9b7f
TL
20787 "optional" : 1,
20788 "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
20789 "type" : "string"
20790 },
20791 "mapping" : {
20792 "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
20793 "format" : "pve-configid",
20794 "format_description" : "mapping-id",
20795 "optional" : 1,
4d47f125
TL
20796 "type" : "string"
20797 },
20798 "usb3" : {
20799 "default" : 0,
4e7f60c2 20800 "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
20801 "optional" : 1,
20802 "type" : "boolean"
20803 }
20804 },
20805 "optional" : 1,
20806 "type" : "string",
499c9b7f 20807 "typetext" : "[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]"
4d47f125
TL
20808 },
20809 "vcpus" : {
20810 "default" : 0,
20811 "description" : "Number of hotplugged vcpus.",
20812 "minimum" : 1,
20813 "optional" : 1,
20814 "type" : "integer",
20815 "typetext" : "<integer> (1 - N)"
20816 },
20817 "vga" : {
e2d681b3
TL
20818 "description" : "Configure the VGA hardware.",
20819 "format" : {
20820 "memory" : {
20821 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
20822 "maximum" : 512,
20823 "minimum" : 4,
20824 "optional" : 1,
20825 "type" : "integer"
20826 },
20827 "type" : {
20828 "default" : "std",
20829 "default_key" : 1,
20830 "description" : "Select the VGA type.",
20831 "enum" : [
20832 "cirrus",
20833 "qxl",
20834 "qxl2",
20835 "qxl3",
20836 "qxl4",
5f26e15b 20837 "none",
e2d681b3
TL
20838 "serial0",
20839 "serial1",
20840 "serial2",
20841 "serial3",
20842 "std",
20843 "virtio",
7af2edf9 20844 "virtio-gl",
e2d681b3
TL
20845 "vmware"
20846 ],
20847 "optional" : 1,
20848 "type" : "string"
20849 }
20850 },
4d47f125
TL
20851 "optional" : 1,
20852 "type" : "string",
e2d681b3
TL
20853 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
20854 "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
20855 },
20856 "virtio[n]" : {
7af2edf9 20857 "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
20858 "format" : {
20859 "aio" : {
20860 "description" : "AIO type to use.",
20861 "enum" : [
20862 "native",
8f4d9c87
TL
20863 "threads",
20864 "io_uring"
4d47f125
TL
20865 ],
20866 "optional" : 1,
20867 "type" : "string"
20868 },
20869 "backup" : {
20870 "description" : "Whether the drive should be included when making backups.",
20871 "optional" : 1,
20872 "type" : "boolean"
20873 },
20874 "bps" : {
20875 "description" : "Maximum r/w speed in bytes per second.",
20876 "format_description" : "bps",
20877 "optional" : 1,
20878 "type" : "integer"
20879 },
20880 "bps_max_length" : {
20881 "description" : "Maximum length of I/O bursts in seconds.",
20882 "format_description" : "seconds",
20883 "minimum" : 1,
20884 "optional" : 1,
20885 "type" : "integer"
20886 },
20887 "bps_rd" : {
20888 "description" : "Maximum read speed in bytes per second.",
20889 "format_description" : "bps",
20890 "optional" : 1,
20891 "type" : "integer"
20892 },
20893 "bps_rd_length" : {
20894 "alias" : "bps_rd_max_length"
20895 },
20896 "bps_rd_max_length" : {
20897 "description" : "Maximum length of read I/O bursts in seconds.",
20898 "format_description" : "seconds",
20899 "minimum" : 1,
20900 "optional" : 1,
20901 "type" : "integer"
20902 },
20903 "bps_wr" : {
20904 "description" : "Maximum write speed in bytes per second.",
20905 "format_description" : "bps",
20906 "optional" : 1,
20907 "type" : "integer"
20908 },
20909 "bps_wr_length" : {
20910 "alias" : "bps_wr_max_length"
20911 },
20912 "bps_wr_max_length" : {
20913 "description" : "Maximum length of write I/O bursts in seconds.",
20914 "format_description" : "seconds",
20915 "minimum" : 1,
20916 "optional" : 1,
20917 "type" : "integer"
20918 },
20919 "cache" : {
20920 "description" : "The drive's cache mode",
20921 "enum" : [
20922 "none",
20923 "writethrough",
20924 "writeback",
20925 "unsafe",
20926 "directsync"
20927 ],
20928 "optional" : 1,
20929 "type" : "string"
20930 },
20931 "cyls" : {
20932 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
20933 "optional" : 1,
20934 "type" : "integer"
20935 },
20936 "detect_zeroes" : {
20937 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
20938 "optional" : 1,
20939 "type" : "boolean"
20940 },
20941 "discard" : {
20942 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
20943 "enum" : [
20944 "ignore",
20945 "on"
20946 ],
20947 "optional" : 1,
20948 "type" : "string"
20949 },
20950 "file" : {
20951 "default_key" : 1,
20952 "description" : "The drive's backing volume.",
20953 "format" : "pve-volume-id-or-qm-path",
20954 "format_description" : "volume",
20955 "type" : "string"
20956 },
20957 "format" : {
20958 "description" : "The drive's backing file's data format.",
20959 "enum" : [
20960 "raw",
20961 "cow",
20962 "qcow",
20963 "qed",
20964 "qcow2",
20965 "vmdk",
20966 "cloop"
20967 ],
20968 "optional" : 1,
20969 "type" : "string"
20970 },
20971 "heads" : {
20972 "description" : "Force the drive's physical geometry to have a specific head count.",
20973 "optional" : 1,
20974 "type" : "integer"
20975 },
7af2edf9
TL
20976 "import-from" : {
20977 "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!",
20978 "format" : "pve-volume-id-or-absolute-path",
20979 "format_description" : "source volume",
20980 "optional" : 1,
20981 "type" : "string"
20982 },
4d47f125
TL
20983 "iops" : {
20984 "description" : "Maximum r/w I/O in operations per second.",
20985 "format_description" : "iops",
20986 "optional" : 1,
20987 "type" : "integer"
20988 },
20989 "iops_max" : {
20990 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
20991 "format_description" : "iops",
20992 "optional" : 1,
20993 "type" : "integer"
20994 },
20995 "iops_max_length" : {
20996 "description" : "Maximum length of I/O bursts in seconds.",
20997 "format_description" : "seconds",
20998 "minimum" : 1,
20999 "optional" : 1,
21000 "type" : "integer"
21001 },
21002 "iops_rd" : {
21003 "description" : "Maximum read I/O in operations per second.",
21004 "format_description" : "iops",
21005 "optional" : 1,
21006 "type" : "integer"
21007 },
21008 "iops_rd_length" : {
21009 "alias" : "iops_rd_max_length"
21010 },
21011 "iops_rd_max" : {
21012 "description" : "Maximum unthrottled read I/O pool in operations per second.",
21013 "format_description" : "iops",
21014 "optional" : 1,
21015 "type" : "integer"
21016 },
21017 "iops_rd_max_length" : {
21018 "description" : "Maximum length of read I/O bursts in seconds.",
21019 "format_description" : "seconds",
21020 "minimum" : 1,
21021 "optional" : 1,
21022 "type" : "integer"
21023 },
21024 "iops_wr" : {
21025 "description" : "Maximum write I/O in operations per second.",
21026 "format_description" : "iops",
21027 "optional" : 1,
21028 "type" : "integer"
21029 },
21030 "iops_wr_length" : {
21031 "alias" : "iops_wr_max_length"
21032 },
21033 "iops_wr_max" : {
21034 "description" : "Maximum unthrottled write I/O pool in operations per second.",
21035 "format_description" : "iops",
21036 "optional" : 1,
21037 "type" : "integer"
21038 },
21039 "iops_wr_max_length" : {
21040 "description" : "Maximum length of write I/O bursts in seconds.",
21041 "format_description" : "seconds",
21042 "minimum" : 1,
21043 "optional" : 1,
21044 "type" : "integer"
21045 },
21046 "iothread" : {
21047 "description" : "Whether to use iothreads for this drive",
21048 "optional" : 1,
21049 "type" : "boolean"
21050 },
21051 "mbps" : {
21052 "description" : "Maximum r/w speed in megabytes per second.",
21053 "format_description" : "mbps",
21054 "optional" : 1,
21055 "type" : "number"
21056 },
21057 "mbps_max" : {
21058 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
21059 "format_description" : "mbps",
21060 "optional" : 1,
21061 "type" : "number"
21062 },
21063 "mbps_rd" : {
21064 "description" : "Maximum read speed in megabytes per second.",
21065 "format_description" : "mbps",
21066 "optional" : 1,
21067 "type" : "number"
21068 },
21069 "mbps_rd_max" : {
21070 "description" : "Maximum unthrottled read pool in megabytes per second.",
21071 "format_description" : "mbps",
21072 "optional" : 1,
21073 "type" : "number"
21074 },
21075 "mbps_wr" : {
21076 "description" : "Maximum write speed in megabytes per second.",
21077 "format_description" : "mbps",
21078 "optional" : 1,
21079 "type" : "number"
21080 },
21081 "mbps_wr_max" : {
21082 "description" : "Maximum unthrottled write pool in megabytes per second.",
21083 "format_description" : "mbps",
21084 "optional" : 1,
21085 "type" : "number"
21086 },
21087 "media" : {
21088 "default" : "disk",
21089 "description" : "The drive's media type.",
21090 "enum" : [
21091 "cdrom",
21092 "disk"
21093 ],
21094 "optional" : 1,
21095 "type" : "string"
21096 },
21097 "replicate" : {
21098 "default" : 1,
21099 "description" : "Whether the drive should considered for replication jobs.",
21100 "optional" : 1,
21101 "type" : "boolean"
21102 },
21103 "rerror" : {
21104 "description" : "Read error action.",
21105 "enum" : [
21106 "ignore",
21107 "report",
21108 "stop"
21109 ],
21110 "optional" : 1,
21111 "type" : "string"
21112 },
5370fa8c
TL
21113 "ro" : {
21114 "description" : "Whether the drive is read-only.",
21115 "optional" : 1,
21116 "type" : "boolean"
21117 },
4d47f125
TL
21118 "secs" : {
21119 "description" : "Force the drive's physical geometry to have a specific sector count.",
21120 "optional" : 1,
21121 "type" : "integer"
21122 },
21123 "serial" : {
21124 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
21125 "format" : "urlencoded",
21126 "format_description" : "serial",
21127 "maxLength" : 60,
21128 "optional" : 1,
21129 "type" : "string"
21130 },
21131 "shared" : {
21132 "default" : 0,
21133 "description" : "Mark this locally-managed volume as available on all nodes",
21134 "optional" : 1,
21135 "type" : "boolean",
21136 "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!"
21137 },
21138 "size" : {
21139 "description" : "Disk size. This is purely informational and has no effect.",
21140 "format" : "disk-size",
21141 "format_description" : "DiskSize",
21142 "optional" : 1,
21143 "type" : "string"
21144 },
21145 "snapshot" : {
21146 "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.",
21147 "optional" : 1,
21148 "type" : "boolean"
21149 },
21150 "trans" : {
21151 "description" : "Force disk geometry bios translation mode.",
21152 "enum" : [
21153 "none",
21154 "lba",
21155 "auto"
21156 ],
21157 "optional" : 1,
21158 "type" : "string"
21159 },
21160 "volume" : {
21161 "alias" : "file"
21162 },
21163 "werror" : {
21164 "description" : "Write error action.",
21165 "enum" : [
21166 "enospc",
21167 "ignore",
21168 "report",
21169 "stop"
21170 ],
21171 "optional" : 1,
21172 "type" : "string"
21173 }
21174 },
21175 "optional" : 1,
21176 "type" : "string",
7af2edf9 21177 "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
21178 },
21179 "vmgenid" : {
21180 "default" : "1 (autogenerated)",
21181 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
21182 "format_description" : "UUID",
21183 "optional" : 1,
21184 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
21185 "type" : "string",
4772952b 21186 "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
21187 },
21188 "vmid" : {
21189 "description" : "The (unique) ID of the VM.",
21190 "format" : "pve-vmid",
8dd66e12
TL
21191 "maximum" : 999999999,
21192 "minimum" : 100,
4d47f125 21193 "type" : "integer",
8dd66e12 21194 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
21195 },
21196 "vmstatestorage" : {
21197 "description" : "Default storage for VM state volumes/files.",
21198 "format" : "pve-storage-id",
21199 "optional" : 1,
21200 "type" : "string",
21201 "typetext" : "<string>"
21202 },
21203 "watchdog" : {
21204 "description" : "Create a virtual hardware watchdog device.",
21205 "format" : "pve-qm-watchdog",
21206 "optional" : 1,
21207 "type" : "string",
21208 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
21209 "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)"
21210 }
21211 }
21212 },
21213 "permissions" : {
21214 "check" : [
21215 "perm",
21216 "/vms/{vmid}",
21217 [
21218 "VM.Config.Disk",
21219 "VM.Config.CDROM",
21220 "VM.Config.CPU",
21221 "VM.Config.Memory",
21222 "VM.Config.Network",
21223 "VM.Config.HWType",
ac70d7d1
TL
21224 "VM.Config.Options",
21225 "VM.Config.Cloudinit"
4d47f125
TL
21226 ],
21227 "any",
21228 1
21229 ]
21230 },
21231 "protected" : 1,
21232 "proxyto" : "node",
21233 "returns" : {
21234 "type" : "null"
21235 }
21236 }
21237 },
21238 "leaf" : 1,
21239 "path" : "/nodes/{node}/qemu/{vmid}/config",
21240 "text" : "config"
21241 },
21242 {
21243 "info" : {
21244 "GET" : {
e9cd3bd4
TL
21245 "allowtoken" : 1,
21246 "description" : "Get the virtual machine configuration with both current and pending values.",
4d47f125
TL
21247 "method" : "GET",
21248 "name" : "vm_pending",
21249 "parameters" : {
21250 "additionalProperties" : 0,
21251 "properties" : {
21252 "node" : {
21253 "description" : "The cluster node name.",
21254 "format" : "pve-node",
21255 "type" : "string",
21256 "typetext" : "<string>"
21257 },
21258 "vmid" : {
21259 "description" : "The (unique) ID of the VM.",
21260 "format" : "pve-vmid",
8dd66e12
TL
21261 "maximum" : 999999999,
21262 "minimum" : 100,
4d47f125 21263 "type" : "integer",
8dd66e12 21264 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
21265 }
21266 }
21267 },
21268 "permissions" : {
21269 "check" : [
21270 "perm",
21271 "/vms/{vmid}",
21272 [
21273 "VM.Audit"
21274 ]
21275 ]
21276 },
21277 "proxyto" : "node",
21278 "returns" : {
21279 "items" : {
21280 "properties" : {
21281 "delete" : {
21282 "description" : "Indicates a pending delete request if present and not 0. The value 2 indicates a force-delete request.",
21283 "maximum" : 2,
21284 "minimum" : 0,
21285 "optional" : 1,
21286 "type" : "integer"
21287 },
21288 "key" : {
21289 "description" : "Configuration option name.",
21290 "type" : "string"
21291 },
21292 "pending" : {
21293 "description" : "Pending value.",
21294 "optional" : 1,
21295 "type" : "string"
21296 },
21297 "value" : {
21298 "description" : "Current value.",
21299 "optional" : 1,
21300 "type" : "string"
21301 }
21302 },
21303 "type" : "object"
21304 },
21305 "type" : "array"
21306 }
21307 }
21308 },
21309 "leaf" : 1,
21310 "path" : "/nodes/{node}/qemu/{vmid}/pending",
21311 "text" : "pending"
21312 },
4e7f60c2
TL
21313 {
21314 "children" : [
21315 {
21316 "info" : {
21317 "GET" : {
21318 "allowtoken" : 1,
21319 "description" : "Get automatically generated cloudinit config.",
21320 "method" : "GET",
21321 "name" : "cloudinit_generated_config_dump",
21322 "parameters" : {
21323 "additionalProperties" : 0,
21324 "properties" : {
21325 "node" : {
21326 "description" : "The cluster node name.",
21327 "format" : "pve-node",
21328 "type" : "string",
21329 "typetext" : "<string>"
21330 },
21331 "type" : {
21332 "description" : "Config type.",
21333 "enum" : [
21334 "user",
21335 "network",
21336 "meta"
21337 ],
21338 "type" : "string"
21339 },
21340 "vmid" : {
21341 "description" : "The (unique) ID of the VM.",
21342 "format" : "pve-vmid",
8dd66e12
TL
21343 "maximum" : 999999999,
21344 "minimum" : 100,
4e7f60c2 21345 "type" : "integer",
8dd66e12 21346 "typetext" : "<integer> (100 - 999999999)"
4e7f60c2
TL
21347 }
21348 }
21349 },
21350 "permissions" : {
21351 "check" : [
21352 "perm",
21353 "/vms/{vmid}",
21354 [
21355 "VM.Audit"
21356 ]
21357 ]
21358 },
21359 "proxyto" : "node",
21360 "returns" : {
21361 "type" : "string"
21362 }
21363 }
21364 },
21365 "leaf" : 1,
21366 "path" : "/nodes/{node}/qemu/{vmid}/cloudinit/dump",
21367 "text" : "dump"
21368 }
21369 ],
21370 "info" : {
21371 "GET" : {
21372 "allowtoken" : 1,
21373 "description" : "Get the cloudinit configuration with both current and pending values.",
21374 "method" : "GET",
21375 "name" : "cloudinit_pending",
21376 "parameters" : {
21377 "additionalProperties" : 0,
21378 "properties" : {
21379 "node" : {
21380 "description" : "The cluster node name.",
21381 "format" : "pve-node",
21382 "type" : "string",
21383 "typetext" : "<string>"
21384 },
21385 "vmid" : {
21386 "description" : "The (unique) ID of the VM.",
21387 "format" : "pve-vmid",
8dd66e12
TL
21388 "maximum" : 999999999,
21389 "minimum" : 100,
4e7f60c2 21390 "type" : "integer",
8dd66e12 21391 "typetext" : "<integer> (100 - 999999999)"
4e7f60c2
TL
21392 }
21393 }
21394 },
21395 "permissions" : {
21396 "check" : [
21397 "perm",
21398 "/vms/{vmid}",
21399 [
21400 "VM.Audit"
21401 ]
21402 ]
21403 },
21404 "proxyto" : "node",
21405 "returns" : {
21406 "items" : {
21407 "properties" : {
159464a9
TL
21408 "delete" : {
21409 "description" : "Indicates a pending delete request if present and not 0. ",
21410 "maximum" : 1,
21411 "minimum" : 0,
21412 "optional" : 1,
21413 "type" : "integer"
21414 },
4e7f60c2
TL
21415 "key" : {
21416 "description" : "Configuration option name.",
21417 "type" : "string"
21418 },
159464a9 21419 "pending" : {
81a3384d 21420 "description" : "The new pending value.",
4e7f60c2
TL
21421 "optional" : 1,
21422 "type" : "string"
21423 },
159464a9 21424 "value" : {
81a3384d 21425 "description" : "Value as it was used to generate the current cloudinit image.",
4e7f60c2
TL
21426 "optional" : 1,
21427 "type" : "string"
21428 }
21429 },
21430 "type" : "object"
21431 },
21432 "type" : "array"
21433 }
21434 },
21435 "PUT" : {
21436 "allowtoken" : 1,
21437 "description" : "Regenerate and change cloudinit config drive.",
21438 "method" : "PUT",
21439 "name" : "cloudinit_update",
21440 "parameters" : {
21441 "additionalProperties" : 0,
21442 "properties" : {
21443 "node" : {
21444 "description" : "The cluster node name.",
21445 "format" : "pve-node",
21446 "type" : "string",
21447 "typetext" : "<string>"
21448 },
21449 "vmid" : {
21450 "description" : "The (unique) ID of the VM.",
21451 "format" : "pve-vmid",
8dd66e12
TL
21452 "maximum" : 999999999,
21453 "minimum" : 100,
4e7f60c2 21454 "type" : "integer",
8dd66e12 21455 "typetext" : "<integer> (100 - 999999999)"
4e7f60c2
TL
21456 }
21457 }
21458 },
21459 "permissions" : {
21460 "check" : [
21461 "perm",
21462 "/vms/{vmid}",
21463 "VM.Config.Cloudinit"
21464 ]
21465 },
21466 "protected" : 1,
21467 "proxyto" : "node",
21468 "returns" : {
21469 "type" : "null"
21470 }
21471 }
21472 },
21473 "leaf" : 0,
21474 "path" : "/nodes/{node}/qemu/{vmid}/cloudinit",
21475 "text" : "cloudinit"
21476 },
4d47f125
TL
21477 {
21478 "info" : {
21479 "PUT" : {
e9cd3bd4 21480 "allowtoken" : 1,
4d47f125
TL
21481 "description" : "Unlink/delete disk images.",
21482 "method" : "PUT",
21483 "name" : "unlink",
21484 "parameters" : {
21485 "additionalProperties" : 0,
21486 "properties" : {
21487 "force" : {
21488 "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.",
21489 "optional" : 1,
21490 "type" : "boolean",
21491 "typetext" : "<boolean>"
21492 },
21493 "idlist" : {
21494 "description" : "A list of disk IDs you want to delete.",
21495 "format" : "pve-configid-list",
21496 "type" : "string",
21497 "typetext" : "<string>"
21498 },
21499 "node" : {
21500 "description" : "The cluster node name.",
21501 "format" : "pve-node",
21502 "type" : "string",
21503 "typetext" : "<string>"
21504 },
21505 "vmid" : {
21506 "description" : "The (unique) ID of the VM.",
21507 "format" : "pve-vmid",
8dd66e12
TL
21508 "maximum" : 999999999,
21509 "minimum" : 100,
4d47f125 21510 "type" : "integer",
8dd66e12 21511 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
21512 }
21513 }
21514 },
21515 "permissions" : {
21516 "check" : [
21517 "perm",
21518 "/vms/{vmid}",
21519 [
21520 "VM.Config.Disk"
21521 ]
21522 ]
21523 },
21524 "protected" : 1,
21525 "proxyto" : "node",
21526 "returns" : {
21527 "type" : "null"
21528 }
21529 }
21530 },
21531 "leaf" : 1,
21532 "path" : "/nodes/{node}/qemu/{vmid}/unlink",
21533 "text" : "unlink"
21534 },
21535 {
21536 "info" : {
21537 "POST" : {
e9cd3bd4 21538 "allowtoken" : 1,
4d47f125
TL
21539 "description" : "Creates a TCP VNC proxy connections.",
21540 "method" : "POST",
21541 "name" : "vncproxy",
21542 "parameters" : {
21543 "additionalProperties" : 0,
21544 "properties" : {
ac70d7d1
TL
21545 "generate-password" : {
21546 "default" : 0,
21547 "description" : "Generates a random password to be used as ticket instead of the API ticket.",
21548 "optional" : 1,
21549 "type" : "boolean",
21550 "typetext" : "<boolean>"
21551 },
4d47f125
TL
21552 "node" : {
21553 "description" : "The cluster node name.",
21554 "format" : "pve-node",
21555 "type" : "string",
21556 "typetext" : "<string>"
21557 },
21558 "vmid" : {
21559 "description" : "The (unique) ID of the VM.",
21560 "format" : "pve-vmid",
8dd66e12
TL
21561 "maximum" : 999999999,
21562 "minimum" : 100,
4d47f125 21563 "type" : "integer",
8dd66e12 21564 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
21565 },
21566 "websocket" : {
21567 "description" : "starts websockify instead of vncproxy",
21568 "optional" : 1,
21569 "type" : "boolean",
21570 "typetext" : "<boolean>"
21571 }
21572 }
21573 },
21574 "permissions" : {
21575 "check" : [
21576 "perm",
21577 "/vms/{vmid}",
21578 [
21579 "VM.Console"
21580 ]
21581 ]
21582 },
21583 "protected" : 1,
21584 "returns" : {
21585 "additionalProperties" : 0,
21586 "properties" : {
21587 "cert" : {
21588 "type" : "string"
21589 },
ac70d7d1
TL
21590 "password" : {
21591 "description" : "Returned if requested with 'generate-password' param. Consists of printable ASCII characters ('!' .. '~').",
21592 "optional" : 1,
21593 "type" : "string"
21594 },
4d47f125
TL
21595 "port" : {
21596 "type" : "integer"
21597 },
21598 "ticket" : {
21599 "type" : "string"
21600 },
21601 "upid" : {
21602 "type" : "string"
21603 },
21604 "user" : {
21605 "type" : "string"
21606 }
21607 }
21608 }
21609 }
21610 },
21611 "leaf" : 1,
21612 "path" : "/nodes/{node}/qemu/{vmid}/vncproxy",
21613 "text" : "vncproxy"
21614 },
21615 {
21616 "info" : {
21617 "POST" : {
e9cd3bd4 21618 "allowtoken" : 1,
4d47f125
TL
21619 "description" : "Creates a TCP proxy connections.",
21620 "method" : "POST",
21621 "name" : "termproxy",
21622 "parameters" : {
21623 "additionalProperties" : 0,
21624 "properties" : {
21625 "node" : {
21626 "description" : "The cluster node name.",
21627 "format" : "pve-node",
21628 "type" : "string",
21629 "typetext" : "<string>"
21630 },
21631 "serial" : {
21632 "description" : "opens a serial terminal (defaults to display)",
21633 "enum" : [
21634 "serial0",
21635 "serial1",
21636 "serial2",
21637 "serial3"
21638 ],
21639 "optional" : 1,
21640 "type" : "string"
21641 },
21642 "vmid" : {
21643 "description" : "The (unique) ID of the VM.",
21644 "format" : "pve-vmid",
8dd66e12
TL
21645 "maximum" : 999999999,
21646 "minimum" : 100,
4d47f125 21647 "type" : "integer",
8dd66e12 21648 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
21649 }
21650 }
21651 },
21652 "permissions" : {
21653 "check" : [
21654 "perm",
21655 "/vms/{vmid}",
21656 [
21657 "VM.Console"
21658 ]
21659 ]
21660 },
21661 "protected" : 1,
21662 "returns" : {
21663 "additionalProperties" : 0,
21664 "properties" : {
21665 "port" : {
21666 "type" : "integer"
21667 },
21668 "ticket" : {
21669 "type" : "string"
21670 },
21671 "upid" : {
21672 "type" : "string"
21673 },
21674 "user" : {
21675 "type" : "string"
21676 }
21677 }
21678 }
21679 }
21680 },
21681 "leaf" : 1,
21682 "path" : "/nodes/{node}/qemu/{vmid}/termproxy",
21683 "text" : "termproxy"
21684 },
21685 {
21686 "info" : {
21687 "GET" : {
e9cd3bd4 21688 "allowtoken" : 1,
4d47f125
TL
21689 "description" : "Opens a weksocket for VNC traffic.",
21690 "method" : "GET",
21691 "name" : "vncwebsocket",
21692 "parameters" : {
21693 "additionalProperties" : 0,
21694 "properties" : {
21695 "node" : {
21696 "description" : "The cluster node name.",
21697 "format" : "pve-node",
21698 "type" : "string",
21699 "typetext" : "<string>"
21700 },
21701 "port" : {
21702 "description" : "Port number returned by previous vncproxy call.",
21703 "maximum" : 5999,
21704 "minimum" : 5900,
21705 "type" : "integer",
21706 "typetext" : "<integer> (5900 - 5999)"
21707 },
21708 "vmid" : {
21709 "description" : "The (unique) ID of the VM.",
21710 "format" : "pve-vmid",
8dd66e12
TL
21711 "maximum" : 999999999,
21712 "minimum" : 100,
4d47f125 21713 "type" : "integer",
8dd66e12 21714 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
21715 },
21716 "vncticket" : {
21717 "description" : "Ticket from previous call to vncproxy.",
21718 "maxLength" : 512,
21719 "type" : "string",
21720 "typetext" : "<string>"
21721 }
21722 }
21723 },
21724 "permissions" : {
21725 "check" : [
21726 "perm",
21727 "/vms/{vmid}",
21728 [
21729 "VM.Console"
21730 ]
21731 ],
21732 "description" : "You also need to pass a valid ticket (vncticket)."
21733 },
21734 "returns" : {
21735 "properties" : {
21736 "port" : {
21737 "type" : "string"
21738 }
21739 },
21740 "type" : "object"
21741 }
21742 }
21743 },
21744 "leaf" : 1,
21745 "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket",
21746 "text" : "vncwebsocket"
21747 },
21748 {
21749 "info" : {
21750 "POST" : {
e9cd3bd4 21751 "allowtoken" : 1,
4d47f125
TL
21752 "description" : "Returns a SPICE configuration to connect to the VM.",
21753 "method" : "POST",
21754 "name" : "spiceproxy",
21755 "parameters" : {
21756 "additionalProperties" : 0,
21757 "properties" : {
21758 "node" : {
21759 "description" : "The cluster node name.",
21760 "format" : "pve-node",
21761 "type" : "string",
21762 "typetext" : "<string>"
21763 },
21764 "proxy" : {
21765 "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).",
21766 "format" : "address",
21767 "optional" : 1,
21768 "type" : "string",
21769 "typetext" : "<string>"
21770 },
21771 "vmid" : {
21772 "description" : "The (unique) ID of the VM.",
21773 "format" : "pve-vmid",
8dd66e12
TL
21774 "maximum" : 999999999,
21775 "minimum" : 100,
4d47f125 21776 "type" : "integer",
8dd66e12 21777 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
21778 }
21779 }
21780 },
21781 "permissions" : {
21782 "check" : [
21783 "perm",
21784 "/vms/{vmid}",
21785 [
21786 "VM.Console"
21787 ]
21788 ]
21789 },
21790 "protected" : 1,
21791 "proxyto" : "node",
21792 "returns" : {
21793 "additionalProperties" : 1,
21794 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
21795 "properties" : {
21796 "host" : {
21797 "type" : "string"
21798 },
21799 "password" : {
21800 "type" : "string"
21801 },
21802 "proxy" : {
21803 "type" : "string"
21804 },
21805 "tls-port" : {
21806 "type" : "integer"
21807 },
21808 "type" : {
21809 "type" : "string"
21810 }
21811 }
21812 }
21813 }
21814 },
21815 "leaf" : 1,
21816 "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy",
21817 "text" : "spiceproxy"
21818 },
21819 {
21820 "children" : [
21821 {
21822 "info" : {
21823 "GET" : {
e9cd3bd4 21824 "allowtoken" : 1,
4d47f125
TL
21825 "description" : "Get virtual machine status.",
21826 "method" : "GET",
21827 "name" : "vm_status",
21828 "parameters" : {
21829 "additionalProperties" : 0,
21830 "properties" : {
21831 "node" : {
21832 "description" : "The cluster node name.",
21833 "format" : "pve-node",
21834 "type" : "string",
21835 "typetext" : "<string>"
21836 },
21837 "vmid" : {
21838 "description" : "The (unique) ID of the VM.",
21839 "format" : "pve-vmid",
8dd66e12
TL
21840 "maximum" : 999999999,
21841 "minimum" : 100,
4d47f125 21842 "type" : "integer",
8dd66e12 21843 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
21844 }
21845 }
21846 },
21847 "permissions" : {
21848 "check" : [
21849 "perm",
21850 "/vms/{vmid}",
21851 [
21852 "VM.Audit"
21853 ]
21854 ]
21855 },
21856 "protected" : 1,
21857 "proxyto" : "node",
21858 "returns" : {
21859 "properties" : {
21860 "agent" : {
9d2e98ed 21861 "description" : "QEMU Guest Agent is enabled in config.",
4d47f125
TL
21862 "optional" : 1,
21863 "type" : "boolean"
21864 },
21865 "cpus" : {
21866 "description" : "Maximum usable CPUs.",
21867 "optional" : 1,
21868 "type" : "number"
21869 },
21870 "ha" : {
21871 "description" : "HA manager service status.",
21872 "type" : "object"
21873 },
95895385
TL
21874 "lock" : {
21875 "description" : "The current config lock, if any.",
21876 "optional" : 1,
21877 "type" : "string"
21878 },
4d47f125
TL
21879 "maxdisk" : {
21880 "description" : "Root disk size in bytes.",
21881 "optional" : 1,
21882 "renderer" : "bytes",
21883 "type" : "integer"
21884 },
21885 "maxmem" : {
21886 "description" : "Maximum memory in bytes.",
21887 "optional" : 1,
21888 "renderer" : "bytes",
21889 "type" : "integer"
21890 },
21891 "name" : {
21892 "description" : "VM name.",
21893 "optional" : 1,
21894 "type" : "string"
21895 },
21896 "pid" : {
21897 "description" : "PID of running qemu process.",
21898 "optional" : 1,
21899 "type" : "integer"
21900 },
21901 "qmpstatus" : {
499c9b7f 21902 "description" : "VM run state from the 'query-status' QMP monitor command.",
4d47f125
TL
21903 "optional" : 1,
21904 "type" : "string"
21905 },
d2656385
TL
21906 "running-machine" : {
21907 "description" : "The currently running machine type (if running).",
21908 "optional" : 1,
21909 "type" : "string"
21910 },
21911 "running-qemu" : {
21912 "description" : "The currently running QEMU version (if running).",
21913 "optional" : 1,
21914 "type" : "string"
21915 },
4d47f125 21916 "spice" : {
9d2e98ed 21917 "description" : "QEMU VGA configuration supports spice.",
4d47f125
TL
21918 "optional" : 1,
21919 "type" : "boolean"
21920 },
21921 "status" : {
9d2e98ed 21922 "description" : "QEMU process status.",
4d47f125
TL
21923 "enum" : [
21924 "stopped",
21925 "running"
21926 ],
21927 "type" : "string"
21928 },
5c1699e5
TL
21929 "tags" : {
21930 "description" : "The current configured tags, if any",
21931 "optional" : 1,
21932 "type" : "string"
21933 },
4d47f125
TL
21934 "uptime" : {
21935 "description" : "Uptime.",
21936 "optional" : 1,
21937 "renderer" : "duration",
21938 "type" : "integer"
21939 },
21940 "vmid" : {
21941 "description" : "The (unique) ID of the VM.",
21942 "format" : "pve-vmid",
8dd66e12
TL
21943 "maximum" : 999999999,
21944 "minimum" : 100,
4d47f125
TL
21945 "type" : "integer"
21946 }
21947 },
21948 "type" : "object"
21949 }
21950 }
21951 },
21952 "leaf" : 1,
21953 "path" : "/nodes/{node}/qemu/{vmid}/status/current",
21954 "text" : "current"
21955 },
21956 {
21957 "info" : {
21958 "POST" : {
e9cd3bd4 21959 "allowtoken" : 1,
4d47f125
TL
21960 "description" : "Start virtual machine.",
21961 "method" : "POST",
21962 "name" : "vm_start",
21963 "parameters" : {
21964 "additionalProperties" : 0,
21965 "properties" : {
c5aa7e14
TL
21966 "force-cpu" : {
21967 "description" : "Override QEMU's -cpu argument with the given string.",
21968 "optional" : 1,
21969 "type" : "string",
21970 "typetext" : "<string>"
21971 },
4d47f125 21972 "machine" : {
9d2e98ed 21973 "description" : "Specifies the QEMU machine type.",
4d47f125
TL
21974 "maxLength" : 40,
21975 "optional" : 1,
5c1699e5 21976 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
4d47f125
TL
21977 "type" : "string"
21978 },
21979 "migratedfrom" : {
21980 "description" : "The cluster node name.",
21981 "format" : "pve-node",
21982 "optional" : 1,
21983 "type" : "string",
21984 "typetext" : "<string>"
21985 },
21986 "migration_network" : {
21987 "description" : "CIDR of the (sub) network that is used for migration.",
21988 "format" : "CIDR",
21989 "optional" : 1,
21990 "type" : "string",
21991 "typetext" : "<string>"
21992 },
21993 "migration_type" : {
21994 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
21995 "enum" : [
21996 "secure",
21997 "insecure"
21998 ],
21999 "optional" : 1,
22000 "type" : "string"
22001 },
22002 "node" : {
22003 "description" : "The cluster node name.",
22004 "format" : "pve-node",
22005 "type" : "string",
22006 "typetext" : "<string>"
22007 },
22008 "skiplock" : {
22009 "description" : "Ignore locks - only root is allowed to use this option.",
22010 "optional" : 1,
22011 "type" : "boolean",
22012 "typetext" : "<boolean>"
22013 },
22014 "stateuri" : {
22015 "description" : "Some command save/restore state from this location.",
22016 "maxLength" : 128,
22017 "optional" : 1,
22018 "type" : "string",
22019 "typetext" : "<string>"
22020 },
22021 "targetstorage" : {
c5aa7e14 22022 "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 22023 "format" : "storage-pair-list",
4d47f125
TL
22024 "optional" : 1,
22025 "type" : "string",
22026 "typetext" : "<string>"
22027 },
e9cd3bd4
TL
22028 "timeout" : {
22029 "default" : "max(30, vm memory in GiB)",
22030 "description" : "Wait maximal timeout seconds.",
22031 "minimum" : 0,
22032 "optional" : 1,
22033 "type" : "integer",
22034 "typetext" : "<integer> (0 - N)"
22035 },
4d47f125
TL
22036 "vmid" : {
22037 "description" : "The (unique) ID of the VM.",
22038 "format" : "pve-vmid",
8dd66e12
TL
22039 "maximum" : 999999999,
22040 "minimum" : 100,
4d47f125 22041 "type" : "integer",
8dd66e12 22042 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22043 }
22044 }
22045 },
22046 "permissions" : {
22047 "check" : [
22048 "perm",
22049 "/vms/{vmid}",
22050 [
22051 "VM.PowerMgmt"
22052 ]
22053 ]
22054 },
22055 "protected" : 1,
22056 "proxyto" : "node",
22057 "returns" : {
22058 "type" : "string"
22059 }
22060 }
22061 },
22062 "leaf" : 1,
22063 "path" : "/nodes/{node}/qemu/{vmid}/status/start",
22064 "text" : "start"
22065 },
22066 {
22067 "info" : {
22068 "POST" : {
e9cd3bd4 22069 "allowtoken" : 1,
4d47f125
TL
22070 "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",
22071 "method" : "POST",
22072 "name" : "vm_stop",
22073 "parameters" : {
22074 "additionalProperties" : 0,
22075 "properties" : {
22076 "keepActive" : {
22077 "default" : 0,
22078 "description" : "Do not deactivate storage volumes.",
22079 "optional" : 1,
22080 "type" : "boolean",
22081 "typetext" : "<boolean>"
22082 },
22083 "migratedfrom" : {
22084 "description" : "The cluster node name.",
22085 "format" : "pve-node",
22086 "optional" : 1,
22087 "type" : "string",
22088 "typetext" : "<string>"
22089 },
22090 "node" : {
22091 "description" : "The cluster node name.",
22092 "format" : "pve-node",
22093 "type" : "string",
22094 "typetext" : "<string>"
22095 },
22096 "skiplock" : {
22097 "description" : "Ignore locks - only root is allowed to use this option.",
22098 "optional" : 1,
22099 "type" : "boolean",
22100 "typetext" : "<boolean>"
22101 },
22102 "timeout" : {
22103 "description" : "Wait maximal timeout seconds.",
22104 "minimum" : 0,
22105 "optional" : 1,
22106 "type" : "integer",
22107 "typetext" : "<integer> (0 - N)"
22108 },
22109 "vmid" : {
22110 "description" : "The (unique) ID of the VM.",
22111 "format" : "pve-vmid",
8dd66e12
TL
22112 "maximum" : 999999999,
22113 "minimum" : 100,
4d47f125 22114 "type" : "integer",
8dd66e12 22115 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22116 }
22117 }
22118 },
22119 "permissions" : {
22120 "check" : [
22121 "perm",
22122 "/vms/{vmid}",
22123 [
22124 "VM.PowerMgmt"
22125 ]
22126 ]
22127 },
22128 "protected" : 1,
22129 "proxyto" : "node",
22130 "returns" : {
22131 "type" : "string"
22132 }
22133 }
22134 },
22135 "leaf" : 1,
22136 "path" : "/nodes/{node}/qemu/{vmid}/status/stop",
22137 "text" : "stop"
22138 },
22139 {
22140 "info" : {
22141 "POST" : {
e9cd3bd4 22142 "allowtoken" : 1,
4d47f125
TL
22143 "description" : "Reset virtual machine.",
22144 "method" : "POST",
22145 "name" : "vm_reset",
22146 "parameters" : {
22147 "additionalProperties" : 0,
22148 "properties" : {
22149 "node" : {
22150 "description" : "The cluster node name.",
22151 "format" : "pve-node",
22152 "type" : "string",
22153 "typetext" : "<string>"
22154 },
22155 "skiplock" : {
22156 "description" : "Ignore locks - only root is allowed to use this option.",
22157 "optional" : 1,
22158 "type" : "boolean",
22159 "typetext" : "<boolean>"
22160 },
22161 "vmid" : {
22162 "description" : "The (unique) ID of the VM.",
22163 "format" : "pve-vmid",
8dd66e12
TL
22164 "maximum" : 999999999,
22165 "minimum" : 100,
4d47f125 22166 "type" : "integer",
8dd66e12 22167 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22168 }
22169 }
22170 },
22171 "permissions" : {
22172 "check" : [
22173 "perm",
22174 "/vms/{vmid}",
22175 [
22176 "VM.PowerMgmt"
22177 ]
22178 ]
22179 },
22180 "protected" : 1,
22181 "proxyto" : "node",
22182 "returns" : {
22183 "type" : "string"
22184 }
22185 }
22186 },
22187 "leaf" : 1,
22188 "path" : "/nodes/{node}/qemu/{vmid}/status/reset",
22189 "text" : "reset"
22190 },
22191 {
22192 "info" : {
22193 "POST" : {
e9cd3bd4 22194 "allowtoken" : 1,
4d47f125
TL
22195 "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.",
22196 "method" : "POST",
22197 "name" : "vm_shutdown",
22198 "parameters" : {
22199 "additionalProperties" : 0,
22200 "properties" : {
22201 "forceStop" : {
22202 "default" : 0,
22203 "description" : "Make sure the VM stops.",
22204 "optional" : 1,
22205 "type" : "boolean",
22206 "typetext" : "<boolean>"
22207 },
22208 "keepActive" : {
22209 "default" : 0,
22210 "description" : "Do not deactivate storage volumes.",
22211 "optional" : 1,
22212 "type" : "boolean",
22213 "typetext" : "<boolean>"
22214 },
22215 "node" : {
22216 "description" : "The cluster node name.",
22217 "format" : "pve-node",
22218 "type" : "string",
22219 "typetext" : "<string>"
22220 },
22221 "skiplock" : {
22222 "description" : "Ignore locks - only root is allowed to use this option.",
22223 "optional" : 1,
22224 "type" : "boolean",
22225 "typetext" : "<boolean>"
22226 },
22227 "timeout" : {
22228 "description" : "Wait maximal timeout seconds.",
22229 "minimum" : 0,
22230 "optional" : 1,
22231 "type" : "integer",
22232 "typetext" : "<integer> (0 - N)"
22233 },
22234 "vmid" : {
22235 "description" : "The (unique) ID of the VM.",
22236 "format" : "pve-vmid",
8dd66e12
TL
22237 "maximum" : 999999999,
22238 "minimum" : 100,
4d47f125 22239 "type" : "integer",
8dd66e12 22240 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22241 }
22242 }
22243 },
22244 "permissions" : {
22245 "check" : [
22246 "perm",
22247 "/vms/{vmid}",
22248 [
22249 "VM.PowerMgmt"
22250 ]
22251 ]
22252 },
22253 "protected" : 1,
22254 "proxyto" : "node",
22255 "returns" : {
22256 "type" : "string"
22257 }
22258 }
22259 },
22260 "leaf" : 1,
22261 "path" : "/nodes/{node}/qemu/{vmid}/status/shutdown",
22262 "text" : "shutdown"
22263 },
1c532546
TL
22264 {
22265 "info" : {
22266 "POST" : {
e9cd3bd4 22267 "allowtoken" : 1,
1c532546
TL
22268 "description" : "Reboot the VM by shutting it down, and starting it again. Applies pending changes.",
22269 "method" : "POST",
22270 "name" : "vm_reboot",
22271 "parameters" : {
22272 "additionalProperties" : 0,
22273 "properties" : {
22274 "node" : {
22275 "description" : "The cluster node name.",
22276 "format" : "pve-node",
22277 "type" : "string",
22278 "typetext" : "<string>"
22279 },
22280 "timeout" : {
22281 "description" : "Wait maximal timeout seconds for the shutdown.",
22282 "minimum" : 0,
22283 "optional" : 1,
22284 "type" : "integer",
22285 "typetext" : "<integer> (0 - N)"
22286 },
22287 "vmid" : {
22288 "description" : "The (unique) ID of the VM.",
22289 "format" : "pve-vmid",
8dd66e12
TL
22290 "maximum" : 999999999,
22291 "minimum" : 100,
1c532546 22292 "type" : "integer",
8dd66e12 22293 "typetext" : "<integer> (100 - 999999999)"
1c532546
TL
22294 }
22295 }
22296 },
22297 "permissions" : {
22298 "check" : [
22299 "perm",
22300 "/vms/{vmid}",
22301 [
22302 "VM.PowerMgmt"
22303 ]
22304 ]
22305 },
22306 "protected" : 1,
22307 "proxyto" : "node",
22308 "returns" : {
22309 "type" : "string"
22310 }
22311 }
22312 },
22313 "leaf" : 1,
22314 "path" : "/nodes/{node}/qemu/{vmid}/status/reboot",
22315 "text" : "reboot"
22316 },
4d47f125
TL
22317 {
22318 "info" : {
22319 "POST" : {
e9cd3bd4 22320 "allowtoken" : 1,
4d47f125
TL
22321 "description" : "Suspend virtual machine.",
22322 "method" : "POST",
22323 "name" : "vm_suspend",
22324 "parameters" : {
22325 "additionalProperties" : 0,
22326 "properties" : {
22327 "node" : {
22328 "description" : "The cluster node name.",
22329 "format" : "pve-node",
22330 "type" : "string",
22331 "typetext" : "<string>"
22332 },
22333 "skiplock" : {
22334 "description" : "Ignore locks - only root is allowed to use this option.",
22335 "optional" : 1,
22336 "type" : "boolean",
22337 "typetext" : "<boolean>"
22338 },
95895385
TL
22339 "statestorage" : {
22340 "description" : "The storage for the VM state",
22341 "format" : "pve-storage-id",
22342 "optional" : 1,
22343 "requires" : "todisk",
22344 "type" : "string",
22345 "typetext" : "<string>"
22346 },
22347 "todisk" : {
22348 "default" : 0,
22349 "description" : "If set, suspends the VM to disk. Will be resumed on next VM start.",
22350 "optional" : 1,
22351 "type" : "boolean",
22352 "typetext" : "<boolean>"
22353 },
4d47f125
TL
22354 "vmid" : {
22355 "description" : "The (unique) ID of the VM.",
22356 "format" : "pve-vmid",
8dd66e12
TL
22357 "maximum" : 999999999,
22358 "minimum" : 100,
4d47f125 22359 "type" : "integer",
8dd66e12 22360 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22361 }
22362 }
22363 },
22364 "permissions" : {
22365 "check" : [
22366 "perm",
22367 "/vms/{vmid}",
22368 [
22369 "VM.PowerMgmt"
22370 ]
e9cd3bd4
TL
22371 ],
22372 "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
22373 },
22374 "protected" : 1,
22375 "proxyto" : "node",
22376 "returns" : {
22377 "type" : "string"
22378 }
22379 }
22380 },
22381 "leaf" : 1,
22382 "path" : "/nodes/{node}/qemu/{vmid}/status/suspend",
22383 "text" : "suspend"
22384 },
22385 {
22386 "info" : {
22387 "POST" : {
e9cd3bd4 22388 "allowtoken" : 1,
4d47f125
TL
22389 "description" : "Resume virtual machine.",
22390 "method" : "POST",
22391 "name" : "vm_resume",
22392 "parameters" : {
22393 "additionalProperties" : 0,
22394 "properties" : {
22395 "nocheck" : {
22396 "optional" : 1,
22397 "type" : "boolean",
22398 "typetext" : "<boolean>"
22399 },
22400 "node" : {
22401 "description" : "The cluster node name.",
22402 "format" : "pve-node",
22403 "type" : "string",
22404 "typetext" : "<string>"
22405 },
22406 "skiplock" : {
22407 "description" : "Ignore locks - only root is allowed to use this option.",
22408 "optional" : 1,
22409 "type" : "boolean",
22410 "typetext" : "<boolean>"
22411 },
22412 "vmid" : {
22413 "description" : "The (unique) ID of the VM.",
22414 "format" : "pve-vmid",
8dd66e12
TL
22415 "maximum" : 999999999,
22416 "minimum" : 100,
4d47f125 22417 "type" : "integer",
8dd66e12 22418 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22419 }
22420 }
22421 },
22422 "permissions" : {
22423 "check" : [
22424 "perm",
22425 "/vms/{vmid}",
22426 [
22427 "VM.PowerMgmt"
22428 ]
22429 ]
22430 },
22431 "protected" : 1,
22432 "proxyto" : "node",
22433 "returns" : {
22434 "type" : "string"
22435 }
22436 }
22437 },
22438 "leaf" : 1,
22439 "path" : "/nodes/{node}/qemu/{vmid}/status/resume",
22440 "text" : "resume"
22441 }
22442 ],
22443 "info" : {
22444 "GET" : {
e9cd3bd4 22445 "allowtoken" : 1,
4d47f125
TL
22446 "description" : "Directory index",
22447 "method" : "GET",
22448 "name" : "vmcmdidx",
22449 "parameters" : {
22450 "additionalProperties" : 0,
22451 "properties" : {
22452 "node" : {
22453 "description" : "The cluster node name.",
22454 "format" : "pve-node",
22455 "type" : "string",
22456 "typetext" : "<string>"
22457 },
22458 "vmid" : {
22459 "description" : "The (unique) ID of the VM.",
22460 "format" : "pve-vmid",
8dd66e12
TL
22461 "maximum" : 999999999,
22462 "minimum" : 100,
4d47f125 22463 "type" : "integer",
8dd66e12 22464 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22465 }
22466 }
22467 },
22468 "permissions" : {
22469 "user" : "all"
22470 },
22471 "proxyto" : "node",
22472 "returns" : {
22473 "items" : {
22474 "properties" : {
22475 "subdir" : {
22476 "type" : "string"
22477 }
22478 },
22479 "type" : "object"
22480 },
22481 "links" : [
22482 {
22483 "href" : "{subdir}",
22484 "rel" : "child"
22485 }
22486 ],
22487 "type" : "array"
22488 }
22489 }
22490 },
22491 "leaf" : 0,
22492 "path" : "/nodes/{node}/qemu/{vmid}/status",
22493 "text" : "status"
22494 },
22495 {
22496 "info" : {
22497 "PUT" : {
e9cd3bd4 22498 "allowtoken" : 1,
4d47f125
TL
22499 "description" : "Send key event to virtual machine.",
22500 "method" : "PUT",
22501 "name" : "vm_sendkey",
22502 "parameters" : {
22503 "additionalProperties" : 0,
22504 "properties" : {
22505 "key" : {
22506 "description" : "The key (qemu monitor encoding).",
22507 "type" : "string",
22508 "typetext" : "<string>"
22509 },
22510 "node" : {
22511 "description" : "The cluster node name.",
22512 "format" : "pve-node",
22513 "type" : "string",
22514 "typetext" : "<string>"
22515 },
22516 "skiplock" : {
22517 "description" : "Ignore locks - only root is allowed to use this option.",
22518 "optional" : 1,
22519 "type" : "boolean",
22520 "typetext" : "<boolean>"
22521 },
22522 "vmid" : {
22523 "description" : "The (unique) ID of the VM.",
22524 "format" : "pve-vmid",
8dd66e12
TL
22525 "maximum" : 999999999,
22526 "minimum" : 100,
4d47f125 22527 "type" : "integer",
8dd66e12 22528 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22529 }
22530 }
22531 },
22532 "permissions" : {
22533 "check" : [
22534 "perm",
22535 "/vms/{vmid}",
22536 [
22537 "VM.Console"
22538 ]
22539 ]
22540 },
22541 "protected" : 1,
22542 "proxyto" : "node",
22543 "returns" : {
22544 "type" : "null"
22545 }
22546 }
22547 },
22548 "leaf" : 1,
22549 "path" : "/nodes/{node}/qemu/{vmid}/sendkey",
22550 "text" : "sendkey"
22551 },
22552 {
22553 "info" : {
22554 "GET" : {
e9cd3bd4 22555 "allowtoken" : 1,
4d47f125
TL
22556 "description" : "Check if feature for virtual machine is available.",
22557 "method" : "GET",
22558 "name" : "vm_feature",
22559 "parameters" : {
22560 "additionalProperties" : 0,
22561 "properties" : {
22562 "feature" : {
22563 "description" : "Feature to check.",
22564 "enum" : [
22565 "snapshot",
22566 "clone",
22567 "copy"
22568 ],
22569 "type" : "string"
22570 },
22571 "node" : {
22572 "description" : "The cluster node name.",
22573 "format" : "pve-node",
22574 "type" : "string",
22575 "typetext" : "<string>"
22576 },
22577 "snapname" : {
22578 "description" : "The name of the snapshot.",
22579 "format" : "pve-configid",
22580 "maxLength" : 40,
22581 "optional" : 1,
22582 "type" : "string",
22583 "typetext" : "<string>"
22584 },
22585 "vmid" : {
22586 "description" : "The (unique) ID of the VM.",
22587 "format" : "pve-vmid",
8dd66e12
TL
22588 "maximum" : 999999999,
22589 "minimum" : 100,
4d47f125 22590 "type" : "integer",
8dd66e12 22591 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22592 }
22593 }
22594 },
22595 "permissions" : {
22596 "check" : [
22597 "perm",
22598 "/vms/{vmid}",
22599 [
22600 "VM.Audit"
22601 ]
22602 ]
22603 },
22604 "protected" : 1,
22605 "proxyto" : "node",
22606 "returns" : {
22607 "properties" : {
22608 "hasFeature" : {
22609 "type" : "boolean"
22610 },
22611 "nodes" : {
22612 "items" : {
22613 "type" : "string"
22614 },
22615 "type" : "array"
22616 }
22617 },
22618 "type" : "object"
22619 }
22620 }
22621 },
22622 "leaf" : 1,
22623 "path" : "/nodes/{node}/qemu/{vmid}/feature",
22624 "text" : "feature"
22625 },
22626 {
22627 "info" : {
22628 "POST" : {
e9cd3bd4 22629 "allowtoken" : 1,
4d47f125
TL
22630 "description" : "Create a copy of virtual machine/template.",
22631 "method" : "POST",
22632 "name" : "clone_vm",
22633 "parameters" : {
22634 "additionalProperties" : 0,
22635 "properties" : {
95895385
TL
22636 "bwlimit" : {
22637 "default" : "clone limit from datacenter or storage config",
22638 "description" : "Override I/O bandwidth limit (in KiB/s).",
22639 "minimum" : "0",
22640 "optional" : 1,
22641 "type" : "integer",
22642 "typetext" : "<integer> (0 - N)"
22643 },
4d47f125
TL
22644 "description" : {
22645 "description" : "Description for the new VM.",
22646 "optional" : 1,
22647 "type" : "string",
22648 "typetext" : "<string>"
22649 },
22650 "format" : {
22651 "description" : "Target format for file storage. Only valid for full clone.",
22652 "enum" : [
22653 "raw",
22654 "qcow2",
22655 "vmdk"
22656 ],
22657 "optional" : 1,
22658 "type" : "string"
22659 },
22660 "full" : {
22661 "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.",
22662 "optional" : 1,
22663 "type" : "boolean",
22664 "typetext" : "<boolean>"
22665 },
22666 "name" : {
22667 "description" : "Set a name for the new VM.",
22668 "format" : "dns-name",
22669 "optional" : 1,
22670 "type" : "string",
22671 "typetext" : "<string>"
22672 },
22673 "newid" : {
22674 "description" : "VMID for the clone.",
22675 "format" : "pve-vmid",
8dd66e12
TL
22676 "maximum" : 999999999,
22677 "minimum" : 100,
4d47f125 22678 "type" : "integer",
8dd66e12 22679 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22680 },
22681 "node" : {
22682 "description" : "The cluster node name.",
22683 "format" : "pve-node",
22684 "type" : "string",
22685 "typetext" : "<string>"
22686 },
22687 "pool" : {
22688 "description" : "Add the new VM to the specified pool.",
22689 "format" : "pve-poolid",
22690 "optional" : 1,
22691 "type" : "string",
22692 "typetext" : "<string>"
22693 },
22694 "snapname" : {
22695 "description" : "The name of the snapshot.",
22696 "format" : "pve-configid",
22697 "maxLength" : 40,
22698 "optional" : 1,
22699 "type" : "string",
22700 "typetext" : "<string>"
22701 },
22702 "storage" : {
22703 "description" : "Target storage for full clone.",
22704 "format" : "pve-storage-id",
22705 "optional" : 1,
22706 "type" : "string",
22707 "typetext" : "<string>"
22708 },
22709 "target" : {
22710 "description" : "Target node. Only allowed if the original VM is on shared storage.",
22711 "format" : "pve-node",
22712 "optional" : 1,
22713 "type" : "string",
22714 "typetext" : "<string>"
22715 },
22716 "vmid" : {
22717 "description" : "The (unique) ID of the VM.",
22718 "format" : "pve-vmid",
8dd66e12
TL
22719 "maximum" : 999999999,
22720 "minimum" : 100,
4d47f125 22721 "type" : "integer",
8dd66e12 22722 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22723 }
22724 }
22725 },
22726 "permissions" : {
22727 "check" : [
22728 "and",
22729 [
22730 "perm",
22731 "/vms/{vmid}",
22732 [
22733 "VM.Clone"
22734 ]
22735 ],
22736 [
22737 "or",
22738 [
22739 "perm",
22740 "/vms/{newid}",
22741 [
22742 "VM.Allocate"
22743 ]
22744 ],
22745 [
22746 "perm",
22747 "/pool/{pool}",
22748 [
22749 "VM.Allocate"
22750 ],
22751 "require_param",
22752 "pool"
22753 ]
22754 ]
22755 ],
159464a9 22756 "description" : "You need 'VM.Clone' permissions on /vms/{vmid}, and 'VM.Allocate' permissions on /vms/{newid} (or on the VM pool /pool/{pool}). You also need 'Datastore.AllocateSpace' on any used storage and 'SDN.Use' on any used bridge/vnet"
4d47f125
TL
22757 },
22758 "protected" : 1,
22759 "proxyto" : "node",
22760 "returns" : {
22761 "type" : "string"
22762 }
22763 }
22764 },
22765 "leaf" : 1,
22766 "path" : "/nodes/{node}/qemu/{vmid}/clone",
22767 "text" : "clone"
22768 },
22769 {
22770 "info" : {
22771 "POST" : {
e9cd3bd4 22772 "allowtoken" : 1,
5370fa8c 22773 "description" : "Move volume to different storage or to a different VM.",
4d47f125
TL
22774 "method" : "POST",
22775 "name" : "move_vm_disk",
22776 "parameters" : {
22777 "additionalProperties" : 0,
22778 "properties" : {
95895385
TL
22779 "bwlimit" : {
22780 "default" : "move limit from datacenter or storage config",
22781 "description" : "Override I/O bandwidth limit (in KiB/s).",
22782 "minimum" : "0",
22783 "optional" : 1,
22784 "type" : "integer",
22785 "typetext" : "<integer> (0 - N)"
22786 },
4d47f125
TL
22787 "delete" : {
22788 "default" : 0,
22789 "description" : "Delete the original disk after successful copy. By default the original disk is kept as unused disk.",
22790 "optional" : 1,
22791 "type" : "boolean",
22792 "typetext" : "<boolean>"
22793 },
22794 "digest" : {
5370fa8c 22795 "description" : "Prevent changes if current configuration file has different SHA1\"\n\t\t .\" digest. This can be used to prevent concurrent modifications.",
4d47f125
TL
22796 "maxLength" : 40,
22797 "optional" : 1,
22798 "type" : "string",
22799 "typetext" : "<string>"
22800 },
22801 "disk" : {
22802 "description" : "The disk you want to move.",
22803 "enum" : [
22804 "ide0",
22805 "ide1",
22806 "ide2",
22807 "ide3",
22808 "scsi0",
22809 "scsi1",
22810 "scsi2",
22811 "scsi3",
22812 "scsi4",
22813 "scsi5",
22814 "scsi6",
22815 "scsi7",
22816 "scsi8",
22817 "scsi9",
22818 "scsi10",
22819 "scsi11",
22820 "scsi12",
22821 "scsi13",
e9cd3bd4
TL
22822 "scsi14",
22823 "scsi15",
22824 "scsi16",
22825 "scsi17",
22826 "scsi18",
22827 "scsi19",
22828 "scsi20",
22829 "scsi21",
22830 "scsi22",
22831 "scsi23",
22832 "scsi24",
22833 "scsi25",
22834 "scsi26",
22835 "scsi27",
22836 "scsi28",
22837 "scsi29",
22838 "scsi30",
4d47f125
TL
22839 "virtio0",
22840 "virtio1",
22841 "virtio2",
22842 "virtio3",
22843 "virtio4",
22844 "virtio5",
22845 "virtio6",
22846 "virtio7",
22847 "virtio8",
22848 "virtio9",
22849 "virtio10",
22850 "virtio11",
22851 "virtio12",
22852 "virtio13",
22853 "virtio14",
22854 "virtio15",
22855 "sata0",
22856 "sata1",
22857 "sata2",
22858 "sata3",
22859 "sata4",
22860 "sata5",
5370fa8c
TL
22861 "efidisk0",
22862 "tpmstate0",
22863 "unused0",
22864 "unused1",
22865 "unused2",
22866 "unused3",
22867 "unused4",
22868 "unused5",
22869 "unused6",
22870 "unused7",
22871 "unused8",
22872 "unused9",
22873 "unused10",
22874 "unused11",
22875 "unused12",
22876 "unused13",
22877 "unused14",
22878 "unused15",
22879 "unused16",
22880 "unused17",
22881 "unused18",
22882 "unused19",
22883 "unused20",
22884 "unused21",
22885 "unused22",
22886 "unused23",
22887 "unused24",
22888 "unused25",
22889 "unused26",
22890 "unused27",
22891 "unused28",
22892 "unused29",
22893 "unused30",
22894 "unused31",
22895 "unused32",
22896 "unused33",
22897 "unused34",
22898 "unused35",
22899 "unused36",
22900 "unused37",
22901 "unused38",
22902 "unused39",
22903 "unused40",
22904 "unused41",
22905 "unused42",
22906 "unused43",
22907 "unused44",
22908 "unused45",
22909 "unused46",
22910 "unused47",
22911 "unused48",
22912 "unused49",
22913 "unused50",
22914 "unused51",
22915 "unused52",
22916 "unused53",
22917 "unused54",
22918 "unused55",
22919 "unused56",
22920 "unused57",
22921 "unused58",
22922 "unused59",
22923 "unused60",
22924 "unused61",
22925 "unused62",
22926 "unused63",
22927 "unused64",
22928 "unused65",
22929 "unused66",
22930 "unused67",
22931 "unused68",
22932 "unused69",
22933 "unused70",
22934 "unused71",
22935 "unused72",
22936 "unused73",
22937 "unused74",
22938 "unused75",
22939 "unused76",
22940 "unused77",
22941 "unused78",
22942 "unused79",
22943 "unused80",
22944 "unused81",
22945 "unused82",
22946 "unused83",
22947 "unused84",
22948 "unused85",
22949 "unused86",
22950 "unused87",
22951 "unused88",
22952 "unused89",
22953 "unused90",
22954 "unused91",
22955 "unused92",
22956 "unused93",
22957 "unused94",
22958 "unused95",
22959 "unused96",
22960 "unused97",
22961 "unused98",
22962 "unused99",
22963 "unused100",
22964 "unused101",
22965 "unused102",
22966 "unused103",
22967 "unused104",
22968 "unused105",
22969 "unused106",
22970 "unused107",
22971 "unused108",
22972 "unused109",
22973 "unused110",
22974 "unused111",
22975 "unused112",
22976 "unused113",
22977 "unused114",
22978 "unused115",
22979 "unused116",
22980 "unused117",
22981 "unused118",
22982 "unused119",
22983 "unused120",
22984 "unused121",
22985 "unused122",
22986 "unused123",
22987 "unused124",
22988 "unused125",
22989 "unused126",
22990 "unused127",
22991 "unused128",
22992 "unused129",
22993 "unused130",
22994 "unused131",
22995 "unused132",
22996 "unused133",
22997 "unused134",
22998 "unused135",
22999 "unused136",
23000 "unused137",
23001 "unused138",
23002 "unused139",
23003 "unused140",
23004 "unused141",
23005 "unused142",
23006 "unused143",
23007 "unused144",
23008 "unused145",
23009 "unused146",
23010 "unused147",
23011 "unused148",
23012 "unused149",
23013 "unused150",
23014 "unused151",
23015 "unused152",
23016 "unused153",
23017 "unused154",
23018 "unused155",
23019 "unused156",
23020 "unused157",
23021 "unused158",
23022 "unused159",
23023 "unused160",
23024 "unused161",
23025 "unused162",
23026 "unused163",
23027 "unused164",
23028 "unused165",
23029 "unused166",
23030 "unused167",
23031 "unused168",
23032 "unused169",
23033 "unused170",
23034 "unused171",
23035 "unused172",
23036 "unused173",
23037 "unused174",
23038 "unused175",
23039 "unused176",
23040 "unused177",
23041 "unused178",
23042 "unused179",
23043 "unused180",
23044 "unused181",
23045 "unused182",
23046 "unused183",
23047 "unused184",
23048 "unused185",
23049 "unused186",
23050 "unused187",
23051 "unused188",
23052 "unused189",
23053 "unused190",
23054 "unused191",
23055 "unused192",
23056 "unused193",
23057 "unused194",
23058 "unused195",
23059 "unused196",
23060 "unused197",
23061 "unused198",
23062 "unused199",
23063 "unused200",
23064 "unused201",
23065 "unused202",
23066 "unused203",
23067 "unused204",
23068 "unused205",
23069 "unused206",
23070 "unused207",
23071 "unused208",
23072 "unused209",
23073 "unused210",
23074 "unused211",
23075 "unused212",
23076 "unused213",
23077 "unused214",
23078 "unused215",
23079 "unused216",
23080 "unused217",
23081 "unused218",
23082 "unused219",
23083 "unused220",
23084 "unused221",
23085 "unused222",
23086 "unused223",
23087 "unused224",
23088 "unused225",
23089 "unused226",
23090 "unused227",
23091 "unused228",
23092 "unused229",
23093 "unused230",
23094 "unused231",
23095 "unused232",
23096 "unused233",
23097 "unused234",
23098 "unused235",
23099 "unused236",
23100 "unused237",
23101 "unused238",
23102 "unused239",
23103 "unused240",
23104 "unused241",
23105 "unused242",
23106 "unused243",
23107 "unused244",
23108 "unused245",
23109 "unused246",
23110 "unused247",
23111 "unused248",
23112 "unused249",
23113 "unused250",
23114 "unused251",
23115 "unused252",
23116 "unused253",
23117 "unused254",
23118 "unused255"
4d47f125
TL
23119 ],
23120 "type" : "string"
23121 },
23122 "format" : {
23123 "description" : "Target Format.",
23124 "enum" : [
23125 "raw",
23126 "qcow2",
23127 "vmdk"
23128 ],
23129 "optional" : 1,
23130 "type" : "string"
23131 },
23132 "node" : {
23133 "description" : "The cluster node name.",
23134 "format" : "pve-node",
23135 "type" : "string",
23136 "typetext" : "<string>"
23137 },
23138 "storage" : {
23139 "description" : "Target storage.",
23140 "format" : "pve-storage-id",
5370fa8c 23141 "optional" : 1,
4d47f125
TL
23142 "type" : "string",
23143 "typetext" : "<string>"
23144 },
5370fa8c
TL
23145 "target-digest" : {
23146 "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.",
23147 "maxLength" : 40,
23148 "optional" : 1,
23149 "type" : "string",
23150 "typetext" : "<string>"
23151 },
23152 "target-disk" : {
23153 "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.",
23154 "enum" : [
23155 "ide0",
23156 "ide1",
23157 "ide2",
23158 "ide3",
23159 "scsi0",
23160 "scsi1",
23161 "scsi2",
23162 "scsi3",
23163 "scsi4",
23164 "scsi5",
23165 "scsi6",
23166 "scsi7",
23167 "scsi8",
23168 "scsi9",
23169 "scsi10",
23170 "scsi11",
23171 "scsi12",
23172 "scsi13",
23173 "scsi14",
23174 "scsi15",
23175 "scsi16",
23176 "scsi17",
23177 "scsi18",
23178 "scsi19",
23179 "scsi20",
23180 "scsi21",
23181 "scsi22",
23182 "scsi23",
23183 "scsi24",
23184 "scsi25",
23185 "scsi26",
23186 "scsi27",
23187 "scsi28",
23188 "scsi29",
23189 "scsi30",
23190 "virtio0",
23191 "virtio1",
23192 "virtio2",
23193 "virtio3",
23194 "virtio4",
23195 "virtio5",
23196 "virtio6",
23197 "virtio7",
23198 "virtio8",
23199 "virtio9",
23200 "virtio10",
23201 "virtio11",
23202 "virtio12",
23203 "virtio13",
23204 "virtio14",
23205 "virtio15",
23206 "sata0",
23207 "sata1",
23208 "sata2",
23209 "sata3",
23210 "sata4",
23211 "sata5",
23212 "efidisk0",
23213 "tpmstate0",
23214 "unused0",
23215 "unused1",
23216 "unused2",
23217 "unused3",
23218 "unused4",
23219 "unused5",
23220 "unused6",
23221 "unused7",
23222 "unused8",
23223 "unused9",
23224 "unused10",
23225 "unused11",
23226 "unused12",
23227 "unused13",
23228 "unused14",
23229 "unused15",
23230 "unused16",
23231 "unused17",
23232 "unused18",
23233 "unused19",
23234 "unused20",
23235 "unused21",
23236 "unused22",
23237 "unused23",
23238 "unused24",
23239 "unused25",
23240 "unused26",
23241 "unused27",
23242 "unused28",
23243 "unused29",
23244 "unused30",
23245 "unused31",
23246 "unused32",
23247 "unused33",
23248 "unused34",
23249 "unused35",
23250 "unused36",
23251 "unused37",
23252 "unused38",
23253 "unused39",
23254 "unused40",
23255 "unused41",
23256 "unused42",
23257 "unused43",
23258 "unused44",
23259 "unused45",
23260 "unused46",
23261 "unused47",
23262 "unused48",
23263 "unused49",
23264 "unused50",
23265 "unused51",
23266 "unused52",
23267 "unused53",
23268 "unused54",
23269 "unused55",
23270 "unused56",
23271 "unused57",
23272 "unused58",
23273 "unused59",
23274 "unused60",
23275 "unused61",
23276 "unused62",
23277 "unused63",
23278 "unused64",
23279 "unused65",
23280 "unused66",
23281 "unused67",
23282 "unused68",
23283 "unused69",
23284 "unused70",
23285 "unused71",
23286 "unused72",
23287 "unused73",
23288 "unused74",
23289 "unused75",
23290 "unused76",
23291 "unused77",
23292 "unused78",
23293 "unused79",
23294 "unused80",
23295 "unused81",
23296 "unused82",
23297 "unused83",
23298 "unused84",
23299 "unused85",
23300 "unused86",
23301 "unused87",
23302 "unused88",
23303 "unused89",
23304 "unused90",
23305 "unused91",
23306 "unused92",
23307 "unused93",
23308 "unused94",
23309 "unused95",
23310 "unused96",
23311 "unused97",
23312 "unused98",
23313 "unused99",
23314 "unused100",
23315 "unused101",
23316 "unused102",
23317 "unused103",
23318 "unused104",
23319 "unused105",
23320 "unused106",
23321 "unused107",
23322 "unused108",
23323 "unused109",
23324 "unused110",
23325 "unused111",
23326 "unused112",
23327 "unused113",
23328 "unused114",
23329 "unused115",
23330 "unused116",
23331 "unused117",
23332 "unused118",
23333 "unused119",
23334 "unused120",
23335 "unused121",
23336 "unused122",
23337 "unused123",
23338 "unused124",
23339 "unused125",
23340 "unused126",
23341 "unused127",
23342 "unused128",
23343 "unused129",
23344 "unused130",
23345 "unused131",
23346 "unused132",
23347 "unused133",
23348 "unused134",
23349 "unused135",
23350 "unused136",
23351 "unused137",
23352 "unused138",
23353 "unused139",
23354 "unused140",
23355 "unused141",
23356 "unused142",
23357 "unused143",
23358 "unused144",
23359 "unused145",
23360 "unused146",
23361 "unused147",
23362 "unused148",
23363 "unused149",
23364 "unused150",
23365 "unused151",
23366 "unused152",
23367 "unused153",
23368 "unused154",
23369 "unused155",
23370 "unused156",
23371 "unused157",
23372 "unused158",
23373 "unused159",
23374 "unused160",
23375 "unused161",
23376 "unused162",
23377 "unused163",
23378 "unused164",
23379 "unused165",
23380 "unused166",
23381 "unused167",
23382 "unused168",
23383 "unused169",
23384 "unused170",
23385 "unused171",
23386 "unused172",
23387 "unused173",
23388 "unused174",
23389 "unused175",
23390 "unused176",
23391 "unused177",
23392 "unused178",
23393 "unused179",
23394 "unused180",
23395 "unused181",
23396 "unused182",
23397 "unused183",
23398 "unused184",
23399 "unused185",
23400 "unused186",
23401 "unused187",
23402 "unused188",
23403 "unused189",
23404 "unused190",
23405 "unused191",
23406 "unused192",
23407 "unused193",
23408 "unused194",
23409 "unused195",
23410 "unused196",
23411 "unused197",
23412 "unused198",
23413 "unused199",
23414 "unused200",
23415 "unused201",
23416 "unused202",
23417 "unused203",
23418 "unused204",
23419 "unused205",
23420 "unused206",
23421 "unused207",
23422 "unused208",
23423 "unused209",
23424 "unused210",
23425 "unused211",
23426 "unused212",
23427 "unused213",
23428 "unused214",
23429 "unused215",
23430 "unused216",
23431 "unused217",
23432 "unused218",
23433 "unused219",
23434 "unused220",
23435 "unused221",
23436 "unused222",
23437 "unused223",
23438 "unused224",
23439 "unused225",
23440 "unused226",
23441 "unused227",
23442 "unused228",
23443 "unused229",
23444 "unused230",
23445 "unused231",
23446 "unused232",
23447 "unused233",
23448 "unused234",
23449 "unused235",
23450 "unused236",
23451 "unused237",
23452 "unused238",
23453 "unused239",
23454 "unused240",
23455 "unused241",
23456 "unused242",
23457 "unused243",
23458 "unused244",
23459 "unused245",
23460 "unused246",
23461 "unused247",
23462 "unused248",
23463 "unused249",
23464 "unused250",
23465 "unused251",
23466 "unused252",
23467 "unused253",
23468 "unused254",
23469 "unused255"
23470 ],
23471 "optional" : 1,
23472 "type" : "string"
23473 },
23474 "target-vmid" : {
23475 "description" : "The (unique) ID of the VM.",
23476 "format" : "pve-vmid",
8dd66e12
TL
23477 "maximum" : 999999999,
23478 "minimum" : 100,
5370fa8c
TL
23479 "optional" : 1,
23480 "type" : "integer",
8dd66e12 23481 "typetext" : "<integer> (100 - 999999999)"
5370fa8c 23482 },
4d47f125
TL
23483 "vmid" : {
23484 "description" : "The (unique) ID of the VM.",
23485 "format" : "pve-vmid",
8dd66e12
TL
23486 "maximum" : 999999999,
23487 "minimum" : 100,
4d47f125 23488 "type" : "integer",
8dd66e12 23489 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
23490 }
23491 }
23492 },
23493 "permissions" : {
23494 "check" : [
5370fa8c
TL
23495 "perm",
23496 "/vms/{vmid}",
4d47f125 23497 [
5370fa8c 23498 "VM.Config.Disk"
4d47f125
TL
23499 ]
23500 ],
5370fa8c 23501 "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
23502 },
23503 "protected" : 1,
23504 "proxyto" : "node",
23505 "returns" : {
23506 "description" : "the task ID.",
23507 "type" : "string"
23508 }
23509 }
23510 },
23511 "leaf" : 1,
23512 "path" : "/nodes/{node}/qemu/{vmid}/move_disk",
23513 "text" : "move_disk"
23514 },
23515 {
23516 "info" : {
1e3f8156 23517 "GET" : {
e9cd3bd4 23518 "allowtoken" : 1,
1e3f8156
TL
23519 "description" : "Get preconditions for migration.",
23520 "method" : "GET",
23521 "name" : "migrate_vm_precondition",
23522 "parameters" : {
23523 "additionalProperties" : 0,
23524 "properties" : {
23525 "node" : {
23526 "description" : "The cluster node name.",
23527 "format" : "pve-node",
23528 "type" : "string",
23529 "typetext" : "<string>"
23530 },
23531 "target" : {
23532 "description" : "Target node.",
23533 "format" : "pve-node",
23534 "optional" : 1,
23535 "type" : "string",
23536 "typetext" : "<string>"
23537 },
23538 "vmid" : {
23539 "description" : "The (unique) ID of the VM.",
23540 "format" : "pve-vmid",
8dd66e12
TL
23541 "maximum" : 999999999,
23542 "minimum" : 100,
1e3f8156 23543 "type" : "integer",
8dd66e12 23544 "typetext" : "<integer> (100 - 999999999)"
1e3f8156
TL
23545 }
23546 }
23547 },
23548 "permissions" : {
23549 "check" : [
23550 "perm",
23551 "/vms/{vmid}",
23552 [
23553 "VM.Migrate"
23554 ]
23555 ]
23556 },
23557 "protected" : 1,
23558 "proxyto" : "node",
23559 "returns" : {
23560 "properties" : {
23561 "allowed_nodes" : {
9226ccbc 23562 "description" : "List nodes allowed for offline migration, only passed if VM is offline",
1e3f8156
TL
23563 "optional" : 1,
23564 "type" : "array"
23565 },
23566 "local_disks" : {
23567 "description" : "List local disks including CD-Rom, unsused and not referenced disks",
23568 "type" : "array"
23569 },
23570 "local_resources" : {
23571 "description" : "List local resources e.g. pci, usb",
23572 "type" : "array"
23573 },
499c9b7f
TL
23574 "mapped-resources" : {
23575 "description" : "List of mapped resources e.g. pci, usb",
23576 "type" : "array"
23577 },
9226ccbc
TL
23578 "not_allowed_nodes" : {
23579 "description" : "List not allowed nodes with additional informations, only passed if VM is offline",
23580 "optional" : 1,
23581 "type" : "object"
23582 },
1e3f8156
TL
23583 "running" : {
23584 "type" : "boolean"
23585 }
23586 },
23587 "type" : "object"
23588 }
23589 },
4d47f125 23590 "POST" : {
e9cd3bd4 23591 "allowtoken" : 1,
4d47f125
TL
23592 "description" : "Migrate virtual machine. Creates a new migration task.",
23593 "method" : "POST",
23594 "name" : "migrate_vm",
23595 "parameters" : {
23596 "additionalProperties" : 0,
23597 "properties" : {
95895385
TL
23598 "bwlimit" : {
23599 "default" : "migrate limit from datacenter or storage config",
23600 "description" : "Override I/O bandwidth limit (in KiB/s).",
23601 "minimum" : "0",
23602 "optional" : 1,
23603 "type" : "integer",
23604 "typetext" : "<integer> (0 - N)"
23605 },
4d47f125
TL
23606 "force" : {
23607 "description" : "Allow to migrate VMs which use local devices. Only root may use this option.",
23608 "optional" : 1,
23609 "type" : "boolean",
23610 "typetext" : "<boolean>"
23611 },
23612 "migration_network" : {
23613 "description" : "CIDR of the (sub) network that is used for migration.",
23614 "format" : "CIDR",
23615 "optional" : 1,
23616 "type" : "string",
23617 "typetext" : "<string>"
23618 },
23619 "migration_type" : {
23620 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
23621 "enum" : [
23622 "secure",
23623 "insecure"
23624 ],
23625 "optional" : 1,
23626 "type" : "string"
23627 },
23628 "node" : {
23629 "description" : "The cluster node name.",
23630 "format" : "pve-node",
23631 "type" : "string",
23632 "typetext" : "<string>"
23633 },
23634 "online" : {
1c532546 23635 "description" : "Use online/live migration if VM is running. Ignored if VM is stopped.",
4d47f125
TL
23636 "optional" : 1,
23637 "type" : "boolean",
23638 "typetext" : "<boolean>"
23639 },
23640 "target" : {
23641 "description" : "Target node.",
23642 "format" : "pve-node",
23643 "type" : "string",
23644 "typetext" : "<string>"
23645 },
23646 "targetstorage" : {
c5aa7e14 23647 "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 23648 "format" : "storage-pair-list",
4d47f125 23649 "optional" : 1,
52e44c50
FG
23650 "type" : "string",
23651 "typetext" : "<string>"
23652 },
7aacca6f 23653 "vmid" : {
7aacca6f 23654 "description" : "The (unique) ID of the VM.",
44660702 23655 "format" : "pve-vmid",
8dd66e12
TL
23656 "maximum" : 999999999,
23657 "minimum" : 100,
4bd7df8b 23658 "type" : "integer",
8dd66e12 23659 "typetext" : "<integer> (100 - 999999999)"
52e44c50
FG
23660 },
23661 "with-local-disks" : {
23662 "description" : "Enable live storage migration for local disk",
23663 "optional" : 1,
23664 "type" : "boolean",
23665 "typetext" : "<boolean>"
56122987 23666 }
44660702
DM
23667 }
23668 },
23669 "permissions" : {
23670 "check" : [
23671 "perm",
23672 "/vms/{vmid}",
23673 [
23674 "VM.Migrate"
23675 ]
23676 ]
56122987
DM
23677 },
23678 "protected" : 1,
44660702
DM
23679 "proxyto" : "node",
23680 "returns" : {
23681 "description" : "the task ID.",
23682 "type" : "string"
23683 }
56122987 23684 }
7aacca6f 23685 },
44660702
DM
23686 "leaf" : 1,
23687 "path" : "/nodes/{node}/qemu/{vmid}/migrate",
7aacca6f 23688 "text" : "migrate"
56122987 23689 },
81a3384d
TL
23690 {
23691 "info" : {
23692 "POST" : {
23693 "allowtoken" : 1,
23694 "description" : "Migrate virtual machine to a remote cluster. Creates a new migration task. EXPERIMENTAL feature!",
23695 "method" : "POST",
23696 "name" : "remote_migrate_vm",
23697 "parameters" : {
23698 "additionalProperties" : 0,
23699 "properties" : {
23700 "bwlimit" : {
23701 "default" : "migrate limit from datacenter or storage config",
23702 "description" : "Override I/O bandwidth limit (in KiB/s).",
23703 "minimum" : "0",
23704 "optional" : 1,
23705 "type" : "integer",
23706 "typetext" : "<integer> (0 - N)"
23707 },
23708 "delete" : {
23709 "default" : 0,
23710 "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.",
23711 "optional" : 1,
23712 "type" : "boolean",
23713 "typetext" : "<boolean>"
23714 },
23715 "node" : {
23716 "description" : "The cluster node name.",
23717 "format" : "pve-node",
23718 "type" : "string",
23719 "typetext" : "<string>"
23720 },
23721 "online" : {
23722 "description" : "Use online/live migration if VM is running. Ignored if VM is stopped.",
23723 "optional" : 1,
23724 "type" : "boolean",
23725 "typetext" : "<boolean>"
23726 },
23727 "target-bridge" : {
23728 "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.",
23729 "format" : "bridge-pair-list",
23730 "type" : "string",
23731 "typetext" : "<string>"
23732 },
23733 "target-endpoint" : {
23734 "description" : "Remote target endpoint",
23735 "format" : "proxmox-remote",
23736 "type" : "string",
23737 "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>]"
23738 },
23739 "target-storage" : {
23740 "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.",
23741 "format" : "storage-pair-list",
23742 "optional" : 0,
23743 "type" : "string",
23744 "typetext" : "<string>"
23745 },
23746 "target-vmid" : {
23747 "description" : "The (unique) ID of the VM.",
23748 "format" : "pve-vmid",
8dd66e12
TL
23749 "maximum" : 999999999,
23750 "minimum" : 100,
81a3384d
TL
23751 "optional" : 1,
23752 "type" : "integer",
8dd66e12 23753 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
23754 },
23755 "vmid" : {
23756 "description" : "The (unique) ID of the VM.",
23757 "format" : "pve-vmid",
8dd66e12
TL
23758 "maximum" : 999999999,
23759 "minimum" : 100,
81a3384d 23760 "type" : "integer",
8dd66e12 23761 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
23762 }
23763 }
23764 },
23765 "permissions" : {
23766 "check" : [
23767 "perm",
23768 "/vms/{vmid}",
23769 [
23770 "VM.Migrate"
23771 ]
23772 ]
23773 },
23774 "protected" : 1,
23775 "proxyto" : "node",
23776 "returns" : {
23777 "description" : "the task ID.",
23778 "type" : "string"
23779 }
23780 }
23781 },
23782 "leaf" : 1,
23783 "path" : "/nodes/{node}/qemu/{vmid}/remote_migrate",
23784 "text" : "remote_migrate"
23785 },
56122987
DM
23786 {
23787 "info" : {
23788 "POST" : {
e9cd3bd4 23789 "allowtoken" : 1,
9d2e98ed 23790 "description" : "Execute QEMU monitor commands.",
56122987 23791 "method" : "POST",
44660702 23792 "name" : "monitor",
56122987 23793 "parameters" : {
7aacca6f 23794 "additionalProperties" : 0,
56122987 23795 "properties" : {
44660702
DM
23796 "command" : {
23797 "description" : "The monitor command.",
013dc89f
DM
23798 "type" : "string",
23799 "typetext" : "<string>"
44660702 23800 },
56122987 23801 "node" : {
44660702 23802 "description" : "The cluster node name.",
7aacca6f 23803 "format" : "pve-node",
013dc89f
DM
23804 "type" : "string",
23805 "typetext" : "<string>"
56122987
DM
23806 },
23807 "vmid" : {
44660702 23808 "description" : "The (unique) ID of the VM.",
56122987 23809 "format" : "pve-vmid",
8dd66e12
TL
23810 "maximum" : 999999999,
23811 "minimum" : 100,
4bd7df8b 23812 "type" : "integer",
8dd66e12 23813 "typetext" : "<integer> (100 - 999999999)"
56122987 23814 }
7aacca6f 23815 }
56122987 23816 },
56122987
DM
23817 "permissions" : {
23818 "check" : [
23819 "perm",
23820 "/vms/{vmid}",
23821 [
23822 "VM.Monitor"
23823 ]
32d876b5
DM
23824 ],
23825 "description" : "Sys.Modify is required for (sub)commands which are not read-only ('info *' and 'help')"
7aacca6f 23826 },
44660702
DM
23827 "protected" : 1,
23828 "proxyto" : "node",
23829 "returns" : {
23830 "type" : "string"
23831 }
56122987 23832 }
44660702
DM
23833 },
23834 "leaf" : 1,
23835 "path" : "/nodes/{node}/qemu/{vmid}/monitor",
23836 "text" : "monitor"
56122987
DM
23837 },
23838 {
56122987
DM
23839 "info" : {
23840 "PUT" : {
e9cd3bd4 23841 "allowtoken" : 1,
44660702
DM
23842 "description" : "Extend volume size.",
23843 "method" : "PUT",
23844 "name" : "resize_vm",
56122987 23845 "parameters" : {
44660702 23846 "additionalProperties" : 0,
56122987 23847 "properties" : {
44660702
DM
23848 "digest" : {
23849 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
23850 "maxLength" : 40,
23851 "optional" : 1,
013dc89f
DM
23852 "type" : "string",
23853 "typetext" : "<string>"
56122987 23854 },
56122987
DM
23855 "disk" : {
23856 "description" : "The disk you want to resize.",
23857 "enum" : [
23858 "ide0",
23859 "ide1",
23860 "ide2",
23861 "ide3",
23862 "scsi0",
23863 "scsi1",
23864 "scsi2",
23865 "scsi3",
23866 "scsi4",
23867 "scsi5",
23868 "scsi6",
23869 "scsi7",
23870 "scsi8",
23871 "scsi9",
23872 "scsi10",
23873 "scsi11",
23874 "scsi12",
23875 "scsi13",
e9cd3bd4
TL
23876 "scsi14",
23877 "scsi15",
23878 "scsi16",
23879 "scsi17",
23880 "scsi18",
23881 "scsi19",
23882 "scsi20",
23883 "scsi21",
23884 "scsi22",
23885 "scsi23",
23886 "scsi24",
23887 "scsi25",
23888 "scsi26",
23889 "scsi27",
23890 "scsi28",
23891 "scsi29",
23892 "scsi30",
56122987
DM
23893 "virtio0",
23894 "virtio1",
23895 "virtio2",
23896 "virtio3",
23897 "virtio4",
23898 "virtio5",
23899 "virtio6",
23900 "virtio7",
23901 "virtio8",
23902 "virtio9",
23903 "virtio10",
23904 "virtio11",
23905 "virtio12",
23906 "virtio13",
23907 "virtio14",
23908 "virtio15",
23909 "sata0",
23910 "sata1",
23911 "sata2",
23912 "sata3",
23913 "sata4",
2c0dde61 23914 "sata5",
5370fa8c
TL
23915 "efidisk0",
23916 "tpmstate0"
44660702
DM
23917 ],
23918 "type" : "string"
56122987 23919 },
44660702
DM
23920 "node" : {
23921 "description" : "The cluster node name.",
23922 "format" : "pve-node",
013dc89f
DM
23923 "type" : "string",
23924 "typetext" : "<string>"
7aacca6f 23925 },
44660702 23926 "size" : {
5d9c884c 23927 "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
23928 "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
23929 "type" : "string"
56122987
DM
23930 },
23931 "skiplock" : {
23932 "description" : "Ignore locks - only root is allowed to use this option.",
23933 "optional" : 1,
013dc89f
DM
23934 "type" : "boolean",
23935 "typetext" : "<boolean>"
56122987
DM
23936 },
23937 "vmid" : {
7aacca6f 23938 "description" : "The (unique) ID of the VM.",
56122987 23939 "format" : "pve-vmid",
8dd66e12
TL
23940 "maximum" : 999999999,
23941 "minimum" : 100,
4bd7df8b 23942 "type" : "integer",
8dd66e12 23943 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
23944 }
23945 }
23946 },
23947 "permissions" : {
23948 "check" : [
23949 "perm",
23950 "/vms/{vmid}",
23951 [
44660702 23952 "VM.Config.Disk"
56122987
DM
23953 ]
23954 ]
23955 },
7aacca6f 23956 "protected" : 1,
7aacca6f 23957 "proxyto" : "node",
44660702 23958 "returns" : {
159464a9
TL
23959 "description" : "the task ID.",
23960 "type" : "string"
44660702 23961 }
7aacca6f
DM
23962 }
23963 },
44660702
DM
23964 "leaf" : 1,
23965 "path" : "/nodes/{node}/qemu/{vmid}/resize",
23966 "text" : "resize"
23967 },
23968 {
56122987
DM
23969 "children" : [
23970 {
23971 "children" : [
23972 {
56122987 23973 "info" : {
44660702 23974 "GET" : {
e9cd3bd4 23975 "allowtoken" : 1,
44660702
DM
23976 "description" : "Get snapshot configuration",
23977 "method" : "GET",
23978 "name" : "get_snapshot_config",
56122987 23979 "parameters" : {
44660702 23980 "additionalProperties" : 0,
56122987 23981 "properties" : {
56122987 23982 "node" : {
44660702 23983 "description" : "The cluster node name.",
56122987 23984 "format" : "pve-node",
013dc89f
DM
23985 "type" : "string",
23986 "typetext" : "<string>"
7aacca6f
DM
23987 },
23988 "snapname" : {
44660702 23989 "description" : "The name of the snapshot.",
7aacca6f 23990 "format" : "pve-configid",
44660702 23991 "maxLength" : 40,
013dc89f
DM
23992 "type" : "string",
23993 "typetext" : "<string>"
7aacca6f
DM
23994 },
23995 "vmid" : {
44660702 23996 "description" : "The (unique) ID of the VM.",
7aacca6f 23997 "format" : "pve-vmid",
8dd66e12
TL
23998 "maximum" : 999999999,
23999 "minimum" : 100,
4bd7df8b 24000 "type" : "integer",
8dd66e12 24001 "typetext" : "<integer> (100 - 999999999)"
56122987 24002 }
44660702 24003 }
56122987
DM
24004 },
24005 "permissions" : {
24006 "check" : [
24007 "perm",
24008 "/vms/{vmid}",
24009 [
2489d6df 24010 "VM.Snapshot",
e9cd3bd4
TL
24011 "VM.Snapshot.Rollback",
24012 "VM.Audit"
2489d6df
WB
24013 ],
24014 "any",
24015 1
56122987
DM
24016 ]
24017 },
44660702 24018 "proxyto" : "node",
56122987 24019 "returns" : {
44660702 24020 "type" : "object"
7aacca6f
DM
24021 }
24022 },
44660702 24023 "PUT" : {
e9cd3bd4 24024 "allowtoken" : 1,
44660702
DM
24025 "description" : "Update snapshot metadata.",
24026 "method" : "PUT",
24027 "name" : "update_snapshot_config",
56122987 24028 "parameters" : {
44660702 24029 "additionalProperties" : 0,
56122987 24030 "properties" : {
44660702
DM
24031 "description" : {
24032 "description" : "A textual description or comment.",
24033 "optional" : 1,
013dc89f
DM
24034 "type" : "string",
24035 "typetext" : "<string>"
44660702 24036 },
56122987 24037 "node" : {
7aacca6f 24038 "description" : "The cluster node name.",
44660702 24039 "format" : "pve-node",
013dc89f
DM
24040 "type" : "string",
24041 "typetext" : "<string>"
56122987 24042 },
56122987
DM
24043 "snapname" : {
24044 "description" : "The name of the snapshot.",
44660702 24045 "format" : "pve-configid",
7aacca6f 24046 "maxLength" : 40,
013dc89f
DM
24047 "type" : "string",
24048 "typetext" : "<string>"
7aacca6f
DM
24049 },
24050 "vmid" : {
24051 "description" : "The (unique) ID of the VM.",
44660702 24052 "format" : "pve-vmid",
8dd66e12
TL
24053 "maximum" : 999999999,
24054 "minimum" : 100,
4bd7df8b 24055 "type" : "integer",
8dd66e12 24056 "typetext" : "<integer> (100 - 999999999)"
56122987 24057 }
44660702 24058 }
56122987 24059 },
7aacca6f
DM
24060 "permissions" : {
24061 "check" : [
24062 "perm",
24063 "/vms/{vmid}",
24064 [
24065 "VM.Snapshot"
24066 ]
24067 ]
44660702
DM
24068 },
24069 "protected" : 1,
24070 "proxyto" : "node",
24071 "returns" : {
24072 "type" : "null"
7aacca6f 24073 }
56122987
DM
24074 }
24075 },
44660702 24076 "leaf" : 1,
7aacca6f 24077 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config",
44660702 24078 "text" : "config"
56122987
DM
24079 },
24080 {
56122987
DM
24081 "info" : {
24082 "POST" : {
e9cd3bd4 24083 "allowtoken" : 1,
44660702 24084 "description" : "Rollback VM state to specified snapshot.",
7aacca6f 24085 "method" : "POST",
44660702 24086 "name" : "rollback",
56122987
DM
24087 "parameters" : {
24088 "additionalProperties" : 0,
24089 "properties" : {
44660702
DM
24090 "node" : {
24091 "description" : "The cluster node name.",
24092 "format" : "pve-node",
013dc89f
DM
24093 "type" : "string",
24094 "typetext" : "<string>"
44660702 24095 },
56122987 24096 "snapname" : {
44660702 24097 "description" : "The name of the snapshot.",
56122987
DM
24098 "format" : "pve-configid",
24099 "maxLength" : 40,
013dc89f
DM
24100 "type" : "string",
24101 "typetext" : "<string>"
7aacca6f 24102 },
4e7f60c2
TL
24103 "start" : {
24104 "default" : 0,
9d2e98ed 24105 "description" : "Whether the VM should get started after rolling back successfully. (Note: VMs will be automatically started if the snapshot includes RAM.)",
4e7f60c2
TL
24106 "optional" : 1,
24107 "type" : "boolean",
24108 "typetext" : "<boolean>"
24109 },
56122987 24110 "vmid" : {
7aacca6f 24111 "description" : "The (unique) ID of the VM.",
44660702 24112 "format" : "pve-vmid",
8dd66e12
TL
24113 "maximum" : 999999999,
24114 "minimum" : 100,
4bd7df8b 24115 "type" : "integer",
8dd66e12 24116 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
24117 }
24118 }
24119 },
7aacca6f 24120 "permissions" : {
56122987
DM
24121 "check" : [
24122 "perm",
24123 "/vms/{vmid}",
24124 [
2489d6df
WB
24125 "VM.Snapshot",
24126 "VM.Snapshot.Rollback"
24127 ],
24128 "any",
24129 1
56122987
DM
24130 ]
24131 },
44660702 24132 "protected" : 1,
7aacca6f 24133 "proxyto" : "node",
44660702
DM
24134 "returns" : {
24135 "description" : "the task ID.",
24136 "type" : "string"
24137 }
56122987
DM
24138 }
24139 },
44660702
DM
24140 "leaf" : 1,
24141 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback",
7aacca6f 24142 "text" : "rollback"
56122987 24143 }
44660702
DM
24144 ],
24145 "info" : {
24146 "DELETE" : {
e9cd3bd4 24147 "allowtoken" : 1,
44660702
DM
24148 "description" : "Delete a VM snapshot.",
24149 "method" : "DELETE",
24150 "name" : "delsnapshot",
24151 "parameters" : {
24152 "additionalProperties" : 0,
24153 "properties" : {
24154 "force" : {
24155 "description" : "For removal from config file, even if removing disk snapshots fails.",
24156 "optional" : 1,
013dc89f
DM
24157 "type" : "boolean",
24158 "typetext" : "<boolean>"
44660702
DM
24159 },
24160 "node" : {
24161 "description" : "The cluster node name.",
24162 "format" : "pve-node",
013dc89f
DM
24163 "type" : "string",
24164 "typetext" : "<string>"
44660702
DM
24165 },
24166 "snapname" : {
24167 "description" : "The name of the snapshot.",
24168 "format" : "pve-configid",
24169 "maxLength" : 40,
013dc89f
DM
24170 "type" : "string",
24171 "typetext" : "<string>"
44660702
DM
24172 },
24173 "vmid" : {
24174 "description" : "The (unique) ID of the VM.",
24175 "format" : "pve-vmid",
8dd66e12
TL
24176 "maximum" : 999999999,
24177 "minimum" : 100,
4bd7df8b 24178 "type" : "integer",
8dd66e12 24179 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
24180 }
24181 }
24182 },
24183 "permissions" : {
24184 "check" : [
24185 "perm",
24186 "/vms/{vmid}",
24187 [
24188 "VM.Snapshot"
24189 ]
24190 ]
24191 },
24192 "protected" : 1,
24193 "proxyto" : "node",
24194 "returns" : {
24195 "description" : "the task ID.",
24196 "type" : "string"
24197 }
24198 },
24199 "GET" : {
e9cd3bd4 24200 "allowtoken" : 1,
44660702
DM
24201 "description" : "",
24202 "method" : "GET",
24203 "name" : "snapshot_cmd_idx",
24204 "parameters" : {
24205 "additionalProperties" : 0,
24206 "properties" : {
24207 "node" : {
24208 "description" : "The cluster node name.",
24209 "format" : "pve-node",
013dc89f
DM
24210 "type" : "string",
24211 "typetext" : "<string>"
44660702
DM
24212 },
24213 "snapname" : {
24214 "description" : "The name of the snapshot.",
24215 "format" : "pve-configid",
24216 "maxLength" : 40,
013dc89f
DM
24217 "type" : "string",
24218 "typetext" : "<string>"
44660702
DM
24219 },
24220 "vmid" : {
24221 "description" : "The (unique) ID of the VM.",
24222 "format" : "pve-vmid",
8dd66e12
TL
24223 "maximum" : 999999999,
24224 "minimum" : 100,
4bd7df8b 24225 "type" : "integer",
8dd66e12 24226 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
24227 }
24228 }
24229 },
24230 "permissions" : {
24231 "user" : "all"
24232 },
24233 "returns" : {
24234 "items" : {
24235 "properties" : {},
24236 "type" : "object"
24237 },
24238 "links" : [
24239 {
24240 "href" : "{cmd}",
24241 "rel" : "child"
24242 }
24243 ],
24244 "type" : "array"
24245 }
24246 }
24247 },
24248 "leaf" : 0,
24249 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
24250 "text" : "{snapname}"
56122987
DM
24251 }
24252 ],
44660702
DM
24253 "info" : {
24254 "GET" : {
e9cd3bd4 24255 "allowtoken" : 1,
44660702
DM
24256 "description" : "List all snapshots.",
24257 "method" : "GET",
24258 "name" : "snapshot_list",
24259 "parameters" : {
24260 "additionalProperties" : 0,
24261 "properties" : {
24262 "node" : {
24263 "description" : "The cluster node name.",
24264 "format" : "pve-node",
013dc89f
DM
24265 "type" : "string",
24266 "typetext" : "<string>"
44660702
DM
24267 },
24268 "vmid" : {
24269 "description" : "The (unique) ID of the VM.",
24270 "format" : "pve-vmid",
8dd66e12
TL
24271 "maximum" : 999999999,
24272 "minimum" : 100,
4bd7df8b 24273 "type" : "integer",
8dd66e12 24274 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
24275 }
24276 }
24277 },
24278 "permissions" : {
24279 "check" : [
24280 "perm",
24281 "/vms/{vmid}",
24282 [
24283 "VM.Audit"
24284 ]
24285 ]
24286 },
24287 "protected" : 1,
24288 "proxyto" : "node",
24289 "returns" : {
24290 "items" : {
4d47f125
TL
24291 "properties" : {
24292 "description" : {
24293 "description" : "Snapshot description.",
24294 "type" : "string"
24295 },
24296 "name" : {
24297 "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
24298 "type" : "string"
24299 },
24300 "parent" : {
24301 "description" : "Parent snapshot identifier.",
24302 "optional" : 1,
24303 "type" : "string"
24304 },
24305 "snaptime" : {
24306 "description" : "Snapshot creation time",
24307 "optional" : 1,
24308 "renderer" : "timestamp",
24309 "type" : "integer"
24310 },
24311 "vmstate" : {
24312 "description" : "Snapshot includes RAM.",
24313 "optional" : 1,
24314 "type" : "boolean"
24315 }
24316 },
44660702
DM
24317 "type" : "object"
24318 },
24319 "links" : [
24320 {
24321 "href" : "{name}",
24322 "rel" : "child"
24323 }
24324 ],
24325 "type" : "array"
24326 }
24327 },
24328 "POST" : {
e9cd3bd4 24329 "allowtoken" : 1,
44660702
DM
24330 "description" : "Snapshot a VM.",
24331 "method" : "POST",
24332 "name" : "snapshot",
24333 "parameters" : {
24334 "additionalProperties" : 0,
24335 "properties" : {
24336 "description" : {
24337 "description" : "A textual description or comment.",
24338 "optional" : 1,
013dc89f
DM
24339 "type" : "string",
24340 "typetext" : "<string>"
44660702
DM
24341 },
24342 "node" : {
24343 "description" : "The cluster node name.",
24344 "format" : "pve-node",
013dc89f
DM
24345 "type" : "string",
24346 "typetext" : "<string>"
44660702
DM
24347 },
24348 "snapname" : {
24349 "description" : "The name of the snapshot.",
24350 "format" : "pve-configid",
24351 "maxLength" : 40,
013dc89f
DM
24352 "type" : "string",
24353 "typetext" : "<string>"
44660702
DM
24354 },
24355 "vmid" : {
24356 "description" : "The (unique) ID of the VM.",
24357 "format" : "pve-vmid",
8dd66e12
TL
24358 "maximum" : 999999999,
24359 "minimum" : 100,
4bd7df8b 24360 "type" : "integer",
8dd66e12 24361 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
24362 },
24363 "vmstate" : {
24364 "description" : "Save the vmstate",
24365 "optional" : 1,
013dc89f
DM
24366 "type" : "boolean",
24367 "typetext" : "<boolean>"
44660702
DM
24368 }
24369 }
24370 },
24371 "permissions" : {
24372 "check" : [
24373 "perm",
24374 "/vms/{vmid}",
24375 [
24376 "VM.Snapshot"
24377 ]
24378 ]
24379 },
24380 "protected" : 1,
24381 "proxyto" : "node",
24382 "returns" : {
24383 "description" : "the task ID.",
24384 "type" : "string"
24385 }
24386 }
24387 },
24388 "leaf" : 0,
24389 "path" : "/nodes/{node}/qemu/{vmid}/snapshot",
7aacca6f 24390 "text" : "snapshot"
56122987
DM
24391 },
24392 {
56122987
DM
24393 "info" : {
24394 "POST" : {
e9cd3bd4 24395 "allowtoken" : 1,
44660702
DM
24396 "description" : "Create a Template.",
24397 "method" : "POST",
56122987 24398 "name" : "template",
56122987 24399 "parameters" : {
7aacca6f 24400 "additionalProperties" : 0,
56122987 24401 "properties" : {
56122987 24402 "disk" : {
56122987
DM
24403 "description" : "If you want to convert only 1 disk to base image.",
24404 "enum" : [
24405 "ide0",
24406 "ide1",
24407 "ide2",
24408 "ide3",
24409 "scsi0",
24410 "scsi1",
24411 "scsi2",
24412 "scsi3",
24413 "scsi4",
24414 "scsi5",
24415 "scsi6",
24416 "scsi7",
24417 "scsi8",
24418 "scsi9",
24419 "scsi10",
24420 "scsi11",
24421 "scsi12",
24422 "scsi13",
e9cd3bd4
TL
24423 "scsi14",
24424 "scsi15",
24425 "scsi16",
24426 "scsi17",
24427 "scsi18",
24428 "scsi19",
24429 "scsi20",
24430 "scsi21",
24431 "scsi22",
24432 "scsi23",
24433 "scsi24",
24434 "scsi25",
24435 "scsi26",
24436 "scsi27",
24437 "scsi28",
24438 "scsi29",
24439 "scsi30",
56122987
DM
24440 "virtio0",
24441 "virtio1",
24442 "virtio2",
24443 "virtio3",
24444 "virtio4",
24445 "virtio5",
24446 "virtio6",
24447 "virtio7",
24448 "virtio8",
24449 "virtio9",
24450 "virtio10",
24451 "virtio11",
24452 "virtio12",
24453 "virtio13",
24454 "virtio14",
24455 "virtio15",
24456 "sata0",
24457 "sata1",
24458 "sata2",
24459 "sata3",
24460 "sata4",
2c0dde61 24461 "sata5",
5370fa8c
TL
24462 "efidisk0",
24463 "tpmstate0"
56122987 24464 ],
7aacca6f 24465 "optional" : 1,
56122987
DM
24466 "type" : "string"
24467 },
44660702
DM
24468 "node" : {
24469 "description" : "The cluster node name.",
24470 "format" : "pve-node",
013dc89f
DM
24471 "type" : "string",
24472 "typetext" : "<string>"
44660702
DM
24473 },
24474 "vmid" : {
24475 "description" : "The (unique) ID of the VM.",
7aacca6f 24476 "format" : "pve-vmid",
8dd66e12
TL
24477 "maximum" : 999999999,
24478 "minimum" : 100,
4bd7df8b 24479 "type" : "integer",
8dd66e12 24480 "typetext" : "<integer> (100 - 999999999)"
56122987 24481 }
7aacca6f 24482 }
56122987 24483 },
7aacca6f
DM
24484 "permissions" : {
24485 "check" : [
24486 "perm",
24487 "/vms/{vmid}",
24488 [
24489 "VM.Allocate"
24490 ]
24491 ],
24492 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
24493 },
44660702 24494 "protected" : 1,
7aacca6f 24495 "proxyto" : "node",
7aacca6f 24496 "returns" : {
5370fa8c
TL
24497 "description" : "the task ID.",
24498 "type" : "string"
7aacca6f 24499 }
56122987
DM
24500 }
24501 },
44660702 24502 "leaf" : 1,
7aacca6f 24503 "path" : "/nodes/{node}/qemu/{vmid}/template",
44660702 24504 "text" : "template"
81a3384d
TL
24505 },
24506 {
24507 "info" : {
24508 "POST" : {
24509 "allowtoken" : 1,
24510 "description" : "Migration tunnel endpoint - only for internal use by VM migration.",
24511 "method" : "POST",
24512 "name" : "mtunnel",
24513 "parameters" : {
24514 "additionalProperties" : 0,
24515 "properties" : {
24516 "bridges" : {
24517 "description" : "List of network bridges to check availability. Will be checked again for actually used bridges during migration.",
24518 "format" : "pve-bridge-id-list",
24519 "optional" : 1,
24520 "type" : "string",
24521 "typetext" : "<string>"
24522 },
24523 "node" : {
24524 "description" : "The cluster node name.",
24525 "format" : "pve-node",
24526 "type" : "string",
24527 "typetext" : "<string>"
24528 },
24529 "storages" : {
24530 "description" : "List of storages to check permission and availability. Will be checked again for all actually used storages during migration.",
24531 "format" : "pve-storage-id-list",
24532 "optional" : 1,
24533 "type" : "string",
24534 "typetext" : "<string>"
24535 },
24536 "vmid" : {
24537 "description" : "The (unique) ID of the VM.",
24538 "format" : "pve-vmid",
8dd66e12
TL
24539 "maximum" : 999999999,
24540 "minimum" : 100,
81a3384d 24541 "type" : "integer",
8dd66e12 24542 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
24543 }
24544 }
24545 },
24546 "permissions" : {
24547 "check" : [
24548 "and",
24549 [
24550 "perm",
24551 "/vms/{vmid}",
24552 [
24553 "VM.Allocate"
24554 ]
24555 ],
24556 [
24557 "perm",
24558 "/",
24559 [
24560 "Sys.Incoming"
24561 ]
24562 ]
24563 ],
24564 "description" : "You need 'VM.Allocate' permissions on '/vms/{vmid}' and Sys.Incoming on '/'. Further permission checks happen during the actual migration."
24565 },
24566 "protected" : 1,
24567 "returns" : {
24568 "additionalProperties" : 0,
24569 "properties" : {
24570 "socket" : {
24571 "type" : "string"
24572 },
24573 "ticket" : {
24574 "type" : "string"
24575 },
24576 "upid" : {
24577 "type" : "string"
24578 }
24579 }
24580 }
24581 }
24582 },
24583 "leaf" : 1,
24584 "path" : "/nodes/{node}/qemu/{vmid}/mtunnel",
24585 "text" : "mtunnel"
24586 },
24587 {
24588 "info" : {
24589 "GET" : {
24590 "allowtoken" : 1,
24591 "description" : "Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.",
24592 "method" : "GET",
24593 "name" : "mtunnelwebsocket",
24594 "parameters" : {
24595 "additionalProperties" : 0,
24596 "properties" : {
24597 "node" : {
24598 "description" : "The cluster node name.",
24599 "format" : "pve-node",
24600 "type" : "string",
24601 "typetext" : "<string>"
24602 },
24603 "socket" : {
24604 "description" : "unix socket to forward to",
24605 "type" : "string",
24606 "typetext" : "<string>"
24607 },
24608 "ticket" : {
24609 "description" : "ticket return by initial 'mtunnel' API call, or retrieved via 'ticket' tunnel command",
24610 "type" : "string",
24611 "typetext" : "<string>"
24612 },
24613 "vmid" : {
24614 "description" : "The (unique) ID of the VM.",
24615 "format" : "pve-vmid",
8dd66e12
TL
24616 "maximum" : 999999999,
24617 "minimum" : 100,
81a3384d 24618 "type" : "integer",
8dd66e12 24619 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
24620 }
24621 }
24622 },
24623 "permissions" : {
24624 "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.",
24625 "user" : "all"
24626 },
24627 "returns" : {
24628 "properties" : {
24629 "port" : {
24630 "optional" : 1,
24631 "type" : "string"
24632 },
24633 "socket" : {
24634 "optional" : 1,
24635 "type" : "string"
24636 }
24637 },
24638 "type" : "object"
24639 }
24640 }
24641 },
24642 "leaf" : 1,
24643 "path" : "/nodes/{node}/qemu/{vmid}/mtunnelwebsocket",
24644 "text" : "mtunnelwebsocket"
56122987
DM
24645 }
24646 ],
7aacca6f 24647 "info" : {
44660702 24648 "DELETE" : {
e9cd3bd4 24649 "allowtoken" : 1,
d2656385 24650 "description" : "Destroy the VM and all used/owned volumes. Removes any VM specific permissions and firewall rules",
44660702
DM
24651 "method" : "DELETE",
24652 "name" : "destroy_vm",
7aacca6f 24653 "parameters" : {
44660702 24654 "additionalProperties" : 0,
7aacca6f 24655 "properties" : {
d2656385 24656 "destroy-unreferenced-disks" : {
8f4d9c87 24657 "default" : 0,
d2656385
TL
24658 "description" : "If set, destroy additionally all disks not referenced in the config but with a matching VMID from all enabled storages.",
24659 "optional" : 1,
24660 "type" : "boolean",
24661 "typetext" : "<boolean>"
24662 },
7aacca6f 24663 "node" : {
44660702 24664 "description" : "The cluster node name.",
7aacca6f 24665 "format" : "pve-node",
013dc89f
DM
24666 "type" : "string",
24667 "typetext" : "<string>"
44660702 24668 },
1c532546 24669 "purge" : {
d2656385 24670 "description" : "Remove VMID from configurations, like backup & replication jobs and HA.",
1c532546
TL
24671 "optional" : 1,
24672 "type" : "boolean",
24673 "typetext" : "<boolean>"
24674 },
44660702
DM
24675 "skiplock" : {
24676 "description" : "Ignore locks - only root is allowed to use this option.",
24677 "optional" : 1,
013dc89f
DM
24678 "type" : "boolean",
24679 "typetext" : "<boolean>"
7aacca6f
DM
24680 },
24681 "vmid" : {
44660702 24682 "description" : "The (unique) ID of the VM.",
7aacca6f 24683 "format" : "pve-vmid",
8dd66e12
TL
24684 "maximum" : 999999999,
24685 "minimum" : 100,
4bd7df8b 24686 "type" : "integer",
8dd66e12 24687 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 24688 }
44660702 24689 }
7aacca6f 24690 },
7aacca6f
DM
24691 "permissions" : {
24692 "check" : [
24693 "perm",
24694 "/vms/{vmid}",
24695 [
24696 "VM.Allocate"
24697 ]
24698 ]
24699 },
44660702
DM
24700 "protected" : 1,
24701 "proxyto" : "node",
7aacca6f
DM
24702 "returns" : {
24703 "type" : "string"
44660702
DM
24704 }
24705 },
24706 "GET" : {
e9cd3bd4 24707 "allowtoken" : 1,
44660702
DM
24708 "description" : "Directory index",
24709 "method" : "GET",
24710 "name" : "vmdiridx",
7aacca6f 24711 "parameters" : {
44660702 24712 "additionalProperties" : 0,
7aacca6f 24713 "properties" : {
7aacca6f 24714 "node" : {
7aacca6f 24715 "description" : "The cluster node name.",
44660702 24716 "format" : "pve-node",
013dc89f
DM
24717 "type" : "string",
24718 "typetext" : "<string>"
44660702
DM
24719 },
24720 "vmid" : {
24721 "description" : "The (unique) ID of the VM.",
24722 "format" : "pve-vmid",
8dd66e12
TL
24723 "maximum" : 999999999,
24724 "minimum" : 100,
4bd7df8b 24725 "type" : "integer",
8dd66e12 24726 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 24727 }
44660702 24728 }
7aacca6f 24729 },
44660702
DM
24730 "permissions" : {
24731 "user" : "all"
24732 },
24733 "proxyto" : "node",
24734 "returns" : {
24735 "items" : {
24736 "properties" : {
24737 "subdir" : {
24738 "type" : "string"
24739 }
24740 },
24741 "type" : "object"
24742 },
24743 "links" : [
24744 {
24745 "href" : "{subdir}",
24746 "rel" : "child"
24747 }
24748 ],
24749 "type" : "array"
24750 }
7aacca6f 24751 }
44660702
DM
24752 },
24753 "leaf" : 0,
24754 "path" : "/nodes/{node}/qemu/{vmid}",
24755 "text" : "{vmid}"
56122987
DM
24756 }
24757 ],
24758 "info" : {
44660702 24759 "GET" : {
e9cd3bd4 24760 "allowtoken" : 1,
44660702
DM
24761 "description" : "Virtual machine index (per node).",
24762 "method" : "GET",
24763 "name" : "vmlist",
56122987 24764 "parameters" : {
44660702 24765 "additionalProperties" : 0,
56122987 24766 "properties" : {
44660702
DM
24767 "full" : {
24768 "description" : "Determine the full status of active VMs.",
56122987 24769 "optional" : 1,
013dc89f
DM
24770 "type" : "boolean",
24771 "typetext" : "<boolean>"
56122987 24772 },
44660702
DM
24773 "node" : {
24774 "description" : "The cluster node name.",
24775 "format" : "pve-node",
013dc89f
DM
24776 "type" : "string",
24777 "typetext" : "<string>"
44660702
DM
24778 }
24779 }
24780 },
24781 "permissions" : {
24782 "description" : "Only list VMs where you have VM.Audit permissons on /vms/<vmid>.",
24783 "user" : "all"
24784 },
24785 "protected" : 1,
24786 "proxyto" : "node",
24787 "returns" : {
24788 "items" : {
4d47f125
TL
24789 "properties" : {
24790 "cpus" : {
24791 "description" : "Maximum usable CPUs.",
24792 "optional" : 1,
24793 "type" : "number"
24794 },
95895385
TL
24795 "lock" : {
24796 "description" : "The current config lock, if any.",
24797 "optional" : 1,
24798 "type" : "string"
24799 },
4d47f125
TL
24800 "maxdisk" : {
24801 "description" : "Root disk size in bytes.",
24802 "optional" : 1,
24803 "renderer" : "bytes",
24804 "type" : "integer"
24805 },
24806 "maxmem" : {
24807 "description" : "Maximum memory in bytes.",
24808 "optional" : 1,
24809 "renderer" : "bytes",
24810 "type" : "integer"
24811 },
24812 "name" : {
24813 "description" : "VM name.",
24814 "optional" : 1,
24815 "type" : "string"
24816 },
24817 "pid" : {
24818 "description" : "PID of running qemu process.",
24819 "optional" : 1,
24820 "type" : "integer"
24821 },
24822 "qmpstatus" : {
499c9b7f 24823 "description" : "VM run state from the 'query-status' QMP monitor command.",
4d47f125
TL
24824 "optional" : 1,
24825 "type" : "string"
24826 },
d2656385
TL
24827 "running-machine" : {
24828 "description" : "The currently running machine type (if running).",
24829 "optional" : 1,
24830 "type" : "string"
24831 },
24832 "running-qemu" : {
24833 "description" : "The currently running QEMU version (if running).",
24834 "optional" : 1,
24835 "type" : "string"
24836 },
4d47f125 24837 "status" : {
9d2e98ed 24838 "description" : "QEMU process status.",
4d47f125
TL
24839 "enum" : [
24840 "stopped",
24841 "running"
24842 ],
24843 "type" : "string"
24844 },
5c1699e5
TL
24845 "tags" : {
24846 "description" : "The current configured tags, if any",
24847 "optional" : 1,
24848 "type" : "string"
24849 },
4d47f125
TL
24850 "uptime" : {
24851 "description" : "Uptime.",
24852 "optional" : 1,
24853 "renderer" : "duration",
24854 "type" : "integer"
24855 },
24856 "vmid" : {
24857 "description" : "The (unique) ID of the VM.",
24858 "format" : "pve-vmid",
8dd66e12
TL
24859 "maximum" : 999999999,
24860 "minimum" : 100,
4d47f125
TL
24861 "type" : "integer"
24862 }
24863 },
44660702
DM
24864 "type" : "object"
24865 },
24866 "links" : [
24867 {
24868 "href" : "{vmid}",
24869 "rel" : "child"
24870 }
24871 ],
24872 "type" : "array"
24873 }
24874 },
24875 "POST" : {
e9cd3bd4 24876 "allowtoken" : 1,
44660702
DM
24877 "description" : "Create or restore a virtual machine.",
24878 "method" : "POST",
24879 "name" : "create_vm",
24880 "parameters" : {
24881 "additionalProperties" : 0,
24882 "properties" : {
7aacca6f 24883 "acpi" : {
7aacca6f 24884 "default" : 1,
44660702 24885 "description" : "Enable/disable ACPI.",
56122987 24886 "optional" : 1,
013dc89f
DM
24887 "type" : "boolean",
24888 "typetext" : "<boolean>"
56122987 24889 },
4e7f60c2 24890 "affinity" : {
81a3384d 24891 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
24892 "format" : "pve-cpuset",
24893 "optional" : 1,
24894 "type" : "string",
24895 "typetext" : "<string>"
24896 },
44660702 24897 "agent" : {
9d2e98ed 24898 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
24899 "format" : {
24900 "enabled" : {
24901 "default" : 0,
24902 "default_key" : 1,
9d2e98ed
TL
24903 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
24904 "type" : "boolean"
24905 },
24906 "freeze-fs-on-backup" : {
24907 "default" : 1,
24908 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
24909 "optional" : 1,
4d47f125
TL
24910 "type" : "boolean"
24911 },
24912 "fstrim_cloned_disks" : {
24913 "default" : 0,
d2656385 24914 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
24915 "optional" : 1,
24916 "type" : "boolean"
5c1699e5
TL
24917 },
24918 "type" : {
24919 "default" : "virtio",
24920 "description" : "Select the agent type",
24921 "enum" : [
24922 "virtio",
24923 "isa"
24924 ],
24925 "optional" : 1,
24926 "type" : "string"
4d47f125
TL
24927 }
24928 },
7aacca6f 24929 "optional" : 1,
4d47f125 24930 "type" : "string",
9d2e98ed 24931 "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
56122987 24932 },
e2d681b3
TL
24933 "arch" : {
24934 "description" : "Virtual processor architecture. Defaults to the host.",
24935 "enum" : [
24936 "x86_64",
24937 "aarch64"
24938 ],
24939 "optional" : 1,
24940 "type" : "string"
24941 },
44660702 24942 "archive" : {
c5aa7e14 24943 "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 24944 "maxLength" : 255,
56122987 24945 "optional" : 1,
013dc89f
DM
24946 "type" : "string",
24947 "typetext" : "<string>"
56122987 24948 },
44660702 24949 "args" : {
c2993fe5 24950 "description" : "Arbitrary arguments passed to kvm.",
56122987 24951 "optional" : 1,
c2993fe5 24952 "type" : "string",
013dc89f 24953 "typetext" : "<string>",
159464a9 24954 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -smbios 'type=0,vendor=FOO'\n\nNOTE: this option is for experts only.\n"
56122987 24955 },
1c532546
TL
24956 "audio0" : {
24957 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
24958 "format" : {
24959 "device" : {
24960 "description" : "Configure an audio device.",
24961 "enum" : [
24962 "ich9-intel-hda",
24963 "intel-hda",
24964 "AC97"
24965 ],
24966 "type" : "string"
24967 },
24968 "driver" : {
24969 "default" : "spice",
24970 "description" : "Driver backend for the audio device.",
24971 "enum" : [
d2656385
TL
24972 "spice",
24973 "none"
1c532546
TL
24974 ],
24975 "optional" : 1,
24976 "type" : "string"
24977 }
24978 },
24979 "optional" : 1,
24980 "type" : "string",
d2656385 24981 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 24982 },
44660702 24983 "autostart" : {
7aacca6f 24984 "default" : 0,
44660702
DM
24985 "description" : "Automatic restart after crash (currently ignored).",
24986 "optional" : 1,
013dc89f
DM
24987 "type" : "boolean",
24988 "typetext" : "<boolean>"
7aacca6f 24989 },
44660702 24990 "balloon" : {
9d2e98ed 24991 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
44660702 24992 "minimum" : 0,
56122987 24993 "optional" : 1,
4bd7df8b 24994 "type" : "integer",
013dc89f 24995 "typetext" : "<integer> (0 - N)"
56122987 24996 },
44660702
DM
24997 "bios" : {
24998 "default" : "seabios",
24999 "description" : "Select BIOS implementation.",
25000 "enum" : [
25001 "seabios",
25002 "ovmf"
25003 ],
56122987 25004 "optional" : 1,
44660702 25005 "type" : "string"
56122987 25006 },
44660702 25007 "boot" : {
5370fa8c 25008 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 25009 "format" : "pve-qm-boot",
56122987 25010 "optional" : 1,
4772952b
TL
25011 "type" : "string",
25012 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
56122987 25013 },
7aacca6f 25014 "bootdisk" : {
4772952b 25015 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
25016 "format" : "pve-qm-bootdisk",
25017 "optional" : 1,
7aacca6f 25018 "pattern" : "(ide|sata|scsi|virtio)\\d+",
44660702
DM
25019 "type" : "string"
25020 },
27a7acb2 25021 "bwlimit" : {
95895385
TL
25022 "default" : "restore limit from datacenter or storage config",
25023 "description" : "Override I/O bandwidth limit (in KiB/s).",
27a7acb2
DM
25024 "minimum" : "0",
25025 "optional" : 1,
25026 "type" : "integer",
25027 "typetext" : "<integer> (0 - N)"
25028 },
44660702
DM
25029 "cdrom" : {
25030 "description" : "This is an alias for option -ide2",
de0983cb 25031 "format" : "pve-qm-ide",
56122987 25032 "optional" : 1,
44660702 25033 "type" : "string",
013dc89f 25034 "typetext" : "<volume>"
56122987 25035 },
95895385
TL
25036 "cicustom" : {
25037 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
25038 "format" : "pve-qm-cicustom",
25039 "optional" : 1,
25040 "type" : "string",
5370fa8c 25041 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 25042 },
27a7acb2
DM
25043 "cipassword" : {
25044 "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.",
25045 "optional" : 1,
25046 "type" : "string",
25047 "typetext" : "<string>"
25048 },
25049 "citype" : {
25050 "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.",
25051 "enum" : [
25052 "configdrive2",
d2656385
TL
25053 "nocloud",
25054 "opennebula"
27a7acb2
DM
25055 ],
25056 "optional" : 1,
25057 "type" : "string"
25058 },
159464a9 25059 "ciupgrade" : {
c8eee6ff 25060 "default" : 1,
159464a9
TL
25061 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
25062 "optional" : 1,
25063 "type" : "boolean",
25064 "typetext" : "<boolean>"
25065 },
27a7acb2
DM
25066 "ciuser" : {
25067 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
25068 "optional" : 1,
25069 "type" : "string",
25070 "typetext" : "<string>"
25071 },
44660702
DM
25072 "cores" : {
25073 "default" : 1,
25074 "description" : "The number of cores per socket.",
7aacca6f 25075 "minimum" : 1,
44660702 25076 "optional" : 1,
4bd7df8b 25077 "type" : "integer",
013dc89f 25078 "typetext" : "<integer> (1 - N)"
7aacca6f 25079 },
44660702
DM
25080 "cpu" : {
25081 "description" : "Emulated CPU type.",
c5aa7e14 25082 "format" : "pve-vm-cpu-conf",
56122987 25083 "optional" : 1,
4bd7df8b 25084 "type" : "string",
04d22a9f 25085 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
56122987 25086 },
44660702 25087 "cpulimit" : {
7aacca6f 25088 "default" : 0,
c2993fe5 25089 "description" : "Limit of CPU usage.",
44660702
DM
25090 "maximum" : 128,
25091 "minimum" : 0,
7aacca6f 25092 "optional" : 1,
c2993fe5 25093 "type" : "number",
013dc89f 25094 "typetext" : "<number> (0 - 128)",
c2993fe5 25095 "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
25096 },
25097 "cpuunits" : {
5370fa8c
TL
25098 "default" : "cgroup v1: 1024, cgroup v2: 100",
25099 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 25100 "maximum" : 262144,
7af2edf9 25101 "minimum" : 1,
44660702 25102 "optional" : 1,
c2993fe5 25103 "type" : "integer",
7af2edf9 25104 "typetext" : "<integer> (1 - 262144)",
2489d6df 25105 "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
25106 },
25107 "description" : {
8f4d9c87
TL
25108 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
25109 "maxLength" : 8192,
56122987 25110 "optional" : 1,
013dc89f
DM
25111 "type" : "string",
25112 "typetext" : "<string>"
44660702 25113 },
4d47f125 25114 "efidisk0" : {
9d2e98ed 25115 "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 25116 "format" : {
5370fa8c
TL
25117 "efitype" : {
25118 "default" : "2m",
9d2e98ed 25119 "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified. Ignored for VMs with arch=aarc64 (ARM).",
5370fa8c
TL
25120 "enum" : [
25121 "2m",
25122 "4m"
25123 ],
25124 "optional" : 1,
25125 "type" : "string"
25126 },
4d47f125
TL
25127 "file" : {
25128 "default_key" : 1,
25129 "description" : "The drive's backing volume.",
25130 "format" : "pve-volume-id-or-qm-path",
25131 "format_description" : "volume",
25132 "type" : "string"
25133 },
25134 "format" : {
25135 "description" : "The drive's backing file's data format.",
25136 "enum" : [
25137 "raw",
25138 "cow",
25139 "qcow",
25140 "qed",
25141 "qcow2",
25142 "vmdk",
25143 "cloop"
25144 ],
25145 "optional" : 1,
25146 "type" : "string"
25147 },
7af2edf9
TL
25148 "import-from" : {
25149 "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!",
25150 "format" : "pve-volume-id-or-absolute-path",
25151 "format_description" : "source volume",
25152 "optional" : 1,
25153 "type" : "string"
25154 },
5370fa8c
TL
25155 "pre-enrolled-keys" : {
25156 "default" : 0,
25157 "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.",
25158 "optional" : 1,
25159 "type" : "boolean"
25160 },
4d47f125
TL
25161 "size" : {
25162 "description" : "Disk size. This is purely informational and has no effect.",
25163 "format" : "disk-size",
25164 "format_description" : "DiskSize",
25165 "optional" : 1,
25166 "type" : "string"
25167 },
25168 "volume" : {
25169 "alias" : "file"
25170 }
25171 },
25172 "optional" : 1,
25173 "type" : "string",
7af2edf9 25174 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125 25175 },
44660702
DM
25176 "force" : {
25177 "description" : "Allow to overwrite existing VM.",
25178 "optional" : 1,
25179 "requires" : "archive",
013dc89f
DM
25180 "type" : "boolean",
25181 "typetext" : "<boolean>"
44660702
DM
25182 },
25183 "freeze" : {
25184 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
25185 "optional" : 1,
013dc89f
DM
25186 "type" : "boolean",
25187 "typetext" : "<boolean>"
44660702 25188 },
5f26e15b
TL
25189 "hookscript" : {
25190 "description" : "Script that will be executed during various steps in the vms lifetime.",
25191 "format" : "pve-volume-id",
25192 "optional" : 1,
25193 "type" : "string",
25194 "typetext" : "<string>"
25195 },
44660702 25196 "hostpci[n]" : {
c2993fe5 25197 "description" : "Map host PCI devices into guest.",
44660702
DM
25198 "format" : "pve-qm-hostpci",
25199 "optional" : 1,
57b78691 25200 "type" : "string",
499c9b7f 25201 "typetext" : "[[host=]<HOSTPCIID[;HOSTPCIID2...]>] [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
bb4c8cf8 25202 "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
25203 },
25204 "hotplug" : {
25205 "default" : "network,disk,usb",
4e7f60c2 25206 "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
25207 "format" : "pve-hotplug-features",
25208 "optional" : 1,
013dc89f
DM
25209 "type" : "string",
25210 "typetext" : "<string>"
7aacca6f 25211 },
4bd7df8b
DM
25212 "hugepages" : {
25213 "description" : "Enable/disable hugepages memory.",
25214 "enum" : [
25215 "any",
25216 "2",
25217 "1024"
25218 ],
25219 "optional" : 1,
25220 "type" : "string"
25221 },
7aacca6f 25222 "ide[n]" : {
7af2edf9 25223 "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 25224 "format" : {
44660702
DM
25225 "aio" : {
25226 "description" : "AIO type to use.",
25227 "enum" : [
25228 "native",
8f4d9c87
TL
25229 "threads",
25230 "io_uring"
44660702 25231 ],
44660702
DM
25232 "optional" : 1,
25233 "type" : "string"
25234 },
25235 "backup" : {
25236 "description" : "Whether the drive should be included when making backups.",
44660702
DM
25237 "optional" : 1,
25238 "type" : "boolean"
25239 },
25240 "bps" : {
de0983cb 25241 "description" : "Maximum r/w speed in bytes per second.",
7aacca6f 25242 "format_description" : "bps",
56122987 25243 "optional" : 1,
44660702 25244 "type" : "integer"
56122987 25245 },
de0983cb
DM
25246 "bps_max_length" : {
25247 "description" : "Maximum length of I/O bursts in seconds.",
25248 "format_description" : "seconds",
25249 "minimum" : 1,
25250 "optional" : 1,
25251 "type" : "integer"
25252 },
44660702 25253 "bps_rd" : {
de0983cb 25254 "description" : "Maximum read speed in bytes per second.",
44660702 25255 "format_description" : "bps",
56122987 25256 "optional" : 1,
44660702 25257 "type" : "integer"
56122987 25258 },
de0983cb 25259 "bps_rd_length" : {
5d9c884c
DM
25260 "alias" : "bps_rd_max_length"
25261 },
25262 "bps_rd_max_length" : {
de0983cb
DM
25263 "description" : "Maximum length of read I/O bursts in seconds.",
25264 "format_description" : "seconds",
25265 "minimum" : 1,
25266 "optional" : 1,
25267 "type" : "integer"
25268 },
44660702 25269 "bps_wr" : {
de0983cb 25270 "description" : "Maximum write speed in bytes per second.",
44660702 25271 "format_description" : "bps",
56122987 25272 "optional" : 1,
44660702 25273 "type" : "integer"
56122987 25274 },
de0983cb 25275 "bps_wr_length" : {
5d9c884c
DM
25276 "alias" : "bps_wr_max_length"
25277 },
25278 "bps_wr_max_length" : {
de0983cb
DM
25279 "description" : "Maximum length of write I/O bursts in seconds.",
25280 "format_description" : "seconds",
25281 "minimum" : 1,
25282 "optional" : 1,
25283 "type" : "integer"
25284 },
44660702
DM
25285 "cache" : {
25286 "description" : "The drive's cache mode",
56122987 25287 "enum" : [
7aacca6f 25288 "none",
44660702
DM
25289 "writethrough",
25290 "writeback",
25291 "unsafe",
25292 "directsync"
56122987 25293 ],
56122987 25294 "optional" : 1,
44660702 25295 "type" : "string"
56122987 25296 },
44660702
DM
25297 "cyls" : {
25298 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
25299 "optional" : 1,
25300 "type" : "integer"
7aacca6f 25301 },
44660702
DM
25302 "detect_zeroes" : {
25303 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 25304 "optional" : 1,
44660702 25305 "type" : "boolean"
56122987 25306 },
44660702
DM
25307 "discard" : {
25308 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
25309 "enum" : [
25310 "ignore",
25311 "on"
25312 ],
56122987 25313 "optional" : 1,
44660702 25314 "type" : "string"
56122987 25315 },
7aacca6f 25316 "file" : {
44660702 25317 "default_key" : 1,
7aacca6f 25318 "description" : "The drive's backing volume.",
7aacca6f
DM
25319 "format" : "pve-volume-id-or-qm-path",
25320 "format_description" : "volume",
7aacca6f 25321 "type" : "string"
56122987 25322 },
44660702
DM
25323 "format" : {
25324 "description" : "The drive's backing file's data format.",
56122987 25325 "enum" : [
44660702
DM
25326 "raw",
25327 "cow",
25328 "qcow",
25329 "qed",
25330 "qcow2",
25331 "vmdk",
25332 "cloop"
7aacca6f 25333 ],
7aacca6f
DM
25334 "optional" : 1,
25335 "type" : "string"
56122987 25336 },
44660702
DM
25337 "heads" : {
25338 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 25339 "optional" : 1,
44660702 25340 "type" : "integer"
56122987 25341 },
7af2edf9
TL
25342 "import-from" : {
25343 "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!",
25344 "format" : "pve-volume-id-or-absolute-path",
25345 "format_description" : "source volume",
25346 "optional" : 1,
25347 "type" : "string"
25348 },
44660702 25349 "iops" : {
de0983cb 25350 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 25351 "format_description" : "iops",
56122987 25352 "optional" : 1,
44660702 25353 "type" : "integer"
56122987 25354 },
44660702 25355 "iops_max" : {
de0983cb 25356 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 25357 "format_description" : "iops",
56122987 25358 "optional" : 1,
44660702 25359 "type" : "integer"
56122987 25360 },
de0983cb
DM
25361 "iops_max_length" : {
25362 "description" : "Maximum length of I/O bursts in seconds.",
25363 "format_description" : "seconds",
25364 "minimum" : 1,
25365 "optional" : 1,
25366 "type" : "integer"
25367 },
7aacca6f 25368 "iops_rd" : {
de0983cb 25369 "description" : "Maximum read I/O in operations per second.",
44660702
DM
25370 "format_description" : "iops",
25371 "optional" : 1,
25372 "type" : "integer"
7aacca6f 25373 },
de0983cb 25374 "iops_rd_length" : {
5d9c884c 25375 "alias" : "iops_rd_max_length"
de0983cb 25376 },
44660702 25377 "iops_rd_max" : {
de0983cb 25378 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 25379 "format_description" : "iops",
56122987 25380 "optional" : 1,
44660702 25381 "type" : "integer"
56122987 25382 },
5d9c884c
DM
25383 "iops_rd_max_length" : {
25384 "description" : "Maximum length of read I/O bursts in seconds.",
25385 "format_description" : "seconds",
25386 "minimum" : 1,
25387 "optional" : 1,
25388 "type" : "integer"
25389 },
44660702 25390 "iops_wr" : {
de0983cb 25391 "description" : "Maximum write I/O in operations per second.",
44660702 25392 "format_description" : "iops",
56122987 25393 "optional" : 1,
44660702 25394 "type" : "integer"
7aacca6f 25395 },
de0983cb 25396 "iops_wr_length" : {
5d9c884c 25397 "alias" : "iops_wr_max_length"
de0983cb 25398 },
44660702 25399 "iops_wr_max" : {
de0983cb 25400 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 25401 "format_description" : "iops",
7aacca6f 25402 "optional" : 1,
44660702 25403 "type" : "integer"
56122987 25404 },
5d9c884c
DM
25405 "iops_wr_max_length" : {
25406 "description" : "Maximum length of write I/O bursts in seconds.",
25407 "format_description" : "seconds",
25408 "minimum" : 1,
25409 "optional" : 1,
25410 "type" : "integer"
25411 },
44660702 25412 "mbps" : {
de0983cb 25413 "description" : "Maximum r/w speed in megabytes per second.",
44660702 25414 "format_description" : "mbps",
7aacca6f 25415 "optional" : 1,
44660702 25416 "type" : "number"
56122987 25417 },
44660702 25418 "mbps_max" : {
de0983cb 25419 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
7aacca6f 25420 "format_description" : "mbps",
56122987 25421 "optional" : 1,
44660702 25422 "type" : "number"
56122987 25423 },
44660702 25424 "mbps_rd" : {
de0983cb 25425 "description" : "Maximum read speed in megabytes per second.",
44660702 25426 "format_description" : "mbps",
7aacca6f 25427 "optional" : 1,
44660702 25428 "type" : "number"
7aacca6f 25429 },
44660702 25430 "mbps_rd_max" : {
de0983cb 25431 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 25432 "format_description" : "mbps",
56122987 25433 "optional" : 1,
44660702 25434 "type" : "number"
56122987 25435 },
44660702 25436 "mbps_wr" : {
de0983cb 25437 "description" : "Maximum write speed in megabytes per second.",
44660702 25438 "format_description" : "mbps",
7aacca6f 25439 "optional" : 1,
44660702 25440 "type" : "number"
56122987 25441 },
44660702 25442 "mbps_wr_max" : {
de0983cb 25443 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 25444 "format_description" : "mbps",
56122987 25445 "optional" : 1,
44660702 25446 "type" : "number"
7aacca6f
DM
25447 },
25448 "media" : {
44660702
DM
25449 "default" : "disk",
25450 "description" : "The drive's media type.",
56122987 25451 "enum" : [
7aacca6f
DM
25452 "cdrom",
25453 "disk"
56122987 25454 ],
56122987 25455 "optional" : 1,
44660702 25456 "type" : "string"
56122987 25457 },
44660702
DM
25458 "model" : {
25459 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
25460 "format" : "urlencoded",
25461 "format_description" : "model",
25462 "maxLength" : 120,
56122987 25463 "optional" : 1,
44660702 25464 "type" : "string"
56122987 25465 },
5d9c884c
DM
25466 "replicate" : {
25467 "default" : 1,
25468 "description" : "Whether the drive should considered for replication jobs.",
25469 "optional" : 1,
25470 "type" : "boolean"
25471 },
7aacca6f 25472 "rerror" : {
7aacca6f
DM
25473 "description" : "Read error action.",
25474 "enum" : [
25475 "ignore",
25476 "report",
25477 "stop"
44660702 25478 ],
44660702
DM
25479 "optional" : 1,
25480 "type" : "string"
56122987 25481 },
44660702
DM
25482 "secs" : {
25483 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 25484 "optional" : 1,
44660702
DM
25485 "type" : "integer"
25486 },
25487 "serial" : {
25488 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
25489 "format" : "urlencoded",
25490 "format_description" : "serial",
25491 "maxLength" : 60,
25492 "optional" : 1,
25493 "type" : "string"
25494 },
27a7acb2
DM
25495 "shared" : {
25496 "default" : 0,
25497 "description" : "Mark this locally-managed volume as available on all nodes",
25498 "optional" : 1,
25499 "type" : "boolean",
25500 "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!"
25501 },
44660702
DM
25502 "size" : {
25503 "description" : "Disk size. This is purely informational and has no effect.",
25504 "format" : "disk-size",
f004f5b9 25505 "format_description" : "DiskSize",
44660702
DM
25506 "optional" : 1,
25507 "type" : "string"
7aacca6f
DM
25508 },
25509 "snapshot" : {
27a7acb2 25510 "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 25511 "optional" : 1,
44660702 25512 "type" : "boolean"
7aacca6f 25513 },
25203dc1
NC
25514 "ssd" : {
25515 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
25516 "optional" : 1,
25517 "type" : "boolean"
25518 },
44660702
DM
25519 "trans" : {
25520 "description" : "Force disk geometry bios translation mode.",
25521 "enum" : [
25522 "none",
25523 "lba",
25524 "auto"
25525 ],
7aacca6f 25526 "optional" : 1,
44660702
DM
25527 "type" : "string"
25528 },
25529 "volume" : {
25530 "alias" : "file"
25531 },
25532 "werror" : {
25533 "description" : "Write error action.",
25534 "enum" : [
25535 "enospc",
25536 "ignore",
25537 "report",
25538 "stop"
25539 ],
44660702
DM
25540 "optional" : 1,
25541 "type" : "string"
95895385
TL
25542 },
25543 "wwn" : {
25544 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
25545 "format_description" : "wwn",
25546 "optional" : 1,
25547 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
25548 "type" : "string"
56122987
DM
25549 }
25550 },
56122987 25551 "optional" : 1,
4bd7df8b 25552 "type" : "string",
7af2edf9 25553 "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
25554 },
25555 "ipconfig[n]" : {
d2656385 25556 "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
25557 "format" : "pve-qm-ipconfig",
25558 "optional" : 1,
25559 "type" : "string",
25560 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
56122987 25561 },
95895385
TL
25562 "ivshmem" : {
25563 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
25564 "format" : {
25565 "name" : {
25566 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
25567 "format_description" : "string",
25568 "optional" : 1,
25569 "pattern" : "[a-zA-Z0-9\\-]+",
25570 "type" : "string"
25571 },
25572 "size" : {
25573 "description" : "The size of the file in MB.",
25574 "minimum" : 1,
25575 "type" : "integer"
25576 }
25577 },
25578 "optional" : 1,
25579 "type" : "string",
25580 "typetext" : "size=<integer> [,name=<string>]"
25581 },
4772952b
TL
25582 "keephugepages" : {
25583 "default" : 0,
25584 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
25585 "optional" : 1,
25586 "type" : "boolean",
25587 "typetext" : "<boolean>"
25588 },
56122987 25589 "keyboard" : {
35a75dd3 25590 "default" : null,
7af2edf9 25591 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
56122987 25592 "enum" : [
44660702
DM
25593 "de",
25594 "de-ch",
7aacca6f 25595 "da",
56122987 25596 "en-gb",
44660702
DM
25597 "en-us",
25598 "es",
25599 "fi",
25600 "fr",
25601 "fr-be",
25602 "fr-ca",
25603 "fr-ch",
25604 "hu",
7aacca6f 25605 "is",
44660702
DM
25606 "it",
25607 "ja",
25608 "lt",
56122987 25609 "mk",
7aacca6f 25610 "nl",
56122987 25611 "no",
44660702 25612 "pl",
7aacca6f 25613 "pt",
44660702
DM
25614 "pt-br",
25615 "sv",
25616 "sl",
25617 "tr"
56122987 25618 ],
44660702
DM
25619 "optional" : 1,
25620 "type" : "string"
56122987 25621 },
44660702
DM
25622 "kvm" : {
25623 "default" : 1,
25624 "description" : "Enable/disable KVM hardware virtualization.",
7aacca6f 25625 "optional" : 1,
013dc89f
DM
25626 "type" : "boolean",
25627 "typetext" : "<boolean>"
7aacca6f 25628 },
d2656385
TL
25629 "live-restore" : {
25630 "description" : "Start the VM immediately from the backup and restore in background. PBS only.",
25631 "optional" : 1,
25632 "requires" : "archive",
25633 "type" : "boolean",
25634 "typetext" : "<boolean>"
25635 },
44660702 25636 "localtime" : {
5370fa8c 25637 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
56122987 25638 "optional" : 1,
013dc89f
DM
25639 "type" : "boolean",
25640 "typetext" : "<boolean>"
44660702
DM
25641 },
25642 "lock" : {
25643 "description" : "Lock/unlock the VM.",
7aacca6f 25644 "enum" : [
7aacca6f 25645 "backup",
5f26e15b
TL
25646 "clone",
25647 "create",
25648 "migrate",
25649 "rollback",
7aacca6f 25650 "snapshot",
95895385
TL
25651 "snapshot-delete",
25652 "suspending",
25653 "suspended"
7aacca6f 25654 ],
44660702
DM
25655 "optional" : 1,
25656 "type" : "string"
56122987 25657 },
44660702 25658 "machine" : {
9d2e98ed 25659 "description" : "Specifies the QEMU machine type.",
44660702
DM
25660 "maxLength" : 40,
25661 "optional" : 1,
5c1699e5 25662 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702
DM
25663 "type" : "string"
25664 },
25665 "memory" : {
25666 "default" : 512,
9d2e98ed 25667 "description" : "Amount of RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
44660702
DM
25668 "minimum" : 16,
25669 "optional" : 1,
4bd7df8b 25670 "type" : "integer",
013dc89f 25671 "typetext" : "<integer> (16 - N)"
44660702
DM
25672 },
25673 "migrate_downtime" : {
25674 "default" : 0.1,
25675 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
25676 "minimum" : 0,
25677 "optional" : 1,
4bd7df8b 25678 "type" : "number",
013dc89f 25679 "typetext" : "<number> (0 - N)"
44660702
DM
25680 },
25681 "migrate_speed" : {
56122987 25682 "default" : 0,
44660702
DM
25683 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
25684 "minimum" : 0,
56122987 25685 "optional" : 1,
4bd7df8b 25686 "type" : "integer",
013dc89f 25687 "typetext" : "<integer> (0 - N)"
56122987 25688 },
27a7acb2
DM
25689 "name" : {
25690 "description" : "Set a name for the VM. Only used on the configuration web interface.",
25691 "format" : "dns-name",
25692 "optional" : 1,
25693 "type" : "string",
25694 "typetext" : "<string>"
25695 },
25696 "nameserver" : {
de786b48 25697 "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 25698 "format" : "address-list",
44660702 25699 "optional" : 1,
013dc89f
DM
25700 "type" : "string",
25701 "typetext" : "<string>"
44660702
DM
25702 },
25703 "net[n]" : {
c2993fe5 25704 "description" : "Specify network devices.",
f004f5b9
DM
25705 "format" : {
25706 "bridge" : {
c2993fe5 25707 "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 25708 "format" : "pve-bridge-id",
f004f5b9
DM
25709 "format_description" : "bridge",
25710 "optional" : 1,
25711 "type" : "string"
25712 },
25713 "e1000" : {
25714 "alias" : "macaddr",
25715 "keyAlias" : "model"
25716 },
25717 "e1000-82540em" : {
25718 "alias" : "macaddr",
25719 "keyAlias" : "model"
25720 },
25721 "e1000-82544gc" : {
25722 "alias" : "macaddr",
25723 "keyAlias" : "model"
25724 },
25725 "e1000-82545em" : {
25726 "alias" : "macaddr",
25727 "keyAlias" : "model"
25728 },
5370fa8c
TL
25729 "e1000e" : {
25730 "alias" : "macaddr",
25731 "keyAlias" : "model"
25732 },
f004f5b9
DM
25733 "firewall" : {
25734 "description" : "Whether this interface should be protected by the firewall.",
25735 "optional" : 1,
25736 "type" : "boolean"
25737 },
25738 "i82551" : {
25739 "alias" : "macaddr",
25740 "keyAlias" : "model"
25741 },
25742 "i82557b" : {
25743 "alias" : "macaddr",
25744 "keyAlias" : "model"
25745 },
25746 "i82559er" : {
25747 "alias" : "macaddr",
25748 "keyAlias" : "model"
25749 },
25750 "link_down" : {
c2993fe5 25751 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
25752 "optional" : 1,
25753 "type" : "boolean"
25754 },
25755 "macaddr" : {
c2993fe5 25756 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 25757 "format" : "mac-addr",
f004f5b9 25758 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 25759 "optional" : 1,
95895385
TL
25760 "type" : "string",
25761 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
25762 },
25763 "model" : {
25764 "default_key" : 1,
c2993fe5 25765 "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 25766 "enum" : [
f004f5b9 25767 "e1000",
5370fa8c
TL
25768 "e1000-82540em",
25769 "e1000-82544gc",
25770 "e1000-82545em",
25771 "e1000e",
f004f5b9
DM
25772 "i82551",
25773 "i82557b",
25774 "i82559er",
5370fa8c
TL
25775 "ne2k_isa",
25776 "ne2k_pci",
25777 "pcnet",
25778 "rtl8139",
25779 "virtio",
25780 "vmxnet3"
f004f5b9 25781 ],
f004f5b9
DM
25782 "type" : "string"
25783 },
ac70d7d1
TL
25784 "mtu" : {
25785 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
25786 "maximum" : 65520,
25787 "minimum" : 1,
25788 "optional" : 1,
25789 "type" : "integer"
25790 },
f004f5b9
DM
25791 "ne2k_isa" : {
25792 "alias" : "macaddr",
25793 "keyAlias" : "model"
25794 },
25795 "ne2k_pci" : {
25796 "alias" : "macaddr",
25797 "keyAlias" : "model"
25798 },
25799 "pcnet" : {
25800 "alias" : "macaddr",
25801 "keyAlias" : "model"
25802 },
25803 "queues" : {
25804 "description" : "Number of packet queues to be used on the device.",
81a3384d 25805 "maximum" : 64,
f004f5b9
DM
25806 "minimum" : 0,
25807 "optional" : 1,
25808 "type" : "integer"
25809 },
25810 "rate" : {
c2993fe5 25811 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
25812 "minimum" : 0,
25813 "optional" : 1,
25814 "type" : "number"
25815 },
25816 "rtl8139" : {
25817 "alias" : "macaddr",
25818 "keyAlias" : "model"
25819 },
25820 "tag" : {
25821 "description" : "VLAN tag to apply to packets on this interface.",
25822 "maximum" : 4094,
c2993fe5 25823 "minimum" : 1,
f004f5b9
DM
25824 "optional" : 1,
25825 "type" : "integer"
25826 },
25827 "trunks" : {
25828 "description" : "VLAN trunks to pass through this interface.",
25829 "format_description" : "vlanid[;vlanid...]",
25830 "optional" : 1,
25831 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
25832 "type" : "string"
25833 },
25834 "virtio" : {
25835 "alias" : "macaddr",
25836 "keyAlias" : "model"
25837 },
25838 "vmxnet3" : {
25839 "alias" : "macaddr",
25840 "keyAlias" : "model"
25841 }
25842 },
44660702 25843 "optional" : 1,
4bd7df8b 25844 "type" : "string",
ac70d7d1 25845 "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
25846 },
25847 "node" : {
25848 "description" : "The cluster node name.",
25849 "format" : "pve-node",
013dc89f
DM
25850 "type" : "string",
25851 "typetext" : "<string>"
44660702
DM
25852 },
25853 "numa" : {
7aacca6f 25854 "default" : 0,
44660702
DM
25855 "description" : "Enable/disable NUMA.",
25856 "optional" : 1,
013dc89f
DM
25857 "type" : "boolean",
25858 "typetext" : "<boolean>"
56122987 25859 },
7aacca6f 25860 "numa[n]" : {
c2993fe5 25861 "description" : "NUMA topology.",
7aacca6f 25862 "format" : {
44660702 25863 "cpus" : {
c2993fe5 25864 "description" : "CPUs accessing this NUMA node.",
44660702
DM
25865 "format_description" : "id[-id];...",
25866 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
25867 "type" : "string"
25868 },
7aacca6f 25869 "hostnodes" : {
c2993fe5 25870 "description" : "Host NUMA nodes to use.",
44660702 25871 "format_description" : "id[-id];...",
7aacca6f 25872 "optional" : 1,
44660702
DM
25873 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
25874 "type" : "string"
7aacca6f 25875 },
44660702 25876 "memory" : {
c2993fe5 25877 "description" : "Amount of memory this NUMA node provides.",
44660702
DM
25878 "optional" : 1,
25879 "type" : "number"
7aacca6f
DM
25880 },
25881 "policy" : {
c2993fe5 25882 "description" : "NUMA allocation policy.",
7aacca6f
DM
25883 "enum" : [
25884 "preferred",
25885 "bind",
25886 "interleave"
25887 ],
7aacca6f 25888 "optional" : 1,
44660702 25889 "type" : "string"
7aacca6f
DM
25890 }
25891 },
56122987 25892 "optional" : 1,
4bd7df8b
DM
25893 "type" : "string",
25894 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
56122987 25895 },
44660702
DM
25896 "onboot" : {
25897 "default" : 0,
25898 "description" : "Specifies whether a VM will be started during system bootup.",
56122987 25899 "optional" : 1,
013dc89f
DM
25900 "type" : "boolean",
25901 "typetext" : "<boolean>"
56122987
DM
25902 },
25903 "ostype" : {
c2993fe5 25904 "description" : "Specify guest operating system.",
56122987
DM
25905 "enum" : [
25906 "other",
25907 "wxp",
25908 "w2k",
25909 "w2k3",
25910 "w2k8",
25911 "wvista",
25912 "win7",
25913 "win8",
32d876b5 25914 "win10",
5370fa8c 25915 "win11",
56122987
DM
25916 "l24",
25917 "l26",
25918 "solaris"
44660702 25919 ],
56122987 25920 "optional" : 1,
c2993fe5 25921 "type" : "string",
9d2e98ed 25922 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
56122987 25923 },
44660702 25924 "parallel[n]" : {
c2993fe5 25925 "description" : "Map host parallel devices (n is 0 to 2).",
56122987 25926 "optional" : 1,
44660702 25927 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 25928 "type" : "string",
4772952b 25929 "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 25930 },
44660702
DM
25931 "pool" : {
25932 "description" : "Add the VM to the specified pool.",
25933 "format" : "pve-poolid",
56122987 25934 "optional" : 1,
013dc89f
DM
25935 "type" : "string",
25936 "typetext" : "<string>"
56122987 25937 },
44660702
DM
25938 "protection" : {
25939 "default" : 0,
c2993fe5 25940 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
56122987 25941 "optional" : 1,
013dc89f
DM
25942 "type" : "boolean",
25943 "typetext" : "<boolean>"
56122987 25944 },
44660702 25945 "reboot" : {
7aacca6f 25946 "default" : 1,
44660702
DM
25947 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
25948 "optional" : 1,
013dc89f
DM
25949 "type" : "boolean",
25950 "typetext" : "<boolean>"
56122987 25951 },
c5aa7e14
TL
25952 "rng0" : {
25953 "description" : "Configure a VirtIO-based Random Number Generator.",
25954 "format" : {
25955 "max_bytes" : {
25956 "default" : 1024,
5370fa8c 25957 "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
25958 "optional" : 1,
25959 "type" : "integer"
25960 },
25961 "period" : {
25962 "default" : 1000,
25963 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
25964 "optional" : 1,
25965 "type" : "integer"
25966 },
25967 "source" : {
25968 "default_key" : 1,
5370fa8c 25969 "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
25970 "enum" : [
25971 "/dev/urandom",
25972 "/dev/random",
25973 "/dev/hwrng"
25974 ],
25975 "type" : "string"
25976 }
25977 },
25978 "optional" : 1,
25979 "type" : "string",
25980 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
25981 },
56122987 25982 "sata[n]" : {
7af2edf9 25983 "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 25984 "format" : {
7aacca6f 25985 "aio" : {
44660702 25986 "description" : "AIO type to use.",
56122987 25987 "enum" : [
7aacca6f 25988 "native",
8f4d9c87
TL
25989 "threads",
25990 "io_uring"
56122987 25991 ],
7aacca6f 25992 "optional" : 1,
44660702 25993 "type" : "string"
7aacca6f
DM
25994 },
25995 "backup" : {
7aacca6f 25996 "description" : "Whether the drive should be included when making backups.",
7aacca6f 25997 "optional" : 1,
44660702 25998 "type" : "boolean"
56122987 25999 },
44660702 26000 "bps" : {
de0983cb 26001 "description" : "Maximum r/w speed in bytes per second.",
44660702 26002 "format_description" : "bps",
7aacca6f 26003 "optional" : 1,
44660702 26004 "type" : "integer"
56122987 26005 },
de0983cb
DM
26006 "bps_max_length" : {
26007 "description" : "Maximum length of I/O bursts in seconds.",
26008 "format_description" : "seconds",
26009 "minimum" : 1,
26010 "optional" : 1,
26011 "type" : "integer"
26012 },
44660702 26013 "bps_rd" : {
de0983cb 26014 "description" : "Maximum read speed in bytes per second.",
44660702 26015 "format_description" : "bps",
56122987 26016 "optional" : 1,
44660702 26017 "type" : "integer"
7aacca6f 26018 },
de0983cb 26019 "bps_rd_length" : {
5d9c884c
DM
26020 "alias" : "bps_rd_max_length"
26021 },
26022 "bps_rd_max_length" : {
de0983cb
DM
26023 "description" : "Maximum length of read I/O bursts in seconds.",
26024 "format_description" : "seconds",
26025 "minimum" : 1,
26026 "optional" : 1,
26027 "type" : "integer"
26028 },
44660702 26029 "bps_wr" : {
de0983cb 26030 "description" : "Maximum write speed in bytes per second.",
44660702 26031 "format_description" : "bps",
56122987 26032 "optional" : 1,
44660702 26033 "type" : "integer"
56122987 26034 },
de0983cb 26035 "bps_wr_length" : {
5d9c884c
DM
26036 "alias" : "bps_wr_max_length"
26037 },
26038 "bps_wr_max_length" : {
de0983cb
DM
26039 "description" : "Maximum length of write I/O bursts in seconds.",
26040 "format_description" : "seconds",
26041 "minimum" : 1,
26042 "optional" : 1,
26043 "type" : "integer"
26044 },
7aacca6f 26045 "cache" : {
7aacca6f
DM
26046 "description" : "The drive's cache mode",
26047 "enum" : [
26048 "none",
26049 "writethrough",
26050 "writeback",
26051 "unsafe",
26052 "directsync"
26053 ],
44660702
DM
26054 "optional" : 1,
26055 "type" : "string"
56122987 26056 },
44660702
DM
26057 "cyls" : {
26058 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
56122987 26059 "optional" : 1,
7aacca6f 26060 "type" : "integer"
56122987 26061 },
7aacca6f
DM
26062 "detect_zeroes" : {
26063 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 26064 "optional" : 1,
7aacca6f 26065 "type" : "boolean"
56122987 26066 },
44660702
DM
26067 "discard" : {
26068 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
26069 "enum" : [
26070 "ignore",
26071 "on"
26072 ],
56122987 26073 "optional" : 1,
44660702 26074 "type" : "string"
56122987 26075 },
44660702
DM
26076 "file" : {
26077 "default_key" : 1,
26078 "description" : "The drive's backing volume.",
26079 "format" : "pve-volume-id-or-qm-path",
26080 "format_description" : "volume",
26081 "type" : "string"
56122987
DM
26082 },
26083 "format" : {
44660702 26084 "description" : "The drive's backing file's data format.",
56122987
DM
26085 "enum" : [
26086 "raw",
26087 "cow",
26088 "qcow",
26089 "qed",
26090 "qcow2",
26091 "vmdk",
26092 "cloop"
26093 ],
56122987 26094 "optional" : 1,
44660702 26095 "type" : "string"
56122987 26096 },
7aacca6f 26097 "heads" : {
7aacca6f 26098 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
26099 "optional" : 1,
26100 "type" : "integer"
56122987 26101 },
7af2edf9
TL
26102 "import-from" : {
26103 "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!",
26104 "format" : "pve-volume-id-or-absolute-path",
26105 "format_description" : "source volume",
26106 "optional" : 1,
26107 "type" : "string"
26108 },
44660702 26109 "iops" : {
de0983cb 26110 "description" : "Maximum r/w I/O in operations per second.",
44660702
DM
26111 "format_description" : "iops",
26112 "optional" : 1,
26113 "type" : "integer"
56122987 26114 },
44660702 26115 "iops_max" : {
de0983cb 26116 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 26117 "format_description" : "iops",
56122987 26118 "optional" : 1,
44660702 26119 "type" : "integer"
56122987 26120 },
de0983cb
DM
26121 "iops_max_length" : {
26122 "description" : "Maximum length of I/O bursts in seconds.",
26123 "format_description" : "seconds",
26124 "minimum" : 1,
26125 "optional" : 1,
26126 "type" : "integer"
26127 },
44660702 26128 "iops_rd" : {
de0983cb 26129 "description" : "Maximum read I/O in operations per second.",
44660702 26130 "format_description" : "iops",
56122987 26131 "optional" : 1,
44660702 26132 "type" : "integer"
56122987 26133 },
de0983cb 26134 "iops_rd_length" : {
5d9c884c 26135 "alias" : "iops_rd_max_length"
de0983cb 26136 },
44660702 26137 "iops_rd_max" : {
de0983cb 26138 "description" : "Maximum unthrottled read I/O pool in operations per second.",
7aacca6f 26139 "format_description" : "iops",
56122987 26140 "optional" : 1,
44660702 26141 "type" : "integer"
56122987 26142 },
5d9c884c
DM
26143 "iops_rd_max_length" : {
26144 "description" : "Maximum length of read I/O bursts in seconds.",
26145 "format_description" : "seconds",
26146 "minimum" : 1,
26147 "optional" : 1,
26148 "type" : "integer"
26149 },
44660702 26150 "iops_wr" : {
de0983cb 26151 "description" : "Maximum write I/O in operations per second.",
44660702 26152 "format_description" : "iops",
7aacca6f 26153 "optional" : 1,
44660702 26154 "type" : "integer"
7aacca6f 26155 },
de0983cb 26156 "iops_wr_length" : {
5d9c884c 26157 "alias" : "iops_wr_max_length"
de0983cb 26158 },
44660702 26159 "iops_wr_max" : {
de0983cb 26160 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 26161 "format_description" : "iops",
56122987 26162 "optional" : 1,
7aacca6f 26163 "type" : "integer"
56122987 26164 },
5d9c884c
DM
26165 "iops_wr_max_length" : {
26166 "description" : "Maximum length of write I/O bursts in seconds.",
26167 "format_description" : "seconds",
26168 "minimum" : 1,
26169 "optional" : 1,
26170 "type" : "integer"
26171 },
44660702 26172 "mbps" : {
de0983cb 26173 "description" : "Maximum r/w speed in megabytes per second.",
44660702 26174 "format_description" : "mbps",
56122987 26175 "optional" : 1,
44660702 26176 "type" : "number"
56122987 26177 },
44660702 26178 "mbps_max" : {
de0983cb 26179 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 26180 "format_description" : "mbps",
7aacca6f 26181 "optional" : 1,
44660702 26182 "type" : "number"
7aacca6f 26183 },
44660702 26184 "mbps_rd" : {
de0983cb 26185 "description" : "Maximum read speed in megabytes per second.",
44660702 26186 "format_description" : "mbps",
7aacca6f 26187 "optional" : 1,
44660702 26188 "type" : "number"
7aacca6f 26189 },
44660702 26190 "mbps_rd_max" : {
de0983cb 26191 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 26192 "format_description" : "mbps",
7aacca6f 26193 "optional" : 1,
44660702 26194 "type" : "number"
7aacca6f 26195 },
44660702 26196 "mbps_wr" : {
de0983cb 26197 "description" : "Maximum write speed in megabytes per second.",
44660702 26198 "format_description" : "mbps",
7aacca6f 26199 "optional" : 1,
44660702 26200 "type" : "number"
7aacca6f
DM
26201 },
26202 "mbps_wr_max" : {
de0983cb 26203 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 26204 "format_description" : "mbps",
7aacca6f 26205 "optional" : 1,
44660702 26206 "type" : "number"
7aacca6f 26207 },
44660702
DM
26208 "media" : {
26209 "default" : "disk",
26210 "description" : "The drive's media type.",
56122987 26211 "enum" : [
44660702
DM
26212 "cdrom",
26213 "disk"
56122987 26214 ],
56122987 26215 "optional" : 1,
44660702 26216 "type" : "string"
56122987 26217 },
5d9c884c
DM
26218 "replicate" : {
26219 "default" : 1,
26220 "description" : "Whether the drive should considered for replication jobs.",
26221 "optional" : 1,
26222 "type" : "boolean"
26223 },
44660702
DM
26224 "rerror" : {
26225 "description" : "Read error action.",
7aacca6f
DM
26226 "enum" : [
26227 "ignore",
44660702
DM
26228 "report",
26229 "stop"
7aacca6f 26230 ],
56122987 26231 "optional" : 1,
44660702 26232 "type" : "string"
56122987 26233 },
44660702
DM
26234 "secs" : {
26235 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 26236 "optional" : 1,
44660702 26237 "type" : "integer"
56122987 26238 },
44660702
DM
26239 "serial" : {
26240 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
26241 "format" : "urlencoded",
26242 "format_description" : "serial",
26243 "maxLength" : 60,
26244 "optional" : 1,
26245 "type" : "string"
7aacca6f 26246 },
27a7acb2
DM
26247 "shared" : {
26248 "default" : 0,
26249 "description" : "Mark this locally-managed volume as available on all nodes",
26250 "optional" : 1,
26251 "type" : "boolean",
26252 "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!"
26253 },
7aacca6f
DM
26254 "size" : {
26255 "description" : "Disk size. This is purely informational and has no effect.",
44660702 26256 "format" : "disk-size",
f004f5b9 26257 "format_description" : "DiskSize",
56122987 26258 "optional" : 1,
44660702 26259 "type" : "string"
56122987 26260 },
44660702 26261 "snapshot" : {
27a7acb2 26262 "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 26263 "optional" : 1,
44660702 26264 "type" : "boolean"
56122987 26265 },
25203dc1
NC
26266 "ssd" : {
26267 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
26268 "optional" : 1,
26269 "type" : "boolean"
26270 },
44660702
DM
26271 "trans" : {
26272 "description" : "Force disk geometry bios translation mode.",
56122987 26273 "enum" : [
44660702
DM
26274 "none",
26275 "lba",
26276 "auto"
7aacca6f 26277 ],
44660702
DM
26278 "optional" : 1,
26279 "type" : "string"
26280 },
26281 "volume" : {
26282 "alias" : "file"
56122987
DM
26283 },
26284 "werror" : {
56122987
DM
26285 "description" : "Write error action.",
26286 "enum" : [
26287 "enospc",
26288 "ignore",
26289 "report",
26290 "stop"
26291 ],
56122987 26292 "optional" : 1,
44660702 26293 "type" : "string"
95895385
TL
26294 },
26295 "wwn" : {
26296 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
26297 "format_description" : "wwn",
26298 "optional" : 1,
26299 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
26300 "type" : "string"
44660702
DM
26301 }
26302 },
26303 "optional" : 1,
4bd7df8b 26304 "type" : "string",
7af2edf9 26305 "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
26306 },
26307 "scsi[n]" : {
7af2edf9 26308 "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
26309 "format" : {
26310 "aio" : {
26311 "description" : "AIO type to use.",
26312 "enum" : [
26313 "native",
8f4d9c87
TL
26314 "threads",
26315 "io_uring"
44660702 26316 ],
44660702
DM
26317 "optional" : 1,
26318 "type" : "string"
56122987 26319 },
7aacca6f 26320 "backup" : {
44660702 26321 "description" : "Whether the drive should be included when making backups.",
7aacca6f 26322 "optional" : 1,
44660702 26323 "type" : "boolean"
7aacca6f 26324 },
44660702 26325 "bps" : {
de0983cb 26326 "description" : "Maximum r/w speed in bytes per second.",
44660702 26327 "format_description" : "bps",
7aacca6f 26328 "optional" : 1,
44660702 26329 "type" : "integer"
7aacca6f 26330 },
de0983cb
DM
26331 "bps_max_length" : {
26332 "description" : "Maximum length of I/O bursts in seconds.",
26333 "format_description" : "seconds",
26334 "minimum" : 1,
26335 "optional" : 1,
26336 "type" : "integer"
26337 },
44660702 26338 "bps_rd" : {
de0983cb 26339 "description" : "Maximum read speed in bytes per second.",
44660702 26340 "format_description" : "bps",
56122987 26341 "optional" : 1,
44660702 26342 "type" : "integer"
56122987 26343 },
de0983cb 26344 "bps_rd_length" : {
5d9c884c
DM
26345 "alias" : "bps_rd_max_length"
26346 },
26347 "bps_rd_max_length" : {
de0983cb
DM
26348 "description" : "Maximum length of read I/O bursts in seconds.",
26349 "format_description" : "seconds",
26350 "minimum" : 1,
26351 "optional" : 1,
26352 "type" : "integer"
26353 },
44660702 26354 "bps_wr" : {
de0983cb 26355 "description" : "Maximum write speed in bytes per second.",
44660702 26356 "format_description" : "bps",
7aacca6f 26357 "optional" : 1,
44660702 26358 "type" : "integer"
56122987 26359 },
de0983cb 26360 "bps_wr_length" : {
5d9c884c
DM
26361 "alias" : "bps_wr_max_length"
26362 },
26363 "bps_wr_max_length" : {
de0983cb
DM
26364 "description" : "Maximum length of write I/O bursts in seconds.",
26365 "format_description" : "seconds",
26366 "minimum" : 1,
26367 "optional" : 1,
26368 "type" : "integer"
26369 },
44660702
DM
26370 "cache" : {
26371 "description" : "The drive's cache mode",
7aacca6f
DM
26372 "enum" : [
26373 "none",
44660702
DM
26374 "writethrough",
26375 "writeback",
26376 "unsafe",
26377 "directsync"
7aacca6f 26378 ],
56122987 26379 "optional" : 1,
44660702 26380 "type" : "string"
56122987 26381 },
7aacca6f
DM
26382 "cyls" : {
26383 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
26384 "optional" : 1,
44660702 26385 "type" : "integer"
7aacca6f 26386 },
44660702
DM
26387 "detect_zeroes" : {
26388 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 26389 "optional" : 1,
44660702 26390 "type" : "boolean"
56122987 26391 },
44660702
DM
26392 "discard" : {
26393 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
7aacca6f 26394 "enum" : [
44660702
DM
26395 "ignore",
26396 "on"
7aacca6f 26397 ],
7aacca6f 26398 "optional" : 1,
44660702 26399 "type" : "string"
56122987
DM
26400 },
26401 "file" : {
7aacca6f
DM
26402 "default_key" : 1,
26403 "description" : "The drive's backing volume.",
44660702
DM
26404 "format" : "pve-volume-id-or-qm-path",
26405 "format_description" : "volume",
7aacca6f 26406 "type" : "string"
56122987 26407 },
7aacca6f 26408 "format" : {
44660702 26409 "description" : "The drive's backing file's data format.",
56122987 26410 "enum" : [
7aacca6f
DM
26411 "raw",
26412 "cow",
26413 "qcow",
26414 "qed",
26415 "qcow2",
26416 "vmdk",
26417 "cloop"
56122987 26418 ],
44660702
DM
26419 "optional" : 1,
26420 "type" : "string"
56122987 26421 },
44660702
DM
26422 "heads" : {
26423 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
26424 "optional" : 1,
26425 "type" : "integer"
26426 },
7af2edf9
TL
26427 "import-from" : {
26428 "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!",
26429 "format" : "pve-volume-id-or-absolute-path",
26430 "format_description" : "source volume",
26431 "optional" : 1,
26432 "type" : "string"
26433 },
44660702 26434 "iops" : {
de0983cb 26435 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 26436 "format_description" : "iops",
56122987 26437 "optional" : 1,
44660702 26438 "type" : "integer"
56122987 26439 },
44660702 26440 "iops_max" : {
de0983cb 26441 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 26442 "format_description" : "iops",
7aacca6f 26443 "optional" : 1,
44660702 26444 "type" : "integer"
56122987 26445 },
de0983cb
DM
26446 "iops_max_length" : {
26447 "description" : "Maximum length of I/O bursts in seconds.",
26448 "format_description" : "seconds",
26449 "minimum" : 1,
26450 "optional" : 1,
26451 "type" : "integer"
26452 },
44660702 26453 "iops_rd" : {
de0983cb 26454 "description" : "Maximum read I/O in operations per second.",
44660702 26455 "format_description" : "iops",
56122987 26456 "optional" : 1,
44660702 26457 "type" : "integer"
56122987 26458 },
de0983cb 26459 "iops_rd_length" : {
5d9c884c 26460 "alias" : "iops_rd_max_length"
de0983cb 26461 },
44660702 26462 "iops_rd_max" : {
de0983cb 26463 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
26464 "format_description" : "iops",
26465 "optional" : 1,
26466 "type" : "integer"
56122987 26467 },
5d9c884c
DM
26468 "iops_rd_max_length" : {
26469 "description" : "Maximum length of read I/O bursts in seconds.",
26470 "format_description" : "seconds",
26471 "minimum" : 1,
26472 "optional" : 1,
26473 "type" : "integer"
26474 },
44660702 26475 "iops_wr" : {
de0983cb 26476 "description" : "Maximum write I/O in operations per second.",
44660702 26477 "format_description" : "iops",
56122987 26478 "optional" : 1,
44660702 26479 "type" : "integer"
56122987 26480 },
de0983cb 26481 "iops_wr_length" : {
5d9c884c 26482 "alias" : "iops_wr_max_length"
de0983cb 26483 },
44660702 26484 "iops_wr_max" : {
de0983cb 26485 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 26486 "format_description" : "iops",
56122987 26487 "optional" : 1,
56122987
DM
26488 "type" : "integer"
26489 },
5d9c884c
DM
26490 "iops_wr_max_length" : {
26491 "description" : "Maximum length of write I/O bursts in seconds.",
26492 "format_description" : "seconds",
26493 "minimum" : 1,
26494 "optional" : 1,
26495 "type" : "integer"
26496 },
44660702
DM
26497 "iothread" : {
26498 "description" : "Whether to use iothreads for this drive",
44660702
DM
26499 "optional" : 1,
26500 "type" : "boolean"
26501 },
26502 "mbps" : {
de0983cb 26503 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
26504 "format_description" : "mbps",
26505 "optional" : 1,
26506 "type" : "number"
26507 },
7aacca6f 26508 "mbps_max" : {
de0983cb 26509 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 26510 "format_description" : "mbps",
56122987 26511 "optional" : 1,
44660702 26512 "type" : "number"
56122987 26513 },
44660702 26514 "mbps_rd" : {
de0983cb 26515 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
26516 "format_description" : "mbps",
26517 "optional" : 1,
26518 "type" : "number"
56122987 26519 },
44660702 26520 "mbps_rd_max" : {
de0983cb 26521 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 26522 "format_description" : "mbps",
56122987 26523 "optional" : 1,
44660702 26524 "type" : "number"
56122987 26525 },
44660702 26526 "mbps_wr" : {
de0983cb 26527 "description" : "Maximum write speed in megabytes per second.",
44660702 26528 "format_description" : "mbps",
56122987 26529 "optional" : 1,
44660702 26530 "type" : "number"
56122987 26531 },
44660702 26532 "mbps_wr_max" : {
de0983cb 26533 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 26534 "format_description" : "mbps",
7aacca6f 26535 "optional" : 1,
44660702 26536 "type" : "number"
56122987 26537 },
7aacca6f 26538 "media" : {
44660702 26539 "default" : "disk",
7aacca6f
DM
26540 "description" : "The drive's media type.",
26541 "enum" : [
26542 "cdrom",
26543 "disk"
26544 ],
56122987 26545 "optional" : 1,
44660702 26546 "type" : "string"
56122987 26547 },
44660702
DM
26548 "queues" : {
26549 "description" : "Number of queues.",
44660702
DM
26550 "minimum" : 2,
26551 "optional" : 1,
26552 "type" : "integer"
56122987 26553 },
5d9c884c
DM
26554 "replicate" : {
26555 "default" : 1,
26556 "description" : "Whether the drive should considered for replication jobs.",
26557 "optional" : 1,
26558 "type" : "boolean"
26559 },
26560 "rerror" : {
26561 "description" : "Read error action.",
26562 "enum" : [
26563 "ignore",
26564 "report",
26565 "stop"
26566 ],
26567 "optional" : 1,
26568 "type" : "string"
26569 },
5370fa8c
TL
26570 "ro" : {
26571 "description" : "Whether the drive is read-only.",
26572 "optional" : 1,
26573 "type" : "boolean"
26574 },
52e44c50
FG
26575 "scsiblock" : {
26576 "default" : 0,
26577 "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",
26578 "optional" : 1,
26579 "type" : "boolean"
26580 },
7aacca6f 26581 "secs" : {
7aacca6f 26582 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
26583 "optional" : 1,
26584 "type" : "integer"
26585 },
26586 "serial" : {
26587 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
26588 "format" : "urlencoded",
26589 "format_description" : "serial",
26590 "maxLength" : 60,
26591 "optional" : 1,
26592 "type" : "string"
26593 },
27a7acb2
DM
26594 "shared" : {
26595 "default" : 0,
26596 "description" : "Mark this locally-managed volume as available on all nodes",
26597 "optional" : 1,
26598 "type" : "boolean",
26599 "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!"
26600 },
44660702
DM
26601 "size" : {
26602 "description" : "Disk size. This is purely informational and has no effect.",
26603 "format" : "disk-size",
f004f5b9 26604 "format_description" : "DiskSize",
44660702
DM
26605 "optional" : 1,
26606 "type" : "string"
26607 },
26608 "snapshot" : {
27a7acb2 26609 "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
26610 "optional" : 1,
26611 "type" : "boolean"
26612 },
25203dc1
NC
26613 "ssd" : {
26614 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
26615 "optional" : 1,
26616 "type" : "boolean"
26617 },
44660702
DM
26618 "trans" : {
26619 "description" : "Force disk geometry bios translation mode.",
26620 "enum" : [
26621 "none",
26622 "lba",
26623 "auto"
26624 ],
44660702
DM
26625 "optional" : 1,
26626 "type" : "string"
26627 },
26628 "volume" : {
26629 "alias" : "file"
26630 },
26631 "werror" : {
26632 "description" : "Write error action.",
26633 "enum" : [
26634 "enospc",
26635 "ignore",
26636 "report",
26637 "stop"
26638 ],
44660702
DM
26639 "optional" : 1,
26640 "type" : "string"
95895385
TL
26641 },
26642 "wwn" : {
26643 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
26644 "format_description" : "wwn",
26645 "optional" : 1,
26646 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
26647 "type" : "string"
56122987
DM
26648 }
26649 },
7aacca6f 26650 "optional" : 1,
4bd7df8b 26651 "type" : "string",
7af2edf9 26652 "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 26653 },
44660702
DM
26654 "scsihw" : {
26655 "default" : "lsi",
c2993fe5 26656 "description" : "SCSI controller model",
44660702
DM
26657 "enum" : [
26658 "lsi",
26659 "lsi53c810",
26660 "virtio-scsi-pci",
26661 "virtio-scsi-single",
26662 "megasas",
26663 "pvscsi"
26664 ],
7aacca6f 26665 "optional" : 1,
44660702 26666 "type" : "string"
7aacca6f 26667 },
27a7acb2 26668 "searchdomain" : {
de786b48 26669 "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
26670 "optional" : 1,
26671 "type" : "string",
26672 "typetext" : "<string>"
26673 },
44660702 26674 "serial[n]" : {
c2993fe5 26675 "description" : "Create a serial device inside the VM (n is 0 to 3)",
44660702
DM
26676 "optional" : 1,
26677 "pattern" : "(/dev/.+|socket)",
c2993fe5 26678 "type" : "string",
4772952b 26679 "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
26680 },
26681 "shares" : {
26682 "default" : 1000,
5da3d723 26683 "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
26684 "maximum" : 50000,
26685 "minimum" : 0,
26686 "optional" : 1,
4bd7df8b 26687 "type" : "integer",
013dc89f 26688 "typetext" : "<integer> (0 - 50000)"
44660702
DM
26689 },
26690 "smbios1" : {
26691 "description" : "Specify SMBIOS type 1 fields.",
26692 "format" : "pve-qm-smbios1",
1e3f8156 26693 "maxLength" : 512,
7aacca6f 26694 "optional" : 1,
4bd7df8b 26695 "type" : "string",
1e3f8156 26696 "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
26697 },
26698 "smp" : {
44660702 26699 "default" : 1,
7aacca6f 26700 "description" : "The number of CPUs. Please use option -sockets instead.",
44660702 26701 "minimum" : 1,
56122987 26702 "optional" : 1,
4bd7df8b 26703 "type" : "integer",
013dc89f 26704 "typetext" : "<integer> (1 - N)"
44660702
DM
26705 },
26706 "sockets" : {
7aacca6f 26707 "default" : 1,
44660702
DM
26708 "description" : "The number of CPU sockets.",
26709 "minimum" : 1,
26710 "optional" : 1,
4bd7df8b 26711 "type" : "integer",
013dc89f 26712 "typetext" : "<integer> (1 - N)"
7aacca6f 26713 },
1c532546
TL
26714 "spice_enhancements" : {
26715 "description" : "Configure additional enhancements for SPICE.",
26716 "format" : {
26717 "foldersharing" : {
26718 "default" : "0",
26719 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
26720 "optional" : 1,
26721 "type" : "boolean"
26722 },
26723 "videostreaming" : {
26724 "default" : "off",
26725 "description" : "Enable video streaming. Uses compression for detected video streams.",
26726 "enum" : [
26727 "off",
26728 "all",
26729 "filter"
26730 ],
26731 "optional" : 1,
26732 "type" : "string"
26733 }
26734 },
26735 "optional" : 1,
26736 "type" : "string",
26737 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
26738 },
27a7acb2
DM
26739 "sshkeys" : {
26740 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
26741 "format" : "urlencoded",
26742 "optional" : 1,
26743 "type" : "string",
26744 "typetext" : "<string>"
26745 },
5da3d723
TL
26746 "start" : {
26747 "default" : 0,
26748 "description" : "Start VM after it was created successfully.",
26749 "optional" : 1,
26750 "type" : "boolean",
26751 "typetext" : "<boolean>"
26752 },
44660702
DM
26753 "startdate" : {
26754 "default" : "now",
4772952b 26755 "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
26756 "optional" : 1,
26757 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
26758 "type" : "string",
26759 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
26760 },
26761 "startup" : {
26762 "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.",
26763 "format" : "pve-startup-order",
26764 "optional" : 1,
26765 "type" : "string",
26766 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
26767 },
26768 "storage" : {
26769 "description" : "Default storage.",
26770 "format" : "pve-storage-id",
7aacca6f 26771 "optional" : 1,
013dc89f
DM
26772 "type" : "string",
26773 "typetext" : "<string>"
56122987 26774 },
44660702
DM
26775 "tablet" : {
26776 "default" : 1,
c2993fe5 26777 "description" : "Enable/disable the USB tablet device.",
56122987 26778 "optional" : 1,
c2993fe5 26779 "type" : "boolean",
013dc89f 26780 "typetext" : "<boolean>",
4772952b 26781 "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 26782 },
5c1699e5
TL
26783 "tags" : {
26784 "description" : "Tags of the VM. This is only meta information.",
26785 "format" : "pve-tag-list",
26786 "optional" : 1,
26787 "type" : "string",
26788 "typetext" : "<string>"
26789 },
44660702
DM
26790 "tdf" : {
26791 "default" : 0,
26792 "description" : "Enable/disable time drift fix.",
26793 "optional" : 1,
013dc89f
DM
26794 "type" : "boolean",
26795 "typetext" : "<boolean>"
7aacca6f
DM
26796 },
26797 "template" : {
7aacca6f 26798 "default" : 0,
44660702 26799 "description" : "Enable/disable Template.",
7aacca6f 26800 "optional" : 1,
013dc89f
DM
26801 "type" : "boolean",
26802 "typetext" : "<boolean>"
7aacca6f 26803 },
5370fa8c 26804 "tpmstate0" : {
7af2edf9 26805 "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
26806 "format" : {
26807 "file" : {
26808 "default_key" : 1,
26809 "description" : "The drive's backing volume.",
26810 "format" : "pve-volume-id-or-qm-path",
26811 "format_description" : "volume",
26812 "type" : "string"
26813 },
7af2edf9
TL
26814 "import-from" : {
26815 "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!",
26816 "format" : "pve-volume-id-or-absolute-path",
26817 "format_description" : "source volume",
26818 "optional" : 1,
26819 "type" : "string"
26820 },
5370fa8c
TL
26821 "size" : {
26822 "description" : "Disk size. This is purely informational and has no effect.",
26823 "format" : "disk-size",
26824 "format_description" : "DiskSize",
26825 "optional" : 1,
26826 "type" : "string"
26827 },
26828 "version" : {
26829 "default" : "v2.0",
26830 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
26831 "enum" : [
26832 "v1.2",
26833 "v2.0"
26834 ],
26835 "optional" : 1,
26836 "type" : "string"
26837 },
26838 "volume" : {
26839 "alias" : "file"
26840 }
26841 },
26842 "optional" : 1,
26843 "type" : "string",
7af2edf9 26844 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 26845 },
44660702
DM
26846 "unique" : {
26847 "description" : "Assign a unique random ethernet address.",
7aacca6f 26848 "optional" : 1,
44660702 26849 "requires" : "archive",
013dc89f
DM
26850 "type" : "boolean",
26851 "typetext" : "<boolean>"
56122987 26852 },
44660702 26853 "unused[n]" : {
c2993fe5 26854 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
26855 "format" : {
26856 "file" : {
26857 "default_key" : 1,
26858 "description" : "The drive's backing volume.",
26859 "format" : "pve-volume-id",
26860 "format_description" : "volume",
26861 "type" : "string"
26862 },
26863 "volume" : {
26864 "alias" : "file"
26865 }
26866 },
7aacca6f 26867 "optional" : 1,
013dc89f 26868 "type" : "string",
c5aa7e14 26869 "typetext" : "[file=]<volume>"
44660702
DM
26870 },
26871 "usb[n]" : {
4e7f60c2 26872 "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 26873 "format" : {
7aacca6f
DM
26874 "host" : {
26875 "default_key" : 1,
499c9b7f 26876 "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n\nEither this or the 'mapping' key must be set.\n",
44660702 26877 "format_description" : "HOSTUSBDEVICE|spice",
499c9b7f
TL
26878 "optional" : 1,
26879 "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
26880 "type" : "string"
26881 },
26882 "mapping" : {
26883 "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
26884 "format" : "pve-configid",
26885 "format_description" : "mapping-id",
26886 "optional" : 1,
44660702 26887 "type" : "string"
7aacca6f 26888 },
56122987 26889 "usb3" : {
c2993fe5 26890 "default" : 0,
4e7f60c2 26891 "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 26892 "optional" : 1,
56122987 26893 "type" : "boolean"
7aacca6f 26894 }
56122987 26895 },
56122987 26896 "optional" : 1,
4bd7df8b 26897 "type" : "string",
499c9b7f 26898 "typetext" : "[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]"
56122987 26899 },
44660702
DM
26900 "vcpus" : {
26901 "default" : 0,
26902 "description" : "Number of hotplugged vcpus.",
26903 "minimum" : 1,
56122987 26904 "optional" : 1,
4bd7df8b 26905 "type" : "integer",
013dc89f 26906 "typetext" : "<integer> (1 - N)"
7aacca6f 26907 },
44660702 26908 "vga" : {
e2d681b3
TL
26909 "description" : "Configure the VGA hardware.",
26910 "format" : {
26911 "memory" : {
26912 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
26913 "maximum" : 512,
26914 "minimum" : 4,
26915 "optional" : 1,
26916 "type" : "integer"
26917 },
26918 "type" : {
26919 "default" : "std",
26920 "default_key" : 1,
26921 "description" : "Select the VGA type.",
26922 "enum" : [
26923 "cirrus",
26924 "qxl",
26925 "qxl2",
26926 "qxl3",
26927 "qxl4",
5f26e15b 26928 "none",
e2d681b3
TL
26929 "serial0",
26930 "serial1",
26931 "serial2",
26932 "serial3",
26933 "std",
26934 "virtio",
7af2edf9 26935 "virtio-gl",
e2d681b3
TL
26936 "vmware"
26937 ],
26938 "optional" : 1,
26939 "type" : "string"
26940 }
26941 },
44660702 26942 "optional" : 1,
c2993fe5 26943 "type" : "string",
e2d681b3
TL
26944 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
26945 "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 26946 },
44660702 26947 "virtio[n]" : {
7af2edf9 26948 "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
26949 "format" : {
26950 "aio" : {
26951 "description" : "AIO type to use.",
26952 "enum" : [
26953 "native",
8f4d9c87
TL
26954 "threads",
26955 "io_uring"
44660702 26956 ],
44660702
DM
26957 "optional" : 1,
26958 "type" : "string"
26959 },
26960 "backup" : {
26961 "description" : "Whether the drive should be included when making backups.",
44660702
DM
26962 "optional" : 1,
26963 "type" : "boolean"
26964 },
26965 "bps" : {
de0983cb 26966 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
26967 "format_description" : "bps",
26968 "optional" : 1,
26969 "type" : "integer"
26970 },
de0983cb
DM
26971 "bps_max_length" : {
26972 "description" : "Maximum length of I/O bursts in seconds.",
26973 "format_description" : "seconds",
26974 "minimum" : 1,
26975 "optional" : 1,
26976 "type" : "integer"
26977 },
44660702 26978 "bps_rd" : {
de0983cb 26979 "description" : "Maximum read speed in bytes per second.",
44660702
DM
26980 "format_description" : "bps",
26981 "optional" : 1,
26982 "type" : "integer"
26983 },
de0983cb 26984 "bps_rd_length" : {
5d9c884c
DM
26985 "alias" : "bps_rd_max_length"
26986 },
26987 "bps_rd_max_length" : {
de0983cb
DM
26988 "description" : "Maximum length of read I/O bursts in seconds.",
26989 "format_description" : "seconds",
26990 "minimum" : 1,
26991 "optional" : 1,
26992 "type" : "integer"
26993 },
44660702 26994 "bps_wr" : {
de0983cb 26995 "description" : "Maximum write speed in bytes per second.",
44660702
DM
26996 "format_description" : "bps",
26997 "optional" : 1,
26998 "type" : "integer"
26999 },
de0983cb 27000 "bps_wr_length" : {
5d9c884c
DM
27001 "alias" : "bps_wr_max_length"
27002 },
27003 "bps_wr_max_length" : {
de0983cb
DM
27004 "description" : "Maximum length of write I/O bursts in seconds.",
27005 "format_description" : "seconds",
27006 "minimum" : 1,
27007 "optional" : 1,
27008 "type" : "integer"
27009 },
44660702
DM
27010 "cache" : {
27011 "description" : "The drive's cache mode",
27012 "enum" : [
27013 "none",
27014 "writethrough",
27015 "writeback",
27016 "unsafe",
27017 "directsync"
27018 ],
44660702
DM
27019 "optional" : 1,
27020 "type" : "string"
27021 },
27022 "cyls" : {
27023 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
27024 "optional" : 1,
27025 "type" : "integer"
27026 },
27027 "detect_zeroes" : {
27028 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
27029 "optional" : 1,
27030 "type" : "boolean"
27031 },
27032 "discard" : {
27033 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
27034 "enum" : [
27035 "ignore",
27036 "on"
27037 ],
44660702
DM
27038 "optional" : 1,
27039 "type" : "string"
27040 },
27041 "file" : {
27042 "default_key" : 1,
27043 "description" : "The drive's backing volume.",
27044 "format" : "pve-volume-id-or-qm-path",
27045 "format_description" : "volume",
27046 "type" : "string"
27047 },
27048 "format" : {
27049 "description" : "The drive's backing file's data format.",
27050 "enum" : [
27051 "raw",
27052 "cow",
27053 "qcow",
27054 "qed",
27055 "qcow2",
27056 "vmdk",
27057 "cloop"
27058 ],
44660702
DM
27059 "optional" : 1,
27060 "type" : "string"
27061 },
27062 "heads" : {
27063 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
27064 "optional" : 1,
27065 "type" : "integer"
27066 },
7af2edf9
TL
27067 "import-from" : {
27068 "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!",
27069 "format" : "pve-volume-id-or-absolute-path",
27070 "format_description" : "source volume",
27071 "optional" : 1,
27072 "type" : "string"
27073 },
44660702 27074 "iops" : {
de0983cb 27075 "description" : "Maximum r/w I/O in operations per second.",
44660702
DM
27076 "format_description" : "iops",
27077 "optional" : 1,
27078 "type" : "integer"
27079 },
27080 "iops_max" : {
de0983cb 27081 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702
DM
27082 "format_description" : "iops",
27083 "optional" : 1,
27084 "type" : "integer"
27085 },
de0983cb
DM
27086 "iops_max_length" : {
27087 "description" : "Maximum length of I/O bursts in seconds.",
27088 "format_description" : "seconds",
27089 "minimum" : 1,
27090 "optional" : 1,
27091 "type" : "integer"
27092 },
44660702 27093 "iops_rd" : {
de0983cb 27094 "description" : "Maximum read I/O in operations per second.",
44660702
DM
27095 "format_description" : "iops",
27096 "optional" : 1,
27097 "type" : "integer"
27098 },
de0983cb 27099 "iops_rd_length" : {
5d9c884c 27100 "alias" : "iops_rd_max_length"
de0983cb 27101 },
44660702 27102 "iops_rd_max" : {
de0983cb 27103 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
27104 "format_description" : "iops",
27105 "optional" : 1,
27106 "type" : "integer"
27107 },
5d9c884c
DM
27108 "iops_rd_max_length" : {
27109 "description" : "Maximum length of read I/O bursts in seconds.",
27110 "format_description" : "seconds",
27111 "minimum" : 1,
27112 "optional" : 1,
27113 "type" : "integer"
27114 },
44660702 27115 "iops_wr" : {
de0983cb 27116 "description" : "Maximum write I/O in operations per second.",
44660702
DM
27117 "format_description" : "iops",
27118 "optional" : 1,
27119 "type" : "integer"
27120 },
de0983cb 27121 "iops_wr_length" : {
5d9c884c 27122 "alias" : "iops_wr_max_length"
de0983cb 27123 },
44660702 27124 "iops_wr_max" : {
de0983cb 27125 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
27126 "format_description" : "iops",
27127 "optional" : 1,
27128 "type" : "integer"
27129 },
5d9c884c
DM
27130 "iops_wr_max_length" : {
27131 "description" : "Maximum length of write I/O bursts in seconds.",
27132 "format_description" : "seconds",
27133 "minimum" : 1,
27134 "optional" : 1,
27135 "type" : "integer"
27136 },
44660702
DM
27137 "iothread" : {
27138 "description" : "Whether to use iothreads for this drive",
44660702
DM
27139 "optional" : 1,
27140 "type" : "boolean"
27141 },
27142 "mbps" : {
de0983cb 27143 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
27144 "format_description" : "mbps",
27145 "optional" : 1,
27146 "type" : "number"
27147 },
27148 "mbps_max" : {
de0983cb 27149 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
27150 "format_description" : "mbps",
27151 "optional" : 1,
27152 "type" : "number"
27153 },
27154 "mbps_rd" : {
de0983cb 27155 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
27156 "format_description" : "mbps",
27157 "optional" : 1,
27158 "type" : "number"
27159 },
27160 "mbps_rd_max" : {
de0983cb 27161 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
27162 "format_description" : "mbps",
27163 "optional" : 1,
27164 "type" : "number"
27165 },
27166 "mbps_wr" : {
de0983cb 27167 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
27168 "format_description" : "mbps",
27169 "optional" : 1,
27170 "type" : "number"
27171 },
27172 "mbps_wr_max" : {
de0983cb 27173 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
27174 "format_description" : "mbps",
27175 "optional" : 1,
27176 "type" : "number"
27177 },
27178 "media" : {
27179 "default" : "disk",
27180 "description" : "The drive's media type.",
27181 "enum" : [
27182 "cdrom",
27183 "disk"
27184 ],
44660702
DM
27185 "optional" : 1,
27186 "type" : "string"
27187 },
5d9c884c
DM
27188 "replicate" : {
27189 "default" : 1,
27190 "description" : "Whether the drive should considered for replication jobs.",
27191 "optional" : 1,
27192 "type" : "boolean"
27193 },
44660702
DM
27194 "rerror" : {
27195 "description" : "Read error action.",
27196 "enum" : [
27197 "ignore",
27198 "report",
27199 "stop"
27200 ],
44660702
DM
27201 "optional" : 1,
27202 "type" : "string"
27203 },
5370fa8c
TL
27204 "ro" : {
27205 "description" : "Whether the drive is read-only.",
27206 "optional" : 1,
27207 "type" : "boolean"
27208 },
44660702
DM
27209 "secs" : {
27210 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
27211 "optional" : 1,
27212 "type" : "integer"
27213 },
27214 "serial" : {
27215 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
27216 "format" : "urlencoded",
27217 "format_description" : "serial",
27218 "maxLength" : 60,
27219 "optional" : 1,
27220 "type" : "string"
27221 },
27a7acb2
DM
27222 "shared" : {
27223 "default" : 0,
27224 "description" : "Mark this locally-managed volume as available on all nodes",
27225 "optional" : 1,
27226 "type" : "boolean",
27227 "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!"
27228 },
44660702
DM
27229 "size" : {
27230 "description" : "Disk size. This is purely informational and has no effect.",
27231 "format" : "disk-size",
f004f5b9 27232 "format_description" : "DiskSize",
44660702
DM
27233 "optional" : 1,
27234 "type" : "string"
27235 },
27236 "snapshot" : {
27a7acb2 27237 "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
27238 "optional" : 1,
27239 "type" : "boolean"
27240 },
27241 "trans" : {
27242 "description" : "Force disk geometry bios translation mode.",
27243 "enum" : [
27244 "none",
27245 "lba",
27246 "auto"
27247 ],
44660702
DM
27248 "optional" : 1,
27249 "type" : "string"
27250 },
27251 "volume" : {
27252 "alias" : "file"
27253 },
27254 "werror" : {
27255 "description" : "Write error action.",
27256 "enum" : [
27257 "enospc",
27258 "ignore",
27259 "report",
27260 "stop"
27261 ],
44660702
DM
27262 "optional" : 1,
27263 "type" : "string"
27264 }
27265 },
27266 "optional" : 1,
4bd7df8b 27267 "type" : "string",
7af2edf9 27268 "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 27269 },
4d47f125
TL
27270 "vmgenid" : {
27271 "default" : "1 (autogenerated)",
27272 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
27273 "format_description" : "UUID",
27274 "optional" : 1,
27275 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
27276 "type" : "string",
4772952b 27277 "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 27278 },
44660702
DM
27279 "vmid" : {
27280 "description" : "The (unique) ID of the VM.",
27281 "format" : "pve-vmid",
8dd66e12
TL
27282 "maximum" : 999999999,
27283 "minimum" : 100,
4bd7df8b 27284 "type" : "integer",
8dd66e12 27285 "typetext" : "<integer> (100 - 999999999)"
44660702 27286 },
2489d6df
WB
27287 "vmstatestorage" : {
27288 "description" : "Default storage for VM state volumes/files.",
27289 "format" : "pve-storage-id",
27290 "optional" : 1,
27291 "type" : "string",
27292 "typetext" : "<string>"
27293 },
44660702 27294 "watchdog" : {
c2993fe5 27295 "description" : "Create a virtual hardware watchdog device.",
44660702 27296 "format" : "pve-qm-watchdog",
7aacca6f 27297 "optional" : 1,
c2993fe5 27298 "type" : "string",
013dc89f 27299 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
c2993fe5 27300 "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 27301 }
44660702 27302 }
56122987 27303 },
56122987 27304 "permissions" : {
159464a9 27305 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid} or on the VM pool /pool/{pool}. For restore (option 'archive'), it is enough if the user has 'VM.Backup' permission and the VM already exists. If you create disks you need 'Datastore.AllocateSpace' on any used storage.If you use a bridge/vlan, you need 'SDN.Use' on any used bridge/vlan.",
44660702 27306 "user" : "all"
56122987 27307 },
44660702
DM
27308 "protected" : 1,
27309 "proxyto" : "node",
56122987 27310 "returns" : {
44660702 27311 "type" : "string"
7aacca6f 27312 }
56122987 27313 }
7aacca6f 27314 },
44660702 27315 "leaf" : 0,
7aacca6f 27316 "path" : "/nodes/{node}/qemu",
44660702 27317 "text" : "qemu"
56122987
DM
27318 },
27319 {
27320 "children" : [
27321 {
56122987
DM
27322 "children" : [
27323 {
56122987 27324 "info" : {
44660702 27325 "GET" : {
e9cd3bd4 27326 "allowtoken" : 1,
44660702
DM
27327 "description" : "Get container configuration.",
27328 "method" : "GET",
27329 "name" : "vm_config",
27330 "parameters" : {
27331 "additionalProperties" : 0,
27332 "properties" : {
1c532546
TL
27333 "current" : {
27334 "default" : 0,
27335 "description" : "Get current values (instead of pending values).",
27336 "optional" : 1,
27337 "type" : "boolean",
27338 "typetext" : "<boolean>"
27339 },
44660702
DM
27340 "node" : {
27341 "description" : "The cluster node name.",
27342 "format" : "pve-node",
013dc89f 27343 "type" : "string",
4d47f125
TL
27344 "typetext" : "<string>"
27345 },
5f26e15b
TL
27346 "snapshot" : {
27347 "description" : "Fetch config values from given snapshot.",
27348 "format" : "pve-configid",
27349 "maxLength" : 40,
27350 "optional" : 1,
27351 "type" : "string",
27352 "typetext" : "<string>"
27353 },
4d47f125
TL
27354 "vmid" : {
27355 "description" : "The (unique) ID of the VM.",
27356 "format" : "pve-vmid",
8dd66e12
TL
27357 "maximum" : 999999999,
27358 "minimum" : 100,
4d47f125 27359 "type" : "integer",
8dd66e12 27360 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
27361 }
27362 }
27363 },
27364 "permissions" : {
27365 "check" : [
27366 "perm",
27367 "/vms/{vmid}",
27368 [
27369 "VM.Audit"
27370 ]
27371 ]
27372 },
27373 "proxyto" : "node",
27374 "returns" : {
27375 "properties" : {
27376 "arch" : {
27377 "default" : "amd64",
27378 "description" : "OS architecture type.",
27379 "enum" : [
27380 "amd64",
27381 "i386",
27382 "arm64",
9d2e98ed
TL
27383 "armhf",
27384 "riscv32",
27385 "riscv64"
4d47f125
TL
27386 ],
27387 "optional" : 1,
27388 "type" : "string"
27389 },
27390 "cmode" : {
27391 "default" : "tty",
27392 "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).",
27393 "enum" : [
27394 "shell",
27395 "console",
27396 "tty"
27397 ],
27398 "optional" : 1,
27399 "type" : "string"
27400 },
27401 "console" : {
27402 "default" : 1,
27403 "description" : "Attach a console device (/dev/console) to the container.",
27404 "optional" : 1,
27405 "type" : "boolean"
27406 },
27407 "cores" : {
27408 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 27409 "maximum" : 8192,
4d47f125
TL
27410 "minimum" : 1,
27411 "optional" : 1,
27412 "type" : "integer"
27413 },
27414 "cpulimit" : {
27415 "default" : 0,
27416 "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 27417 "maximum" : 8192,
4d47f125
TL
27418 "minimum" : 0,
27419 "optional" : 1,
27420 "type" : "number"
27421 },
27422 "cpuunits" : {
4e7f60c2
TL
27423 "default" : "cgroup v1: 1024, cgroup v2: 100",
27424 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
4d47f125
TL
27425 "maximum" : 500000,
27426 "minimum" : 0,
27427 "optional" : 1,
4e7f60c2
TL
27428 "type" : "integer",
27429 "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 27430 },
739d4d64
TL
27431 "debug" : {
27432 "default" : 0,
27433 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
27434 "optional" : 1,
27435 "type" : "boolean"
27436 },
4d47f125 27437 "description" : {
8f4d9c87
TL
27438 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
27439 "maxLength" : 8192,
4d47f125
TL
27440 "optional" : 1,
27441 "type" : "string"
27442 },
27443 "digest" : {
27444 "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
27445 "type" : "string"
27446 },
27447 "features" : {
27448 "description" : "Allow containers access to advanced features.",
27449 "format" : {
c5aa7e14
TL
27450 "force_rw_sys" : {
27451 "default" : 0,
27452 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
27453 "optional" : 1,
27454 "type" : "boolean"
27455 },
e2d681b3
TL
27456 "fuse" : {
27457 "default" : 0,
27458 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
27459 "optional" : 1,
27460 "type" : "boolean"
27461 },
4d47f125
TL
27462 "keyctl" : {
27463 "default" : 0,
27464 "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.",
27465 "optional" : 1,
27466 "type" : "boolean"
27467 },
c5aa7e14
TL
27468 "mknod" : {
27469 "default" : 0,
27470 "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.",
27471 "optional" : 1,
27472 "type" : "boolean"
27473 },
4d47f125
TL
27474 "mount" : {
27475 "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.",
27476 "format_description" : "fstype;fstype;...",
27477 "optional" : 1,
95895385 27478 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125
TL
27479 "type" : "string"
27480 },
27481 "nesting" : {
27482 "default" : 0,
27483 "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.",
27484 "optional" : 1,
27485 "type" : "boolean"
27486 }
27487 },
27488 "optional" : 1,
27489 "type" : "string"
27490 },
5f26e15b
TL
27491 "hookscript" : {
27492 "description" : "Script that will be exectued during various steps in the containers lifetime.",
27493 "format" : "pve-volume-id",
27494 "optional" : 1,
27495 "type" : "string"
27496 },
4d47f125
TL
27497 "hostname" : {
27498 "description" : "Set a host name for the container.",
27499 "format" : "dns-name",
27500 "maxLength" : 255,
27501 "optional" : 1,
27502 "type" : "string"
27503 },
27504 "lock" : {
4e7f60c2 27505 "description" : "Lock/unlock the container.",
4d47f125
TL
27506 "enum" : [
27507 "backup",
bb4c8cf8 27508 "create",
1c532546 27509 "destroyed",
4d47f125 27510 "disk",
bb4c8cf8 27511 "fstrim",
4d47f125
TL
27512 "migrate",
27513 "mounted",
27514 "rollback",
27515 "snapshot",
27516 "snapshot-delete"
27517 ],
27518 "optional" : 1,
27519 "type" : "string"
27520 },
27521 "lxc" : {
27522 "description" : "Array of lxc low-level configurations ([[key1, value1], [key2, value2] ...]).",
27523 "items" : {
27524 "items" : {
27525 "type" : "string"
27526 },
27527 "type" : "array"
27528 },
27529 "optional" : 1,
27530 "type" : "array"
27531 },
27532 "memory" : {
27533 "default" : 512,
4e7f60c2 27534 "description" : "Amount of RAM for the container in MB.",
4d47f125
TL
27535 "minimum" : 16,
27536 "optional" : 1,
27537 "type" : "integer"
27538 },
27539 "mp[n]" : {
d2656385 27540 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
4d47f125
TL
27541 "format" : {
27542 "acl" : {
27543 "description" : "Explicitly enable or disable ACL support.",
27544 "optional" : 1,
27545 "type" : "boolean"
27546 },
27547 "backup" : {
27548 "description" : "Whether to include the mount point in backups.",
27549 "optional" : 1,
27550 "type" : "boolean",
27551 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
27552 },
7cbed89a
TL
27553 "mountoptions" : {
27554 "description" : "Extra mount options for rootfs/mps.",
27555 "format_description" : "opt[;opt...]",
27556 "optional" : 1,
c30bb419 27557 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
27558 "type" : "string"
27559 },
4d47f125
TL
27560 "mp" : {
27561 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
27562 "format" : "pve-lxc-mp-string",
27563 "format_description" : "Path",
27564 "type" : "string",
27565 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
27566 },
27567 "quota" : {
27568 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
27569 "optional" : 1,
27570 "type" : "boolean"
27571 },
27572 "replicate" : {
27573 "default" : 1,
27574 "description" : "Will include this volume to a storage replica job.",
27575 "optional" : 1,
27576 "type" : "boolean"
27577 },
27578 "ro" : {
27579 "description" : "Read-only mount point",
27580 "optional" : 1,
27581 "type" : "boolean"
27582 },
27583 "shared" : {
27584 "default" : 0,
27585 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
27586 "optional" : 1,
27587 "type" : "boolean",
27588 "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!"
27589 },
27590 "size" : {
27591 "description" : "Volume size (read only value).",
27592 "format" : "disk-size",
27593 "format_description" : "DiskSize",
27594 "optional" : 1,
27595 "type" : "string"
27596 },
27597 "volume" : {
27598 "default_key" : 1,
27599 "description" : "Volume, device or directory to mount into the container.",
27600 "format" : "pve-lxc-mp-string",
27601 "format_description" : "volume",
27602 "type" : "string"
27603 }
27604 },
27605 "optional" : 1,
27606 "type" : "string"
27607 },
27608 "nameserver" : {
27609 "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 27610 "format" : "lxc-ip-with-ll-iface-list",
4d47f125
TL
27611 "optional" : 1,
27612 "type" : "string"
27613 },
27614 "net[n]" : {
27615 "description" : "Specifies network interfaces for the container.",
27616 "format" : {
27617 "bridge" : {
27618 "description" : "Bridge to attach the network device to.",
27619 "format_description" : "bridge",
27620 "optional" : 1,
27621 "pattern" : "[-_.\\w\\d]+",
27622 "type" : "string"
27623 },
27624 "firewall" : {
27625 "description" : "Controls whether this interface's firewall rules should be used.",
27626 "optional" : 1,
27627 "type" : "boolean"
27628 },
27629 "gw" : {
27630 "description" : "Default gateway for IPv4 traffic.",
27631 "format" : "ipv4",
27632 "format_description" : "GatewayIPv4",
27633 "optional" : 1,
27634 "type" : "string"
27635 },
27636 "gw6" : {
27637 "description" : "Default gateway for IPv6 traffic.",
27638 "format" : "ipv6",
27639 "format_description" : "GatewayIPv6",
27640 "optional" : 1,
27641 "type" : "string"
27642 },
27643 "hwaddr" : {
27644 "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 27645 "format" : "mac-addr",
4d47f125
TL
27646 "format_description" : "XX:XX:XX:XX:XX:XX",
27647 "optional" : 1,
95895385
TL
27648 "type" : "string",
27649 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
27650 },
27651 "ip" : {
27652 "description" : "IPv4 address in CIDR format.",
27653 "format" : "pve-ipv4-config",
27654 "format_description" : "(IPv4/CIDR|dhcp|manual)",
27655 "optional" : 1,
27656 "type" : "string"
27657 },
27658 "ip6" : {
27659 "description" : "IPv6 address in CIDR format.",
27660 "format" : "pve-ipv6-config",
27661 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
27662 "optional" : 1,
27663 "type" : "string"
27664 },
9d2e98ed
TL
27665 "link_down" : {
27666 "description" : "Whether this interface should be disconnected (like pulling the plug).",
27667 "optional" : 1,
27668 "type" : "boolean"
27669 },
4d47f125
TL
27670 "mtu" : {
27671 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 27672 "maximum" : 65535,
4d47f125
TL
27673 "minimum" : 64,
27674 "optional" : 1,
27675 "type" : "integer"
27676 },
27677 "name" : {
27678 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
27679 "format_description" : "string",
27680 "pattern" : "[-_.\\w\\d]+",
27681 "type" : "string"
27682 },
27683 "rate" : {
27684 "description" : "Apply rate limiting to the interface",
27685 "format_description" : "mbps",
27686 "optional" : 1,
27687 "type" : "number"
27688 },
27689 "tag" : {
27690 "description" : "VLAN tag for this interface.",
27691 "maximum" : 4094,
27692 "minimum" : 1,
27693 "optional" : 1,
27694 "type" : "integer"
27695 },
27696 "trunks" : {
27697 "description" : "VLAN ids to pass through the interface",
27698 "format_description" : "vlanid[;vlanid...]",
27699 "optional" : 1,
27700 "pattern" : "(?^:\\d+(?:;\\d+)*)",
27701 "type" : "string"
27702 },
27703 "type" : {
27704 "description" : "Network interface type.",
27705 "enum" : [
27706 "veth"
27707 ],
27708 "optional" : 1,
27709 "type" : "string"
27710 }
27711 },
27712 "optional" : 1,
27713 "type" : "string"
27714 },
27715 "onboot" : {
27716 "default" : 0,
4e7f60c2 27717 "description" : "Specifies whether a container will be started during system bootup.",
4d47f125
TL
27718 "optional" : 1,
27719 "type" : "boolean"
27720 },
27721 "ostype" : {
27722 "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.",
27723 "enum" : [
27724 "debian",
d2656385 27725 "devuan",
4d47f125
TL
27726 "ubuntu",
27727 "centos",
27728 "fedora",
27729 "opensuse",
27730 "archlinux",
27731 "alpine",
27732 "gentoo",
7af2edf9 27733 "nixos",
4d47f125
TL
27734 "unmanaged"
27735 ],
27736 "optional" : 1,
27737 "type" : "string"
27738 },
27739 "protection" : {
27740 "default" : 0,
27741 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
27742 "optional" : 1,
27743 "type" : "boolean"
27744 },
27745 "rootfs" : {
27746 "description" : "Use volume as container root.",
27747 "format" : {
27748 "acl" : {
27749 "description" : "Explicitly enable or disable ACL support.",
27750 "optional" : 1,
27751 "type" : "boolean"
27752 },
7cbed89a
TL
27753 "mountoptions" : {
27754 "description" : "Extra mount options for rootfs/mps.",
27755 "format_description" : "opt[;opt...]",
27756 "optional" : 1,
c30bb419 27757 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
27758 "type" : "string"
27759 },
4d47f125
TL
27760 "quota" : {
27761 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
27762 "optional" : 1,
27763 "type" : "boolean"
27764 },
27765 "replicate" : {
27766 "default" : 1,
27767 "description" : "Will include this volume to a storage replica job.",
27768 "optional" : 1,
27769 "type" : "boolean"
27770 },
27771 "ro" : {
27772 "description" : "Read-only mount point",
27773 "optional" : 1,
27774 "type" : "boolean"
27775 },
27776 "shared" : {
27777 "default" : 0,
27778 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
27779 "optional" : 1,
27780 "type" : "boolean",
27781 "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!"
27782 },
27783 "size" : {
27784 "description" : "Volume size (read only value).",
27785 "format" : "disk-size",
27786 "format_description" : "DiskSize",
27787 "optional" : 1,
27788 "type" : "string"
27789 },
27790 "volume" : {
27791 "default_key" : 1,
27792 "description" : "Volume, device or directory to mount into the container.",
27793 "format" : "pve-lxc-mp-string",
27794 "format_description" : "volume",
27795 "type" : "string"
27796 }
27797 },
27798 "optional" : 1,
27799 "type" : "string"
27800 },
27801 "searchdomain" : {
27802 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
27803 "format" : "dns-name-list",
27804 "optional" : 1,
27805 "type" : "string"
27806 },
27807 "startup" : {
27808 "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.",
27809 "format" : "pve-startup-order",
27810 "optional" : 1,
27811 "type" : "string",
27812 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
27813 },
27814 "swap" : {
27815 "default" : 512,
4e7f60c2 27816 "description" : "Amount of SWAP for the container in MB.",
4d47f125
TL
27817 "minimum" : 0,
27818 "optional" : 1,
27819 "type" : "integer"
27820 },
5c1699e5
TL
27821 "tags" : {
27822 "description" : "Tags of the Container. This is only meta information.",
27823 "format" : "pve-tag-list",
27824 "optional" : 1,
27825 "type" : "string"
27826 },
4d47f125
TL
27827 "template" : {
27828 "default" : 0,
27829 "description" : "Enable/disable Template.",
27830 "optional" : 1,
27831 "type" : "boolean"
44660702 27832 },
04d22a9f
TL
27833 "timezone" : {
27834 "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",
27835 "format" : "pve-ct-timezone",
27836 "optional" : 1,
27837 "type" : "string"
27838 },
4d47f125
TL
27839 "tty" : {
27840 "default" : 2,
27841 "description" : "Specify the number of tty available to the container",
27842 "maximum" : 6,
27843 "minimum" : 0,
27844 "optional" : 1,
27845 "type" : "integer"
27846 },
27847 "unprivileged" : {
27848 "default" : 0,
27849 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
27850 "optional" : 1,
27851 "type" : "boolean"
27852 },
27853 "unused[n]" : {
27854 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
27855 "format" : {
27856 "volume" : {
27857 "default_key" : 1,
27858 "description" : "The volume that is not used currently.",
27859 "format" : "pve-volume-id",
27860 "format_description" : "volume",
27861 "type" : "string"
27862 }
27863 },
4d47f125 27864 "optional" : 1,
44660702
DM
27865 "type" : "string"
27866 }
27867 },
27868 "type" : "object"
27869 }
27870 },
56122987 27871 "PUT" : {
e9cd3bd4 27872 "allowtoken" : 1,
44660702
DM
27873 "description" : "Set container options.",
27874 "method" : "PUT",
27875 "name" : "update_vm",
56122987 27876 "parameters" : {
44660702 27877 "additionalProperties" : 0,
56122987 27878 "properties" : {
44660702
DM
27879 "arch" : {
27880 "default" : "amd64",
27881 "description" : "OS architecture type.",
27882 "enum" : [
27883 "amd64",
4d47f125
TL
27884 "i386",
27885 "arm64",
9d2e98ed
TL
27886 "armhf",
27887 "riscv32",
27888 "riscv64"
44660702 27889 ],
7aacca6f 27890 "optional" : 1,
44660702
DM
27891 "type" : "string"
27892 },
27893 "cmode" : {
7aacca6f 27894 "default" : "tty",
44660702 27895 "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
27896 "enum" : [
27897 "shell",
27898 "console",
27899 "tty"
27900 ],
44660702
DM
27901 "optional" : 1,
27902 "type" : "string"
7aacca6f 27903 },
44660702
DM
27904 "console" : {
27905 "default" : 1,
27906 "description" : "Attach a console device (/dev/console) to the container.",
7aacca6f 27907 "optional" : 1,
013dc89f
DM
27908 "type" : "boolean",
27909 "typetext" : "<boolean>"
7aacca6f 27910 },
de0983cb
DM
27911 "cores" : {
27912 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 27913 "maximum" : 8192,
de0983cb
DM
27914 "minimum" : 1,
27915 "optional" : 1,
27916 "type" : "integer",
4772952b 27917 "typetext" : "<integer> (1 - 8192)"
de0983cb 27918 },
44660702
DM
27919 "cpulimit" : {
27920 "default" : 0,
27921 "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 27922 "maximum" : 8192,
7aacca6f 27923 "minimum" : 0,
7aacca6f 27924 "optional" : 1,
4bd7df8b 27925 "type" : "number",
4772952b 27926 "typetext" : "<number> (0 - 8192)"
7aacca6f 27927 },
44660702 27928 "cpuunits" : {
4e7f60c2
TL
27929 "default" : "cgroup v1: 1024, cgroup v2: 100",
27930 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
44660702
DM
27931 "maximum" : 500000,
27932 "minimum" : 0,
27933 "optional" : 1,
4bd7df8b 27934 "type" : "integer",
4e7f60c2
TL
27935 "typetext" : "<integer> (0 - 500000)",
27936 "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 27937 },
739d4d64
TL
27938 "debug" : {
27939 "default" : 0,
27940 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
27941 "optional" : 1,
27942 "type" : "boolean",
27943 "typetext" : "<boolean>"
27944 },
44660702
DM
27945 "delete" : {
27946 "description" : "A list of settings you want to delete.",
27947 "format" : "pve-configid-list",
7aacca6f 27948 "optional" : 1,
013dc89f
DM
27949 "type" : "string",
27950 "typetext" : "<string>"
7aacca6f 27951 },
44660702 27952 "description" : {
8f4d9c87
TL
27953 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
27954 "maxLength" : 8192,
7aacca6f 27955 "optional" : 1,
013dc89f
DM
27956 "type" : "string",
27957 "typetext" : "<string>"
7aacca6f 27958 },
44660702
DM
27959 "digest" : {
27960 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
27961 "maxLength" : 40,
7aacca6f 27962 "optional" : 1,
013dc89f
DM
27963 "type" : "string",
27964 "typetext" : "<string>"
7aacca6f 27965 },
4d47f125
TL
27966 "features" : {
27967 "description" : "Allow containers access to advanced features.",
27968 "format" : {
c5aa7e14
TL
27969 "force_rw_sys" : {
27970 "default" : 0,
27971 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
27972 "optional" : 1,
27973 "type" : "boolean"
27974 },
e2d681b3
TL
27975 "fuse" : {
27976 "default" : 0,
27977 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
27978 "optional" : 1,
27979 "type" : "boolean"
27980 },
4d47f125
TL
27981 "keyctl" : {
27982 "default" : 0,
27983 "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.",
27984 "optional" : 1,
27985 "type" : "boolean"
27986 },
c5aa7e14
TL
27987 "mknod" : {
27988 "default" : 0,
27989 "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.",
27990 "optional" : 1,
27991 "type" : "boolean"
27992 },
4d47f125
TL
27993 "mount" : {
27994 "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.",
27995 "format_description" : "fstype;fstype;...",
27996 "optional" : 1,
95895385 27997 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125
TL
27998 "type" : "string"
27999 },
28000 "nesting" : {
28001 "default" : 0,
28002 "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.",
28003 "optional" : 1,
28004 "type" : "boolean"
28005 }
28006 },
28007 "optional" : 1,
28008 "type" : "string",
c5aa7e14 28009 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
4d47f125 28010 },
5f26e15b
TL
28011 "hookscript" : {
28012 "description" : "Script that will be exectued during various steps in the containers lifetime.",
28013 "format" : "pve-volume-id",
28014 "optional" : 1,
28015 "type" : "string",
28016 "typetext" : "<string>"
28017 },
44660702
DM
28018 "hostname" : {
28019 "description" : "Set a host name for the container.",
28020 "format" : "dns-name",
28021 "maxLength" : 255,
56122987 28022 "optional" : 1,
013dc89f
DM
28023 "type" : "string",
28024 "typetext" : "<string>"
44660702
DM
28025 },
28026 "lock" : {
4e7f60c2 28027 "description" : "Lock/unlock the container.",
44660702 28028 "enum" : [
44660702 28029 "backup",
bb4c8cf8 28030 "create",
1c532546 28031 "destroyed",
4d47f125 28032 "disk",
bb4c8cf8 28033 "fstrim",
4d47f125
TL
28034 "migrate",
28035 "mounted",
28036 "rollback",
44660702 28037 "snapshot",
4d47f125 28038 "snapshot-delete"
44660702
DM
28039 ],
28040 "optional" : 1,
28041 "type" : "string"
28042 },
28043 "memory" : {
28044 "default" : 512,
4e7f60c2 28045 "description" : "Amount of RAM for the container in MB.",
44660702
DM
28046 "minimum" : 16,
28047 "optional" : 1,
4bd7df8b 28048 "type" : "integer",
013dc89f 28049 "typetext" : "<integer> (16 - N)"
7aacca6f
DM
28050 },
28051 "mp[n]" : {
d2656385 28052 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
7aacca6f 28053 "format" : {
7aacca6f
DM
28054 "acl" : {
28055 "description" : "Explicitly enable or disable ACL support.",
7aacca6f 28056 "optional" : 1,
44660702 28057 "type" : "boolean"
7aacca6f
DM
28058 },
28059 "backup" : {
de0983cb 28060 "description" : "Whether to include the mount point in backups.",
7aacca6f 28061 "optional" : 1,
4bd7df8b 28062 "type" : "boolean",
de0983cb 28063 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
7aacca6f 28064 },
7cbed89a
TL
28065 "mountoptions" : {
28066 "description" : "Extra mount options for rootfs/mps.",
28067 "format_description" : "opt[;opt...]",
28068 "optional" : 1,
c30bb419 28069 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
28070 "type" : "string"
28071 },
7aacca6f 28072 "mp" : {
de0983cb 28073 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
7aacca6f 28074 "format" : "pve-lxc-mp-string",
44660702 28075 "format_description" : "Path",
4bd7df8b 28076 "type" : "string",
de0983cb 28077 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
44660702 28078 },
5d9c884c
DM
28079 "quota" : {
28080 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
28081 "optional" : 1,
28082 "type" : "boolean"
28083 },
28084 "replicate" : {
28085 "default" : 1,
28086 "description" : "Will include this volume to a storage replica job.",
44660702
DM
28087 "optional" : 1,
28088 "type" : "boolean"
28089 },
28090 "ro" : {
de0983cb 28091 "description" : "Read-only mount point",
44660702
DM
28092 "optional" : 1,
28093 "type" : "boolean"
28094 },
de0983cb
DM
28095 "shared" : {
28096 "default" : 0,
28097 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
28098 "optional" : 1,
28099 "type" : "boolean",
28100 "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!"
28101 },
44660702
DM
28102 "size" : {
28103 "description" : "Volume size (read only value).",
28104 "format" : "disk-size",
28105 "format_description" : "DiskSize",
28106 "optional" : 1,
28107 "type" : "string"
28108 },
28109 "volume" : {
28110 "default_key" : 1,
28111 "description" : "Volume, device or directory to mount into the container.",
28112 "format" : "pve-lxc-mp-string",
28113 "format_description" : "volume",
28114 "type" : "string"
28115 }
28116 },
7aacca6f 28117 "optional" : 1,
4bd7df8b 28118 "type" : "string",
7cbed89a 28119 "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 28120 },
44660702
DM
28121 "nameserver" : {
28122 "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 28123 "format" : "lxc-ip-with-ll-iface-list",
56122987 28124 "optional" : 1,
013dc89f
DM
28125 "type" : "string",
28126 "typetext" : "<string>"
56122987
DM
28127 },
28128 "net[n]" : {
44660702 28129 "description" : "Specifies network interfaces for the container.",
56122987 28130 "format" : {
44660702
DM
28131 "bridge" : {
28132 "description" : "Bridge to attach the network device to.",
f004f5b9 28133 "format_description" : "bridge",
56122987 28134 "optional" : 1,
44660702
DM
28135 "pattern" : "[-_.\\w\\d]+",
28136 "type" : "string"
56122987 28137 },
44660702
DM
28138 "firewall" : {
28139 "description" : "Controls whether this interface's firewall rules should be used.",
56122987 28140 "optional" : 1,
44660702 28141 "type" : "boolean"
56122987 28142 },
44660702
DM
28143 "gw" : {
28144 "description" : "Default gateway for IPv4 traffic.",
28145 "format" : "ipv4",
28146 "format_description" : "GatewayIPv4",
56122987 28147 "optional" : 1,
44660702 28148 "type" : "string"
56122987
DM
28149 },
28150 "gw6" : {
7aacca6f 28151 "description" : "Default gateway for IPv6 traffic.",
44660702
DM
28152 "format" : "ipv6",
28153 "format_description" : "GatewayIPv6",
7aacca6f 28154 "optional" : 1,
56122987
DM
28155 "type" : "string"
28156 },
44660702 28157 "hwaddr" : {
f004f5b9 28158 "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 28159 "format" : "mac-addr",
f004f5b9 28160 "format_description" : "XX:XX:XX:XX:XX:XX",
44660702 28161 "optional" : 1,
95895385
TL
28162 "type" : "string",
28163 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
44660702
DM
28164 },
28165 "ip" : {
28166 "description" : "IPv4 address in CIDR format.",
28167 "format" : "pve-ipv4-config",
2489d6df 28168 "format_description" : "(IPv4/CIDR|dhcp|manual)",
56122987 28169 "optional" : 1,
44660702 28170 "type" : "string"
56122987 28171 },
7aacca6f 28172 "ip6" : {
7aacca6f
DM
28173 "description" : "IPv6 address in CIDR format.",
28174 "format" : "pve-ipv6-config",
2489d6df 28175 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
7aacca6f 28176 "optional" : 1,
44660702 28177 "type" : "string"
56122987 28178 },
9d2e98ed
TL
28179 "link_down" : {
28180 "description" : "Whether this interface should be disconnected (like pulling the plug).",
28181 "optional" : 1,
28182 "type" : "boolean"
28183 },
44660702
DM
28184 "mtu" : {
28185 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 28186 "maximum" : 65535,
44660702 28187 "minimum" : 64,
56122987 28188 "optional" : 1,
44660702 28189 "type" : "integer"
56122987
DM
28190 },
28191 "name" : {
44660702 28192 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
f004f5b9 28193 "format_description" : "string",
56122987 28194 "pattern" : "[-_.\\w\\d]+",
44660702 28195 "type" : "string"
56122987 28196 },
44660702
DM
28197 "rate" : {
28198 "description" : "Apply rate limiting to the interface",
28199 "format_description" : "mbps",
56122987 28200 "optional" : 1,
44660702 28201 "type" : "number"
7aacca6f 28202 },
44660702
DM
28203 "tag" : {
28204 "description" : "VLAN tag for this interface.",
4bd7df8b
DM
28205 "maximum" : 4094,
28206 "minimum" : 1,
56122987 28207 "optional" : 1,
7aacca6f 28208 "type" : "integer"
56122987 28209 },
44660702
DM
28210 "trunks" : {
28211 "description" : "VLAN ids to pass through the interface",
28212 "format_description" : "vlanid[;vlanid...]",
28213 "optional" : 1,
28214 "pattern" : "(?^:\\d+(?:;\\d+)*)",
28215 "type" : "string"
28216 },
28217 "type" : {
28218 "description" : "Network interface type.",
28219 "enum" : [
28220 "veth"
28221 ],
56122987 28222 "optional" : 1,
44660702 28223 "type" : "string"
56122987
DM
28224 }
28225 },
7aacca6f 28226 "optional" : 1,
4bd7df8b 28227 "type" : "string",
9d2e98ed 28228 "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,link_down=<1|0>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
56122987 28229 },
44660702
DM
28230 "node" : {
28231 "description" : "The cluster node name.",
28232 "format" : "pve-node",
013dc89f
DM
28233 "type" : "string",
28234 "typetext" : "<string>"
56122987 28235 },
44660702
DM
28236 "onboot" : {
28237 "default" : 0,
4e7f60c2 28238 "description" : "Specifies whether a container will be started during system bootup.",
56122987 28239 "optional" : 1,
013dc89f
DM
28240 "type" : "boolean",
28241 "typetext" : "<boolean>"
56122987 28242 },
44660702
DM
28243 "ostype" : {
28244 "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.",
28245 "enum" : [
28246 "debian",
d2656385 28247 "devuan",
44660702
DM
28248 "ubuntu",
28249 "centos",
28250 "fedora",
28251 "opensuse",
28252 "archlinux",
28253 "alpine",
57b78691 28254 "gentoo",
7af2edf9 28255 "nixos",
44660702
DM
28256 "unmanaged"
28257 ],
56122987 28258 "optional" : 1,
44660702 28259 "type" : "string"
56122987 28260 },
44660702
DM
28261 "protection" : {
28262 "default" : 0,
28263 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
56122987 28264 "optional" : 1,
013dc89f
DM
28265 "type" : "boolean",
28266 "typetext" : "<boolean>"
56122987 28267 },
1c532546
TL
28268 "revert" : {
28269 "description" : "Revert a pending change.",
28270 "format" : "pve-configid-list",
28271 "optional" : 1,
28272 "type" : "string",
28273 "typetext" : "<string>"
28274 },
7aacca6f
DM
28275 "rootfs" : {
28276 "description" : "Use volume as container root.",
56122987
DM
28277 "format" : {
28278 "acl" : {
44660702 28279 "description" : "Explicitly enable or disable ACL support.",
7aacca6f
DM
28280 "optional" : 1,
28281 "type" : "boolean"
56122987 28282 },
7cbed89a
TL
28283 "mountoptions" : {
28284 "description" : "Extra mount options for rootfs/mps.",
28285 "format_description" : "opt[;opt...]",
28286 "optional" : 1,
c30bb419 28287 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
28288 "type" : "string"
28289 },
44660702
DM
28290 "quota" : {
28291 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
44660702
DM
28292 "optional" : 1,
28293 "type" : "boolean"
28294 },
5d9c884c
DM
28295 "replicate" : {
28296 "default" : 1,
28297 "description" : "Will include this volume to a storage replica job.",
28298 "optional" : 1,
28299 "type" : "boolean"
28300 },
44660702 28301 "ro" : {
de0983cb 28302 "description" : "Read-only mount point",
56122987 28303 "optional" : 1,
44660702
DM
28304 "type" : "boolean"
28305 },
de0983cb
DM
28306 "shared" : {
28307 "default" : 0,
28308 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
28309 "optional" : 1,
28310 "type" : "boolean",
28311 "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!"
28312 },
44660702 28313 "size" : {
7aacca6f 28314 "description" : "Volume size (read only value).",
44660702 28315 "format" : "disk-size",
56122987 28316 "format_description" : "DiskSize",
56122987 28317 "optional" : 1,
44660702 28318 "type" : "string"
7aacca6f
DM
28319 },
28320 "volume" : {
7aacca6f
DM
28321 "default_key" : 1,
28322 "description" : "Volume, device or directory to mount into the container.",
44660702
DM
28323 "format" : "pve-lxc-mp-string",
28324 "format_description" : "volume",
7aacca6f 28325 "type" : "string"
56122987 28326 }
44660702
DM
28327 },
28328 "optional" : 1,
4bd7df8b 28329 "type" : "string",
7cbed89a 28330 "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
28331 },
28332 "searchdomain" : {
28333 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
28334 "format" : "dns-name-list",
28335 "optional" : 1,
013dc89f
DM
28336 "type" : "string",
28337 "typetext" : "<string>"
44660702
DM
28338 },
28339 "startup" : {
28340 "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.",
28341 "format" : "pve-startup-order",
28342 "optional" : 1,
28343 "type" : "string",
28344 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
28345 },
28346 "swap" : {
28347 "default" : 512,
4e7f60c2 28348 "description" : "Amount of SWAP for the container in MB.",
44660702
DM
28349 "minimum" : 0,
28350 "optional" : 1,
4bd7df8b 28351 "type" : "integer",
013dc89f 28352 "typetext" : "<integer> (0 - N)"
56122987 28353 },
5c1699e5
TL
28354 "tags" : {
28355 "description" : "Tags of the Container. This is only meta information.",
28356 "format" : "pve-tag-list",
28357 "optional" : 1,
28358 "type" : "string",
28359 "typetext" : "<string>"
28360 },
56122987 28361 "template" : {
44660702 28362 "default" : 0,
7aacca6f 28363 "description" : "Enable/disable Template.",
56122987 28364 "optional" : 1,
013dc89f
DM
28365 "type" : "boolean",
28366 "typetext" : "<boolean>"
56122987 28367 },
04d22a9f
TL
28368 "timezone" : {
28369 "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",
28370 "format" : "pve-ct-timezone",
28371 "optional" : 1,
28372 "type" : "string",
28373 "typetext" : "<string>"
28374 },
44660702
DM
28375 "tty" : {
28376 "default" : 2,
28377 "description" : "Specify the number of tty available to the container",
28378 "maximum" : 6,
28379 "minimum" : 0,
28380 "optional" : 1,
4bd7df8b 28381 "type" : "integer",
013dc89f 28382 "typetext" : "<integer> (0 - 6)"
56122987 28383 },
44660702
DM
28384 "unprivileged" : {
28385 "default" : 0,
28386 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
56122987 28387 "optional" : 1,
013dc89f
DM
28388 "type" : "boolean",
28389 "typetext" : "<boolean>"
56122987 28390 },
44660702 28391 "unused[n]" : {
c2993fe5 28392 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
28393 "format" : {
28394 "volume" : {
28395 "default_key" : 1,
28396 "description" : "The volume that is not used currently.",
28397 "format" : "pve-volume-id",
28398 "format_description" : "volume",
28399 "type" : "string"
28400 }
28401 },
56122987 28402 "optional" : 1,
013dc89f 28403 "type" : "string",
c5aa7e14 28404 "typetext" : "[volume=]<volume>"
44660702
DM
28405 },
28406 "vmid" : {
28407 "description" : "The (unique) ID of the VM.",
28408 "format" : "pve-vmid",
8dd66e12
TL
28409 "maximum" : 999999999,
28410 "minimum" : 100,
4bd7df8b 28411 "type" : "integer",
8dd66e12 28412 "typetext" : "<integer> (100 - 999999999)"
56122987 28413 }
44660702 28414 }
56122987 28415 },
56122987
DM
28416 "permissions" : {
28417 "check" : [
28418 "perm",
28419 "/vms/{vmid}",
28420 [
28421 "VM.Config.Disk",
28422 "VM.Config.CPU",
28423 "VM.Config.Memory",
28424 "VM.Config.Network",
28425 "VM.Config.Options"
28426 ],
28427 "any",
28428 1
52e44c50
FG
28429 ],
28430 "description" : "non-volume mount points in rootfs and mp[n] are restricted to root@pam"
56122987 28431 },
44660702
DM
28432 "protected" : 1,
28433 "proxyto" : "node",
56122987
DM
28434 "returns" : {
28435 "type" : "null"
7aacca6f 28436 }
56122987 28437 }
7aacca6f 28438 },
44660702 28439 "leaf" : 1,
7aacca6f 28440 "path" : "/nodes/{node}/lxc/{vmid}/config",
44660702 28441 "text" : "config"
56122987
DM
28442 },
28443 {
56122987
DM
28444 "children" : [
28445 {
28446 "info" : {
28447 "GET" : {
e9cd3bd4 28448 "allowtoken" : 1,
44660702 28449 "description" : "Get virtual machine status.",
7aacca6f 28450 "method" : "GET",
44660702 28451 "name" : "vm_status",
56122987 28452 "parameters" : {
44660702 28453 "additionalProperties" : 0,
56122987 28454 "properties" : {
56122987 28455 "node" : {
44660702 28456 "description" : "The cluster node name.",
56122987 28457 "format" : "pve-node",
013dc89f
DM
28458 "type" : "string",
28459 "typetext" : "<string>"
7aacca6f
DM
28460 },
28461 "vmid" : {
28462 "description" : "The (unique) ID of the VM.",
44660702 28463 "format" : "pve-vmid",
8dd66e12
TL
28464 "maximum" : 999999999,
28465 "minimum" : 100,
4bd7df8b 28466 "type" : "integer",
8dd66e12 28467 "typetext" : "<integer> (100 - 999999999)"
56122987 28468 }
44660702 28469 }
7aacca6f
DM
28470 },
28471 "permissions" : {
28472 "check" : [
28473 "perm",
28474 "/vms/{vmid}",
28475 [
4d47f125
TL
28476 "VM.Audit"
28477 ]
28478 ]
28479 },
28480 "protected" : 1,
28481 "proxyto" : "node",
28482 "returns" : {
28483 "properties" : {
28484 "cpus" : {
28485 "description" : "Maximum usable CPUs.",
28486 "optional" : 1,
28487 "type" : "number"
28488 },
28489 "ha" : {
28490 "description" : "HA manager service status.",
28491 "type" : "object"
28492 },
95895385
TL
28493 "lock" : {
28494 "description" : "The current config lock, if any.",
28495 "optional" : 1,
28496 "type" : "string"
28497 },
4d47f125
TL
28498 "maxdisk" : {
28499 "description" : "Root disk size in bytes.",
28500 "optional" : 1,
28501 "renderer" : "bytes",
28502 "type" : "integer"
28503 },
28504 "maxmem" : {
28505 "description" : "Maximum memory in bytes.",
28506 "optional" : 1,
28507 "renderer" : "bytes",
28508 "type" : "integer"
28509 },
28510 "maxswap" : {
28511 "description" : "Maximum SWAP memory in bytes.",
28512 "optional" : 1,
28513 "renderer" : "bytes",
28514 "type" : "integer"
28515 },
28516 "name" : {
28517 "description" : "Container name.",
28518 "optional" : 1,
28519 "type" : "string"
28520 },
28521 "status" : {
28522 "description" : "LXC Container status.",
28523 "enum" : [
28524 "stopped",
28525 "running"
28526 ],
28527 "type" : "string"
28528 },
5c1699e5
TL
28529 "tags" : {
28530 "description" : "The current configured tags, if any.",
28531 "optional" : 1,
28532 "type" : "string"
28533 },
4d47f125
TL
28534 "uptime" : {
28535 "description" : "Uptime.",
28536 "optional" : 1,
28537 "renderer" : "duration",
28538 "type" : "integer"
28539 },
28540 "vmid" : {
28541 "description" : "The (unique) ID of the VM.",
28542 "format" : "pve-vmid",
8dd66e12
TL
28543 "maximum" : 999999999,
28544 "minimum" : 100,
4d47f125
TL
28545 "type" : "integer"
28546 }
28547 },
28548 "type" : "object"
28549 }
28550 }
28551 },
28552 "leaf" : 1,
28553 "path" : "/nodes/{node}/lxc/{vmid}/status/current",
28554 "text" : "current"
28555 },
28556 {
28557 "info" : {
28558 "POST" : {
e9cd3bd4 28559 "allowtoken" : 1,
4d47f125
TL
28560 "description" : "Start the container.",
28561 "method" : "POST",
28562 "name" : "vm_start",
28563 "parameters" : {
28564 "additionalProperties" : 0,
28565 "properties" : {
739d4d64
TL
28566 "debug" : {
28567 "default" : 0,
28568 "description" : "If set, enables very verbose debug log-level on start.",
28569 "optional" : 1,
28570 "type" : "boolean",
28571 "typetext" : "<boolean>"
28572 },
4d47f125
TL
28573 "node" : {
28574 "description" : "The cluster node name.",
28575 "format" : "pve-node",
28576 "type" : "string",
28577 "typetext" : "<string>"
28578 },
28579 "skiplock" : {
28580 "description" : "Ignore locks - only root is allowed to use this option.",
28581 "optional" : 1,
28582 "type" : "boolean",
28583 "typetext" : "<boolean>"
28584 },
28585 "vmid" : {
28586 "description" : "The (unique) ID of the VM.",
28587 "format" : "pve-vmid",
8dd66e12
TL
28588 "maximum" : 999999999,
28589 "minimum" : 100,
4d47f125 28590 "type" : "integer",
8dd66e12 28591 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
28592 }
28593 }
28594 },
28595 "permissions" : {
28596 "check" : [
28597 "perm",
28598 "/vms/{vmid}",
28599 [
28600 "VM.PowerMgmt"
28601 ]
28602 ]
28603 },
28604 "protected" : 1,
28605 "proxyto" : "node",
28606 "returns" : {
28607 "type" : "string"
28608 }
28609 }
28610 },
28611 "leaf" : 1,
28612 "path" : "/nodes/{node}/lxc/{vmid}/status/start",
28613 "text" : "start"
28614 },
28615 {
28616 "info" : {
28617 "POST" : {
e9cd3bd4 28618 "allowtoken" : 1,
4d47f125
TL
28619 "description" : "Stop the container. This will abruptly stop all processes running in the container.",
28620 "method" : "POST",
28621 "name" : "vm_stop",
28622 "parameters" : {
28623 "additionalProperties" : 0,
28624 "properties" : {
28625 "node" : {
28626 "description" : "The cluster node name.",
28627 "format" : "pve-node",
28628 "type" : "string",
28629 "typetext" : "<string>"
28630 },
28631 "skiplock" : {
28632 "description" : "Ignore locks - only root is allowed to use this option.",
28633 "optional" : 1,
28634 "type" : "boolean",
28635 "typetext" : "<boolean>"
28636 },
28637 "vmid" : {
28638 "description" : "The (unique) ID of the VM.",
28639 "format" : "pve-vmid",
8dd66e12
TL
28640 "maximum" : 999999999,
28641 "minimum" : 100,
4d47f125 28642 "type" : "integer",
8dd66e12 28643 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
28644 }
28645 }
28646 },
28647 "permissions" : {
28648 "check" : [
28649 "perm",
28650 "/vms/{vmid}",
28651 [
28652 "VM.PowerMgmt"
28653 ]
28654 ]
28655 },
28656 "protected" : 1,
28657 "proxyto" : "node",
28658 "returns" : {
28659 "type" : "string"
28660 }
28661 }
28662 },
28663 "leaf" : 1,
28664 "path" : "/nodes/{node}/lxc/{vmid}/status/stop",
28665 "text" : "stop"
28666 },
28667 {
28668 "info" : {
28669 "POST" : {
e9cd3bd4 28670 "allowtoken" : 1,
4d47f125
TL
28671 "description" : "Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.",
28672 "method" : "POST",
28673 "name" : "vm_shutdown",
28674 "parameters" : {
28675 "additionalProperties" : 0,
28676 "properties" : {
28677 "forceStop" : {
28678 "default" : 0,
28679 "description" : "Make sure the Container stops.",
28680 "optional" : 1,
28681 "type" : "boolean",
28682 "typetext" : "<boolean>"
28683 },
28684 "node" : {
28685 "description" : "The cluster node name.",
28686 "format" : "pve-node",
28687 "type" : "string",
28688 "typetext" : "<string>"
28689 },
28690 "timeout" : {
28691 "default" : 60,
28692 "description" : "Wait maximal timeout seconds.",
28693 "minimum" : 0,
28694 "optional" : 1,
28695 "type" : "integer",
28696 "typetext" : "<integer> (0 - N)"
28697 },
28698 "vmid" : {
28699 "description" : "The (unique) ID of the VM.",
28700 "format" : "pve-vmid",
8dd66e12
TL
28701 "maximum" : 999999999,
28702 "minimum" : 100,
4d47f125 28703 "type" : "integer",
8dd66e12 28704 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
28705 }
28706 }
28707 },
28708 "permissions" : {
28709 "check" : [
28710 "perm",
28711 "/vms/{vmid}",
28712 [
28713 "VM.PowerMgmt"
7aacca6f
DM
28714 ]
28715 ]
28716 },
44660702 28717 "protected" : 1,
7aacca6f 28718 "proxyto" : "node",
44660702 28719 "returns" : {
4d47f125 28720 "type" : "string"
44660702 28721 }
56122987
DM
28722 }
28723 },
44660702 28724 "leaf" : 1,
4d47f125
TL
28725 "path" : "/nodes/{node}/lxc/{vmid}/status/shutdown",
28726 "text" : "shutdown"
56122987
DM
28727 },
28728 {
56122987
DM
28729 "info" : {
28730 "POST" : {
e9cd3bd4 28731 "allowtoken" : 1,
5370fa8c 28732 "description" : "Suspend the container. This is experimental.",
44660702 28733 "method" : "POST",
4d47f125 28734 "name" : "vm_suspend",
56122987
DM
28735 "parameters" : {
28736 "additionalProperties" : 0,
28737 "properties" : {
56122987 28738 "node" : {
7aacca6f 28739 "description" : "The cluster node name.",
44660702 28740 "format" : "pve-node",
013dc89f
DM
28741 "type" : "string",
28742 "typetext" : "<string>"
56122987
DM
28743 },
28744 "vmid" : {
7aacca6f 28745 "description" : "The (unique) ID of the VM.",
44660702 28746 "format" : "pve-vmid",
8dd66e12
TL
28747 "maximum" : 999999999,
28748 "minimum" : 100,
4bd7df8b 28749 "type" : "integer",
8dd66e12 28750 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
28751 }
28752 }
28753 },
28754 "permissions" : {
28755 "check" : [
28756 "perm",
28757 "/vms/{vmid}",
28758 [
28759 "VM.PowerMgmt"
28760 ]
28761 ]
28762 },
44660702 28763 "protected" : 1,
7aacca6f 28764 "proxyto" : "node",
44660702
DM
28765 "returns" : {
28766 "type" : "string"
28767 }
28768 }
28769 },
28770 "leaf" : 1,
4d47f125
TL
28771 "path" : "/nodes/{node}/lxc/{vmid}/status/suspend",
28772 "text" : "suspend"
44660702
DM
28773 },
28774 {
28775 "info" : {
28776 "POST" : {
e9cd3bd4 28777 "allowtoken" : 1,
4d47f125 28778 "description" : "Resume the container.",
7aacca6f 28779 "method" : "POST",
4d47f125 28780 "name" : "vm_resume",
7aacca6f 28781 "parameters" : {
44660702 28782 "additionalProperties" : 0,
7aacca6f 28783 "properties" : {
44660702
DM
28784 "node" : {
28785 "description" : "The cluster node name.",
28786 "format" : "pve-node",
013dc89f
DM
28787 "type" : "string",
28788 "typetext" : "<string>"
44660702 28789 },
7aacca6f 28790 "vmid" : {
44660702 28791 "description" : "The (unique) ID of the VM.",
7aacca6f 28792 "format" : "pve-vmid",
8dd66e12
TL
28793 "maximum" : 999999999,
28794 "minimum" : 100,
4bd7df8b 28795 "type" : "integer",
8dd66e12 28796 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 28797 }
44660702
DM
28798 }
28799 },
28800 "permissions" : {
28801 "check" : [
28802 "perm",
28803 "/vms/{vmid}",
28804 [
28805 "VM.PowerMgmt"
28806 ]
28807 ]
7aacca6f 28808 },
44660702
DM
28809 "protected" : 1,
28810 "proxyto" : "node",
28811 "returns" : {
28812 "type" : "string"
28813 }
56122987 28814 }
7aacca6f 28815 },
7aacca6f 28816 "leaf" : 1,
4d47f125
TL
28817 "path" : "/nodes/{node}/lxc/{vmid}/status/resume",
28818 "text" : "resume"
5c1699e5
TL
28819 },
28820 {
28821 "info" : {
28822 "POST" : {
e9cd3bd4 28823 "allowtoken" : 1,
5c1699e5
TL
28824 "description" : "Reboot the container by shutting it down, and starting it again. Applies pending changes.",
28825 "method" : "POST",
28826 "name" : "vm_reboot",
28827 "parameters" : {
28828 "additionalProperties" : 0,
28829 "properties" : {
28830 "node" : {
28831 "description" : "The cluster node name.",
28832 "format" : "pve-node",
28833 "type" : "string",
28834 "typetext" : "<string>"
28835 },
28836 "timeout" : {
28837 "description" : "Wait maximal timeout seconds for the shutdown.",
28838 "minimum" : 0,
28839 "optional" : 1,
28840 "type" : "integer",
28841 "typetext" : "<integer> (0 - N)"
28842 },
28843 "vmid" : {
28844 "description" : "The (unique) ID of the VM.",
28845 "format" : "pve-vmid",
8dd66e12
TL
28846 "maximum" : 999999999,
28847 "minimum" : 100,
5c1699e5 28848 "type" : "integer",
8dd66e12 28849 "typetext" : "<integer> (100 - 999999999)"
5c1699e5
TL
28850 }
28851 }
28852 },
28853 "permissions" : {
28854 "check" : [
28855 "perm",
28856 "/vms/{vmid}",
28857 [
28858 "VM.PowerMgmt"
28859 ]
28860 ]
28861 },
28862 "protected" : 1,
28863 "proxyto" : "node",
28864 "returns" : {
28865 "type" : "string"
28866 }
28867 }
28868 },
28869 "leaf" : 1,
28870 "path" : "/nodes/{node}/lxc/{vmid}/status/reboot",
28871 "text" : "reboot"
4d47f125
TL
28872 }
28873 ],
28874 "info" : {
28875 "GET" : {
e9cd3bd4 28876 "allowtoken" : 1,
4d47f125
TL
28877 "description" : "Directory index",
28878 "method" : "GET",
28879 "name" : "vmcmdidx",
28880 "parameters" : {
28881 "additionalProperties" : 0,
28882 "properties" : {
28883 "node" : {
28884 "description" : "The cluster node name.",
28885 "format" : "pve-node",
28886 "type" : "string",
28887 "typetext" : "<string>"
28888 },
28889 "vmid" : {
28890 "description" : "The (unique) ID of the VM.",
28891 "format" : "pve-vmid",
8dd66e12
TL
28892 "maximum" : 999999999,
28893 "minimum" : 100,
4d47f125 28894 "type" : "integer",
8dd66e12 28895 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
28896 }
28897 }
28898 },
28899 "permissions" : {
28900 "user" : "all"
28901 },
28902 "proxyto" : "node",
28903 "returns" : {
28904 "items" : {
28905 "properties" : {
28906 "subdir" : {
28907 "type" : "string"
28908 }
28909 },
28910 "type" : "object"
28911 },
28912 "links" : [
28913 {
28914 "href" : "{subdir}",
28915 "rel" : "child"
28916 }
28917 ],
28918 "type" : "array"
28919 }
28920 }
28921 },
28922 "leaf" : 0,
28923 "path" : "/nodes/{node}/lxc/{vmid}/status",
28924 "text" : "status"
28925 },
28926 {
28927 "children" : [
56122987 28928 {
4d47f125
TL
28929 "children" : [
28930 {
28931 "info" : {
28932 "POST" : {
e9cd3bd4 28933 "allowtoken" : 1,
4d47f125
TL
28934 "description" : "Rollback LXC state to specified snapshot.",
28935 "method" : "POST",
28936 "name" : "rollback",
28937 "parameters" : {
28938 "additionalProperties" : 0,
28939 "properties" : {
28940 "node" : {
28941 "description" : "The cluster node name.",
28942 "format" : "pve-node",
28943 "type" : "string",
28944 "typetext" : "<string>"
28945 },
28946 "snapname" : {
28947 "description" : "The name of the snapshot.",
28948 "format" : "pve-configid",
28949 "maxLength" : 40,
28950 "type" : "string",
28951 "typetext" : "<string>"
28952 },
4e7f60c2
TL
28953 "start" : {
28954 "default" : 0,
28955 "description" : "Whether the container should get started after rolling back successfully",
28956 "optional" : 1,
28957 "type" : "boolean",
28958 "typetext" : "<boolean>"
28959 },
4d47f125
TL
28960 "vmid" : {
28961 "description" : "The (unique) ID of the VM.",
28962 "format" : "pve-vmid",
8dd66e12
TL
28963 "maximum" : 999999999,
28964 "minimum" : 100,
4d47f125 28965 "type" : "integer",
8dd66e12 28966 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
28967 }
28968 }
28969 },
28970 "permissions" : {
28971 "check" : [
28972 "perm",
28973 "/vms/{vmid}",
28974 [
28975 "VM.Snapshot",
28976 "VM.Snapshot.Rollback"
28977 ],
28978 "any",
28979 1
28980 ]
28981 },
28982 "protected" : 1,
28983 "proxyto" : "node",
28984 "returns" : {
28985 "description" : "the task ID.",
28986 "type" : "string"
28987 }
28988 }
28989 },
28990 "leaf" : 1,
28991 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback",
28992 "text" : "rollback"
28993 },
28994 {
28995 "info" : {
28996 "GET" : {
e9cd3bd4 28997 "allowtoken" : 1,
4d47f125
TL
28998 "description" : "Get snapshot configuration",
28999 "method" : "GET",
29000 "name" : "get_snapshot_config",
29001 "parameters" : {
29002 "additionalProperties" : 0,
29003 "properties" : {
29004 "node" : {
29005 "description" : "The cluster node name.",
29006 "format" : "pve-node",
29007 "type" : "string",
29008 "typetext" : "<string>"
29009 },
29010 "snapname" : {
29011 "description" : "The name of the snapshot.",
29012 "format" : "pve-configid",
29013 "maxLength" : 40,
29014 "type" : "string",
29015 "typetext" : "<string>"
29016 },
29017 "vmid" : {
29018 "description" : "The (unique) ID of the VM.",
29019 "format" : "pve-vmid",
8dd66e12
TL
29020 "maximum" : 999999999,
29021 "minimum" : 100,
4d47f125 29022 "type" : "integer",
8dd66e12 29023 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
29024 }
29025 }
29026 },
29027 "permissions" : {
29028 "check" : [
29029 "perm",
29030 "/vms/{vmid}",
29031 [
29032 "VM.Snapshot",
c5aa7e14
TL
29033 "VM.Snapshot.Rollback",
29034 "VM.Audit"
4d47f125
TL
29035 ],
29036 "any",
29037 1
29038 ]
29039 },
29040 "proxyto" : "node",
29041 "returns" : {
29042 "type" : "object"
29043 }
29044 },
29045 "PUT" : {
e9cd3bd4 29046 "allowtoken" : 1,
4d47f125
TL
29047 "description" : "Update snapshot metadata.",
29048 "method" : "PUT",
29049 "name" : "update_snapshot_config",
29050 "parameters" : {
29051 "additionalProperties" : 0,
29052 "properties" : {
29053 "description" : {
29054 "description" : "A textual description or comment.",
29055 "optional" : 1,
29056 "type" : "string",
29057 "typetext" : "<string>"
29058 },
29059 "node" : {
29060 "description" : "The cluster node name.",
29061 "format" : "pve-node",
29062 "type" : "string",
29063 "typetext" : "<string>"
29064 },
29065 "snapname" : {
29066 "description" : "The name of the snapshot.",
29067 "format" : "pve-configid",
29068 "maxLength" : 40,
29069 "type" : "string",
29070 "typetext" : "<string>"
29071 },
29072 "vmid" : {
29073 "description" : "The (unique) ID of the VM.",
29074 "format" : "pve-vmid",
8dd66e12
TL
29075 "maximum" : 999999999,
29076 "minimum" : 100,
4d47f125 29077 "type" : "integer",
8dd66e12 29078 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
29079 }
29080 }
29081 },
29082 "permissions" : {
29083 "check" : [
29084 "perm",
29085 "/vms/{vmid}",
29086 [
29087 "VM.Snapshot"
29088 ]
29089 ]
29090 },
29091 "protected" : 1,
29092 "proxyto" : "node",
29093 "returns" : {
29094 "type" : "null"
29095 }
29096 }
29097 },
29098 "leaf" : 1,
29099 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config",
29100 "text" : "config"
29101 }
29102 ],
56122987 29103 "info" : {
4d47f125 29104 "DELETE" : {
e9cd3bd4 29105 "allowtoken" : 1,
4d47f125
TL
29106 "description" : "Delete a LXC snapshot.",
29107 "method" : "DELETE",
29108 "name" : "delsnapshot",
56122987 29109 "parameters" : {
44660702 29110 "additionalProperties" : 0,
56122987 29111 "properties" : {
4d47f125
TL
29112 "force" : {
29113 "description" : "For removal from config file, even if removing disk snapshots fails.",
7aacca6f 29114 "optional" : 1,
013dc89f
DM
29115 "type" : "boolean",
29116 "typetext" : "<boolean>"
44660702
DM
29117 },
29118 "node" : {
29119 "description" : "The cluster node name.",
29120 "format" : "pve-node",
013dc89f
DM
29121 "type" : "string",
29122 "typetext" : "<string>"
7aacca6f 29123 },
4d47f125
TL
29124 "snapname" : {
29125 "description" : "The name of the snapshot.",
29126 "format" : "pve-configid",
29127 "maxLength" : 40,
29128 "type" : "string",
29129 "typetext" : "<string>"
56122987
DM
29130 },
29131 "vmid" : {
7aacca6f 29132 "description" : "The (unique) ID of the VM.",
44660702 29133 "format" : "pve-vmid",
8dd66e12
TL
29134 "maximum" : 999999999,
29135 "minimum" : 100,
4bd7df8b 29136 "type" : "integer",
8dd66e12 29137 "typetext" : "<integer> (100 - 999999999)"
56122987 29138 }
44660702 29139 }
56122987
DM
29140 },
29141 "permissions" : {
29142 "check" : [
29143 "perm",
29144 "/vms/{vmid}",
29145 [
4d47f125 29146 "VM.Snapshot"
56122987
DM
29147 ]
29148 ]
29149 },
44660702
DM
29150 "protected" : 1,
29151 "proxyto" : "node",
7aacca6f 29152 "returns" : {
4d47f125 29153 "description" : "the task ID.",
7aacca6f
DM
29154 "type" : "string"
29155 }
4d47f125
TL
29156 },
29157 "GET" : {
e9cd3bd4 29158 "allowtoken" : 1,
4d47f125
TL
29159 "description" : "",
29160 "method" : "GET",
29161 "name" : "snapshot_cmd_idx",
56122987
DM
29162 "parameters" : {
29163 "additionalProperties" : 0,
29164 "properties" : {
44660702
DM
29165 "node" : {
29166 "description" : "The cluster node name.",
29167 "format" : "pve-node",
013dc89f
DM
29168 "type" : "string",
29169 "typetext" : "<string>"
44660702 29170 },
4d47f125
TL
29171 "snapname" : {
29172 "description" : "The name of the snapshot.",
29173 "format" : "pve-configid",
29174 "maxLength" : 40,
013dc89f
DM
29175 "type" : "string",
29176 "typetext" : "<string>"
56122987
DM
29177 },
29178 "vmid" : {
7aacca6f 29179 "description" : "The (unique) ID of the VM.",
56122987 29180 "format" : "pve-vmid",
8dd66e12
TL
29181 "maximum" : 999999999,
29182 "minimum" : 100,
4bd7df8b 29183 "type" : "integer",
8dd66e12 29184 "typetext" : "<integer> (100 - 999999999)"
56122987 29185 }
44660702
DM
29186 }
29187 },
29188 "permissions" : {
4d47f125 29189 "user" : "all"
56122987 29190 },
44660702 29191 "returns" : {
4d47f125
TL
29192 "items" : {
29193 "properties" : {},
29194 "type" : "object"
29195 },
29196 "links" : [
29197 {
29198 "href" : "{cmd}",
29199 "rel" : "child"
29200 }
29201 ],
29202 "type" : "array"
44660702 29203 }
7aacca6f
DM
29204 }
29205 },
4d47f125
TL
29206 "leaf" : 0,
29207 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}",
29208 "text" : "{snapname}"
7aacca6f
DM
29209 }
29210 ],
29211 "info" : {
29212 "GET" : {
e9cd3bd4 29213 "allowtoken" : 1,
4d47f125 29214 "description" : "List all snapshots.",
44660702 29215 "method" : "GET",
4d47f125 29216 "name" : "list",
7aacca6f
DM
29217 "parameters" : {
29218 "additionalProperties" : 0,
29219 "properties" : {
29220 "node" : {
29221 "description" : "The cluster node name.",
44660702 29222 "format" : "pve-node",
013dc89f
DM
29223 "type" : "string",
29224 "typetext" : "<string>"
56122987 29225 },
7aacca6f 29226 "vmid" : {
44660702 29227 "description" : "The (unique) ID of the VM.",
7aacca6f 29228 "format" : "pve-vmid",
8dd66e12
TL
29229 "maximum" : 999999999,
29230 "minimum" : 100,
4bd7df8b 29231 "type" : "integer",
8dd66e12 29232 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 29233 }
56122987
DM
29234 }
29235 },
44660702 29236 "permissions" : {
4d47f125
TL
29237 "check" : [
29238 "perm",
29239 "/vms/{vmid}",
29240 [
29241 "VM.Audit"
29242 ]
29243 ]
44660702 29244 },
4d47f125 29245 "protected" : 1,
44660702 29246 "proxyto" : "node",
7aacca6f 29247 "returns" : {
7aacca6f
DM
29248 "items" : {
29249 "properties" : {
4d47f125
TL
29250 "description" : {
29251 "description" : "Snapshot description.",
7aacca6f 29252 "type" : "string"
4d47f125
TL
29253 },
29254 "name" : {
29255 "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
29256 "type" : "string"
29257 },
29258 "parent" : {
29259 "description" : "Parent snapshot identifier.",
29260 "optional" : 1,
29261 "type" : "string"
29262 },
29263 "snaptime" : {
29264 "description" : "Snapshot creation time",
29265 "optional" : 1,
29266 "renderer" : "timestamp",
29267 "type" : "integer"
7aacca6f
DM
29268 }
29269 },
29270 "type" : "object"
29271 },
29272 "links" : [
29273 {
4d47f125 29274 "href" : "{name}",
44660702 29275 "rel" : "child"
7aacca6f 29276 }
44660702
DM
29277 ],
29278 "type" : "array"
7aacca6f 29279 }
4d47f125
TL
29280 },
29281 "POST" : {
e9cd3bd4 29282 "allowtoken" : 1,
4d47f125
TL
29283 "description" : "Snapshot a container.",
29284 "method" : "POST",
29285 "name" : "snapshot",
29286 "parameters" : {
29287 "additionalProperties" : 0,
29288 "properties" : {
29289 "description" : {
29290 "description" : "A textual description or comment.",
29291 "optional" : 1,
29292 "type" : "string",
29293 "typetext" : "<string>"
29294 },
29295 "node" : {
29296 "description" : "The cluster node name.",
29297 "format" : "pve-node",
29298 "type" : "string",
29299 "typetext" : "<string>"
29300 },
29301 "snapname" : {
29302 "description" : "The name of the snapshot.",
29303 "format" : "pve-configid",
29304 "maxLength" : 40,
29305 "type" : "string",
29306 "typetext" : "<string>"
29307 },
29308 "vmid" : {
29309 "description" : "The (unique) ID of the VM.",
29310 "format" : "pve-vmid",
8dd66e12
TL
29311 "maximum" : 999999999,
29312 "minimum" : 100,
4d47f125 29313 "type" : "integer",
8dd66e12 29314 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
29315 }
29316 }
29317 },
29318 "permissions" : {
29319 "check" : [
29320 "perm",
29321 "/vms/{vmid}",
29322 [
29323 "VM.Snapshot"
29324 ]
29325 ]
29326 },
29327 "protected" : 1,
29328 "proxyto" : "node",
29329 "returns" : {
29330 "description" : "the task ID.",
29331 "type" : "string"
29332 }
7aacca6f 29333 }
44660702
DM
29334 },
29335 "leaf" : 0,
4d47f125
TL
29336 "path" : "/nodes/{node}/lxc/{vmid}/snapshot",
29337 "text" : "snapshot"
7aacca6f
DM
29338 },
29339 {
7aacca6f 29340 "children" : [
56122987 29341 {
7aacca6f
DM
29342 "children" : [
29343 {
29344 "info" : {
4d47f125 29345 "DELETE" : {
e9cd3bd4 29346 "allowtoken" : 1,
4d47f125
TL
29347 "description" : "Delete rule.",
29348 "method" : "DELETE",
29349 "name" : "delete_rule",
7aacca6f 29350 "parameters" : {
44660702 29351 "additionalProperties" : 0,
7aacca6f 29352 "properties" : {
4d47f125
TL
29353 "digest" : {
29354 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29355 "maxLength" : 40,
29356 "optional" : 1,
29357 "type" : "string",
29358 "typetext" : "<string>"
29359 },
44660702
DM
29360 "node" : {
29361 "description" : "The cluster node name.",
29362 "format" : "pve-node",
013dc89f
DM
29363 "type" : "string",
29364 "typetext" : "<string>"
44660702 29365 },
4d47f125
TL
29366 "pos" : {
29367 "description" : "Update rule at position <pos>.",
29368 "minimum" : 0,
29369 "optional" : 1,
29370 "type" : "integer",
29371 "typetext" : "<integer> (0 - N)"
7aacca6f 29372 },
7aacca6f 29373 "vmid" : {
44660702 29374 "description" : "The (unique) ID of the VM.",
7aacca6f 29375 "format" : "pve-vmid",
8dd66e12
TL
29376 "maximum" : 999999999,
29377 "minimum" : 100,
4bd7df8b 29378 "type" : "integer",
8dd66e12 29379 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 29380 }
44660702
DM
29381 }
29382 },
29383 "permissions" : {
29384 "check" : [
29385 "perm",
29386 "/vms/{vmid}",
29387 [
4d47f125
TL
29388 "VM.Config.Network"
29389 ]
44660702 29390 ]
7aacca6f 29391 },
44660702 29392 "protected" : 1,
4d47f125 29393 "proxyto" : null,
44660702 29394 "returns" : {
4d47f125 29395 "type" : "null"
44660702 29396 }
4d47f125 29397 },
7aacca6f 29398 "GET" : {
e9cd3bd4 29399 "allowtoken" : 1,
4d47f125 29400 "description" : "Get single rule data.",
44660702 29401 "method" : "GET",
4d47f125 29402 "name" : "get_rule",
7aacca6f
DM
29403 "parameters" : {
29404 "additionalProperties" : 0,
4d47f125
TL
29405 "properties" : {
29406 "node" : {
29407 "description" : "The cluster node name.",
29408 "format" : "pve-node",
013dc89f
DM
29409 "type" : "string",
29410 "typetext" : "<string>"
44660702 29411 },
4d47f125
TL
29412 "pos" : {
29413 "description" : "Update rule at position <pos>.",
29414 "minimum" : 0,
29415 "optional" : 1,
29416 "type" : "integer",
29417 "typetext" : "<integer> (0 - N)"
29418 },
44660702
DM
29419 "vmid" : {
29420 "description" : "The (unique) ID of the VM.",
29421 "format" : "pve-vmid",
8dd66e12
TL
29422 "maximum" : 999999999,
29423 "minimum" : 100,
4bd7df8b 29424 "type" : "integer",
8dd66e12 29425 "typetext" : "<integer> (100 - 999999999)"
7aacca6f
DM
29426 }
29427 }
29428 },
29429 "permissions" : {
29430 "check" : [
29431 "perm",
29432 "/vms/{vmid}",
29433 [
4d47f125
TL
29434 "VM.Audit"
29435 ]
7aacca6f
DM
29436 ]
29437 },
4d47f125 29438 "proxyto" : null,
44660702 29439 "returns" : {
4d47f125 29440 "properties" : {
e2d681b3
TL
29441 "action" : {
29442 "type" : "string"
29443 },
29444 "comment" : {
29445 "optional" : 1,
29446 "type" : "string"
29447 },
29448 "dest" : {
29449 "optional" : 1,
29450 "type" : "string"
29451 },
29452 "dport" : {
29453 "optional" : 1,
29454 "type" : "string"
29455 },
29456 "enable" : {
29457 "optional" : 1,
29458 "type" : "integer"
29459 },
4772952b
TL
29460 "icmp-type" : {
29461 "optional" : 1,
29462 "type" : "string"
29463 },
e2d681b3
TL
29464 "iface" : {
29465 "optional" : 1,
29466 "type" : "string"
29467 },
29468 "ipversion" : {
29469 "optional" : 1,
29470 "type" : "integer"
29471 },
95895385
TL
29472 "log" : {
29473 "description" : "Log level for firewall rule",
29474 "enum" : [
29475 "emerg",
29476 "alert",
29477 "crit",
29478 "err",
29479 "warning",
29480 "notice",
29481 "info",
29482 "debug",
29483 "nolog"
29484 ],
29485 "optional" : 1,
29486 "type" : "string"
29487 },
e2d681b3
TL
29488 "macro" : {
29489 "optional" : 1,
5f26e15b 29490 "type" : "string"
e2d681b3 29491 },
4d47f125
TL
29492 "pos" : {
29493 "type" : "integer"
e2d681b3
TL
29494 },
29495 "proto" : {
29496 "optional" : 1,
29497 "type" : "string"
29498 },
29499 "source" : {
29500 "optional" : 1,
29501 "type" : "string"
29502 },
29503 "sport" : {
29504 "optional" : 1,
29505 "type" : "string"
29506 },
29507 "type" : {
29508 "type" : "string"
4d47f125
TL
29509 }
29510 },
44660702
DM
29511 "type" : "object"
29512 }
7aacca6f
DM
29513 },
29514 "PUT" : {
e9cd3bd4 29515 "allowtoken" : 1,
4d47f125 29516 "description" : "Modify rule data.",
44660702 29517 "method" : "PUT",
4d47f125 29518 "name" : "update_rule",
7aacca6f
DM
29519 "parameters" : {
29520 "additionalProperties" : 0,
29521 "properties" : {
4d47f125
TL
29522 "action" : {
29523 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
29524 "maxLength" : 20,
29525 "minLength" : 2,
29526 "optional" : 1,
29527 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
29528 "type" : "string"
29529 },
29530 "comment" : {
29531 "description" : "Descriptive comment.",
29532 "optional" : 1,
29533 "type" : "string",
29534 "typetext" : "<string>"
29535 },
29536 "delete" : {
29537 "description" : "A list of settings you want to delete.",
29538 "format" : "pve-configid-list",
29539 "optional" : 1,
29540 "type" : "string",
29541 "typetext" : "<string>"
29542 },
29543 "dest" : {
29544 "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.",
29545 "format" : "pve-fw-addr-spec",
0695fdaf 29546 "maxLength" : 512,
4d47f125
TL
29547 "optional" : 1,
29548 "type" : "string",
29549 "typetext" : "<string>"
29550 },
29551 "digest" : {
29552 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29553 "maxLength" : 40,
29554 "optional" : 1,
29555 "type" : "string",
29556 "typetext" : "<string>"
29557 },
29558 "dport" : {
29559 "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.",
29560 "format" : "pve-fw-dport-spec",
29561 "optional" : 1,
29562 "type" : "string",
29563 "typetext" : "<string>"
29564 },
29565 "enable" : {
29566 "description" : "Flag to enable/disable a rule.",
29567 "minimum" : 0,
29568 "optional" : 1,
29569 "type" : "integer",
29570 "typetext" : "<integer> (0 - N)"
29571 },
4772952b 29572 "icmp-type" : {
287a95cf 29573 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
29574 "format" : "pve-fw-icmp-type-spec",
29575 "optional" : 1,
29576 "type" : "string",
29577 "typetext" : "<string>"
29578 },
4d47f125
TL
29579 "iface" : {
29580 "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.",
29581 "format" : "pve-iface",
29582 "maxLength" : 20,
29583 "minLength" : 2,
29584 "optional" : 1,
29585 "type" : "string",
29586 "typetext" : "<string>"
29587 },
95895385
TL
29588 "log" : {
29589 "description" : "Log level for firewall rule.",
29590 "enum" : [
29591 "emerg",
29592 "alert",
29593 "crit",
29594 "err",
29595 "warning",
29596 "notice",
29597 "info",
29598 "debug",
29599 "nolog"
29600 ],
29601 "optional" : 1,
29602 "type" : "string"
29603 },
4d47f125
TL
29604 "macro" : {
29605 "description" : "Use predefined standard macro.",
29606 "maxLength" : 128,
44660702 29607 "optional" : 1,
013dc89f
DM
29608 "type" : "string",
29609 "typetext" : "<string>"
44660702 29610 },
4d47f125
TL
29611 "moveto" : {
29612 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
29613 "minimum" : 0,
29614 "optional" : 1,
29615 "type" : "integer",
29616 "typetext" : "<integer> (0 - N)"
29617 },
7aacca6f 29618 "node" : {
7aacca6f 29619 "description" : "The cluster node name.",
44660702 29620 "format" : "pve-node",
013dc89f
DM
29621 "type" : "string",
29622 "typetext" : "<string>"
7aacca6f 29623 },
4d47f125
TL
29624 "pos" : {
29625 "description" : "Update rule at position <pos>.",
29626 "minimum" : 0,
29627 "optional" : 1,
29628 "type" : "integer",
29629 "typetext" : "<integer> (0 - N)"
29630 },
29631 "proto" : {
29632 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
29633 "format" : "pve-fw-protocol-spec",
29634 "optional" : 1,
29635 "type" : "string",
29636 "typetext" : "<string>"
29637 },
29638 "source" : {
29639 "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.",
29640 "format" : "pve-fw-addr-spec",
0695fdaf 29641 "maxLength" : 512,
4d47f125
TL
29642 "optional" : 1,
29643 "type" : "string",
29644 "typetext" : "<string>"
29645 },
29646 "sport" : {
29647 "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.",
29648 "format" : "pve-fw-sport-spec",
29649 "optional" : 1,
013dc89f
DM
29650 "type" : "string",
29651 "typetext" : "<string>"
7aacca6f 29652 },
4d47f125
TL
29653 "type" : {
29654 "description" : "Rule type.",
29655 "enum" : [
29656 "in",
29657 "out",
29658 "group"
29659 ],
29660 "optional" : 1,
29661 "type" : "string"
29662 },
7aacca6f 29663 "vmid" : {
44660702 29664 "description" : "The (unique) ID of the VM.",
7aacca6f 29665 "format" : "pve-vmid",
8dd66e12
TL
29666 "maximum" : 999999999,
29667 "minimum" : 100,
4bd7df8b 29668 "type" : "integer",
8dd66e12 29669 "typetext" : "<integer> (100 - 999999999)"
7aacca6f
DM
29670 }
29671 }
29672 },
7aacca6f
DM
29673 "permissions" : {
29674 "check" : [
29675 "perm",
29676 "/vms/{vmid}",
29677 [
4d47f125 29678 "VM.Config.Network"
7aacca6f
DM
29679 ]
29680 ]
29681 },
4d47f125
TL
29682 "protected" : 1,
29683 "proxyto" : null,
29684 "returns" : {
29685 "type" : "null"
29686 }
29687 }
29688 },
29689 "leaf" : 1,
29690 "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}",
29691 "text" : "{pos}"
29692 }
29693 ],
29694 "info" : {
29695 "GET" : {
e9cd3bd4 29696 "allowtoken" : 1,
4d47f125
TL
29697 "description" : "List rules.",
29698 "method" : "GET",
29699 "name" : "get_rules",
29700 "parameters" : {
29701 "additionalProperties" : 0,
29702 "properties" : {
29703 "node" : {
29704 "description" : "The cluster node name.",
29705 "format" : "pve-node",
29706 "type" : "string",
29707 "typetext" : "<string>"
29708 },
29709 "vmid" : {
29710 "description" : "The (unique) ID of the VM.",
29711 "format" : "pve-vmid",
8dd66e12
TL
29712 "maximum" : 999999999,
29713 "minimum" : 100,
4d47f125 29714 "type" : "integer",
8dd66e12 29715 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
29716 }
29717 }
29718 },
29719 "permissions" : {
29720 "check" : [
29721 "perm",
29722 "/vms/{vmid}",
29723 [
29724 "VM.Audit"
29725 ]
29726 ]
29727 },
29728 "proxyto" : null,
29729 "returns" : {
29730 "items" : {
29731 "properties" : {
29732 "pos" : {
29733 "type" : "integer"
29734 }
29735 },
29736 "type" : "object"
29737 },
29738 "links" : [
29739 {
29740 "href" : "{pos}",
29741 "rel" : "child"
29742 }
29743 ],
29744 "type" : "array"
29745 }
29746 },
29747 "POST" : {
e9cd3bd4 29748 "allowtoken" : 1,
4d47f125
TL
29749 "description" : "Create new rule.",
29750 "method" : "POST",
29751 "name" : "create_rule",
29752 "parameters" : {
29753 "additionalProperties" : 0,
29754 "properties" : {
29755 "action" : {
29756 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
29757 "maxLength" : 20,
29758 "minLength" : 2,
29759 "optional" : 0,
29760 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
29761 "type" : "string"
29762 },
29763 "comment" : {
29764 "description" : "Descriptive comment.",
29765 "optional" : 1,
29766 "type" : "string",
29767 "typetext" : "<string>"
29768 },
29769 "dest" : {
29770 "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.",
29771 "format" : "pve-fw-addr-spec",
0695fdaf 29772 "maxLength" : 512,
4d47f125
TL
29773 "optional" : 1,
29774 "type" : "string",
29775 "typetext" : "<string>"
29776 },
29777 "digest" : {
29778 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29779 "maxLength" : 40,
29780 "optional" : 1,
29781 "type" : "string",
29782 "typetext" : "<string>"
29783 },
29784 "dport" : {
29785 "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.",
29786 "format" : "pve-fw-dport-spec",
29787 "optional" : 1,
29788 "type" : "string",
29789 "typetext" : "<string>"
29790 },
29791 "enable" : {
29792 "description" : "Flag to enable/disable a rule.",
29793 "minimum" : 0,
29794 "optional" : 1,
29795 "type" : "integer",
29796 "typetext" : "<integer> (0 - N)"
29797 },
4772952b 29798 "icmp-type" : {
287a95cf 29799 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
29800 "format" : "pve-fw-icmp-type-spec",
29801 "optional" : 1,
29802 "type" : "string",
29803 "typetext" : "<string>"
29804 },
4d47f125
TL
29805 "iface" : {
29806 "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.",
29807 "format" : "pve-iface",
29808 "maxLength" : 20,
29809 "minLength" : 2,
29810 "optional" : 1,
29811 "type" : "string",
29812 "typetext" : "<string>"
29813 },
95895385
TL
29814 "log" : {
29815 "description" : "Log level for firewall rule.",
29816 "enum" : [
29817 "emerg",
29818 "alert",
29819 "crit",
29820 "err",
29821 "warning",
29822 "notice",
29823 "info",
29824 "debug",
29825 "nolog"
29826 ],
29827 "optional" : 1,
29828 "type" : "string"
29829 },
4d47f125
TL
29830 "macro" : {
29831 "description" : "Use predefined standard macro.",
29832 "maxLength" : 128,
44660702 29833 "optional" : 1,
4d47f125
TL
29834 "type" : "string",
29835 "typetext" : "<string>"
44660702
DM
29836 },
29837 "node" : {
29838 "description" : "The cluster node name.",
29839 "format" : "pve-node",
013dc89f
DM
29840 "type" : "string",
29841 "typetext" : "<string>"
7aacca6f 29842 },
4d47f125
TL
29843 "pos" : {
29844 "description" : "Update rule at position <pos>.",
29845 "minimum" : 0,
29846 "optional" : 1,
29847 "type" : "integer",
29848 "typetext" : "<integer> (0 - N)"
29849 },
29850 "proto" : {
29851 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
29852 "format" : "pve-fw-protocol-spec",
29853 "optional" : 1,
29854 "type" : "string",
29855 "typetext" : "<string>"
29856 },
29857 "source" : {
29858 "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.",
29859 "format" : "pve-fw-addr-spec",
0695fdaf 29860 "maxLength" : 512,
4d47f125 29861 "optional" : 1,
013dc89f
DM
29862 "type" : "string",
29863 "typetext" : "<string>"
44660702 29864 },
4d47f125
TL
29865 "sport" : {
29866 "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.",
29867 "format" : "pve-fw-sport-spec",
29868 "optional" : 1,
29869 "type" : "string",
29870 "typetext" : "<string>"
29871 },
29872 "type" : {
29873 "description" : "Rule type.",
29874 "enum" : [
29875 "in",
29876 "out",
29877 "group"
29878 ],
29879 "optional" : 0,
29880 "type" : "string"
29881 },
44660702
DM
29882 "vmid" : {
29883 "description" : "The (unique) ID of the VM.",
29884 "format" : "pve-vmid",
8dd66e12
TL
29885 "maximum" : 999999999,
29886 "minimum" : 100,
4bd7df8b 29887 "type" : "integer",
8dd66e12 29888 "typetext" : "<integer> (100 - 999999999)"
56122987 29889 }
44660702 29890 }
7aacca6f 29891 },
56122987
DM
29892 "permissions" : {
29893 "check" : [
29894 "perm",
29895 "/vms/{vmid}",
29896 [
4d47f125 29897 "VM.Config.Network"
56122987
DM
29898 ]
29899 ]
29900 },
44660702 29901 "protected" : 1,
4d47f125 29902 "proxyto" : null,
44660702 29903 "returns" : {
4d47f125 29904 "type" : "null"
44660702
DM
29905 }
29906 }
29907 },
29908 "leaf" : 0,
4d47f125
TL
29909 "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules",
29910 "text" : "rules"
7aacca6f 29911 },
56122987 29912 {
56122987
DM
29913 "children" : [
29914 {
56122987 29915 "info" : {
44660702 29916 "DELETE" : {
e9cd3bd4 29917 "allowtoken" : 1,
4d47f125 29918 "description" : "Remove IP or Network alias.",
44660702 29919 "method" : "DELETE",
4d47f125 29920 "name" : "remove_alias",
56122987 29921 "parameters" : {
44660702 29922 "additionalProperties" : 0,
56122987 29923 "properties" : {
44660702
DM
29924 "digest" : {
29925 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29926 "maxLength" : 40,
7aacca6f 29927 "optional" : 1,
013dc89f
DM
29928 "type" : "string",
29929 "typetext" : "<string>"
7aacca6f 29930 },
4d47f125
TL
29931 "name" : {
29932 "description" : "Alias name.",
29933 "maxLength" : 64,
29934 "minLength" : 2,
29935 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
29936 "type" : "string"
29937 },
7aacca6f 29938 "node" : {
44660702 29939 "description" : "The cluster node name.",
7aacca6f 29940 "format" : "pve-node",
013dc89f
DM
29941 "type" : "string",
29942 "typetext" : "<string>"
44660702 29943 },
44660702
DM
29944 "vmid" : {
29945 "description" : "The (unique) ID of the VM.",
29946 "format" : "pve-vmid",
8dd66e12
TL
29947 "maximum" : 999999999,
29948 "minimum" : 100,
4bd7df8b 29949 "type" : "integer",
8dd66e12 29950 "typetext" : "<integer> (100 - 999999999)"
56122987 29951 }
44660702 29952 }
56122987 29953 },
56122987
DM
29954 "permissions" : {
29955 "check" : [
29956 "perm",
29957 "/vms/{vmid}",
29958 [
44660702 29959 "VM.Config.Network"
56122987
DM
29960 ]
29961 ]
29962 },
44660702 29963 "protected" : 1,
44660702
DM
29964 "returns" : {
29965 "type" : "null"
29966 }
7aacca6f 29967 },
44660702 29968 "GET" : {
e9cd3bd4 29969 "allowtoken" : 1,
4d47f125 29970 "description" : "Read alias.",
44660702 29971 "method" : "GET",
4d47f125 29972 "name" : "read_alias",
56122987 29973 "parameters" : {
44660702 29974 "additionalProperties" : 0,
56122987 29975 "properties" : {
4d47f125
TL
29976 "name" : {
29977 "description" : "Alias name.",
29978 "maxLength" : 64,
29979 "minLength" : 2,
29980 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
29981 "type" : "string"
29982 },
7aacca6f 29983 "node" : {
7aacca6f 29984 "description" : "The cluster node name.",
44660702 29985 "format" : "pve-node",
013dc89f
DM
29986 "type" : "string",
29987 "typetext" : "<string>"
56122987 29988 },
7aacca6f 29989 "vmid" : {
44660702 29990 "description" : "The (unique) ID of the VM.",
7aacca6f 29991 "format" : "pve-vmid",
8dd66e12
TL
29992 "maximum" : 999999999,
29993 "minimum" : 100,
4bd7df8b 29994 "type" : "integer",
8dd66e12 29995 "typetext" : "<integer> (100 - 999999999)"
56122987 29996 }
44660702 29997 }
56122987 29998 },
7aacca6f
DM
29999 "permissions" : {
30000 "check" : [
30001 "perm",
30002 "/vms/{vmid}",
30003 [
44660702 30004 "VM.Audit"
7aacca6f
DM
30005 ]
30006 ]
30007 },
7aacca6f 30008 "returns" : {
44660702 30009 "type" : "object"
7aacca6f 30010 }
56122987 30011 },
44660702 30012 "PUT" : {
e9cd3bd4 30013 "allowtoken" : 1,
4d47f125 30014 "description" : "Update IP or Network alias.",
44660702 30015 "method" : "PUT",
4d47f125 30016 "name" : "update_alias",
56122987
DM
30017 "parameters" : {
30018 "additionalProperties" : 0,
30019 "properties" : {
4d47f125
TL
30020 "cidr" : {
30021 "description" : "Network/IP specification in CIDR format.",
30022 "format" : "IPorCIDR",
013dc89f
DM
30023 "type" : "string",
30024 "typetext" : "<string>"
44660702 30025 },
4d47f125 30026 "comment" : {
44660702 30027 "optional" : 1,
013dc89f
DM
30028 "type" : "string",
30029 "typetext" : "<string>"
44660702
DM
30030 },
30031 "digest" : {
30032 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
30033 "maxLength" : 40,
30034 "optional" : 1,
013dc89f
DM
30035 "type" : "string",
30036 "typetext" : "<string>"
44660702 30037 },
4d47f125
TL
30038 "name" : {
30039 "description" : "Alias name.",
30040 "maxLength" : 64,
44660702 30041 "minLength" : 2,
4d47f125
TL
30042 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
30043 "type" : "string"
44660702 30044 },
7aacca6f
DM
30045 "node" : {
30046 "description" : "The cluster node name.",
44660702 30047 "format" : "pve-node",
013dc89f
DM
30048 "type" : "string",
30049 "typetext" : "<string>"
56122987 30050 },
4d47f125
TL
30051 "rename" : {
30052 "description" : "Rename an existing alias.",
30053 "maxLength" : 64,
30054 "minLength" : 2,
7aacca6f 30055 "optional" : 1,
4d47f125 30056 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
30057 "type" : "string"
30058 },
30059 "vmid" : {
30060 "description" : "The (unique) ID of the VM.",
30061 "format" : "pve-vmid",
8dd66e12
TL
30062 "maximum" : 999999999,
30063 "minimum" : 100,
4bd7df8b 30064 "type" : "integer",
8dd66e12 30065 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
30066 }
30067 }
30068 },
56122987
DM
30069 "permissions" : {
30070 "check" : [
30071 "perm",
30072 "/vms/{vmid}",
30073 [
7aacca6f 30074 "VM.Config.Network"
56122987
DM
30075 ]
30076 ]
30077 },
44660702 30078 "protected" : 1,
56122987 30079 "returns" : {
7aacca6f
DM
30080 "type" : "null"
30081 }
56122987 30082 }
44660702
DM
30083 },
30084 "leaf" : 1,
4d47f125
TL
30085 "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}",
30086 "text" : "{name}"
56122987
DM
30087 }
30088 ],
30089 "info" : {
7aacca6f 30090 "GET" : {
e9cd3bd4 30091 "allowtoken" : 1,
4d47f125 30092 "description" : "List aliases",
44660702 30093 "method" : "GET",
4d47f125 30094 "name" : "get_aliases",
7aacca6f 30095 "parameters" : {
44660702 30096 "additionalProperties" : 0,
7aacca6f
DM
30097 "properties" : {
30098 "node" : {
7aacca6f 30099 "description" : "The cluster node name.",
44660702 30100 "format" : "pve-node",
013dc89f
DM
30101 "type" : "string",
30102 "typetext" : "<string>"
7aacca6f
DM
30103 },
30104 "vmid" : {
30105 "description" : "The (unique) ID of the VM.",
44660702 30106 "format" : "pve-vmid",
8dd66e12
TL
30107 "maximum" : 999999999,
30108 "minimum" : 100,
4bd7df8b 30109 "type" : "integer",
8dd66e12 30110 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 30111 }
44660702 30112 }
56122987 30113 },
56122987
DM
30114 "permissions" : {
30115 "check" : [
30116 "perm",
30117 "/vms/{vmid}",
30118 [
7aacca6f 30119 "VM.Audit"
56122987
DM
30120 ]
30121 ]
30122 },
7aacca6f 30123 "returns" : {
7aacca6f
DM
30124 "items" : {
30125 "properties" : {
4d47f125
TL
30126 "cidr" : {
30127 "type" : "string"
30128 },
30129 "comment" : {
30130 "optional" : 1,
30131 "type" : "string"
30132 },
30133 "digest" : {
30134 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
30135 "maxLength" : 40,
30136 "optional" : 0,
30137 "type" : "string"
30138 },
30139 "name" : {
30140 "type" : "string"
7aacca6f
DM
30141 }
30142 },
30143 "type" : "object"
30144 },
30145 "links" : [
30146 {
4d47f125 30147 "href" : "{name}",
44660702 30148 "rel" : "child"
7aacca6f 30149 }
44660702
DM
30150 ],
30151 "type" : "array"
30152 }
7aacca6f
DM
30153 },
30154 "POST" : {
e9cd3bd4 30155 "allowtoken" : 1,
4d47f125 30156 "description" : "Create IP or Network Alias.",
44660702 30157 "method" : "POST",
4d47f125 30158 "name" : "create_alias",
56122987 30159 "parameters" : {
44660702 30160 "additionalProperties" : 0,
56122987 30161 "properties" : {
4d47f125
TL
30162 "cidr" : {
30163 "description" : "Network/IP specification in CIDR format.",
30164 "format" : "IPorCIDR",
013dc89f 30165 "type" : "string",
4d47f125
TL
30166 "typetext" : "<string>"
30167 },
30168 "comment" : {
44660702 30169 "optional" : 1,
013dc89f
DM
30170 "type" : "string",
30171 "typetext" : "<string>"
7aacca6f 30172 },
4d47f125
TL
30173 "name" : {
30174 "description" : "Alias name.",
30175 "maxLength" : 64,
30176 "minLength" : 2,
30177 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
30178 "type" : "string"
30179 },
4d47f125
TL
30180 "node" : {
30181 "description" : "The cluster node name.",
30182 "format" : "pve-node",
30183 "type" : "string",
30184 "typetext" : "<string>"
30185 },
44660702
DM
30186 "vmid" : {
30187 "description" : "The (unique) ID of the VM.",
30188 "format" : "pve-vmid",
8dd66e12
TL
30189 "maximum" : 999999999,
30190 "minimum" : 100,
4bd7df8b 30191 "type" : "integer",
8dd66e12 30192 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
30193 }
30194 }
30195 },
30196 "permissions" : {
30197 "check" : [
30198 "perm",
30199 "/vms/{vmid}",
30200 [
30201 "VM.Config.Network"
30202 ]
30203 ]
30204 },
30205 "protected" : 1,
44660702
DM
30206 "returns" : {
30207 "type" : "null"
30208 }
30209 }
30210 },
30211 "leaf" : 0,
4d47f125
TL
30212 "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases",
30213 "text" : "aliases"
44660702
DM
30214 },
30215 {
30216 "children" : [
30217 {
4d47f125
TL
30218 "children" : [
30219 {
30220 "info" : {
30221 "DELETE" : {
e9cd3bd4 30222 "allowtoken" : 1,
4d47f125
TL
30223 "description" : "Remove IP or Network from IPSet.",
30224 "method" : "DELETE",
30225 "name" : "remove_ip",
30226 "parameters" : {
30227 "additionalProperties" : 0,
30228 "properties" : {
30229 "cidr" : {
30230 "description" : "Network/IP specification in CIDR format.",
30231 "format" : "IPorCIDRorAlias",
30232 "type" : "string",
30233 "typetext" : "<string>"
30234 },
30235 "digest" : {
30236 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
30237 "maxLength" : 40,
30238 "optional" : 1,
30239 "type" : "string",
30240 "typetext" : "<string>"
30241 },
30242 "name" : {
30243 "description" : "IP set name.",
30244 "maxLength" : 64,
30245 "minLength" : 2,
30246 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
30247 "type" : "string"
30248 },
30249 "node" : {
30250 "description" : "The cluster node name.",
30251 "format" : "pve-node",
30252 "type" : "string",
30253 "typetext" : "<string>"
30254 },
30255 "vmid" : {
30256 "description" : "The (unique) ID of the VM.",
30257 "format" : "pve-vmid",
8dd66e12
TL
30258 "maximum" : 999999999,
30259 "minimum" : 100,
4d47f125 30260 "type" : "integer",
8dd66e12 30261 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
30262 }
30263 }
30264 },
30265 "permissions" : {
30266 "check" : [
30267 "perm",
30268 "/vms/{vmid}",
30269 [
30270 "VM.Config.Network"
30271 ]
30272 ]
30273 },
30274 "protected" : 1,
30275 "returns" : {
30276 "type" : "null"
30277 }
30278 },
30279 "GET" : {
e9cd3bd4 30280 "allowtoken" : 1,
4d47f125
TL
30281 "description" : "Read IP or Network settings from IPSet.",
30282 "method" : "GET",
30283 "name" : "read_ip",
30284 "parameters" : {
30285 "additionalProperties" : 0,
30286 "properties" : {
30287 "cidr" : {
30288 "description" : "Network/IP specification in CIDR format.",
30289 "format" : "IPorCIDRorAlias",
30290 "type" : "string",
30291 "typetext" : "<string>"
30292 },
30293 "name" : {
30294 "description" : "IP set name.",
30295 "maxLength" : 64,
30296 "minLength" : 2,
30297 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
30298 "type" : "string"
30299 },
30300 "node" : {
30301 "description" : "The cluster node name.",
30302 "format" : "pve-node",
30303 "type" : "string",
30304 "typetext" : "<string>"
30305 },
30306 "vmid" : {
30307 "description" : "The (unique) ID of the VM.",
30308 "format" : "pve-vmid",
8dd66e12
TL
30309 "maximum" : 999999999,
30310 "minimum" : 100,
4d47f125 30311 "type" : "integer",
8dd66e12 30312 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
30313 }
30314 }
30315 },
30316 "permissions" : {
30317 "check" : [
30318 "perm",
30319 "/vms/{vmid}",
30320 [
30321 "VM.Audit"
30322 ]
30323 ]
30324 },
30325 "protected" : 1,
30326 "returns" : {
30327 "type" : "object"
30328 }
30329 },
30330 "PUT" : {
e9cd3bd4 30331 "allowtoken" : 1,
4d47f125
TL
30332 "description" : "Update IP or Network settings",
30333 "method" : "PUT",
30334 "name" : "update_ip",
30335 "parameters" : {
30336 "additionalProperties" : 0,
30337 "properties" : {
30338 "cidr" : {
30339 "description" : "Network/IP specification in CIDR format.",
30340 "format" : "IPorCIDRorAlias",
30341 "type" : "string",
30342 "typetext" : "<string>"
30343 },
30344 "comment" : {
30345 "optional" : 1,
30346 "type" : "string",
30347 "typetext" : "<string>"
30348 },
30349 "digest" : {
30350 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
30351 "maxLength" : 40,
30352 "optional" : 1,
30353 "type" : "string",
30354 "typetext" : "<string>"
30355 },
30356 "name" : {
30357 "description" : "IP set name.",
30358 "maxLength" : 64,
30359 "minLength" : 2,
30360 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
30361 "type" : "string"
30362 },
30363 "node" : {
30364 "description" : "The cluster node name.",
30365 "format" : "pve-node",
30366 "type" : "string",
30367 "typetext" : "<string>"
30368 },
30369 "nomatch" : {
30370 "optional" : 1,
30371 "type" : "boolean",
30372 "typetext" : "<boolean>"
30373 },
30374 "vmid" : {
30375 "description" : "The (unique) ID of the VM.",
30376 "format" : "pve-vmid",
8dd66e12
TL
30377 "maximum" : 999999999,
30378 "minimum" : 100,
4d47f125 30379 "type" : "integer",
8dd66e12 30380 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
30381 }
30382 }
30383 },
30384 "permissions" : {
30385 "check" : [
30386 "perm",
30387 "/vms/{vmid}",
30388 [
30389 "VM.Config.Network"
30390 ]
30391 ]
30392 },
30393 "protected" : 1,
30394 "returns" : {
30395 "type" : "null"
30396 }
30397 }
30398 },
30399 "leaf" : 1,
30400 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}",
30401 "text" : "{cidr}"
30402 }
30403 ],
44660702
DM
30404 "info" : {
30405 "DELETE" : {
e9cd3bd4 30406 "allowtoken" : 1,
4d47f125 30407 "description" : "Delete IPSet",
44660702 30408 "method" : "DELETE",
4d47f125 30409 "name" : "delete_ipset",
56122987 30410 "parameters" : {
44660702 30411 "additionalProperties" : 0,
56122987 30412 "properties" : {
81a3384d
TL
30413 "force" : {
30414 "description" : "Delete all members of the IPSet, if there are any.",
30415 "optional" : 1,
30416 "type" : "boolean",
30417 "typetext" : "<boolean>"
30418 },
7aacca6f 30419 "name" : {
4d47f125 30420 "description" : "IP set name.",
7aacca6f 30421 "maxLength" : 64,
7aacca6f
DM
30422 "minLength" : 2,
30423 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 30424 "type" : "string"
7aacca6f
DM
30425 },
30426 "node" : {
44660702 30427 "description" : "The cluster node name.",
56122987 30428 "format" : "pve-node",
013dc89f
DM
30429 "type" : "string",
30430 "typetext" : "<string>"
7aacca6f 30431 },
56122987 30432 "vmid" : {
44660702 30433 "description" : "The (unique) ID of the VM.",
56122987 30434 "format" : "pve-vmid",
8dd66e12
TL
30435 "maximum" : 999999999,
30436 "minimum" : 100,
4bd7df8b 30437 "type" : "integer",
8dd66e12 30438 "typetext" : "<integer> (100 - 999999999)"
56122987 30439 }
44660702 30440 }
56122987 30441 },
56122987
DM
30442 "permissions" : {
30443 "check" : [
30444 "perm",
30445 "/vms/{vmid}",
30446 [
7aacca6f 30447 "VM.Config.Network"
56122987
DM
30448 ]
30449 ]
30450 },
44660702 30451 "protected" : 1,
56122987 30452 "returns" : {
7aacca6f 30453 "type" : "null"
44660702 30454 }
56122987 30455 },
44660702 30456 "GET" : {
e9cd3bd4 30457 "allowtoken" : 1,
4d47f125 30458 "description" : "List IPSet content",
44660702 30459 "method" : "GET",
4d47f125 30460 "name" : "get_ipset",
44660702
DM
30461 "parameters" : {
30462 "additionalProperties" : 0,
30463 "properties" : {
30464 "name" : {
4d47f125 30465 "description" : "IP set name.",
44660702
DM
30466 "maxLength" : 64,
30467 "minLength" : 2,
30468 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
30469 "type" : "string"
30470 },
30471 "node" : {
30472 "description" : "The cluster node name.",
30473 "format" : "pve-node",
013dc89f
DM
30474 "type" : "string",
30475 "typetext" : "<string>"
44660702
DM
30476 },
30477 "vmid" : {
30478 "description" : "The (unique) ID of the VM.",
30479 "format" : "pve-vmid",
8dd66e12
TL
30480 "maximum" : 999999999,
30481 "minimum" : 100,
4bd7df8b 30482 "type" : "integer",
8dd66e12 30483 "typetext" : "<integer> (100 - 999999999)"
44660702 30484 }
4d47f125
TL
30485 }
30486 },
30487 "permissions" : {
30488 "check" : [
30489 "perm",
30490 "/vms/{vmid}",
30491 [
30492 "VM.Audit"
30493 ]
30494 ]
30495 },
30496 "returns" : {
30497 "items" : {
30498 "properties" : {
30499 "cidr" : {
30500 "type" : "string"
30501 },
30502 "comment" : {
30503 "optional" : 1,
30504 "type" : "string"
30505 },
30506 "digest" : {
30507 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
30508 "maxLength" : 40,
30509 "optional" : 0,
30510 "type" : "string"
30511 },
30512 "nomatch" : {
30513 "optional" : 1,
30514 "type" : "boolean"
30515 }
30516 },
30517 "type" : "object"
30518 },
30519 "links" : [
30520 {
30521 "href" : "{cidr}",
30522 "rel" : "child"
30523 }
30524 ],
30525 "type" : "array"
44660702
DM
30526 }
30527 },
4d47f125 30528 "POST" : {
e9cd3bd4 30529 "allowtoken" : 1,
4d47f125
TL
30530 "description" : "Add IP or Network to IPSet.",
30531 "method" : "POST",
30532 "name" : "create_ip",
56122987
DM
30533 "parameters" : {
30534 "additionalProperties" : 0,
30535 "properties" : {
44660702
DM
30536 "cidr" : {
30537 "description" : "Network/IP specification in CIDR format.",
4d47f125 30538 "format" : "IPorCIDRorAlias",
013dc89f
DM
30539 "type" : "string",
30540 "typetext" : "<string>"
44660702
DM
30541 },
30542 "comment" : {
30543 "optional" : 1,
013dc89f
DM
30544 "type" : "string",
30545 "typetext" : "<string>"
44660702 30546 },
56122987 30547 "name" : {
4d47f125 30548 "description" : "IP set name.",
44660702
DM
30549 "maxLength" : 64,
30550 "minLength" : 2,
7aacca6f 30551 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 30552 "type" : "string"
56122987
DM
30553 },
30554 "node" : {
30555 "description" : "The cluster node name.",
44660702 30556 "format" : "pve-node",
013dc89f
DM
30557 "type" : "string",
30558 "typetext" : "<string>"
44660702 30559 },
4d47f125 30560 "nomatch" : {
44660702 30561 "optional" : 1,
4d47f125
TL
30562 "type" : "boolean",
30563 "typetext" : "<boolean>"
56122987 30564 },
7aacca6f 30565 "vmid" : {
7aacca6f 30566 "description" : "The (unique) ID of the VM.",
44660702 30567 "format" : "pve-vmid",
8dd66e12
TL
30568 "maximum" : 999999999,
30569 "minimum" : 100,
4bd7df8b 30570 "type" : "integer",
8dd66e12 30571 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
30572 }
30573 }
30574 },
44660702
DM
30575 "permissions" : {
30576 "check" : [
30577 "perm",
30578 "/vms/{vmid}",
30579 [
30580 "VM.Config.Network"
30581 ]
30582 ]
7aacca6f 30583 },
44660702
DM
30584 "protected" : 1,
30585 "returns" : {
30586 "type" : "null"
7aacca6f
DM
30587 }
30588 }
30589 },
4d47f125
TL
30590 "leaf" : 0,
30591 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}",
44660702
DM
30592 "text" : "{name}"
30593 }
30594 ],
30595 "info" : {
30596 "GET" : {
e9cd3bd4 30597 "allowtoken" : 1,
4d47f125 30598 "description" : "List IPSets",
44660702 30599 "method" : "GET",
4d47f125 30600 "name" : "ipset_index",
56122987
DM
30601 "parameters" : {
30602 "additionalProperties" : 0,
30603 "properties" : {
30604 "node" : {
44660702 30605 "description" : "The cluster node name.",
56122987 30606 "format" : "pve-node",
013dc89f
DM
30607 "type" : "string",
30608 "typetext" : "<string>"
56122987
DM
30609 },
30610 "vmid" : {
7aacca6f 30611 "description" : "The (unique) ID of the VM.",
44660702 30612 "format" : "pve-vmid",
8dd66e12
TL
30613 "maximum" : 999999999,
30614 "minimum" : 100,
4bd7df8b 30615 "type" : "integer",
8dd66e12 30616 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
30617 }
30618 }
30619 },
44660702
DM
30620 "permissions" : {
30621 "check" : [
30622 "perm",
30623 "/vms/{vmid}",
30624 [
30625 "VM.Audit"
30626 ]
30627 ]
30628 },
56122987
DM
30629 "returns" : {
30630 "items" : {
56122987 30631 "properties" : {
44660702
DM
30632 "comment" : {
30633 "optional" : 1,
56122987
DM
30634 "type" : "string"
30635 },
56122987 30636 "digest" : {
56122987 30637 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702
DM
30638 "maxLength" : 40,
30639 "optional" : 0,
30640 "type" : "string"
30641 },
30642 "name" : {
4d47f125
TL
30643 "description" : "IP set name.",
30644 "maxLength" : 64,
30645 "minLength" : 2,
30646 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 30647 "type" : "string"
56122987 30648 }
44660702
DM
30649 },
30650 "type" : "object"
30651 },
30652 "links" : [
30653 {
30654 "href" : "{name}",
30655 "rel" : "child"
56122987 30656 }
4d47f125
TL
30657 ],
30658 "type" : "array"
30659 }
30660 },
30661 "POST" : {
e9cd3bd4 30662 "allowtoken" : 1,
4d47f125
TL
30663 "description" : "Create new IPSet",
30664 "method" : "POST",
30665 "name" : "create_ipset",
30666 "parameters" : {
30667 "additionalProperties" : 0,
30668 "properties" : {
30669 "comment" : {
30670 "optional" : 1,
30671 "type" : "string",
30672 "typetext" : "<string>"
30673 },
30674 "digest" : {
30675 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
30676 "maxLength" : 40,
30677 "optional" : 1,
30678 "type" : "string",
30679 "typetext" : "<string>"
30680 },
30681 "name" : {
30682 "description" : "IP set name.",
30683 "maxLength" : 64,
30684 "minLength" : 2,
30685 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
30686 "type" : "string"
30687 },
30688 "node" : {
30689 "description" : "The cluster node name.",
30690 "format" : "pve-node",
30691 "type" : "string",
30692 "typetext" : "<string>"
30693 },
30694 "rename" : {
30695 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
30696 "maxLength" : 64,
30697 "minLength" : 2,
30698 "optional" : 1,
30699 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
30700 "type" : "string"
30701 },
30702 "vmid" : {
30703 "description" : "The (unique) ID of the VM.",
30704 "format" : "pve-vmid",
8dd66e12
TL
30705 "maximum" : 999999999,
30706 "minimum" : 100,
4d47f125 30707 "type" : "integer",
8dd66e12 30708 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
30709 }
30710 }
30711 },
30712 "permissions" : {
30713 "check" : [
30714 "perm",
30715 "/vms/{vmid}",
30716 [
30717 "VM.Config.Network"
30718 ]
30719 ]
30720 },
30721 "protected" : 1,
30722 "returns" : {
30723 "type" : "null"
30724 }
30725 }
30726 },
30727 "leaf" : 0,
30728 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset",
30729 "text" : "ipset"
30730 },
30731 {
30732 "info" : {
30733 "GET" : {
e9cd3bd4 30734 "allowtoken" : 1,
4d47f125
TL
30735 "description" : "Get VM firewall options.",
30736 "method" : "GET",
30737 "name" : "get_options",
30738 "parameters" : {
30739 "additionalProperties" : 0,
30740 "properties" : {
30741 "node" : {
30742 "description" : "The cluster node name.",
30743 "format" : "pve-node",
30744 "type" : "string",
30745 "typetext" : "<string>"
30746 },
30747 "vmid" : {
30748 "description" : "The (unique) ID of the VM.",
30749 "format" : "pve-vmid",
8dd66e12
TL
30750 "maximum" : 999999999,
30751 "minimum" : 100,
4d47f125 30752 "type" : "integer",
8dd66e12 30753 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
30754 }
30755 }
30756 },
30757 "permissions" : {
30758 "check" : [
30759 "perm",
30760 "/vms/{vmid}",
30761 [
30762 "VM.Audit"
30763 ]
30764 ]
30765 },
30766 "proxyto" : "node",
30767 "returns" : {
30768 "properties" : {
30769 "dhcp" : {
5c1699e5 30770 "default" : 0,
4d47f125
TL
30771 "description" : "Enable DHCP.",
30772 "optional" : 1,
30773 "type" : "boolean"
30774 },
30775 "enable" : {
5c1699e5 30776 "default" : 0,
4d47f125
TL
30777 "description" : "Enable/disable firewall rules.",
30778 "optional" : 1,
30779 "type" : "boolean"
30780 },
30781 "ipfilter" : {
30782 "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.",
30783 "optional" : 1,
30784 "type" : "boolean"
30785 },
30786 "log_level_in" : {
30787 "description" : "Log level for incoming traffic.",
30788 "enum" : [
30789 "emerg",
30790 "alert",
30791 "crit",
30792 "err",
30793 "warning",
30794 "notice",
30795 "info",
30796 "debug",
30797 "nolog"
30798 ],
30799 "optional" : 1,
30800 "type" : "string"
30801 },
30802 "log_level_out" : {
30803 "description" : "Log level for outgoing traffic.",
30804 "enum" : [
30805 "emerg",
30806 "alert",
30807 "crit",
30808 "err",
30809 "warning",
30810 "notice",
30811 "info",
30812 "debug",
30813 "nolog"
30814 ],
30815 "optional" : 1,
30816 "type" : "string"
30817 },
30818 "macfilter" : {
de786b48 30819 "default" : 1,
4d47f125
TL
30820 "description" : "Enable/disable MAC address filter.",
30821 "optional" : 1,
30822 "type" : "boolean"
30823 },
30824 "ndp" : {
5c1699e5
TL
30825 "default" : 0,
30826 "description" : "Enable NDP (Neighbor Discovery Protocol).",
4d47f125
TL
30827 "optional" : 1,
30828 "type" : "boolean"
30829 },
30830 "policy_in" : {
30831 "description" : "Input policy.",
30832 "enum" : [
30833 "ACCEPT",
30834 "REJECT",
30835 "DROP"
30836 ],
30837 "optional" : 1,
30838 "type" : "string"
30839 },
30840 "policy_out" : {
30841 "description" : "Output policy.",
30842 "enum" : [
30843 "ACCEPT",
30844 "REJECT",
30845 "DROP"
30846 ],
30847 "optional" : 1,
30848 "type" : "string"
30849 },
30850 "radv" : {
30851 "description" : "Allow sending Router Advertisement.",
30852 "optional" : 1,
30853 "type" : "boolean"
30854 }
30855 },
30856 "type" : "object"
7aacca6f
DM
30857 }
30858 },
4d47f125 30859 "PUT" : {
e9cd3bd4 30860 "allowtoken" : 1,
4d47f125
TL
30861 "description" : "Set Firewall options.",
30862 "method" : "PUT",
30863 "name" : "set_options",
7aacca6f
DM
30864 "parameters" : {
30865 "additionalProperties" : 0,
30866 "properties" : {
4d47f125
TL
30867 "delete" : {
30868 "description" : "A list of settings you want to delete.",
30869 "format" : "pve-configid-list",
7aacca6f 30870 "optional" : 1,
013dc89f
DM
30871 "type" : "string",
30872 "typetext" : "<string>"
7aacca6f 30873 },
4d47f125 30874 "dhcp" : {
5c1699e5 30875 "default" : 0,
4d47f125
TL
30876 "description" : "Enable DHCP.",
30877 "optional" : 1,
30878 "type" : "boolean",
30879 "typetext" : "<boolean>"
7aacca6f 30880 },
4d47f125
TL
30881 "digest" : {
30882 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
30883 "maxLength" : 40,
30884 "optional" : 1,
013dc89f
DM
30885 "type" : "string",
30886 "typetext" : "<string>"
7aacca6f 30887 },
4d47f125 30888 "enable" : {
5c1699e5 30889 "default" : 0,
4d47f125
TL
30890 "description" : "Enable/disable firewall rules.",
30891 "optional" : 1,
30892 "type" : "boolean",
30893 "typetext" : "<boolean>"
30894 },
30895 "ipfilter" : {
30896 "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.",
30897 "optional" : 1,
30898 "type" : "boolean",
30899 "typetext" : "<boolean>"
56122987 30900 },
4d47f125
TL
30901 "log_level_in" : {
30902 "description" : "Log level for incoming traffic.",
30903 "enum" : [
30904 "emerg",
30905 "alert",
30906 "crit",
30907 "err",
30908 "warning",
30909 "notice",
30910 "info",
30911 "debug",
30912 "nolog"
30913 ],
30914 "optional" : 1,
30915 "type" : "string"
44660702 30916 },
4d47f125
TL
30917 "log_level_out" : {
30918 "description" : "Log level for outgoing traffic.",
30919 "enum" : [
30920 "emerg",
30921 "alert",
30922 "crit",
30923 "err",
30924 "warning",
30925 "notice",
30926 "info",
30927 "debug",
30928 "nolog"
30929 ],
30930 "optional" : 1,
30931 "type" : "string"
44660702 30932 },
4d47f125 30933 "macfilter" : {
de786b48 30934 "default" : 1,
4d47f125
TL
30935 "description" : "Enable/disable MAC address filter.",
30936 "optional" : 1,
30937 "type" : "boolean",
30938 "typetext" : "<boolean>"
7aacca6f 30939 },
4d47f125 30940 "ndp" : {
5c1699e5
TL
30941 "default" : 0,
30942 "description" : "Enable NDP (Neighbor Discovery Protocol).",
4d47f125
TL
30943 "optional" : 1,
30944 "type" : "boolean",
30945 "typetext" : "<boolean>"
7aacca6f 30946 },
4d47f125
TL
30947 "node" : {
30948 "description" : "The cluster node name.",
30949 "format" : "pve-node",
30950 "type" : "string",
30951 "typetext" : "<string>"
30952 },
30953 "policy_in" : {
30954 "description" : "Input policy.",
30955 "enum" : [
30956 "ACCEPT",
30957 "REJECT",
30958 "DROP"
44660702 30959 ],
4d47f125
TL
30960 "optional" : 1,
30961 "type" : "string"
30962 },
30963 "policy_out" : {
30964 "description" : "Output policy.",
30965 "enum" : [
30966 "ACCEPT",
30967 "REJECT",
30968 "DROP"
30969 ],
30970 "optional" : 1,
30971 "type" : "string"
30972 },
30973 "radv" : {
30974 "description" : "Allow sending Router Advertisement.",
30975 "optional" : 1,
30976 "type" : "boolean",
30977 "typetext" : "<boolean>"
30978 },
30979 "vmid" : {
30980 "description" : "The (unique) ID of the VM.",
30981 "format" : "pve-vmid",
8dd66e12
TL
30982 "maximum" : 999999999,
30983 "minimum" : 100,
4d47f125 30984 "type" : "integer",
8dd66e12 30985 "typetext" : "<integer> (100 - 999999999)"
44660702 30986 }
4d47f125
TL
30987 }
30988 },
30989 "permissions" : {
30990 "check" : [
30991 "perm",
30992 "/vms/{vmid}",
30993 [
30994 "VM.Config.Network"
30995 ]
30996 ]
30997 },
30998 "protected" : 1,
30999 "proxyto" : "node",
31000 "returns" : {
31001 "type" : "null"
31002 }
31003 }
31004 },
31005 "leaf" : 1,
31006 "path" : "/nodes/{node}/lxc/{vmid}/firewall/options",
31007 "text" : "options"
31008 },
31009 {
31010 "info" : {
31011 "GET" : {
e9cd3bd4 31012 "allowtoken" : 1,
4d47f125
TL
31013 "description" : "Read firewall log",
31014 "method" : "GET",
31015 "name" : "log",
31016 "parameters" : {
31017 "additionalProperties" : 0,
31018 "properties" : {
31019 "limit" : {
31020 "minimum" : 0,
31021 "optional" : 1,
31022 "type" : "integer",
31023 "typetext" : "<integer> (0 - N)"
44660702 31024 },
4d47f125
TL
31025 "node" : {
31026 "description" : "The cluster node name.",
31027 "format" : "pve-node",
31028 "type" : "string",
31029 "typetext" : "<string>"
44660702 31030 },
9d2e98ed
TL
31031 "since" : {
31032 "description" : "Display log since this UNIX epoch.",
31033 "minimum" : 0,
31034 "optional" : 1,
31035 "type" : "integer",
31036 "typetext" : "<integer> (0 - N)"
31037 },
4d47f125
TL
31038 "start" : {
31039 "minimum" : 0,
31040 "optional" : 1,
31041 "type" : "integer",
31042 "typetext" : "<integer> (0 - N)"
31043 },
9d2e98ed
TL
31044 "until" : {
31045 "description" : "Display log until this UNIX epoch.",
31046 "minimum" : 0,
31047 "optional" : 1,
31048 "type" : "integer",
31049 "typetext" : "<integer> (0 - N)"
31050 },
4d47f125
TL
31051 "vmid" : {
31052 "description" : "The (unique) ID of the VM.",
31053 "format" : "pve-vmid",
8dd66e12
TL
31054 "maximum" : 999999999,
31055 "minimum" : 100,
4d47f125 31056 "type" : "integer",
8dd66e12 31057 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
31058 }
31059 }
31060 },
4d47f125
TL
31061 "permissions" : {
31062 "check" : [
31063 "perm",
31064 "/vms/{vmid}",
31065 [
31066 "VM.Console"
31067 ]
31068 ]
31069 },
31070 "protected" : 1,
31071 "proxyto" : "node",
31072 "returns" : {
31073 "items" : {
31074 "properties" : {
31075 "n" : {
31076 "description" : "Line number",
31077 "type" : "integer"
31078 },
31079 "t" : {
31080 "description" : "Line text",
31081 "type" : "string"
31082 }
31083 },
31084 "type" : "object"
31085 },
31086 "type" : "array"
31087 }
44660702 31088 }
4d47f125
TL
31089 },
31090 "leaf" : 1,
31091 "path" : "/nodes/{node}/lxc/{vmid}/firewall/log",
31092 "text" : "log"
31093 },
31094 {
44660702
DM
31095 "info" : {
31096 "GET" : {
e9cd3bd4 31097 "allowtoken" : 1,
4d47f125 31098 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
44660702 31099 "method" : "GET",
4d47f125 31100 "name" : "refs",
44660702
DM
31101 "parameters" : {
31102 "additionalProperties" : 0,
31103 "properties" : {
31104 "node" : {
31105 "description" : "The cluster node name.",
31106 "format" : "pve-node",
013dc89f
DM
31107 "type" : "string",
31108 "typetext" : "<string>"
44660702 31109 },
4d47f125
TL
31110 "type" : {
31111 "description" : "Only list references of specified type.",
31112 "enum" : [
31113 "alias",
31114 "ipset"
31115 ],
31116 "optional" : 1,
31117 "type" : "string"
31118 },
44660702
DM
31119 "vmid" : {
31120 "description" : "The (unique) ID of the VM.",
31121 "format" : "pve-vmid",
8dd66e12
TL
31122 "maximum" : 999999999,
31123 "minimum" : 100,
4bd7df8b 31124 "type" : "integer",
8dd66e12 31125 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
31126 }
31127 }
31128 },
4d47f125
TL
31129 "permissions" : {
31130 "check" : [
31131 "perm",
31132 "/vms/{vmid}",
31133 [
31134 "VM.Audit"
31135 ]
31136 ]
31137 },
31138 "returns" : {
31139 "items" : {
31140 "properties" : {
31141 "comment" : {
31142 "optional" : 1,
31143 "type" : "string"
31144 },
31145 "name" : {
31146 "type" : "string"
31147 },
31148 "type" : {
31149 "enum" : [
31150 "alias",
31151 "ipset"
31152 ],
31153 "type" : "string"
31154 }
31155 },
31156 "type" : "object"
31157 },
31158 "type" : "array"
31159 }
31160 }
31161 },
31162 "leaf" : 1,
31163 "path" : "/nodes/{node}/lxc/{vmid}/firewall/refs",
31164 "text" : "refs"
31165 }
31166 ],
31167 "info" : {
31168 "GET" : {
e9cd3bd4 31169 "allowtoken" : 1,
4d47f125
TL
31170 "description" : "Directory index.",
31171 "method" : "GET",
31172 "name" : "index",
31173 "parameters" : {
31174 "additionalProperties" : 0,
31175 "properties" : {
31176 "node" : {
31177 "description" : "The cluster node name.",
31178 "format" : "pve-node",
31179 "type" : "string",
31180 "typetext" : "<string>"
31181 },
31182 "vmid" : {
31183 "description" : "The (unique) ID of the VM.",
31184 "format" : "pve-vmid",
8dd66e12
TL
31185 "maximum" : 999999999,
31186 "minimum" : 100,
4d47f125 31187 "type" : "integer",
8dd66e12 31188 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31189 }
31190 }
31191 },
31192 "permissions" : {
31193 "user" : "all"
31194 },
31195 "returns" : {
31196 "items" : {
31197 "properties" : {},
31198 "type" : "object"
31199 },
31200 "links" : [
31201 {
31202 "href" : "{name}",
31203 "rel" : "child"
31204 }
31205 ],
31206 "type" : "array"
31207 }
31208 }
31209 },
31210 "leaf" : 0,
31211 "path" : "/nodes/{node}/lxc/{vmid}/firewall",
31212 "text" : "firewall"
31213 },
31214 {
31215 "info" : {
31216 "GET" : {
e9cd3bd4 31217 "allowtoken" : 1,
4d47f125
TL
31218 "description" : "Read VM RRD statistics (returns PNG)",
31219 "method" : "GET",
31220 "name" : "rrd",
31221 "parameters" : {
31222 "additionalProperties" : 0,
31223 "properties" : {
31224 "cf" : {
31225 "description" : "The RRD consolidation function",
31226 "enum" : [
31227 "AVERAGE",
31228 "MAX"
31229 ],
31230 "optional" : 1,
31231 "type" : "string"
31232 },
31233 "ds" : {
31234 "description" : "The list of datasources you want to display.",
31235 "format" : "pve-configid-list",
31236 "type" : "string",
31237 "typetext" : "<string>"
31238 },
31239 "node" : {
31240 "description" : "The cluster node name.",
31241 "format" : "pve-node",
31242 "type" : "string",
31243 "typetext" : "<string>"
31244 },
31245 "timeframe" : {
31246 "description" : "Specify the time frame you are interested in.",
31247 "enum" : [
31248 "hour",
31249 "day",
31250 "week",
31251 "month",
31252 "year"
31253 ],
31254 "type" : "string"
31255 },
31256 "vmid" : {
31257 "description" : "The (unique) ID of the VM.",
31258 "format" : "pve-vmid",
8dd66e12
TL
31259 "maximum" : 999999999,
31260 "minimum" : 100,
4d47f125 31261 "type" : "integer",
8dd66e12 31262 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31263 }
31264 }
31265 },
31266 "permissions" : {
31267 "check" : [
31268 "perm",
31269 "/vms/{vmid}",
31270 [
31271 "VM.Audit"
31272 ]
31273 ]
31274 },
31275 "protected" : 1,
31276 "returns" : {
31277 "properties" : {
31278 "filename" : {
31279 "type" : "string"
31280 }
31281 },
31282 "type" : "object"
31283 }
31284 }
31285 },
31286 "leaf" : 1,
31287 "path" : "/nodes/{node}/lxc/{vmid}/rrd",
31288 "text" : "rrd"
31289 },
31290 {
31291 "info" : {
31292 "GET" : {
e9cd3bd4 31293 "allowtoken" : 1,
4d47f125
TL
31294 "description" : "Read VM RRD statistics",
31295 "method" : "GET",
31296 "name" : "rrddata",
31297 "parameters" : {
31298 "additionalProperties" : 0,
31299 "properties" : {
31300 "cf" : {
31301 "description" : "The RRD consolidation function",
31302 "enum" : [
31303 "AVERAGE",
31304 "MAX"
31305 ],
31306 "optional" : 1,
31307 "type" : "string"
31308 },
31309 "node" : {
31310 "description" : "The cluster node name.",
31311 "format" : "pve-node",
31312 "type" : "string",
31313 "typetext" : "<string>"
44660702 31314 },
4d47f125
TL
31315 "timeframe" : {
31316 "description" : "Specify the time frame you are interested in.",
31317 "enum" : [
31318 "hour",
31319 "day",
31320 "week",
31321 "month",
31322 "year"
44660702 31323 ],
4d47f125
TL
31324 "type" : "string"
31325 },
31326 "vmid" : {
31327 "description" : "The (unique) ID of the VM.",
31328 "format" : "pve-vmid",
8dd66e12
TL
31329 "maximum" : 999999999,
31330 "minimum" : 100,
4d47f125 31331 "type" : "integer",
8dd66e12 31332 "typetext" : "<integer> (100 - 999999999)"
44660702 31333 }
4d47f125
TL
31334 }
31335 },
31336 "permissions" : {
31337 "check" : [
31338 "perm",
31339 "/vms/{vmid}",
31340 [
31341 "VM.Audit"
31342 ]
31343 ]
31344 },
31345 "protected" : 1,
31346 "returns" : {
31347 "items" : {
31348 "properties" : {},
31349 "type" : "object"
44660702 31350 },
4d47f125
TL
31351 "type" : "array"
31352 }
31353 }
31354 },
31355 "leaf" : 1,
31356 "path" : "/nodes/{node}/lxc/{vmid}/rrddata",
31357 "text" : "rrddata"
31358 },
31359 {
31360 "info" : {
31361 "POST" : {
e9cd3bd4 31362 "allowtoken" : 1,
4d47f125
TL
31363 "description" : "Creates a TCP VNC proxy connections.",
31364 "method" : "POST",
31365 "name" : "vncproxy",
31366 "parameters" : {
31367 "additionalProperties" : 0,
31368 "properties" : {
31369 "height" : {
31370 "description" : "sets the height of the console in pixels.",
31371 "maximum" : 2160,
31372 "minimum" : 16,
31373 "optional" : 1,
31374 "type" : "integer",
31375 "typetext" : "<integer> (16 - 2160)"
44660702 31376 },
4d47f125
TL
31377 "node" : {
31378 "description" : "The cluster node name.",
31379 "format" : "pve-node",
31380 "type" : "string",
31381 "typetext" : "<string>"
44660702 31382 },
4d47f125
TL
31383 "vmid" : {
31384 "description" : "The (unique) ID of the VM.",
31385 "format" : "pve-vmid",
8dd66e12
TL
31386 "maximum" : 999999999,
31387 "minimum" : 100,
4d47f125 31388 "type" : "integer",
8dd66e12 31389 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31390 },
31391 "websocket" : {
31392 "description" : "use websocket instead of standard VNC.",
31393 "optional" : 1,
31394 "type" : "boolean",
31395 "typetext" : "<boolean>"
31396 },
31397 "width" : {
31398 "description" : "sets the width of the console in pixels.",
31399 "maximum" : 4096,
31400 "minimum" : 16,
31401 "optional" : 1,
31402 "type" : "integer",
31403 "typetext" : "<integer> (16 - 4096)"
56122987
DM
31404 }
31405 }
44660702 31406 },
4d47f125
TL
31407 "permissions" : {
31408 "check" : [
31409 "perm",
31410 "/vms/{vmid}",
31411 [
31412 "VM.Console"
31413 ]
31414 ]
31415 },
31416 "protected" : 1,
31417 "returns" : {
31418 "additionalProperties" : 0,
31419 "properties" : {
31420 "cert" : {
31421 "type" : "string"
44660702 31422 },
4d47f125
TL
31423 "port" : {
31424 "type" : "integer"
31425 },
31426 "ticket" : {
31427 "type" : "string"
31428 },
31429 "upid" : {
31430 "type" : "string"
31431 },
31432 "user" : {
31433 "type" : "string"
31434 }
31435 }
31436 }
31437 }
31438 },
31439 "leaf" : 1,
31440 "path" : "/nodes/{node}/lxc/{vmid}/vncproxy",
31441 "text" : "vncproxy"
31442 },
31443 {
31444 "info" : {
31445 "POST" : {
e9cd3bd4 31446 "allowtoken" : 1,
4d47f125
TL
31447 "description" : "Creates a TCP proxy connection.",
31448 "method" : "POST",
31449 "name" : "termproxy",
31450 "parameters" : {
31451 "additionalProperties" : 0,
31452 "properties" : {
31453 "node" : {
31454 "description" : "The cluster node name.",
31455 "format" : "pve-node",
31456 "type" : "string",
31457 "typetext" : "<string>"
44660702 31458 },
4d47f125
TL
31459 "vmid" : {
31460 "description" : "The (unique) ID of the VM.",
31461 "format" : "pve-vmid",
8dd66e12
TL
31462 "maximum" : 999999999,
31463 "minimum" : 100,
4d47f125 31464 "type" : "integer",
8dd66e12 31465 "typetext" : "<integer> (100 - 999999999)"
44660702 31466 }
4d47f125
TL
31467 }
31468 },
31469 "permissions" : {
31470 "check" : [
31471 "perm",
31472 "/vms/{vmid}",
31473 [
31474 "VM.Console"
31475 ]
31476 ]
31477 },
31478 "protected" : 1,
31479 "returns" : {
31480 "additionalProperties" : 0,
31481 "properties" : {
31482 "port" : {
31483 "type" : "integer"
56122987 31484 },
4d47f125
TL
31485 "ticket" : {
31486 "type" : "string"
7aacca6f 31487 },
4d47f125
TL
31488 "upid" : {
31489 "type" : "string"
31490 },
31491 "user" : {
31492 "type" : "string"
31493 }
31494 }
31495 }
31496 }
31497 },
31498 "leaf" : 1,
31499 "path" : "/nodes/{node}/lxc/{vmid}/termproxy",
31500 "text" : "termproxy"
31501 },
31502 {
31503 "info" : {
31504 "GET" : {
e9cd3bd4 31505 "allowtoken" : 1,
4d47f125
TL
31506 "description" : "Opens a weksocket for VNC traffic.",
31507 "method" : "GET",
31508 "name" : "vncwebsocket",
31509 "parameters" : {
31510 "additionalProperties" : 0,
31511 "properties" : {
31512 "node" : {
31513 "description" : "The cluster node name.",
31514 "format" : "pve-node",
31515 "type" : "string",
31516 "typetext" : "<string>"
31517 },
31518 "port" : {
31519 "description" : "Port number returned by previous vncproxy call.",
31520 "maximum" : 5999,
31521 "minimum" : 5900,
31522 "type" : "integer",
31523 "typetext" : "<integer> (5900 - 5999)"
31524 },
31525 "vmid" : {
31526 "description" : "The (unique) ID of the VM.",
31527 "format" : "pve-vmid",
8dd66e12
TL
31528 "maximum" : 999999999,
31529 "minimum" : 100,
4d47f125 31530 "type" : "integer",
8dd66e12 31531 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31532 },
31533 "vncticket" : {
31534 "description" : "Ticket from previous call to vncproxy.",
31535 "maxLength" : 512,
31536 "type" : "string",
31537 "typetext" : "<string>"
56122987
DM
31538 }
31539 }
31540 },
4d47f125
TL
31541 "permissions" : {
31542 "check" : [
31543 "perm",
31544 "/vms/{vmid}",
31545 [
31546 "VM.Console"
31547 ]
31548 ],
31549 "description" : "You also need to pass a valid ticket (vncticket)."
31550 },
31551 "returns" : {
31552 "properties" : {
31553 "port" : {
31554 "type" : "string"
31555 }
31556 },
31557 "type" : "object"
31558 }
31559 }
31560 },
31561 "leaf" : 1,
31562 "path" : "/nodes/{node}/lxc/{vmid}/vncwebsocket",
31563 "text" : "vncwebsocket"
31564 },
31565 {
31566 "info" : {
31567 "POST" : {
e9cd3bd4 31568 "allowtoken" : 1,
4d47f125
TL
31569 "description" : "Returns a SPICE configuration to connect to the CT.",
31570 "method" : "POST",
31571 "name" : "spiceproxy",
31572 "parameters" : {
31573 "additionalProperties" : 0,
31574 "properties" : {
31575 "node" : {
31576 "description" : "The cluster node name.",
31577 "format" : "pve-node",
31578 "type" : "string",
31579 "typetext" : "<string>"
56122987 31580 },
4d47f125
TL
31581 "proxy" : {
31582 "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).",
31583 "format" : "address",
31584 "optional" : 1,
31585 "type" : "string",
31586 "typetext" : "<string>"
44660702 31587 },
4d47f125
TL
31588 "vmid" : {
31589 "description" : "The (unique) ID of the VM.",
31590 "format" : "pve-vmid",
8dd66e12
TL
31591 "maximum" : 999999999,
31592 "minimum" : 100,
4d47f125 31593 "type" : "integer",
8dd66e12 31594 "typetext" : "<integer> (100 - 999999999)"
44660702 31595 }
56122987
DM
31596 }
31597 },
4d47f125
TL
31598 "permissions" : {
31599 "check" : [
31600 "perm",
31601 "/vms/{vmid}",
31602 [
31603 "VM.Console"
31604 ]
31605 ]
31606 },
31607 "protected" : 1,
31608 "proxyto" : "node",
31609 "returns" : {
31610 "additionalProperties" : 1,
31611 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
31612 "properties" : {
31613 "host" : {
31614 "type" : "string"
31615 },
31616 "password" : {
31617 "type" : "string"
31618 },
31619 "proxy" : {
31620 "type" : "string"
31621 },
31622 "tls-port" : {
31623 "type" : "integer"
31624 },
31625 "type" : {
31626 "type" : "string"
31627 }
31628 }
31629 }
31630 }
31631 },
31632 "leaf" : 1,
31633 "path" : "/nodes/{node}/lxc/{vmid}/spiceproxy",
31634 "text" : "spiceproxy"
31635 },
81a3384d
TL
31636 {
31637 "info" : {
31638 "POST" : {
31639 "allowtoken" : 1,
31640 "description" : "Migrate the container to another cluster. Creates a new migration task. EXPERIMENTAL feature!",
31641 "method" : "POST",
31642 "name" : "remote_migrate_vm",
31643 "parameters" : {
31644 "additionalProperties" : 0,
31645 "properties" : {
31646 "bwlimit" : {
31647 "default" : "migrate limit from datacenter or storage config",
31648 "description" : "Override I/O bandwidth limit (in KiB/s).",
31649 "minimum" : "0",
31650 "optional" : 1,
31651 "type" : "number",
31652 "typetext" : "<number> (0 - N)"
31653 },
31654 "delete" : {
31655 "default" : 0,
31656 "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.",
31657 "optional" : 1,
31658 "type" : "boolean",
31659 "typetext" : "<boolean>"
31660 },
31661 "node" : {
31662 "description" : "The cluster node name.",
31663 "format" : "pve-node",
31664 "type" : "string",
31665 "typetext" : "<string>"
31666 },
31667 "online" : {
31668 "description" : "Use online/live migration.",
31669 "optional" : 1,
31670 "type" : "boolean",
31671 "typetext" : "<boolean>"
31672 },
31673 "restart" : {
31674 "description" : "Use restart migration",
31675 "optional" : 1,
31676 "type" : "boolean",
31677 "typetext" : "<boolean>"
31678 },
31679 "target-bridge" : {
31680 "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.",
31681 "format" : "bridge-pair-list",
31682 "type" : "string",
31683 "typetext" : "<string>"
31684 },
31685 "target-endpoint" : {
31686 "description" : "Remote target endpoint",
31687 "format" : "proxmox-remote",
31688 "type" : "string",
31689 "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>]"
31690 },
31691 "target-storage" : {
31692 "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.",
31693 "format" : "storage-pair-list",
31694 "optional" : 0,
31695 "type" : "string",
31696 "typetext" : "<string>"
31697 },
31698 "target-vmid" : {
31699 "description" : "The (unique) ID of the VM.",
31700 "format" : "pve-vmid",
8dd66e12
TL
31701 "maximum" : 999999999,
31702 "minimum" : 100,
81a3384d
TL
31703 "optional" : 1,
31704 "type" : "integer",
8dd66e12 31705 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
31706 },
31707 "timeout" : {
31708 "default" : 180,
31709 "description" : "Timeout in seconds for shutdown for restart migration",
31710 "optional" : 1,
31711 "type" : "integer",
31712 "typetext" : "<integer>"
31713 },
31714 "vmid" : {
31715 "description" : "The (unique) ID of the VM.",
31716 "format" : "pve-vmid",
8dd66e12
TL
31717 "maximum" : 999999999,
31718 "minimum" : 100,
81a3384d 31719 "type" : "integer",
8dd66e12 31720 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
31721 }
31722 }
31723 },
31724 "permissions" : {
31725 "check" : [
31726 "perm",
31727 "/vms/{vmid}",
31728 [
31729 "VM.Migrate"
31730 ]
31731 ]
31732 },
31733 "protected" : 1,
31734 "proxyto" : "node",
31735 "returns" : {
31736 "description" : "the task ID.",
31737 "type" : "string"
31738 }
31739 }
31740 },
31741 "leaf" : 1,
31742 "path" : "/nodes/{node}/lxc/{vmid}/remote_migrate",
31743 "text" : "remote_migrate"
31744 },
4d47f125
TL
31745 {
31746 "info" : {
31747 "POST" : {
e9cd3bd4 31748 "allowtoken" : 1,
4d47f125
TL
31749 "description" : "Migrate the container to another node. Creates a new migration task.",
31750 "method" : "POST",
31751 "name" : "migrate_vm",
31752 "parameters" : {
31753 "additionalProperties" : 0,
31754 "properties" : {
95895385
TL
31755 "bwlimit" : {
31756 "default" : "migrate limit from datacenter or storage config",
31757 "description" : "Override I/O bandwidth limit (in KiB/s).",
31758 "minimum" : "0",
31759 "optional" : 1,
31760 "type" : "number",
31761 "typetext" : "<number> (0 - N)"
31762 },
4d47f125
TL
31763 "node" : {
31764 "description" : "The cluster node name.",
31765 "format" : "pve-node",
31766 "type" : "string",
31767 "typetext" : "<string>"
44660702 31768 },
4d47f125
TL
31769 "online" : {
31770 "description" : "Use online/live migration.",
31771 "optional" : 1,
31772 "type" : "boolean",
31773 "typetext" : "<boolean>"
31774 },
31775 "restart" : {
31776 "description" : "Use restart migration",
31777 "optional" : 1,
31778 "type" : "boolean",
31779 "typetext" : "<boolean>"
31780 },
31781 "target" : {
31782 "description" : "Target node.",
31783 "format" : "pve-node",
31784 "type" : "string",
31785 "typetext" : "<string>"
31786 },
c30bb419
TL
31787 "target-storage" : {
31788 "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.",
31789 "format" : "storage-pair-list",
31790 "optional" : 1,
31791 "type" : "string",
31792 "typetext" : "<string>"
31793 },
4d47f125
TL
31794 "timeout" : {
31795 "default" : 180,
31796 "description" : "Timeout in seconds for shutdown for restart migration",
31797 "optional" : 1,
31798 "type" : "integer",
31799 "typetext" : "<integer>"
31800 },
31801 "vmid" : {
31802 "description" : "The (unique) ID of the VM.",
31803 "format" : "pve-vmid",
8dd66e12
TL
31804 "maximum" : 999999999,
31805 "minimum" : 100,
4d47f125 31806 "type" : "integer",
8dd66e12 31807 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
31808 }
31809 }
31810 },
4d47f125
TL
31811 "permissions" : {
31812 "check" : [
31813 "perm",
31814 "/vms/{vmid}",
31815 [
31816 "VM.Migrate"
31817 ]
31818 ]
31819 },
31820 "protected" : 1,
31821 "proxyto" : "node",
31822 "returns" : {
31823 "description" : "the task ID.",
31824 "type" : "string"
31825 }
56122987 31826 }
4d47f125
TL
31827 },
31828 "leaf" : 1,
31829 "path" : "/nodes/{node}/lxc/{vmid}/migrate",
31830 "text" : "migrate"
31831 },
31832 {
56122987
DM
31833 "info" : {
31834 "GET" : {
e9cd3bd4 31835 "allowtoken" : 1,
4d47f125 31836 "description" : "Check if feature for virtual machine is available.",
44660702 31837 "method" : "GET",
4d47f125 31838 "name" : "vm_feature",
56122987 31839 "parameters" : {
44660702 31840 "additionalProperties" : 0,
56122987 31841 "properties" : {
4d47f125
TL
31842 "feature" : {
31843 "description" : "Feature to check.",
31844 "enum" : [
31845 "snapshot",
31846 "clone",
31847 "copy"
31848 ],
31849 "type" : "string"
31850 },
56122987 31851 "node" : {
44660702 31852 "description" : "The cluster node name.",
56122987 31853 "format" : "pve-node",
013dc89f
DM
31854 "type" : "string",
31855 "typetext" : "<string>"
44660702 31856 },
4d47f125
TL
31857 "snapname" : {
31858 "description" : "The name of the snapshot.",
31859 "format" : "pve-configid",
31860 "maxLength" : 40,
31861 "optional" : 1,
31862 "type" : "string",
31863 "typetext" : "<string>"
31864 },
44660702
DM
31865 "vmid" : {
31866 "description" : "The (unique) ID of the VM.",
31867 "format" : "pve-vmid",
8dd66e12
TL
31868 "maximum" : 999999999,
31869 "minimum" : 100,
4bd7df8b 31870 "type" : "integer",
8dd66e12 31871 "typetext" : "<integer> (100 - 999999999)"
56122987 31872 }
44660702
DM
31873 }
31874 },
31875 "permissions" : {
4d47f125
TL
31876 "check" : [
31877 "perm",
31878 "/vms/{vmid}",
31879 [
31880 "VM.Audit"
31881 ]
31882 ]
56122987 31883 },
4d47f125
TL
31884 "protected" : 1,
31885 "proxyto" : "node",
56122987 31886 "returns" : {
4d47f125
TL
31887 "properties" : {
31888 "hasFeature" : {
31889 "type" : "boolean"
31890 }
7aacca6f 31891 },
4d47f125
TL
31892 "type" : "object"
31893 }
31894 }
31895 },
31896 "leaf" : 1,
31897 "path" : "/nodes/{node}/lxc/{vmid}/feature",
31898 "text" : "feature"
31899 },
31900 {
31901 "info" : {
31902 "POST" : {
e9cd3bd4 31903 "allowtoken" : 1,
4d47f125
TL
31904 "description" : "Create a Template.",
31905 "method" : "POST",
31906 "name" : "template",
31907 "parameters" : {
31908 "additionalProperties" : 0,
31909 "properties" : {
31910 "node" : {
31911 "description" : "The cluster node name.",
31912 "format" : "pve-node",
31913 "type" : "string",
31914 "typetext" : "<string>"
31915 },
31916 "vmid" : {
31917 "description" : "The (unique) ID of the VM.",
31918 "format" : "pve-vmid",
8dd66e12
TL
31919 "maximum" : 999999999,
31920 "minimum" : 100,
4d47f125 31921 "type" : "integer",
8dd66e12 31922 "typetext" : "<integer> (100 - 999999999)"
56122987 31923 }
4d47f125
TL
31924 }
31925 },
31926 "permissions" : {
31927 "check" : [
31928 "perm",
31929 "/vms/{vmid}",
31930 [
31931 "VM.Allocate"
31932 ]
44660702 31933 ],
4d47f125
TL
31934 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
31935 },
31936 "protected" : 1,
31937 "proxyto" : "node",
31938 "returns" : {
31939 "type" : "null"
56122987
DM
31940 }
31941 }
31942 },
4d47f125
TL
31943 "leaf" : 1,
31944 "path" : "/nodes/{node}/lxc/{vmid}/template",
31945 "text" : "template"
56122987
DM
31946 },
31947 {
56122987 31948 "info" : {
4d47f125 31949 "POST" : {
e9cd3bd4 31950 "allowtoken" : 1,
4d47f125
TL
31951 "description" : "Create a container clone/copy",
31952 "method" : "POST",
31953 "name" : "clone_vm",
56122987 31954 "parameters" : {
7aacca6f 31955 "additionalProperties" : 0,
56122987 31956 "properties" : {
95895385
TL
31957 "bwlimit" : {
31958 "default" : "clone limit from datacenter or storage config",
31959 "description" : "Override I/O bandwidth limit (in KiB/s).",
31960 "minimum" : "0",
31961 "optional" : 1,
31962 "type" : "number",
31963 "typetext" : "<number> (0 - N)"
31964 },
4d47f125
TL
31965 "description" : {
31966 "description" : "Description for the new CT.",
44660702 31967 "optional" : 1,
4d47f125
TL
31968 "type" : "string",
31969 "typetext" : "<string>"
44660702 31970 },
4d47f125
TL
31971 "full" : {
31972 "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.",
31973 "optional" : 1,
31974 "type" : "boolean",
31975 "typetext" : "<boolean>"
31976 },
31977 "hostname" : {
31978 "description" : "Set a hostname for the new CT.",
31979 "format" : "dns-name",
31980 "optional" : 1,
013dc89f
DM
31981 "type" : "string",
31982 "typetext" : "<string>"
44660702 31983 },
4d47f125
TL
31984 "newid" : {
31985 "description" : "VMID for the clone.",
31986 "format" : "pve-vmid",
8dd66e12
TL
31987 "maximum" : 999999999,
31988 "minimum" : 100,
4d47f125 31989 "type" : "integer",
8dd66e12 31990 "typetext" : "<integer> (100 - 999999999)"
4d47f125 31991 },
7aacca6f
DM
31992 "node" : {
31993 "description" : "The cluster node name.",
44660702 31994 "format" : "pve-node",
013dc89f
DM
31995 "type" : "string",
31996 "typetext" : "<string>"
56122987 31997 },
4d47f125
TL
31998 "pool" : {
31999 "description" : "Add the new CT to the specified pool.",
32000 "format" : "pve-poolid",
32001 "optional" : 1,
32002 "type" : "string",
32003 "typetext" : "<string>"
32004 },
32005 "snapname" : {
32006 "description" : "The name of the snapshot.",
32007 "format" : "pve-configid",
32008 "maxLength" : 40,
32009 "optional" : 1,
32010 "type" : "string",
32011 "typetext" : "<string>"
32012 },
32013 "storage" : {
32014 "description" : "Target storage for full clone.",
32015 "format" : "pve-storage-id",
32016 "optional" : 1,
32017 "type" : "string",
32018 "typetext" : "<string>"
32019 },
32020 "target" : {
32021 "description" : "Target node. Only allowed if the original VM is on shared storage.",
32022 "format" : "pve-node",
32023 "optional" : 1,
32024 "type" : "string",
32025 "typetext" : "<string>"
32026 },
7aacca6f 32027 "vmid" : {
44660702 32028 "description" : "The (unique) ID of the VM.",
7aacca6f 32029 "format" : "pve-vmid",
8dd66e12
TL
32030 "maximum" : 999999999,
32031 "minimum" : 100,
4bd7df8b 32032 "type" : "integer",
8dd66e12 32033 "typetext" : "<integer> (100 - 999999999)"
56122987 32034 }
7aacca6f
DM
32035 }
32036 },
32037 "permissions" : {
32038 "check" : [
4d47f125 32039 "and",
7aacca6f 32040 [
4d47f125
TL
32041 "perm",
32042 "/vms/{vmid}",
32043 [
32044 "VM.Clone"
32045 ]
32046 ],
32047 [
32048 "or",
32049 [
32050 "perm",
32051 "/vms/{newid}",
32052 [
32053 "VM.Allocate"
32054 ]
32055 ],
32056 [
32057 "perm",
32058 "/pool/{pool}",
32059 [
32060 "VM.Allocate"
32061 ],
32062 "require_param",
32063 "pool"
32064 ]
7aacca6f 32065 ]
4d47f125 32066 ],
159464a9 32067 "description" : "You need 'VM.Clone' permissions on /vms/{vmid}, and 'VM.Allocate' permissions on /vms/{newid} (or on the VM pool /pool/{pool}). You also need 'Datastore.AllocateSpace' on any used storage, and 'SDN.Use' on any bridge."
56122987 32068 },
44660702 32069 "protected" : 1,
4d47f125 32070 "proxyto" : "node",
7aacca6f 32071 "returns" : {
4d47f125 32072 "type" : "string"
7aacca6f 32073 }
56122987 32074 }
7aacca6f 32075 },
44660702 32076 "leaf" : 1,
4d47f125
TL
32077 "path" : "/nodes/{node}/lxc/{vmid}/clone",
32078 "text" : "clone"
56122987
DM
32079 },
32080 {
56122987 32081 "info" : {
4d47f125 32082 "PUT" : {
e9cd3bd4 32083 "allowtoken" : 1,
4d47f125
TL
32084 "description" : "Resize a container mount point.",
32085 "method" : "PUT",
32086 "name" : "resize_vm",
56122987 32087 "parameters" : {
7aacca6f 32088 "additionalProperties" : 0,
56122987 32089 "properties" : {
4d47f125
TL
32090 "digest" : {
32091 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
32092 "maxLength" : 40,
32093 "optional" : 1,
32094 "type" : "string",
32095 "typetext" : "<string>"
32096 },
32097 "disk" : {
32098 "description" : "The disk you want to resize.",
44660702 32099 "enum" : [
4d47f125
TL
32100 "rootfs",
32101 "mp0",
32102 "mp1",
32103 "mp2",
32104 "mp3",
32105 "mp4",
32106 "mp5",
32107 "mp6",
32108 "mp7",
32109 "mp8",
32110 "mp9",
32111 "mp10",
32112 "mp11",
32113 "mp12",
32114 "mp13",
32115 "mp14",
32116 "mp15",
32117 "mp16",
32118 "mp17",
32119 "mp18",
32120 "mp19",
32121 "mp20",
32122 "mp21",
32123 "mp22",
32124 "mp23",
32125 "mp24",
32126 "mp25",
32127 "mp26",
32128 "mp27",
32129 "mp28",
32130 "mp29",
32131 "mp30",
32132 "mp31",
32133 "mp32",
32134 "mp33",
32135 "mp34",
32136 "mp35",
32137 "mp36",
32138 "mp37",
32139 "mp38",
32140 "mp39",
32141 "mp40",
32142 "mp41",
32143 "mp42",
32144 "mp43",
32145 "mp44",
32146 "mp45",
32147 "mp46",
32148 "mp47",
32149 "mp48",
32150 "mp49",
32151 "mp50",
32152 "mp51",
32153 "mp52",
32154 "mp53",
32155 "mp54",
32156 "mp55",
32157 "mp56",
32158 "mp57",
32159 "mp58",
32160 "mp59",
32161 "mp60",
32162 "mp61",
32163 "mp62",
32164 "mp63",
32165 "mp64",
32166 "mp65",
32167 "mp66",
32168 "mp67",
32169 "mp68",
32170 "mp69",
32171 "mp70",
32172 "mp71",
32173 "mp72",
32174 "mp73",
32175 "mp74",
32176 "mp75",
32177 "mp76",
32178 "mp77",
32179 "mp78",
32180 "mp79",
32181 "mp80",
32182 "mp81",
32183 "mp82",
32184 "mp83",
32185 "mp84",
32186 "mp85",
32187 "mp86",
32188 "mp87",
32189 "mp88",
32190 "mp89",
32191 "mp90",
32192 "mp91",
32193 "mp92",
32194 "mp93",
32195 "mp94",
32196 "mp95",
32197 "mp96",
32198 "mp97",
32199 "mp98",
32200 "mp99",
32201 "mp100",
32202 "mp101",
32203 "mp102",
32204 "mp103",
32205 "mp104",
32206 "mp105",
32207 "mp106",
32208 "mp107",
32209 "mp108",
32210 "mp109",
32211 "mp110",
32212 "mp111",
32213 "mp112",
32214 "mp113",
32215 "mp114",
32216 "mp115",
32217 "mp116",
32218 "mp117",
32219 "mp118",
32220 "mp119",
32221 "mp120",
32222 "mp121",
32223 "mp122",
32224 "mp123",
32225 "mp124",
32226 "mp125",
32227 "mp126",
32228 "mp127",
32229 "mp128",
32230 "mp129",
32231 "mp130",
32232 "mp131",
32233 "mp132",
32234 "mp133",
32235 "mp134",
32236 "mp135",
32237 "mp136",
32238 "mp137",
32239 "mp138",
32240 "mp139",
32241 "mp140",
32242 "mp141",
32243 "mp142",
32244 "mp143",
32245 "mp144",
32246 "mp145",
32247 "mp146",
32248 "mp147",
32249 "mp148",
32250 "mp149",
32251 "mp150",
32252 "mp151",
32253 "mp152",
32254 "mp153",
32255 "mp154",
32256 "mp155",
32257 "mp156",
32258 "mp157",
32259 "mp158",
32260 "mp159",
32261 "mp160",
32262 "mp161",
32263 "mp162",
32264 "mp163",
32265 "mp164",
32266 "mp165",
32267 "mp166",
32268 "mp167",
32269 "mp168",
32270 "mp169",
32271 "mp170",
32272 "mp171",
32273 "mp172",
32274 "mp173",
32275 "mp174",
32276 "mp175",
32277 "mp176",
32278 "mp177",
32279 "mp178",
32280 "mp179",
32281 "mp180",
32282 "mp181",
32283 "mp182",
32284 "mp183",
32285 "mp184",
32286 "mp185",
32287 "mp186",
32288 "mp187",
32289 "mp188",
32290 "mp189",
32291 "mp190",
32292 "mp191",
32293 "mp192",
32294 "mp193",
32295 "mp194",
32296 "mp195",
32297 "mp196",
32298 "mp197",
32299 "mp198",
32300 "mp199",
32301 "mp200",
32302 "mp201",
32303 "mp202",
32304 "mp203",
32305 "mp204",
32306 "mp205",
32307 "mp206",
32308 "mp207",
32309 "mp208",
32310 "mp209",
32311 "mp210",
32312 "mp211",
32313 "mp212",
32314 "mp213",
32315 "mp214",
32316 "mp215",
32317 "mp216",
32318 "mp217",
32319 "mp218",
32320 "mp219",
32321 "mp220",
32322 "mp221",
32323 "mp222",
32324 "mp223",
32325 "mp224",
32326 "mp225",
32327 "mp226",
32328 "mp227",
32329 "mp228",
32330 "mp229",
32331 "mp230",
32332 "mp231",
32333 "mp232",
32334 "mp233",
32335 "mp234",
32336 "mp235",
32337 "mp236",
32338 "mp237",
32339 "mp238",
32340 "mp239",
32341 "mp240",
32342 "mp241",
32343 "mp242",
32344 "mp243",
32345 "mp244",
32346 "mp245",
32347 "mp246",
32348 "mp247",
32349 "mp248",
32350 "mp249",
32351 "mp250",
32352 "mp251",
32353 "mp252",
32354 "mp253",
32355 "mp254",
32356 "mp255"
44660702 32357 ],
44660702
DM
32358 "type" : "string"
32359 },
7aacca6f 32360 "node" : {
44660702 32361 "description" : "The cluster node name.",
7aacca6f 32362 "format" : "pve-node",
013dc89f
DM
32363 "type" : "string",
32364 "typetext" : "<string>"
7aacca6f 32365 },
4d47f125
TL
32366 "size" : {
32367 "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.",
32368 "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
44660702 32369 "type" : "string"
7aacca6f
DM
32370 },
32371 "vmid" : {
32372 "description" : "The (unique) ID of the VM.",
44660702 32373 "format" : "pve-vmid",
8dd66e12
TL
32374 "maximum" : 999999999,
32375 "minimum" : 100,
4bd7df8b 32376 "type" : "integer",
8dd66e12 32377 "typetext" : "<integer> (100 - 999999999)"
56122987 32378 }
56122987
DM
32379 }
32380 },
56122987
DM
32381 "permissions" : {
32382 "check" : [
32383 "perm",
32384 "/vms/{vmid}",
32385 [
4d47f125
TL
32386 "VM.Config.Disk"
32387 ],
32388 "any",
32389 1
56122987
DM
32390 ]
32391 },
7aacca6f 32392 "protected" : 1,
4d47f125 32393 "proxyto" : "node",
7aacca6f 32394 "returns" : {
4d47f125
TL
32395 "description" : "the task ID.",
32396 "type" : "string"
44660702 32397 }
56122987
DM
32398 }
32399 },
44660702 32400 "leaf" : 1,
4d47f125
TL
32401 "path" : "/nodes/{node}/lxc/{vmid}/resize",
32402 "text" : "resize"
56122987
DM
32403 },
32404 {
32405 "info" : {
32406 "POST" : {
e9cd3bd4 32407 "allowtoken" : 1,
5370fa8c 32408 "description" : "Move a rootfs-/mp-volume to a different storage or to a different container.",
44660702 32409 "method" : "POST",
4d47f125 32410 "name" : "move_volume",
7aacca6f 32411 "parameters" : {
44660702 32412 "additionalProperties" : 0,
7aacca6f 32413 "properties" : {
95895385
TL
32414 "bwlimit" : {
32415 "default" : "clone limit from datacenter or storage config",
32416 "description" : "Override I/O bandwidth limit (in KiB/s).",
32417 "minimum" : "0",
32418 "optional" : 1,
32419 "type" : "number",
32420 "typetext" : "<number> (0 - N)"
32421 },
4d47f125
TL
32422 "delete" : {
32423 "default" : 0,
32424 "description" : "Delete the original volume after successful copy. By default the original is kept as an unused volume entry.",
5d9c884c 32425 "optional" : 1,
4d47f125
TL
32426 "type" : "boolean",
32427 "typetext" : "<boolean>"
32428 },
32429 "digest" : {
5370fa8c 32430 "description" : "Prevent changes if current configuration file has different SHA1 \" .\n\t\t \"digest. This can be used to prevent concurrent modifications.",
4d47f125
TL
32431 "maxLength" : 40,
32432 "optional" : 1,
32433 "type" : "string",
32434 "typetext" : "<string>"
5d9c884c 32435 },
44660702
DM
32436 "node" : {
32437 "description" : "The cluster node name.",
32438 "format" : "pve-node",
013dc89f
DM
32439 "type" : "string",
32440 "typetext" : "<string>"
44660702 32441 },
4d47f125
TL
32442 "storage" : {
32443 "description" : "Target Storage.",
32444 "format" : "pve-storage-id",
5370fa8c 32445 "optional" : 1,
4d47f125
TL
32446 "type" : "string",
32447 "typetext" : "<string>"
32448 },
5370fa8c
TL
32449 "target-digest" : {
32450 "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.",
32451 "maxLength" : 40,
32452 "optional" : 1,
32453 "type" : "string",
32454 "typetext" : "<string>"
32455 },
32456 "target-vmid" : {
44660702 32457 "description" : "The (unique) ID of the VM.",
7aacca6f 32458 "format" : "pve-vmid",
8dd66e12
TL
32459 "maximum" : 999999999,
32460 "minimum" : 100,
5370fa8c 32461 "optional" : 1,
4bd7df8b 32462 "type" : "integer",
8dd66e12 32463 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 32464 },
5370fa8c
TL
32465 "target-volume" : {
32466 "description" : "The config key the volume will be moved to. Default is the source volume key.",
4d47f125
TL
32467 "enum" : [
32468 "rootfs",
32469 "mp0",
32470 "mp1",
32471 "mp2",
32472 "mp3",
32473 "mp4",
32474 "mp5",
32475 "mp6",
32476 "mp7",
32477 "mp8",
32478 "mp9",
32479 "mp10",
32480 "mp11",
32481 "mp12",
32482 "mp13",
32483 "mp14",
32484 "mp15",
32485 "mp16",
32486 "mp17",
32487 "mp18",
32488 "mp19",
32489 "mp20",
32490 "mp21",
32491 "mp22",
32492 "mp23",
32493 "mp24",
32494 "mp25",
32495 "mp26",
32496 "mp27",
32497 "mp28",
32498 "mp29",
32499 "mp30",
32500 "mp31",
32501 "mp32",
32502 "mp33",
32503 "mp34",
32504 "mp35",
32505 "mp36",
32506 "mp37",
32507 "mp38",
32508 "mp39",
32509 "mp40",
32510 "mp41",
32511 "mp42",
32512 "mp43",
32513 "mp44",
32514 "mp45",
32515 "mp46",
32516 "mp47",
32517 "mp48",
32518 "mp49",
32519 "mp50",
32520 "mp51",
32521 "mp52",
32522 "mp53",
32523 "mp54",
32524 "mp55",
32525 "mp56",
32526 "mp57",
32527 "mp58",
32528 "mp59",
32529 "mp60",
32530 "mp61",
32531 "mp62",
32532 "mp63",
32533 "mp64",
32534 "mp65",
32535 "mp66",
32536 "mp67",
32537 "mp68",
32538 "mp69",
32539 "mp70",
32540 "mp71",
32541 "mp72",
32542 "mp73",
32543 "mp74",
32544 "mp75",
32545 "mp76",
32546 "mp77",
32547 "mp78",
32548 "mp79",
32549 "mp80",
32550 "mp81",
32551 "mp82",
32552 "mp83",
32553 "mp84",
32554 "mp85",
32555 "mp86",
32556 "mp87",
32557 "mp88",
32558 "mp89",
32559 "mp90",
32560 "mp91",
32561 "mp92",
32562 "mp93",
32563 "mp94",
32564 "mp95",
32565 "mp96",
32566 "mp97",
32567 "mp98",
32568 "mp99",
32569 "mp100",
32570 "mp101",
32571 "mp102",
32572 "mp103",
32573 "mp104",
32574 "mp105",
32575 "mp106",
32576 "mp107",
32577 "mp108",
32578 "mp109",
32579 "mp110",
32580 "mp111",
32581 "mp112",
32582 "mp113",
32583 "mp114",
32584 "mp115",
32585 "mp116",
32586 "mp117",
32587 "mp118",
32588 "mp119",
32589 "mp120",
32590 "mp121",
32591 "mp122",
32592 "mp123",
32593 "mp124",
32594 "mp125",
32595 "mp126",
32596 "mp127",
32597 "mp128",
32598 "mp129",
32599 "mp130",
32600 "mp131",
32601 "mp132",
32602 "mp133",
32603 "mp134",
32604 "mp135",
32605 "mp136",
32606 "mp137",
32607 "mp138",
32608 "mp139",
32609 "mp140",
32610 "mp141",
32611 "mp142",
32612 "mp143",
32613 "mp144",
32614 "mp145",
32615 "mp146",
32616 "mp147",
32617 "mp148",
32618 "mp149",
32619 "mp150",
32620 "mp151",
32621 "mp152",
32622 "mp153",
32623 "mp154",
32624 "mp155",
32625 "mp156",
32626 "mp157",
32627 "mp158",
32628 "mp159",
32629 "mp160",
32630 "mp161",
32631 "mp162",
32632 "mp163",
32633 "mp164",
32634 "mp165",
32635 "mp166",
32636 "mp167",
32637 "mp168",
32638 "mp169",
32639 "mp170",
32640 "mp171",
32641 "mp172",
32642 "mp173",
32643 "mp174",
32644 "mp175",
32645 "mp176",
32646 "mp177",
32647 "mp178",
32648 "mp179",
32649 "mp180",
32650 "mp181",
32651 "mp182",
32652 "mp183",
32653 "mp184",
32654 "mp185",
32655 "mp186",
32656 "mp187",
32657 "mp188",
32658 "mp189",
32659 "mp190",
32660 "mp191",
32661 "mp192",
32662 "mp193",
32663 "mp194",
32664 "mp195",
32665 "mp196",
32666 "mp197",
32667 "mp198",
32668 "mp199",
32669 "mp200",
32670 "mp201",
32671 "mp202",
32672 "mp203",
32673 "mp204",
32674 "mp205",
32675 "mp206",
32676 "mp207",
32677 "mp208",
32678 "mp209",
32679 "mp210",
32680 "mp211",
32681 "mp212",
32682 "mp213",
32683 "mp214",
32684 "mp215",
32685 "mp216",
32686 "mp217",
32687 "mp218",
32688 "mp219",
32689 "mp220",
32690 "mp221",
32691 "mp222",
32692 "mp223",
32693 "mp224",
32694 "mp225",
32695 "mp226",
32696 "mp227",
32697 "mp228",
32698 "mp229",
32699 "mp230",
32700 "mp231",
32701 "mp232",
32702 "mp233",
32703 "mp234",
32704 "mp235",
32705 "mp236",
32706 "mp237",
32707 "mp238",
32708 "mp239",
32709 "mp240",
32710 "mp241",
32711 "mp242",
32712 "mp243",
32713 "mp244",
32714 "mp245",
32715 "mp246",
32716 "mp247",
32717 "mp248",
32718 "mp249",
32719 "mp250",
32720 "mp251",
32721 "mp252",
32722 "mp253",
32723 "mp254",
5370fa8c
TL
32724 "mp255",
32725 "unused0",
32726 "unused1",
32727 "unused2",
32728 "unused3",
32729 "unused4",
32730 "unused5",
32731 "unused6",
32732 "unused7",
32733 "unused8",
32734 "unused9",
32735 "unused10",
32736 "unused11",
32737 "unused12",
32738 "unused13",
32739 "unused14",
32740 "unused15",
32741 "unused16",
32742 "unused17",
32743 "unused18",
32744 "unused19",
32745 "unused20",
32746 "unused21",
32747 "unused22",
32748 "unused23",
32749 "unused24",
32750 "unused25",
32751 "unused26",
32752 "unused27",
32753 "unused28",
32754 "unused29",
32755 "unused30",
32756 "unused31",
32757 "unused32",
32758 "unused33",
32759 "unused34",
32760 "unused35",
32761 "unused36",
32762 "unused37",
32763 "unused38",
32764 "unused39",
32765 "unused40",
32766 "unused41",
32767 "unused42",
32768 "unused43",
32769 "unused44",
32770 "unused45",
32771 "unused46",
32772 "unused47",
32773 "unused48",
32774 "unused49",
32775 "unused50",
32776 "unused51",
32777 "unused52",
32778 "unused53",
32779 "unused54",
32780 "unused55",
32781 "unused56",
32782 "unused57",
32783 "unused58",
32784 "unused59",
32785 "unused60",
32786 "unused61",
32787 "unused62",
32788 "unused63",
32789 "unused64",
32790 "unused65",
32791 "unused66",
32792 "unused67",
32793 "unused68",
32794 "unused69",
32795 "unused70",
32796 "unused71",
32797 "unused72",
32798 "unused73",
32799 "unused74",
32800 "unused75",
32801 "unused76",
32802 "unused77",
32803 "unused78",
32804 "unused79",
32805 "unused80",
32806 "unused81",
32807 "unused82",
32808 "unused83",
32809 "unused84",
32810 "unused85",
32811 "unused86",
32812 "unused87",
32813 "unused88",
32814 "unused89",
32815 "unused90",
32816 "unused91",
32817 "unused92",
32818 "unused93",
32819 "unused94",
32820 "unused95",
32821 "unused96",
32822 "unused97",
32823 "unused98",
32824 "unused99",
32825 "unused100",
32826 "unused101",
32827 "unused102",
32828 "unused103",
32829 "unused104",
32830 "unused105",
32831 "unused106",
32832 "unused107",
32833 "unused108",
32834 "unused109",
32835 "unused110",
32836 "unused111",
32837 "unused112",
32838 "unused113",
32839 "unused114",
32840 "unused115",
32841 "unused116",
32842 "unused117",
32843 "unused118",
32844 "unused119",
32845 "unused120",
32846 "unused121",
32847 "unused122",
32848 "unused123",
32849 "unused124",
32850 "unused125",
32851 "unused126",
32852 "unused127",
32853 "unused128",
32854 "unused129",
32855 "unused130",
32856 "unused131",
32857 "unused132",
32858 "unused133",
32859 "unused134",
32860 "unused135",
32861 "unused136",
32862 "unused137",
32863 "unused138",
32864 "unused139",
32865 "unused140",
32866 "unused141",
32867 "unused142",
32868 "unused143",
32869 "unused144",
32870 "unused145",
32871 "unused146",
32872 "unused147",
32873 "unused148",
32874 "unused149",
32875 "unused150",
32876 "unused151",
32877 "unused152",
32878 "unused153",
32879 "unused154",
32880 "unused155",
32881 "unused156",
32882 "unused157",
32883 "unused158",
32884 "unused159",
32885 "unused160",
32886 "unused161",
32887 "unused162",
32888 "unused163",
32889 "unused164",
32890 "unused165",
32891 "unused166",
32892 "unused167",
32893 "unused168",
32894 "unused169",
32895 "unused170",
32896 "unused171",
32897 "unused172",
32898 "unused173",
32899 "unused174",
32900 "unused175",
32901 "unused176",
32902 "unused177",
32903 "unused178",
32904 "unused179",
32905 "unused180",
32906 "unused181",
32907 "unused182",
32908 "unused183",
32909 "unused184",
32910 "unused185",
32911 "unused186",
32912 "unused187",
32913 "unused188",
32914 "unused189",
32915 "unused190",
32916 "unused191",
32917 "unused192",
32918 "unused193",
32919 "unused194",
32920 "unused195",
32921 "unused196",
32922 "unused197",
32923 "unused198",
32924 "unused199",
32925 "unused200",
32926 "unused201",
32927 "unused202",
32928 "unused203",
32929 "unused204",
32930 "unused205",
32931 "unused206",
32932 "unused207",
32933 "unused208",
32934 "unused209",
32935 "unused210",
32936 "unused211",
32937 "unused212",
32938 "unused213",
32939 "unused214",
32940 "unused215",
32941 "unused216",
32942 "unused217",
32943 "unused218",
32944 "unused219",
32945 "unused220",
32946 "unused221",
32947 "unused222",
32948 "unused223",
32949 "unused224",
32950 "unused225",
32951 "unused226",
32952 "unused227",
32953 "unused228",
32954 "unused229",
32955 "unused230",
32956 "unused231",
32957 "unused232",
32958 "unused233",
32959 "unused234",
32960 "unused235",
32961 "unused236",
32962 "unused237",
32963 "unused238",
32964 "unused239",
32965 "unused240",
32966 "unused241",
32967 "unused242",
32968 "unused243",
32969 "unused244",
32970 "unused245",
32971 "unused246",
32972 "unused247",
32973 "unused248",
32974 "unused249",
32975 "unused250",
32976 "unused251",
32977 "unused252",
32978 "unused253",
32979 "unused254",
32980 "unused255"
32981 ],
32982 "optional" : 1,
32983 "type" : "string"
32984 },
32985 "vmid" : {
32986 "description" : "The (unique) ID of the VM.",
32987 "format" : "pve-vmid",
8dd66e12
TL
32988 "maximum" : 999999999,
32989 "minimum" : 100,
5370fa8c 32990 "type" : "integer",
8dd66e12 32991 "typetext" : "<integer> (100 - 999999999)"
5370fa8c
TL
32992 },
32993 "volume" : {
32994 "description" : "Volume which will be moved.",
32995 "enum" : [
32996 "rootfs",
32997 "mp0",
32998 "mp1",
32999 "mp2",
33000 "mp3",
33001 "mp4",
33002 "mp5",
33003 "mp6",
33004 "mp7",
33005 "mp8",
33006 "mp9",
33007 "mp10",
33008 "mp11",
33009 "mp12",
33010 "mp13",
33011 "mp14",
33012 "mp15",
33013 "mp16",
33014 "mp17",
33015 "mp18",
33016 "mp19",
33017 "mp20",
33018 "mp21",
33019 "mp22",
33020 "mp23",
33021 "mp24",
33022 "mp25",
33023 "mp26",
33024 "mp27",
33025 "mp28",
33026 "mp29",
33027 "mp30",
33028 "mp31",
33029 "mp32",
33030 "mp33",
33031 "mp34",
33032 "mp35",
33033 "mp36",
33034 "mp37",
33035 "mp38",
33036 "mp39",
33037 "mp40",
33038 "mp41",
33039 "mp42",
33040 "mp43",
33041 "mp44",
33042 "mp45",
33043 "mp46",
33044 "mp47",
33045 "mp48",
33046 "mp49",
33047 "mp50",
33048 "mp51",
33049 "mp52",
33050 "mp53",
33051 "mp54",
33052 "mp55",
33053 "mp56",
33054 "mp57",
33055 "mp58",
33056 "mp59",
33057 "mp60",
33058 "mp61",
33059 "mp62",
33060 "mp63",
33061 "mp64",
33062 "mp65",
33063 "mp66",
33064 "mp67",
33065 "mp68",
33066 "mp69",
33067 "mp70",
33068 "mp71",
33069 "mp72",
33070 "mp73",
33071 "mp74",
33072 "mp75",
33073 "mp76",
33074 "mp77",
33075 "mp78",
33076 "mp79",
33077 "mp80",
33078 "mp81",
33079 "mp82",
33080 "mp83",
33081 "mp84",
33082 "mp85",
33083 "mp86",
33084 "mp87",
33085 "mp88",
33086 "mp89",
33087 "mp90",
33088 "mp91",
33089 "mp92",
33090 "mp93",
33091 "mp94",
33092 "mp95",
33093 "mp96",
33094 "mp97",
33095 "mp98",
33096 "mp99",
33097 "mp100",
33098 "mp101",
33099 "mp102",
33100 "mp103",
33101 "mp104",
33102 "mp105",
33103 "mp106",
33104 "mp107",
33105 "mp108",
33106 "mp109",
33107 "mp110",
33108 "mp111",
33109 "mp112",
33110 "mp113",
33111 "mp114",
33112 "mp115",
33113 "mp116",
33114 "mp117",
33115 "mp118",
33116 "mp119",
33117 "mp120",
33118 "mp121",
33119 "mp122",
33120 "mp123",
33121 "mp124",
33122 "mp125",
33123 "mp126",
33124 "mp127",
33125 "mp128",
33126 "mp129",
33127 "mp130",
33128 "mp131",
33129 "mp132",
33130 "mp133",
33131 "mp134",
33132 "mp135",
33133 "mp136",
33134 "mp137",
33135 "mp138",
33136 "mp139",
33137 "mp140",
33138 "mp141",
33139 "mp142",
33140 "mp143",
33141 "mp144",
33142 "mp145",
33143 "mp146",
33144 "mp147",
33145 "mp148",
33146 "mp149",
33147 "mp150",
33148 "mp151",
33149 "mp152",
33150 "mp153",
33151 "mp154",
33152 "mp155",
33153 "mp156",
33154 "mp157",
33155 "mp158",
33156 "mp159",
33157 "mp160",
33158 "mp161",
33159 "mp162",
33160 "mp163",
33161 "mp164",
33162 "mp165",
33163 "mp166",
33164 "mp167",
33165 "mp168",
33166 "mp169",
33167 "mp170",
33168 "mp171",
33169 "mp172",
33170 "mp173",
33171 "mp174",
33172 "mp175",
33173 "mp176",
33174 "mp177",
33175 "mp178",
33176 "mp179",
33177 "mp180",
33178 "mp181",
33179 "mp182",
33180 "mp183",
33181 "mp184",
33182 "mp185",
33183 "mp186",
33184 "mp187",
33185 "mp188",
33186 "mp189",
33187 "mp190",
33188 "mp191",
33189 "mp192",
33190 "mp193",
33191 "mp194",
33192 "mp195",
33193 "mp196",
33194 "mp197",
33195 "mp198",
33196 "mp199",
33197 "mp200",
33198 "mp201",
33199 "mp202",
33200 "mp203",
33201 "mp204",
33202 "mp205",
33203 "mp206",
33204 "mp207",
33205 "mp208",
33206 "mp209",
33207 "mp210",
33208 "mp211",
33209 "mp212",
33210 "mp213",
33211 "mp214",
33212 "mp215",
33213 "mp216",
33214 "mp217",
33215 "mp218",
33216 "mp219",
33217 "mp220",
33218 "mp221",
33219 "mp222",
33220 "mp223",
33221 "mp224",
33222 "mp225",
33223 "mp226",
33224 "mp227",
33225 "mp228",
33226 "mp229",
33227 "mp230",
33228 "mp231",
33229 "mp232",
33230 "mp233",
33231 "mp234",
33232 "mp235",
33233 "mp236",
33234 "mp237",
33235 "mp238",
33236 "mp239",
33237 "mp240",
33238 "mp241",
33239 "mp242",
33240 "mp243",
33241 "mp244",
33242 "mp245",
33243 "mp246",
33244 "mp247",
33245 "mp248",
33246 "mp249",
33247 "mp250",
33248 "mp251",
33249 "mp252",
33250 "mp253",
33251 "mp254",
33252 "mp255",
33253 "unused0",
33254 "unused1",
33255 "unused2",
33256 "unused3",
33257 "unused4",
33258 "unused5",
33259 "unused6",
33260 "unused7",
33261 "unused8",
33262 "unused9",
33263 "unused10",
33264 "unused11",
33265 "unused12",
33266 "unused13",
33267 "unused14",
33268 "unused15",
33269 "unused16",
33270 "unused17",
33271 "unused18",
33272 "unused19",
33273 "unused20",
33274 "unused21",
33275 "unused22",
33276 "unused23",
33277 "unused24",
33278 "unused25",
33279 "unused26",
33280 "unused27",
33281 "unused28",
33282 "unused29",
33283 "unused30",
33284 "unused31",
33285 "unused32",
33286 "unused33",
33287 "unused34",
33288 "unused35",
33289 "unused36",
33290 "unused37",
33291 "unused38",
33292 "unused39",
33293 "unused40",
33294 "unused41",
33295 "unused42",
33296 "unused43",
33297 "unused44",
33298 "unused45",
33299 "unused46",
33300 "unused47",
33301 "unused48",
33302 "unused49",
33303 "unused50",
33304 "unused51",
33305 "unused52",
33306 "unused53",
33307 "unused54",
33308 "unused55",
33309 "unused56",
33310 "unused57",
33311 "unused58",
33312 "unused59",
33313 "unused60",
33314 "unused61",
33315 "unused62",
33316 "unused63",
33317 "unused64",
33318 "unused65",
33319 "unused66",
33320 "unused67",
33321 "unused68",
33322 "unused69",
33323 "unused70",
33324 "unused71",
33325 "unused72",
33326 "unused73",
33327 "unused74",
33328 "unused75",
33329 "unused76",
33330 "unused77",
33331 "unused78",
33332 "unused79",
33333 "unused80",
33334 "unused81",
33335 "unused82",
33336 "unused83",
33337 "unused84",
33338 "unused85",
33339 "unused86",
33340 "unused87",
33341 "unused88",
33342 "unused89",
33343 "unused90",
33344 "unused91",
33345 "unused92",
33346 "unused93",
33347 "unused94",
33348 "unused95",
33349 "unused96",
33350 "unused97",
33351 "unused98",
33352 "unused99",
33353 "unused100",
33354 "unused101",
33355 "unused102",
33356 "unused103",
33357 "unused104",
33358 "unused105",
33359 "unused106",
33360 "unused107",
33361 "unused108",
33362 "unused109",
33363 "unused110",
33364 "unused111",
33365 "unused112",
33366 "unused113",
33367 "unused114",
33368 "unused115",
33369 "unused116",
33370 "unused117",
33371 "unused118",
33372 "unused119",
33373 "unused120",
33374 "unused121",
33375 "unused122",
33376 "unused123",
33377 "unused124",
33378 "unused125",
33379 "unused126",
33380 "unused127",
33381 "unused128",
33382 "unused129",
33383 "unused130",
33384 "unused131",
33385 "unused132",
33386 "unused133",
33387 "unused134",
33388 "unused135",
33389 "unused136",
33390 "unused137",
33391 "unused138",
33392 "unused139",
33393 "unused140",
33394 "unused141",
33395 "unused142",
33396 "unused143",
33397 "unused144",
33398 "unused145",
33399 "unused146",
33400 "unused147",
33401 "unused148",
33402 "unused149",
33403 "unused150",
33404 "unused151",
33405 "unused152",
33406 "unused153",
33407 "unused154",
33408 "unused155",
33409 "unused156",
33410 "unused157",
33411 "unused158",
33412 "unused159",
33413 "unused160",
33414 "unused161",
33415 "unused162",
33416 "unused163",
33417 "unused164",
33418 "unused165",
33419 "unused166",
33420 "unused167",
33421 "unused168",
33422 "unused169",
33423 "unused170",
33424 "unused171",
33425 "unused172",
33426 "unused173",
33427 "unused174",
33428 "unused175",
33429 "unused176",
33430 "unused177",
33431 "unused178",
33432 "unused179",
33433 "unused180",
33434 "unused181",
33435 "unused182",
33436 "unused183",
33437 "unused184",
33438 "unused185",
33439 "unused186",
33440 "unused187",
33441 "unused188",
33442 "unused189",
33443 "unused190",
33444 "unused191",
33445 "unused192",
33446 "unused193",
33447 "unused194",
33448 "unused195",
33449 "unused196",
33450 "unused197",
33451 "unused198",
33452 "unused199",
33453 "unused200",
33454 "unused201",
33455 "unused202",
33456 "unused203",
33457 "unused204",
33458 "unused205",
33459 "unused206",
33460 "unused207",
33461 "unused208",
33462 "unused209",
33463 "unused210",
33464 "unused211",
33465 "unused212",
33466 "unused213",
33467 "unused214",
33468 "unused215",
33469 "unused216",
33470 "unused217",
33471 "unused218",
33472 "unused219",
33473 "unused220",
33474 "unused221",
33475 "unused222",
33476 "unused223",
33477 "unused224",
33478 "unused225",
33479 "unused226",
33480 "unused227",
33481 "unused228",
33482 "unused229",
33483 "unused230",
33484 "unused231",
33485 "unused232",
33486 "unused233",
33487 "unused234",
33488 "unused235",
33489 "unused236",
33490 "unused237",
33491 "unused238",
33492 "unused239",
33493 "unused240",
33494 "unused241",
33495 "unused242",
33496 "unused243",
33497 "unused244",
33498 "unused245",
33499 "unused246",
33500 "unused247",
33501 "unused248",
33502 "unused249",
33503 "unused250",
33504 "unused251",
33505 "unused252",
33506 "unused253",
33507 "unused254",
33508 "unused255"
4d47f125
TL
33509 ],
33510 "type" : "string"
7aacca6f 33511 }
44660702 33512 }
7aacca6f 33513 },
56122987
DM
33514 "permissions" : {
33515 "check" : [
5370fa8c
TL
33516 "perm",
33517 "/vms/{vmid}",
4d47f125 33518 [
5370fa8c 33519 "VM.Config.Disk"
56122987 33520 ]
4d47f125 33521 ],
5370fa8c 33522 "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
33523 },
33524 "protected" : 1,
33525 "proxyto" : "node",
33526 "returns" : {
33527 "type" : "string"
33528 }
33529 }
33530 },
33531 "leaf" : 1,
33532 "path" : "/nodes/{node}/lxc/{vmid}/move_volume",
33533 "text" : "move_volume"
1c532546
TL
33534 },
33535 {
33536 "info" : {
33537 "GET" : {
e9cd3bd4 33538 "allowtoken" : 1,
1c532546
TL
33539 "description" : "Get container configuration, including pending changes.",
33540 "method" : "GET",
33541 "name" : "vm_pending",
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 "vmid" : {
33552 "description" : "The (unique) ID of the VM.",
33553 "format" : "pve-vmid",
8dd66e12
TL
33554 "maximum" : 999999999,
33555 "minimum" : 100,
1c532546 33556 "type" : "integer",
8dd66e12 33557 "typetext" : "<integer> (100 - 999999999)"
1c532546
TL
33558 }
33559 }
33560 },
33561 "permissions" : {
33562 "check" : [
33563 "perm",
33564 "/vms/{vmid}",
33565 [
33566 "VM.Audit"
33567 ]
33568 ]
33569 },
33570 "proxyto" : "node",
33571 "returns" : {
33572 "items" : {
33573 "properties" : {
33574 "delete" : {
33575 "description" : "Indicates a pending delete request if present and not 0.",
33576 "maximum" : 2,
33577 "minimum" : 0,
33578 "optional" : 1,
33579 "type" : "integer"
33580 },
33581 "key" : {
33582 "description" : "Configuration option name.",
33583 "type" : "string"
33584 },
33585 "pending" : {
33586 "description" : "Pending value.",
33587 "optional" : 1,
33588 "type" : "string"
33589 },
33590 "value" : {
33591 "description" : "Current value.",
33592 "optional" : 1,
33593 "type" : "string"
33594 }
33595 },
33596 "type" : "object"
33597 },
33598 "type" : "array"
33599 }
33600 }
33601 },
33602 "leaf" : 1,
33603 "path" : "/nodes/{node}/lxc/{vmid}/pending",
33604 "text" : "pending"
81a3384d
TL
33605 },
33606 {
33607 "info" : {
33608 "POST" : {
33609 "allowtoken" : 1,
33610 "description" : "Migration tunnel endpoint - only for internal use by CT migration.",
33611 "method" : "POST",
33612 "name" : "mtunnel",
33613 "parameters" : {
33614 "additionalProperties" : 0,
33615 "properties" : {
33616 "bridges" : {
33617 "description" : "List of network bridges to check availability. Will be checked again for actually used bridges during migration.",
33618 "format" : "pve-bridge-id-list",
33619 "optional" : 1,
33620 "type" : "string",
33621 "typetext" : "<string>"
33622 },
33623 "node" : {
33624 "description" : "The cluster node name.",
33625 "format" : "pve-node",
33626 "type" : "string",
33627 "typetext" : "<string>"
33628 },
33629 "storages" : {
33630 "description" : "List of storages to check permission and availability. Will be checked again for all actually used storages during migration.",
33631 "format" : "pve-storage-id-list",
33632 "optional" : 1,
33633 "type" : "string",
33634 "typetext" : "<string>"
33635 },
33636 "vmid" : {
33637 "description" : "The (unique) ID of the VM.",
33638 "format" : "pve-vmid",
8dd66e12
TL
33639 "maximum" : 999999999,
33640 "minimum" : 100,
81a3384d 33641 "type" : "integer",
8dd66e12 33642 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
33643 }
33644 }
33645 },
33646 "permissions" : {
33647 "check" : [
33648 "and",
33649 [
33650 "perm",
33651 "/vms/{vmid}",
33652 [
33653 "VM.Allocate"
33654 ]
33655 ],
33656 [
33657 "perm",
33658 "/",
33659 [
33660 "Sys.Incoming"
33661 ]
33662 ]
33663 ],
33664 "description" : "You need 'VM.Allocate' permissions on '/vms/{vmid}' and Sys.Incoming on '/'. Further permission checks happen during the actual migration."
33665 },
33666 "protected" : 1,
33667 "returns" : {
33668 "additionalProperties" : 0,
33669 "properties" : {
33670 "socket" : {
33671 "type" : "string"
33672 },
33673 "ticket" : {
33674 "type" : "string"
33675 },
33676 "upid" : {
33677 "type" : "string"
33678 }
33679 }
33680 }
33681 }
33682 },
33683 "leaf" : 1,
33684 "path" : "/nodes/{node}/lxc/{vmid}/mtunnel",
33685 "text" : "mtunnel"
33686 },
33687 {
33688 "info" : {
33689 "GET" : {
33690 "allowtoken" : 1,
33691 "description" : "Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.",
33692 "method" : "GET",
33693 "name" : "mtunnelwebsocket",
33694 "parameters" : {
33695 "additionalProperties" : 0,
33696 "properties" : {
33697 "node" : {
33698 "description" : "The cluster node name.",
33699 "format" : "pve-node",
33700 "type" : "string",
33701 "typetext" : "<string>"
33702 },
33703 "socket" : {
33704 "description" : "unix socket to forward to",
33705 "type" : "string",
33706 "typetext" : "<string>"
33707 },
33708 "ticket" : {
33709 "description" : "ticket return by initial 'mtunnel' API call, or retrieved via 'ticket' tunnel command",
33710 "type" : "string",
33711 "typetext" : "<string>"
33712 },
33713 "vmid" : {
33714 "description" : "The (unique) ID of the VM.",
33715 "format" : "pve-vmid",
8dd66e12
TL
33716 "maximum" : 999999999,
33717 "minimum" : 100,
81a3384d 33718 "type" : "integer",
8dd66e12 33719 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
33720 }
33721 }
33722 },
33723 "permissions" : {
33724 "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.",
33725 "user" : "all"
33726 },
33727 "returns" : {
33728 "properties" : {
33729 "port" : {
33730 "optional" : 1,
33731 "type" : "string"
33732 },
33733 "socket" : {
33734 "optional" : 1,
33735 "type" : "string"
33736 }
33737 },
33738 "type" : "object"
33739 }
33740 }
33741 },
33742 "leaf" : 1,
33743 "path" : "/nodes/{node}/lxc/{vmid}/mtunnelwebsocket",
33744 "text" : "mtunnelwebsocket"
4d47f125
TL
33745 }
33746 ],
33747 "info" : {
33748 "DELETE" : {
e9cd3bd4 33749 "allowtoken" : 1,
4d47f125
TL
33750 "description" : "Destroy the container (also delete all uses files).",
33751 "method" : "DELETE",
33752 "name" : "destroy_vm",
33753 "parameters" : {
33754 "additionalProperties" : 0,
33755 "properties" : {
d2656385
TL
33756 "destroy-unreferenced-disks" : {
33757 "description" : "If set, destroy additionally all disks with the VMID from all enabled storages which are not referenced in the config.",
33758 "optional" : 1,
33759 "type" : "boolean",
33760 "typetext" : "<boolean>"
33761 },
c5aa7e14
TL
33762 "force" : {
33763 "default" : 0,
33764 "description" : "Force destroy, even if running.",
33765 "optional" : 1,
33766 "type" : "boolean",
33767 "typetext" : "<boolean>"
33768 },
4d47f125
TL
33769 "node" : {
33770 "description" : "The cluster node name.",
33771 "format" : "pve-node",
33772 "type" : "string",
33773 "typetext" : "<string>"
33774 },
1c532546 33775 "purge" : {
c5aa7e14
TL
33776 "default" : 0,
33777 "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
33778 "optional" : 1,
33779 "type" : "boolean",
33780 "typetext" : "<boolean>"
33781 },
4d47f125
TL
33782 "vmid" : {
33783 "description" : "The (unique) ID of the VM.",
33784 "format" : "pve-vmid",
8dd66e12
TL
33785 "maximum" : 999999999,
33786 "minimum" : 100,
4d47f125 33787 "type" : "integer",
8dd66e12 33788 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
33789 }
33790 }
33791 },
33792 "permissions" : {
33793 "check" : [
33794 "perm",
33795 "/vms/{vmid}",
33796 [
33797 "VM.Allocate"
33798 ]
33799 ]
33800 },
33801 "protected" : 1,
33802 "proxyto" : "node",
33803 "returns" : {
33804 "type" : "string"
33805 }
33806 },
33807 "GET" : {
e9cd3bd4 33808 "allowtoken" : 1,
4d47f125
TL
33809 "description" : "Directory index",
33810 "method" : "GET",
33811 "name" : "vmdiridx",
33812 "parameters" : {
33813 "additionalProperties" : 0,
33814 "properties" : {
33815 "node" : {
33816 "description" : "The cluster node name.",
33817 "format" : "pve-node",
33818 "type" : "string",
33819 "typetext" : "<string>"
56122987 33820 },
4d47f125
TL
33821 "vmid" : {
33822 "description" : "The (unique) ID of the VM.",
33823 "format" : "pve-vmid",
8dd66e12
TL
33824 "maximum" : 999999999,
33825 "minimum" : 100,
4d47f125 33826 "type" : "integer",
8dd66e12 33827 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
33828 }
33829 }
33830 },
4d47f125
TL
33831 "permissions" : {
33832 "user" : "all"
33833 },
33834 "proxyto" : "node",
33835 "returns" : {
33836 "items" : {
33837 "properties" : {
33838 "subdir" : {
33839 "type" : "string"
35a75dd3
DM
33840 }
33841 },
4d47f125
TL
33842 "type" : "object"
33843 },
33844 "links" : [
33845 {
33846 "href" : "{subdir}",
33847 "rel" : "child"
35a75dd3 33848 }
4d47f125
TL
33849 ],
33850 "type" : "array"
33851 }
33852 }
33853 },
33854 "leaf" : 0,
33855 "path" : "/nodes/{node}/lxc/{vmid}",
33856 "text" : "{vmid}"
33857 }
33858 ],
33859 "info" : {
33860 "GET" : {
e9cd3bd4 33861 "allowtoken" : 1,
4d47f125
TL
33862 "description" : "LXC container index (per node).",
33863 "method" : "GET",
33864 "name" : "vmlist",
33865 "parameters" : {
33866 "additionalProperties" : 0,
33867 "properties" : {
33868 "node" : {
33869 "description" : "The cluster node name.",
33870 "format" : "pve-node",
33871 "type" : "string",
33872 "typetext" : "<string>"
33873 }
33874 }
33875 },
33876 "permissions" : {
33877 "description" : "Only list CTs where you have VM.Audit permissons on /vms/<vmid>.",
33878 "user" : "all"
33879 },
33880 "protected" : 1,
33881 "proxyto" : "node",
33882 "returns" : {
33883 "items" : {
33884 "properties" : {
33885 "cpus" : {
33886 "description" : "Maximum usable CPUs.",
33887 "optional" : 1,
33888 "type" : "number"
33889 },
95895385
TL
33890 "lock" : {
33891 "description" : "The current config lock, if any.",
33892 "optional" : 1,
33893 "type" : "string"
33894 },
4d47f125
TL
33895 "maxdisk" : {
33896 "description" : "Root disk size in bytes.",
33897 "optional" : 1,
33898 "renderer" : "bytes",
33899 "type" : "integer"
33900 },
33901 "maxmem" : {
33902 "description" : "Maximum memory in bytes.",
33903 "optional" : 1,
33904 "renderer" : "bytes",
33905 "type" : "integer"
33906 },
33907 "maxswap" : {
33908 "description" : "Maximum SWAP memory in bytes.",
33909 "optional" : 1,
33910 "renderer" : "bytes",
33911 "type" : "integer"
33912 },
33913 "name" : {
33914 "description" : "Container name.",
33915 "optional" : 1,
33916 "type" : "string"
33917 },
33918 "status" : {
33919 "description" : "LXC Container status.",
33920 "enum" : [
33921 "stopped",
33922 "running"
33923 ],
33924 "type" : "string"
33925 },
5c1699e5
TL
33926 "tags" : {
33927 "description" : "The current configured tags, if any.",
33928 "optional" : 1,
33929 "type" : "string"
33930 },
4d47f125
TL
33931 "uptime" : {
33932 "description" : "Uptime.",
33933 "optional" : 1,
33934 "renderer" : "duration",
33935 "type" : "integer"
33936 },
33937 "vmid" : {
33938 "description" : "The (unique) ID of the VM.",
33939 "format" : "pve-vmid",
8dd66e12
TL
33940 "maximum" : 999999999,
33941 "minimum" : 100,
4d47f125 33942 "type" : "integer"
35a75dd3
DM
33943 }
33944 },
4d47f125 33945 "type" : "object"
35a75dd3 33946 },
4d47f125
TL
33947 "links" : [
33948 {
33949 "href" : "{vmid}",
33950 "rel" : "child"
33951 }
33952 ],
33953 "type" : "array"
33954 }
33955 },
33956 "POST" : {
e9cd3bd4 33957 "allowtoken" : 1,
4d47f125
TL
33958 "description" : "Create or restore a container.",
33959 "method" : "POST",
33960 "name" : "create_vm",
33961 "parameters" : {
33962 "additionalProperties" : 0,
33963 "properties" : {
33964 "arch" : {
33965 "default" : "amd64",
33966 "description" : "OS architecture type.",
33967 "enum" : [
33968 "amd64",
33969 "i386",
33970 "arm64",
9d2e98ed
TL
33971 "armhf",
33972 "riscv32",
33973 "riscv64"
4d47f125
TL
33974 ],
33975 "optional" : 1,
33976 "type" : "string"
33977 },
33978 "bwlimit" : {
95895385
TL
33979 "default" : "restore limit from datacenter or storage config",
33980 "description" : "Override I/O bandwidth limit (in KiB/s).",
4d47f125
TL
33981 "minimum" : "0",
33982 "optional" : 1,
33983 "type" : "number",
33984 "typetext" : "<number> (0 - N)"
33985 },
33986 "cmode" : {
33987 "default" : "tty",
33988 "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).",
33989 "enum" : [
33990 "shell",
33991 "console",
33992 "tty"
33993 ],
33994 "optional" : 1,
33995 "type" : "string"
33996 },
33997 "console" : {
33998 "default" : 1,
33999 "description" : "Attach a console device (/dev/console) to the container.",
34000 "optional" : 1,
34001 "type" : "boolean",
34002 "typetext" : "<boolean>"
34003 },
34004 "cores" : {
34005 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 34006 "maximum" : 8192,
4d47f125
TL
34007 "minimum" : 1,
34008 "optional" : 1,
34009 "type" : "integer",
4772952b 34010 "typetext" : "<integer> (1 - 8192)"
4d47f125
TL
34011 },
34012 "cpulimit" : {
34013 "default" : 0,
34014 "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 34015 "maximum" : 8192,
4d47f125
TL
34016 "minimum" : 0,
34017 "optional" : 1,
34018 "type" : "number",
4772952b 34019 "typetext" : "<number> (0 - 8192)"
4d47f125
TL
34020 },
34021 "cpuunits" : {
4e7f60c2
TL
34022 "default" : "cgroup v1: 1024, cgroup v2: 100",
34023 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
4d47f125
TL
34024 "maximum" : 500000,
34025 "minimum" : 0,
34026 "optional" : 1,
34027 "type" : "integer",
4e7f60c2
TL
34028 "typetext" : "<integer> (0 - 500000)",
34029 "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 34030 },
739d4d64
TL
34031 "debug" : {
34032 "default" : 0,
34033 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
34034 "optional" : 1,
34035 "type" : "boolean",
34036 "typetext" : "<boolean>"
34037 },
4d47f125 34038 "description" : {
8f4d9c87
TL
34039 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
34040 "maxLength" : 8192,
4d47f125
TL
34041 "optional" : 1,
34042 "type" : "string",
34043 "typetext" : "<string>"
34044 },
34045 "features" : {
34046 "description" : "Allow containers access to advanced features.",
34047 "format" : {
c5aa7e14
TL
34048 "force_rw_sys" : {
34049 "default" : 0,
34050 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
34051 "optional" : 1,
34052 "type" : "boolean"
34053 },
e2d681b3
TL
34054 "fuse" : {
34055 "default" : 0,
34056 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
34057 "optional" : 1,
34058 "type" : "boolean"
34059 },
4d47f125
TL
34060 "keyctl" : {
34061 "default" : 0,
34062 "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.",
34063 "optional" : 1,
34064 "type" : "boolean"
7aacca6f 34065 },
c5aa7e14
TL
34066 "mknod" : {
34067 "default" : 0,
34068 "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.",
34069 "optional" : 1,
34070 "type" : "boolean"
34071 },
4d47f125
TL
34072 "mount" : {
34073 "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.",
34074 "format_description" : "fstype;fstype;...",
34075 "optional" : 1,
95895385 34076 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125 34077 "type" : "string"
56122987 34078 },
4d47f125
TL
34079 "nesting" : {
34080 "default" : 0,
34081 "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.",
34082 "optional" : 1,
34083 "type" : "boolean"
44660702 34084 }
4d47f125
TL
34085 },
34086 "optional" : 1,
34087 "type" : "string",
c5aa7e14 34088 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
56122987 34089 },
4d47f125
TL
34090 "force" : {
34091 "description" : "Allow to overwrite existing container.",
34092 "optional" : 1,
34093 "type" : "boolean",
34094 "typetext" : "<boolean>"
34095 },
5f26e15b
TL
34096 "hookscript" : {
34097 "description" : "Script that will be exectued during various steps in the containers lifetime.",
34098 "format" : "pve-volume-id",
34099 "optional" : 1,
34100 "type" : "string",
34101 "typetext" : "<string>"
34102 },
4d47f125
TL
34103 "hostname" : {
34104 "description" : "Set a host name for the container.",
34105 "format" : "dns-name",
34106 "maxLength" : 255,
34107 "optional" : 1,
34108 "type" : "string",
34109 "typetext" : "<string>"
34110 },
34111 "ignore-unpack-errors" : {
34112 "description" : "Ignore errors when extracting the template.",
34113 "optional" : 1,
34114 "type" : "boolean",
34115 "typetext" : "<boolean>"
34116 },
34117 "lock" : {
4e7f60c2 34118 "description" : "Lock/unlock the container.",
4d47f125
TL
34119 "enum" : [
34120 "backup",
bb4c8cf8 34121 "create",
1c532546 34122 "destroyed",
4d47f125 34123 "disk",
bb4c8cf8 34124 "fstrim",
4d47f125
TL
34125 "migrate",
34126 "mounted",
34127 "rollback",
34128 "snapshot",
34129 "snapshot-delete"
34130 ],
34131 "optional" : 1,
34132 "type" : "string"
34133 },
34134 "memory" : {
34135 "default" : 512,
4e7f60c2 34136 "description" : "Amount of RAM for the container in MB.",
4d47f125
TL
34137 "minimum" : 16,
34138 "optional" : 1,
34139 "type" : "integer",
34140 "typetext" : "<integer> (16 - N)"
34141 },
34142 "mp[n]" : {
d2656385 34143 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
4d47f125
TL
34144 "format" : {
34145 "acl" : {
34146 "description" : "Explicitly enable or disable ACL support.",
34147 "optional" : 1,
34148 "type" : "boolean"
56122987 34149 },
4d47f125
TL
34150 "backup" : {
34151 "description" : "Whether to include the mount point in backups.",
34152 "optional" : 1,
34153 "type" : "boolean",
34154 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
56122987 34155 },
7cbed89a
TL
34156 "mountoptions" : {
34157 "description" : "Extra mount options for rootfs/mps.",
34158 "format_description" : "opt[;opt...]",
34159 "optional" : 1,
c30bb419 34160 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
34161 "type" : "string"
34162 },
4d47f125
TL
34163 "mp" : {
34164 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
34165 "format" : "pve-lxc-mp-string",
34166 "format_description" : "Path",
34167 "type" : "string",
34168 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
7aacca6f 34169 },
4d47f125
TL
34170 "quota" : {
34171 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
34172 "optional" : 1,
34173 "type" : "boolean"
34174 },
34175 "replicate" : {
34176 "default" : 1,
34177 "description" : "Will include this volume to a storage replica job.",
34178 "optional" : 1,
34179 "type" : "boolean"
34180 },
34181 "ro" : {
34182 "description" : "Read-only mount point",
34183 "optional" : 1,
34184 "type" : "boolean"
34185 },
34186 "shared" : {
34187 "default" : 0,
34188 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
34189 "optional" : 1,
34190 "type" : "boolean",
34191 "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 34192 },
4d47f125
TL
34193 "size" : {
34194 "description" : "Volume size (read only value).",
34195 "format" : "disk-size",
34196 "format_description" : "DiskSize",
34197 "optional" : 1,
34198 "type" : "string"
34199 },
34200 "volume" : {
34201 "default_key" : 1,
34202 "description" : "Volume, device or directory to mount into the container.",
34203 "format" : "pve-lxc-mp-string",
34204 "format_description" : "volume",
44660702
DM
34205 "type" : "string"
34206 }
4d47f125
TL
34207 },
34208 "optional" : 1,
34209 "type" : "string",
7cbed89a 34210 "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 34211 },
4d47f125
TL
34212 "nameserver" : {
34213 "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 34214 "format" : "lxc-ip-with-ll-iface-list",
4d47f125
TL
34215 "optional" : 1,
34216 "type" : "string",
34217 "typetext" : "<string>"
34218 },
34219 "net[n]" : {
34220 "description" : "Specifies network interfaces for the container.",
34221 "format" : {
34222 "bridge" : {
34223 "description" : "Bridge to attach the network device to.",
34224 "format_description" : "bridge",
34225 "optional" : 1,
34226 "pattern" : "[-_.\\w\\d]+",
34227 "type" : "string"
56122987 34228 },
4d47f125
TL
34229 "firewall" : {
34230 "description" : "Controls whether this interface's firewall rules should be used.",
34231 "optional" : 1,
34232 "type" : "boolean"
56122987 34233 },
4d47f125
TL
34234 "gw" : {
34235 "description" : "Default gateway for IPv4 traffic.",
34236 "format" : "ipv4",
34237 "format_description" : "GatewayIPv4",
34238 "optional" : 1,
34239 "type" : "string"
34240 },
34241 "gw6" : {
34242 "description" : "Default gateway for IPv6 traffic.",
34243 "format" : "ipv6",
34244 "format_description" : "GatewayIPv6",
34245 "optional" : 1,
34246 "type" : "string"
34247 },
34248 "hwaddr" : {
34249 "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 34250 "format" : "mac-addr",
4d47f125
TL
34251 "format_description" : "XX:XX:XX:XX:XX:XX",
34252 "optional" : 1,
95895385
TL
34253 "type" : "string",
34254 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
34255 },
34256 "ip" : {
34257 "description" : "IPv4 address in CIDR format.",
34258 "format" : "pve-ipv4-config",
34259 "format_description" : "(IPv4/CIDR|dhcp|manual)",
34260 "optional" : 1,
34261 "type" : "string"
34262 },
34263 "ip6" : {
34264 "description" : "IPv6 address in CIDR format.",
34265 "format" : "pve-ipv6-config",
34266 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
34267 "optional" : 1,
34268 "type" : "string"
34269 },
9d2e98ed
TL
34270 "link_down" : {
34271 "description" : "Whether this interface should be disconnected (like pulling the plug).",
34272 "optional" : 1,
34273 "type" : "boolean"
34274 },
4d47f125
TL
34275 "mtu" : {
34276 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 34277 "maximum" : 65535,
4d47f125
TL
34278 "minimum" : 64,
34279 "optional" : 1,
34280 "type" : "integer"
34281 },
34282 "name" : {
34283 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
34284 "format_description" : "string",
34285 "pattern" : "[-_.\\w\\d]+",
34286 "type" : "string"
34287 },
34288 "rate" : {
34289 "description" : "Apply rate limiting to the interface",
34290 "format_description" : "mbps",
34291 "optional" : 1,
34292 "type" : "number"
34293 },
34294 "tag" : {
34295 "description" : "VLAN tag for this interface.",
34296 "maximum" : 4094,
34297 "minimum" : 1,
34298 "optional" : 1,
34299 "type" : "integer"
34300 },
34301 "trunks" : {
34302 "description" : "VLAN ids to pass through the interface",
34303 "format_description" : "vlanid[;vlanid...]",
34304 "optional" : 1,
34305 "pattern" : "(?^:\\d+(?:;\\d+)*)",
34306 "type" : "string"
34307 },
34308 "type" : {
34309 "description" : "Network interface type.",
34310 "enum" : [
34311 "veth"
34312 ],
34313 "optional" : 1,
34314 "type" : "string"
7aacca6f 34315 }
4d47f125
TL
34316 },
34317 "optional" : 1,
34318 "type" : "string",
9d2e98ed 34319 "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,link_down=<1|0>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
56122987 34320 },
4d47f125
TL
34321 "node" : {
34322 "description" : "The cluster node name.",
34323 "format" : "pve-node",
34324 "type" : "string",
34325 "typetext" : "<string>"
34326 },
34327 "onboot" : {
34328 "default" : 0,
4e7f60c2 34329 "description" : "Specifies whether a container will be started during system bootup.",
4d47f125
TL
34330 "optional" : 1,
34331 "type" : "boolean",
34332 "typetext" : "<boolean>"
34333 },
34334 "ostemplate" : {
34335 "description" : "The OS template or backup file.",
34336 "maxLength" : 255,
34337 "type" : "string",
34338 "typetext" : "<string>"
34339 },
34340 "ostype" : {
34341 "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.",
34342 "enum" : [
34343 "debian",
d2656385 34344 "devuan",
4d47f125
TL
34345 "ubuntu",
34346 "centos",
34347 "fedora",
34348 "opensuse",
34349 "archlinux",
34350 "alpine",
34351 "gentoo",
7af2edf9 34352 "nixos",
4d47f125
TL
34353 "unmanaged"
34354 ],
34355 "optional" : 1,
34356 "type" : "string"
34357 },
34358 "password" : {
34359 "description" : "Sets root password inside container.",
34360 "minLength" : 5,
34361 "optional" : 1,
34362 "type" : "string",
34363 "typetext" : "<string>"
34364 },
34365 "pool" : {
34366 "description" : "Add the VM to the specified pool.",
34367 "format" : "pve-poolid",
34368 "optional" : 1,
34369 "type" : "string",
34370 "typetext" : "<string>"
34371 },
34372 "protection" : {
34373 "default" : 0,
34374 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
34375 "optional" : 1,
34376 "type" : "boolean",
34377 "typetext" : "<boolean>"
34378 },
34379 "restore" : {
34380 "description" : "Mark this as restore task.",
34381 "optional" : 1,
34382 "type" : "boolean",
34383 "typetext" : "<boolean>"
34384 },
34385 "rootfs" : {
34386 "description" : "Use volume as container root.",
34387 "format" : {
34388 "acl" : {
34389 "description" : "Explicitly enable or disable ACL support.",
34390 "optional" : 1,
34391 "type" : "boolean"
56122987 34392 },
7cbed89a
TL
34393 "mountoptions" : {
34394 "description" : "Extra mount options for rootfs/mps.",
34395 "format_description" : "opt[;opt...]",
34396 "optional" : 1,
c30bb419 34397 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
34398 "type" : "string"
34399 },
4d47f125
TL
34400 "quota" : {
34401 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
34402 "optional" : 1,
34403 "type" : "boolean"
7aacca6f 34404 },
4d47f125
TL
34405 "replicate" : {
34406 "default" : 1,
34407 "description" : "Will include this volume to a storage replica job.",
34408 "optional" : 1,
34409 "type" : "boolean"
34410 },
34411 "ro" : {
34412 "description" : "Read-only mount point",
34413 "optional" : 1,
34414 "type" : "boolean"
34415 },
34416 "shared" : {
34417 "default" : 0,
34418 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
34419 "optional" : 1,
34420 "type" : "boolean",
34421 "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!"
34422 },
34423 "size" : {
34424 "description" : "Volume size (read only value).",
34425 "format" : "disk-size",
34426 "format_description" : "DiskSize",
34427 "optional" : 1,
34428 "type" : "string"
34429 },
34430 "volume" : {
34431 "default_key" : 1,
34432 "description" : "Volume, device or directory to mount into the container.",
34433 "format" : "pve-lxc-mp-string",
34434 "format_description" : "volume",
34435 "type" : "string"
56122987 34436 }
4d47f125
TL
34437 },
34438 "optional" : 1,
34439 "type" : "string",
7cbed89a 34440 "typetext" : "[volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
56122987 34441 },
4d47f125
TL
34442 "searchdomain" : {
34443 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
34444 "format" : "dns-name-list",
34445 "optional" : 1,
34446 "type" : "string",
34447 "typetext" : "<string>"
34448 },
34449 "ssh-public-keys" : {
34450 "description" : "Setup public SSH keys (one key per line, OpenSSH format).",
34451 "optional" : 1,
34452 "type" : "string",
34453 "typetext" : "<string>"
34454 },
34455 "start" : {
34456 "default" : 0,
34457 "description" : "Start the CT after its creation finished successfully.",
34458 "optional" : 1,
34459 "type" : "boolean",
34460 "typetext" : "<boolean>"
34461 },
34462 "startup" : {
34463 "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.",
34464 "format" : "pve-startup-order",
34465 "optional" : 1,
34466 "type" : "string",
34467 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
34468 },
34469 "storage" : {
34470 "default" : "local",
34471 "description" : "Default Storage.",
34472 "format" : "pve-storage-id",
34473 "optional" : 1,
34474 "type" : "string",
34475 "typetext" : "<string>"
34476 },
34477 "swap" : {
34478 "default" : 512,
4e7f60c2 34479 "description" : "Amount of SWAP for the container in MB.",
4d47f125
TL
34480 "minimum" : 0,
34481 "optional" : 1,
34482 "type" : "integer",
34483 "typetext" : "<integer> (0 - N)"
34484 },
5c1699e5
TL
34485 "tags" : {
34486 "description" : "Tags of the Container. This is only meta information.",
34487 "format" : "pve-tag-list",
34488 "optional" : 1,
34489 "type" : "string",
34490 "typetext" : "<string>"
34491 },
4d47f125
TL
34492 "template" : {
34493 "default" : 0,
34494 "description" : "Enable/disable Template.",
34495 "optional" : 1,
34496 "type" : "boolean",
34497 "typetext" : "<boolean>"
34498 },
04d22a9f
TL
34499 "timezone" : {
34500 "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",
34501 "format" : "pve-ct-timezone",
34502 "optional" : 1,
34503 "type" : "string",
34504 "typetext" : "<string>"
34505 },
4d47f125
TL
34506 "tty" : {
34507 "default" : 2,
34508 "description" : "Specify the number of tty available to the container",
34509 "maximum" : 6,
34510 "minimum" : 0,
34511 "optional" : 1,
34512 "type" : "integer",
34513 "typetext" : "<integer> (0 - 6)"
34514 },
95895385
TL
34515 "unique" : {
34516 "description" : "Assign a unique random ethernet address.",
34517 "optional" : 1,
34518 "requires" : "restore",
34519 "type" : "boolean",
34520 "typetext" : "<boolean>"
34521 },
4d47f125
TL
34522 "unprivileged" : {
34523 "default" : 0,
34524 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
34525 "optional" : 1,
34526 "type" : "boolean",
34527 "typetext" : "<boolean>"
34528 },
34529 "unused[n]" : {
34530 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
34531 "format" : {
34532 "volume" : {
34533 "default_key" : 1,
34534 "description" : "The volume that is not used currently.",
34535 "format" : "pve-volume-id",
34536 "format_description" : "volume",
34537 "type" : "string"
34538 }
34539 },
4d47f125
TL
34540 "optional" : 1,
34541 "type" : "string",
c5aa7e14 34542 "typetext" : "[volume=]<volume>"
4d47f125
TL
34543 },
34544 "vmid" : {
34545 "description" : "The (unique) ID of the VM.",
34546 "format" : "pve-vmid",
8dd66e12
TL
34547 "maximum" : 999999999,
34548 "minimum" : 100,
4d47f125 34549 "type" : "integer",
8dd66e12 34550 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
34551 }
34552 }
34553 },
34554 "permissions" : {
34555 "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.",
34556 "user" : "all"
34557 },
34558 "protected" : 1,
34559 "proxyto" : "node",
34560 "returns" : {
34561 "type" : "string"
34562 }
34563 }
34564 },
34565 "leaf" : 0,
34566 "path" : "/nodes/{node}/lxc",
34567 "text" : "lxc"
34568 },
34569 {
34570 "children" : [
9d2e98ed
TL
34571 {
34572 "children" : [
34573 {
34574 "info" : {
34575 "GET" : {
34576 "allowtoken" : 1,
34577 "description" : "Get the Ceph configuration file.",
34578 "method" : "GET",
34579 "name" : "raw",
34580 "parameters" : {
34581 "additionalProperties" : 0,
34582 "properties" : {
34583 "node" : {
34584 "description" : "The cluster node name.",
34585 "format" : "pve-node",
34586 "type" : "string",
34587 "typetext" : "<string>"
34588 }
34589 }
34590 },
34591 "permissions" : {
34592 "check" : [
34593 "perm",
34594 "/",
34595 [
34596 "Sys.Audit",
34597 "Datastore.Audit"
34598 ],
34599 "any",
34600 1
34601 ]
34602 },
34603 "proxyto" : "node",
34604 "returns" : {
34605 "type" : "string"
34606 }
34607 }
34608 },
34609 "leaf" : 1,
34610 "path" : "/nodes/{node}/ceph/cfg/raw",
34611 "text" : "raw"
34612 },
34613 {
34614 "info" : {
34615 "GET" : {
34616 "allowtoken" : 1,
34617 "description" : "Get the Ceph configuration database.",
34618 "method" : "GET",
34619 "name" : "db",
34620 "parameters" : {
34621 "additionalProperties" : 0,
34622 "properties" : {
34623 "node" : {
34624 "description" : "The cluster node name.",
34625 "format" : "pve-node",
34626 "type" : "string",
34627 "typetext" : "<string>"
34628 }
34629 }
34630 },
34631 "permissions" : {
34632 "check" : [
34633 "perm",
34634 "/",
34635 [
34636 "Sys.Audit",
34637 "Datastore.Audit"
34638 ],
34639 "any",
34640 1
34641 ]
34642 },
34643 "protected" : 1,
34644 "proxyto" : "node",
34645 "returns" : {
34646 "items" : {
34647 "properties" : {
34648 "can_update_at_runtime" : {
34649 "type" : "boolean"
34650 },
34651 "level" : {
34652 "type" : "string"
34653 },
34654 "mask" : {
34655 "type" : "string"
34656 },
34657 "name" : {
34658 "type" : "string"
34659 },
34660 "section" : {
34661 "type" : "string"
34662 },
34663 "value" : {
34664 "type" : "string"
34665 }
34666 },
34667 "type" : "object"
34668 },
34669 "type" : "array"
34670 }
34671 }
34672 },
34673 "leaf" : 1,
34674 "path" : "/nodes/{node}/ceph/cfg/db",
34675 "text" : "db"
34676 }
34677 ],
34678 "info" : {
34679 "GET" : {
34680 "allowtoken" : 1,
34681 "description" : "Directory index.",
34682 "method" : "GET",
34683 "name" : "index",
34684 "parameters" : {
34685 "additionalProperties" : 0,
34686 "properties" : {
34687 "node" : {
34688 "description" : "The cluster node name.",
34689 "format" : "pve-node",
34690 "type" : "string",
34691 "typetext" : "<string>"
34692 }
34693 }
34694 },
34695 "permissions" : {
34696 "user" : "all"
34697 },
34698 "returns" : {
34699 "items" : {
34700 "properties" : {},
34701 "type" : "object"
34702 },
34703 "links" : [
34704 {
34705 "href" : "{name}",
34706 "rel" : "child"
34707 }
34708 ],
34709 "type" : "array"
34710 }
34711 }
34712 },
34713 "leaf" : 0,
34714 "path" : "/nodes/{node}/ceph/cfg",
34715 "text" : "cfg"
34716 },
4d47f125
TL
34717 {
34718 "children" : [
56122987 34719 {
4d47f125
TL
34720 "children" : [
34721 {
34722 "info" : {
9d2e98ed 34723 "GET" : {
e9cd3bd4 34724 "allowtoken" : 1,
9d2e98ed
TL
34725 "description" : "Get OSD details",
34726 "method" : "GET",
34727 "name" : "osddetails",
34728 "parameters" : {
34729 "additionalProperties" : 0,
34730 "properties" : {
34731 "node" : {
34732 "description" : "The cluster node name.",
34733 "format" : "pve-node",
34734 "type" : "string",
34735 "typetext" : "<string>"
34736 },
34737 "osdid" : {
34738 "description" : "OSD ID",
34739 "type" : "integer",
34740 "typetext" : "<integer>"
34741 }
34742 }
34743 },
34744 "permissions" : {
34745 "check" : [
34746 "perm",
34747 "/",
34748 [
34749 "Sys.Audit"
34750 ],
34751 "any",
34752 1
34753 ]
34754 },
34755 "protected" : 1,
34756 "proxyto" : "node",
34757 "returns" : {
34758 "properties" : {
34759 "devices" : {
34760 "description" : "Array containing data about devices",
34761 "items" : {
34762 "properties" : {
34763 "dev_node" : {
34764 "description" : "Device node",
34765 "type" : "string"
34766 },
34767 "device" : {
34768 "description" : "Kind of OSD device",
34769 "enum" : [
34770 "block",
34771 "db",
34772 "wal"
34773 ],
34774 "type" : "string"
34775 },
34776 "devices" : {
34777 "description" : "Physical disks used",
34778 "type" : "string"
34779 },
34780 "size" : {
34781 "description" : "Size in bytes",
34782 "type" : "integer"
34783 },
34784 "support_discard" : {
34785 "description" : "Discard support of the physical device",
34786 "type" : "boolean"
34787 },
34788 "type" : {
34789 "description" : "Type of device. For example, hdd or ssd",
34790 "type" : "string"
34791 }
34792 },
34793 "type" : "object"
34794 },
34795 "type" : "array"
34796 },
34797 "osd" : {
34798 "description" : "General information about the OSD",
34799 "properties" : {
34800 "back_addr" : {
34801 "description" : "Address and port used to talk to other OSDs.",
34802 "type" : "string"
34803 },
34804 "front_addr" : {
34805 "description" : "Address and port used to talk to clients and monitors.",
34806 "type" : "string"
34807 },
34808 "hb_back_addr" : {
34809 "description" : "Heartbeat address and port for other OSDs.",
34810 "type" : "string"
34811 },
34812 "hb_front_addr" : {
34813 "description" : "Heartbeat address and port for clients and monitors.",
34814 "type" : "string"
34815 },
34816 "hostname" : {
34817 "description" : "Name of the host containing the OSD.",
34818 "type" : "string"
34819 },
34820 "id" : {
34821 "description" : "ID of the OSD.",
34822 "type" : "integer"
34823 },
34824 "mem_usage" : {
34825 "description" : "Memory usage of the OSD service.",
34826 "type" : "integer"
34827 },
34828 "osd_data" : {
34829 "description" : "Path to the OSD's data directory.",
34830 "type" : "string"
34831 },
34832 "osd_objectstore" : {
34833 "description" : "The type of object store used.",
34834 "type" : "string"
34835 },
34836 "pid" : {
34837 "description" : "OSD process ID.",
34838 "type" : "integer"
34839 },
34840 "version" : {
34841 "description" : "Ceph version of the OSD service.",
34842 "type" : "string"
34843 }
34844 },
34845 "type" : "object"
34846 }
34847 },
34848 "type" : "object"
34849 }
34850 }
34851 },
34852 "leaf" : 1,
34853 "path" : "/nodes/{node}/ceph/osd/{osdid}/metadata",
34854 "text" : "metadata"
34855 },
34856 {
34857 "info" : {
34858 "GET" : {
34859 "allowtoken" : 1,
34860 "description" : "Get OSD volume details",
34861 "method" : "GET",
34862 "name" : "osdvolume",
34863 "parameters" : {
34864 "additionalProperties" : 0,
34865 "properties" : {
34866 "node" : {
34867 "description" : "The cluster node name.",
34868 "format" : "pve-node",
34869 "type" : "string",
34870 "typetext" : "<string>"
34871 },
34872 "osdid" : {
34873 "description" : "OSD ID",
34874 "type" : "integer",
34875 "typetext" : "<integer>"
34876 },
34877 "type" : {
34878 "default" : "block",
34879 "description" : "OSD device type",
34880 "enum" : [
34881 "block",
34882 "db",
34883 "wal"
34884 ],
34885 "optional" : 1,
34886 "type" : "string"
34887 }
34888 }
34889 },
34890 "permissions" : {
34891 "check" : [
34892 "perm",
34893 "/",
34894 [
34895 "Sys.Audit"
34896 ],
34897 "any",
34898 1
34899 ]
34900 },
34901 "protected" : 1,
34902 "proxyto" : "node",
34903 "returns" : {
34904 "properties" : {
34905 "creation_time" : {
34906 "description" : "Creation time as reported by `lvs`.",
34907 "type" : "string"
34908 },
34909 "lv_name" : {
34910 "description" : "Name of the logical volume (LV).",
34911 "type" : "string"
34912 },
34913 "lv_path" : {
34914 "description" : "Path to the logical volume (LV).",
34915 "type" : "string"
34916 },
34917 "lv_size" : {
34918 "description" : "Size of the logical volume (LV).",
34919 "type" : "integer"
34920 },
34921 "lv_uuid" : {
34922 "description" : "UUID of the logical volume (LV).",
34923 "type" : "string"
34924 },
34925 "vg_name" : {
34926 "description" : "Name of the volume group (VG).",
34927 "type" : "string"
34928 }
34929 },
34930 "type" : "object"
34931 }
34932 }
34933 },
34934 "leaf" : 1,
34935 "path" : "/nodes/{node}/ceph/osd/{osdid}/lv-info",
34936 "text" : "lv-info"
34937 },
34938 {
34939 "info" : {
34940 "POST" : {
34941 "allowtoken" : 1,
34942 "description" : "ceph osd in",
34943 "method" : "POST",
34944 "name" : "in",
4d47f125
TL
34945 "parameters" : {
34946 "additionalProperties" : 0,
34947 "properties" : {
34948 "node" : {
34949 "description" : "The cluster node name.",
34950 "format" : "pve-node",
34951 "type" : "string",
34952 "typetext" : "<string>"
34953 },
34954 "osdid" : {
34955 "description" : "OSD ID",
34956 "type" : "integer",
34957 "typetext" : "<integer>"
34958 }
34959 }
27a7acb2 34960 },
4d47f125
TL
34961 "permissions" : {
34962 "check" : [
34963 "perm",
34964 "/",
34965 [
34966 "Sys.Modify"
34967 ]
34968 ]
44660702 34969 },
4d47f125
TL
34970 "protected" : 1,
34971 "proxyto" : "node",
34972 "returns" : {
34973 "type" : "null"
7aacca6f
DM
34974 }
34975 }
56122987 34976 },
4d47f125
TL
34977 "leaf" : 1,
34978 "path" : "/nodes/{node}/ceph/osd/{osdid}/in",
34979 "text" : "in"
34980 },
34981 {
34982 "info" : {
34983 "POST" : {
e9cd3bd4 34984 "allowtoken" : 1,
4d47f125
TL
34985 "description" : "ceph osd out",
34986 "method" : "POST",
34987 "name" : "out",
34988 "parameters" : {
34989 "additionalProperties" : 0,
34990 "properties" : {
34991 "node" : {
34992 "description" : "The cluster node name.",
34993 "format" : "pve-node",
34994 "type" : "string",
34995 "typetext" : "<string>"
34996 },
34997 "osdid" : {
34998 "description" : "OSD ID",
34999 "type" : "integer",
35000 "typetext" : "<integer>"
35001 }
35002 }
35003 },
35004 "permissions" : {
35005 "check" : [
56122987 35006 "perm",
4d47f125 35007 "/",
56122987 35008 [
4d47f125 35009 "Sys.Modify"
56122987 35010 ]
56122987 35011 ]
44660702 35012 },
4d47f125
TL
35013 "protected" : 1,
35014 "proxyto" : "node",
35015 "returns" : {
35016 "type" : "null"
56122987 35017 }
44660702 35018 }
56122987 35019 },
4d47f125
TL
35020 "leaf" : 1,
35021 "path" : "/nodes/{node}/ceph/osd/{osdid}/out",
35022 "text" : "out"
7cbed89a
TL
35023 },
35024 {
35025 "info" : {
35026 "POST" : {
e9cd3bd4 35027 "allowtoken" : 1,
7cbed89a
TL
35028 "description" : "Instruct the OSD to scrub.",
35029 "method" : "POST",
35030 "name" : "scrub",
35031 "parameters" : {
35032 "additionalProperties" : 0,
35033 "properties" : {
35034 "deep" : {
35035 "default" : 0,
35036 "description" : "If set, instructs a deep scrub instead of a normal one.",
35037 "optional" : 1,
35038 "type" : "boolean",
35039 "typetext" : "<boolean>"
35040 },
35041 "node" : {
35042 "description" : "The cluster node name.",
35043 "format" : "pve-node",
35044 "type" : "string",
35045 "typetext" : "<string>"
35046 },
35047 "osdid" : {
35048 "description" : "OSD ID",
35049 "type" : "integer",
35050 "typetext" : "<integer>"
35051 }
35052 }
35053 },
35054 "permissions" : {
35055 "check" : [
35056 "perm",
35057 "/",
35058 [
35059 "Sys.Modify"
35060 ]
35061 ]
35062 },
35063 "protected" : 1,
35064 "proxyto" : "node",
35065 "returns" : {
35066 "type" : "null"
35067 }
35068 }
35069 },
35070 "leaf" : 1,
35071 "path" : "/nodes/{node}/ceph/osd/{osdid}/scrub",
35072 "text" : "scrub"
56122987 35073 }
4d47f125 35074 ],
27a7acb2 35075 "info" : {
4d47f125 35076 "DELETE" : {
e9cd3bd4 35077 "allowtoken" : 1,
4d47f125
TL
35078 "description" : "Destroy OSD",
35079 "method" : "DELETE",
35080 "name" : "destroyosd",
27a7acb2
DM
35081 "parameters" : {
35082 "additionalProperties" : 0,
35083 "properties" : {
4d47f125 35084 "cleanup" : {
27a7acb2 35085 "default" : 0,
4d47f125 35086 "description" : "If set, we remove partition table entries.",
27a7acb2 35087 "optional" : 1,
4d47f125
TL
35088 "type" : "boolean",
35089 "typetext" : "<boolean>"
35090 },
35091 "node" : {
35092 "description" : "The cluster node name.",
35093 "format" : "pve-node",
35094 "type" : "string",
35095 "typetext" : "<string>"
35096 },
35097 "osdid" : {
35098 "description" : "OSD ID",
35099 "type" : "integer",
35100 "typetext" : "<integer>"
35101 }
35102 }
27a7acb2
DM
35103 },
35104 "protected" : 1,
35105 "proxyto" : "node",
35106 "returns" : {
35107 "type" : "string"
35108 }
9d2e98ed
TL
35109 },
35110 "GET" : {
35111 "allowtoken" : 1,
35112 "description" : "OSD index.",
35113 "method" : "GET",
35114 "name" : "osdindex",
35115 "parameters" : {
35116 "additionalProperties" : 0,
35117 "properties" : {
35118 "node" : {
35119 "description" : "The cluster node name.",
35120 "format" : "pve-node",
35121 "type" : "string",
35122 "typetext" : "<string>"
35123 },
35124 "osdid" : {
35125 "description" : "OSD ID",
35126 "type" : "integer",
35127 "typetext" : "<integer>"
35128 }
35129 }
35130 },
35131 "permissions" : {
35132 "user" : "all"
35133 },
35134 "returns" : {
35135 "items" : {
35136 "properties" : {},
35137 "type" : "object"
35138 },
35139 "links" : [
35140 {
35141 "href" : "{name}",
35142 "rel" : "child"
35143 }
35144 ],
35145 "type" : "array"
35146 }
27a7acb2
DM
35147 }
35148 },
4d47f125
TL
35149 "leaf" : 0,
35150 "path" : "/nodes/{node}/ceph/osd/{osdid}",
35151 "text" : "{osdid}"
56122987
DM
35152 }
35153 ],
35154 "info" : {
4d47f125 35155 "GET" : {
e9cd3bd4 35156 "allowtoken" : 1,
4d47f125
TL
35157 "description" : "Get Ceph osd list/tree.",
35158 "method" : "GET",
35159 "name" : "index",
44660702
DM
35160 "parameters" : {
35161 "additionalProperties" : 0,
35162 "properties" : {
35163 "node" : {
35164 "description" : "The cluster node name.",
35165 "format" : "pve-node",
013dc89f
DM
35166 "type" : "string",
35167 "typetext" : "<string>"
44660702
DM
35168 }
35169 }
35170 },
7aacca6f
DM
35171 "permissions" : {
35172 "check" : [
35173 "perm",
4d47f125 35174 "/",
7aacca6f 35175 [
4d47f125
TL
35176 "Sys.Audit",
35177 "Datastore.Audit"
35178 ],
35179 "any",
35180 1
35181 ]
35182 },
35183 "protected" : 1,
35184 "proxyto" : "node",
35185 "returns" : {
9d2e98ed
TL
35186 "items" : {
35187 "properties" : {
35188 "flags" : {
35189 "type" : "string"
35190 },
35191 "root" : {
35192 "description" : "Tree with OSDs in the CRUSH map structure.",
35193 "type" : "object"
35194 }
35195 },
35196 "type" : "object"
35197 },
4d47f125
TL
35198 "type" : "object"
35199 }
35200 },
35201 "POST" : {
e9cd3bd4 35202 "allowtoken" : 1,
4d47f125
TL
35203 "description" : "Create OSD",
35204 "method" : "POST",
35205 "name" : "createosd",
35206 "parameters" : {
35207 "additionalProperties" : 0,
35208 "properties" : {
739d4d64
TL
35209 "crush-device-class" : {
35210 "description" : "Set the device class of the OSD in crush.",
35211 "optional" : 1,
35212 "type" : "string",
35213 "typetext" : "<string>"
35214 },
1e3f8156
TL
35215 "db_dev" : {
35216 "description" : "Block device name for block.db.",
44660702 35217 "optional" : 1,
4bd7df8b 35218 "type" : "string",
4d47f125 35219 "typetext" : "<string>"
44660702 35220 },
0695fdaf 35221 "db_dev_size" : {
1e3f8156
TL
35222 "default" : "bluestore_block_db_size or 10% of OSD size",
35223 "description" : "Size in GiB for block.db.",
35224 "minimum" : 1,
7aacca6f 35225 "optional" : 1,
1e3f8156
TL
35226 "requires" : "db_dev",
35227 "type" : "number",
35228 "typetext" : "<number> (1 - N)",
35229 "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 35230 },
1e3f8156
TL
35231 "dev" : {
35232 "description" : "Block device name.",
4d47f125
TL
35233 "type" : "string",
35234 "typetext" : "<string>"
5d9c884c 35235 },
1e3f8156
TL
35236 "encrypted" : {
35237 "default" : 0,
35238 "description" : "Enables encryption of the OSD.",
35239 "optional" : 1,
35240 "type" : "boolean",
35241 "typetext" : "<boolean>"
35242 },
4d47f125
TL
35243 "node" : {
35244 "description" : "The cluster node name.",
35245 "format" : "pve-node",
35246 "type" : "string",
35247 "typetext" : "<string>"
7aacca6f 35248 },
4d47f125 35249 "wal_dev" : {
1e3f8156 35250 "description" : "Block device name for block.wal.",
de0983cb 35251 "optional" : 1,
4d47f125
TL
35252 "type" : "string",
35253 "typetext" : "<string>"
1e3f8156 35254 },
0695fdaf 35255 "wal_dev_size" : {
1e3f8156
TL
35256 "default" : "bluestore_block_wal_size or 1% of OSD size",
35257 "description" : "Size in GiB for block.wal.",
35258 "minimum" : 0.5,
35259 "optional" : 1,
35260 "requires" : "wal_dev",
35261 "type" : "number",
35262 "typetext" : "<number> (0.5 - N)",
35263 "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
35264 }
35265 }
35266 },
35267 "protected" : 1,
35268 "proxyto" : "node",
35269 "returns" : {
35270 "type" : "string"
35271 }
35272 }
35273 },
35274 "leaf" : 0,
35275 "path" : "/nodes/{node}/ceph/osd",
35276 "text" : "osd"
35277 },
e2d681b3
TL
35278 {
35279 "children" : [
35280 {
35281 "info" : {
35282 "DELETE" : {
e9cd3bd4 35283 "allowtoken" : 1,
e2d681b3
TL
35284 "description" : "Destroy Ceph Metadata Server",
35285 "method" : "DELETE",
35286 "name" : "destroymds",
35287 "parameters" : {
35288 "additionalProperties" : 0,
35289 "properties" : {
35290 "name" : {
35291 "description" : "The name (ID) of the mds",
35292 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
35293 "type" : "string"
35294 },
35295 "node" : {
35296 "description" : "The cluster node name.",
35297 "format" : "pve-node",
35298 "type" : "string",
35299 "typetext" : "<string>"
35300 }
35301 }
35302 },
35303 "permissions" : {
35304 "check" : [
35305 "perm",
35306 "/",
35307 [
35308 "Sys.Modify"
35309 ]
35310 ]
35311 },
35312 "protected" : 1,
35313 "proxyto" : "node",
35314 "returns" : {
35315 "type" : "string"
35316 }
35317 },
35318 "POST" : {
e9cd3bd4 35319 "allowtoken" : 1,
e2d681b3
TL
35320 "description" : "Create Ceph Metadata Server (MDS)",
35321 "method" : "POST",
35322 "name" : "createmds",
35323 "parameters" : {
35324 "additionalProperties" : 0,
35325 "properties" : {
35326 "hotstandby" : {
35327 "default" : "0",
35328 "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.",
35329 "optional" : 1,
35330 "type" : "boolean",
35331 "typetext" : "<boolean>"
35332 },
35333 "name" : {
35334 "default" : "nodename",
35335 "description" : "The ID for the mds, when omitted the same as the nodename",
c5aa7e14 35336 "maxLength" : 200,
e2d681b3
TL
35337 "optional" : 1,
35338 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
35339 "type" : "string"
35340 },
35341 "node" : {
35342 "description" : "The cluster node name.",
35343 "format" : "pve-node",
35344 "type" : "string",
35345 "typetext" : "<string>"
35346 }
35347 }
35348 },
35349 "permissions" : {
35350 "check" : [
35351 "perm",
35352 "/",
35353 [
35354 "Sys.Modify"
35355 ]
35356 ]
35357 },
35358 "protected" : 1,
35359 "proxyto" : "node",
35360 "returns" : {
35361 "type" : "string"
35362 }
35363 }
35364 },
35365 "leaf" : 1,
35366 "path" : "/nodes/{node}/ceph/mds/{name}",
35367 "text" : "{name}"
35368 }
35369 ],
35370 "info" : {
35371 "GET" : {
e9cd3bd4 35372 "allowtoken" : 1,
e2d681b3
TL
35373 "description" : "MDS directory index.",
35374 "method" : "GET",
35375 "name" : "index",
35376 "parameters" : {
35377 "additionalProperties" : 0,
35378 "properties" : {
35379 "node" : {
35380 "description" : "The cluster node name.",
35381 "format" : "pve-node",
35382 "type" : "string",
35383 "typetext" : "<string>"
35384 }
35385 }
35386 },
35387 "permissions" : {
35388 "check" : [
35389 "perm",
35390 "/",
35391 [
35392 "Sys.Audit",
35393 "Datastore.Audit"
35394 ],
35395 "any",
35396 1
35397 ]
35398 },
35399 "protected" : 1,
35400 "proxyto" : "node",
35401 "returns" : {
35402 "items" : {
35403 "properties" : {
35404 "addr" : {
35405 "optional" : 1,
35406 "type" : "string"
35407 },
35408 "host" : {
35409 "optional" : 1,
35410 "type" : "string"
35411 },
35412 "name" : {
35413 "description" : "The name (ID) for the MDS"
35414 },
35415 "rank" : {
35416 "optional" : 1,
35417 "type" : "integer"
35418 },
35419 "standby_replay" : {
35420 "description" : "If true, the standby MDS is polling the active MDS for faster recovery (hot standby).",
35421 "optional" : 1,
35422 "type" : "boolean"
35423 },
35424 "state" : {
35425 "description" : "State of the MDS",
35426 "type" : "string"
35427 }
35428 },
35429 "type" : "object"
35430 },
35431 "links" : [
35432 {
35433 "href" : "{name}",
35434 "rel" : "child"
35435 }
35436 ],
35437 "type" : "array"
35438 }
35439 }
35440 },
35441 "leaf" : 0,
35442 "path" : "/nodes/{node}/ceph/mds",
35443 "text" : "mds"
35444 },
35445 {
35446 "children" : [
35447 {
35448 "info" : {
5f26e15b 35449 "DELETE" : {
e9cd3bd4 35450 "allowtoken" : 1,
5f26e15b
TL
35451 "description" : "Destroy Ceph Manager.",
35452 "method" : "DELETE",
35453 "name" : "destroymgr",
e2d681b3
TL
35454 "parameters" : {
35455 "additionalProperties" : 0,
35456 "properties" : {
5f26e15b
TL
35457 "id" : {
35458 "description" : "The ID of the manager",
35459 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
35460 "type" : "string"
e2d681b3
TL
35461 },
35462 "node" : {
35463 "description" : "The cluster node name.",
35464 "format" : "pve-node",
35465 "type" : "string",
35466 "typetext" : "<string>"
e2d681b3
TL
35467 }
35468 }
35469 },
35470 "permissions" : {
35471 "check" : [
35472 "perm",
35473 "/",
35474 [
35475 "Sys.Modify"
35476 ]
35477 ]
35478 },
35479 "protected" : 1,
35480 "proxyto" : "node",
35481 "returns" : {
35482 "type" : "string"
35483 }
1e3f8156
TL
35484 },
35485 "POST" : {
e9cd3bd4 35486 "allowtoken" : 1,
1e3f8156
TL
35487 "description" : "Create Ceph Manager",
35488 "method" : "POST",
35489 "name" : "createmgr",
35490 "parameters" : {
35491 "additionalProperties" : 0,
35492 "properties" : {
35493 "id" : {
35494 "description" : "The ID for the manager, when omitted the same as the nodename",
c5aa7e14 35495 "maxLength" : 200,
1e3f8156
TL
35496 "optional" : 1,
35497 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
35498 "type" : "string"
35499 },
35500 "node" : {
35501 "description" : "The cluster node name.",
35502 "format" : "pve-node",
35503 "type" : "string",
35504 "typetext" : "<string>"
35505 }
35506 }
35507 },
35508 "permissions" : {
35509 "check" : [
35510 "perm",
35511 "/",
35512 [
35513 "Sys.Modify"
35514 ]
35515 ]
35516 },
35517 "protected" : 1,
35518 "proxyto" : "node",
35519 "returns" : {
35520 "type" : "string"
35521 }
e2d681b3
TL
35522 }
35523 },
35524 "leaf" : 1,
5f26e15b
TL
35525 "path" : "/nodes/{node}/ceph/mgr/{id}",
35526 "text" : "{id}"
e2d681b3
TL
35527 }
35528 ],
35529 "info" : {
1e3f8156 35530 "GET" : {
e9cd3bd4 35531 "allowtoken" : 1,
1e3f8156
TL
35532 "description" : "MGR directory index.",
35533 "method" : "GET",
35534 "name" : "index",
e2d681b3
TL
35535 "parameters" : {
35536 "additionalProperties" : 0,
35537 "properties" : {
35538 "node" : {
35539 "description" : "The cluster node name.",
35540 "format" : "pve-node",
35541 "type" : "string",
35542 "typetext" : "<string>"
35543 }
35544 }
35545 },
35546 "permissions" : {
35547 "check" : [
35548 "perm",
35549 "/",
35550 [
1e3f8156
TL
35551 "Sys.Audit",
35552 "Datastore.Audit"
35553 ],
35554 "any",
35555 1
e2d681b3
TL
35556 ]
35557 },
35558 "protected" : 1,
5f26e15b 35559 "proxyto" : "node",
e2d681b3 35560 "returns" : {
1e3f8156
TL
35561 "items" : {
35562 "properties" : {
35563 "addr" : {
35564 "optional" : 1,
35565 "type" : "string"
35566 },
35567 "host" : {
35568 "optional" : 1,
35569 "type" : "string"
35570 },
35571 "name" : {
35572 "description" : "The name (ID) for the MGR"
35573 },
35574 "state" : {
35575 "description" : "State of the MGR",
35576 "type" : "string"
35577 }
35578 },
35579 "type" : "object"
35580 },
35581 "links" : [
35582 {
35583 "href" : "{name}",
35584 "rel" : "child"
35585 }
35586 ],
35587 "type" : "array"
e2d681b3
TL
35588 }
35589 }
35590 },
35591 "leaf" : 0,
5f26e15b
TL
35592 "path" : "/nodes/{node}/ceph/mgr",
35593 "text" : "mgr"
e2d681b3 35594 },
4d47f125 35595 {
5f26e15b
TL
35596 "children" : [
35597 {
35598 "info" : {
35599 "DELETE" : {
e9cd3bd4 35600 "allowtoken" : 1,
5f26e15b
TL
35601 "description" : "Destroy Ceph Monitor and Manager.",
35602 "method" : "DELETE",
35603 "name" : "destroymon",
35604 "parameters" : {
35605 "additionalProperties" : 0,
35606 "properties" : {
1e3f8156
TL
35607 "monid" : {
35608 "description" : "Monitor ID",
35609 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
35610 "type" : "string"
35611 },
35612 "node" : {
35613 "description" : "The cluster node name.",
35614 "format" : "pve-node",
35615 "type" : "string",
35616 "typetext" : "<string>"
35617 }
35618 }
35619 },
35620 "permissions" : {
35621 "check" : [
35622 "perm",
35623 "/",
35624 [
35625 "Sys.Modify"
35626 ]
35627 ]
35628 },
35629 "protected" : 1,
35630 "proxyto" : "node",
35631 "returns" : {
35632 "type" : "string"
35633 }
35634 },
35635 "POST" : {
e9cd3bd4 35636 "allowtoken" : 1,
1e3f8156
TL
35637 "description" : "Create Ceph Monitor and Manager",
35638 "method" : "POST",
35639 "name" : "createmon",
35640 "parameters" : {
35641 "additionalProperties" : 0,
35642 "properties" : {
35643 "mon-address" : {
0695fdaf
TL
35644 "description" : "Overwrites autodetected monitor IP address(es). Must be in the public network(s) of Ceph.",
35645 "format" : "ip-list",
5f26e15b 35646 "optional" : 1,
1e3f8156
TL
35647 "type" : "string",
35648 "typetext" : "<string>"
5f26e15b
TL
35649 },
35650 "monid" : {
1e3f8156 35651 "description" : "The ID for the monitor, when omitted the same as the nodename",
c5aa7e14 35652 "maxLength" : 200,
1e3f8156 35653 "optional" : 1,
5f26e15b
TL
35654 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
35655 "type" : "string"
35656 },
35657 "node" : {
35658 "description" : "The cluster node name.",
35659 "format" : "pve-node",
35660 "type" : "string",
35661 "typetext" : "<string>"
35662 }
35663 }
35664 },
35665 "permissions" : {
35666 "check" : [
35667 "perm",
35668 "/",
35669 [
35670 "Sys.Modify"
35671 ]
35672 ]
35673 },
35674 "protected" : 1,
35675 "proxyto" : "node",
35676 "returns" : {
7aacca6f 35677 "type" : "string"
56122987 35678 }
4d47f125 35679 }
56122987 35680 },
5f26e15b
TL
35681 "leaf" : 1,
35682 "path" : "/nodes/{node}/ceph/mon/{monid}",
35683 "text" : "{monid}"
35684 }
35685 ],
35686 "info" : {
35687 "GET" : {
e9cd3bd4 35688 "allowtoken" : 1,
5f26e15b
TL
35689 "description" : "Get Ceph monitor list.",
35690 "method" : "GET",
35691 "name" : "listmon",
35692 "parameters" : {
35693 "additionalProperties" : 0,
35694 "properties" : {
35695 "node" : {
35696 "description" : "The cluster node name.",
35697 "format" : "pve-node",
35698 "type" : "string",
35699 "typetext" : "<string>"
35700 }
35701 }
35702 },
4d47f125
TL
35703 "permissions" : {
35704 "check" : [
35705 "perm",
35706 "/",
35707 [
35708 "Sys.Audit",
35709 "Datastore.Audit"
35710 ],
35711 "any",
35712 1
35713 ]
56122987 35714 },
4d47f125
TL
35715 "protected" : 1,
35716 "proxyto" : "node",
35717 "returns" : {
35718 "items" : {
35719 "properties" : {
5f26e15b 35720 "addr" : {
1e3f8156
TL
35721 "optional" : 1,
35722 "type" : "string"
35723 },
9d2e98ed
TL
35724 "ceph_version" : {
35725 "optional" : 1,
35726 "type" : "string"
35727 },
35728 "ceph_version_short" : {
35729 "optional" : 1,
35730 "type" : "string"
35731 },
35732 "direxists" : {
1e3f8156 35733 "optional" : 1,
4d47f125
TL
35734 "type" : "string"
35735 },
9d2e98ed
TL
35736 "host" : {
35737 "optional" : 1,
35738 "type" : "boolean"
35739 },
5f26e15b 35740 "name" : {
4d47f125 35741 "type" : "string"
9d2e98ed
TL
35742 },
35743 "quorum" : {
35744 "optional" : 1,
35745 "type" : "boolean"
35746 },
35747 "rank" : {
35748 "optional" : 1,
35749 "type" : "integer"
35750 },
35751 "service" : {
35752 "optional" : 1,
35753 "type" : "integer"
35754 },
35755 "state" : {
35756 "optional" : 1,
35757 "type" : "string"
4d47f125 35758 }
7aacca6f 35759 },
4d47f125
TL
35760 "type" : "object"
35761 },
5f26e15b
TL
35762 "links" : [
35763 {
35764 "href" : "{name}",
35765 "rel" : "child"
35766 }
35767 ],
4d47f125
TL
35768 "type" : "array"
35769 }
4d47f125
TL
35770 }
35771 },
5f26e15b
TL
35772 "leaf" : 0,
35773 "path" : "/nodes/{node}/ceph/mon",
35774 "text" : "mon"
4d47f125
TL
35775 },
35776 {
35777 "children" : [
35778 {
35779 "info" : {
5f26e15b 35780 "POST" : {
e9cd3bd4 35781 "allowtoken" : 1,
5f26e15b
TL
35782 "description" : "Create a Ceph filesystem",
35783 "method" : "POST",
35784 "name" : "createfs",
4d47f125
TL
35785 "parameters" : {
35786 "additionalProperties" : 0,
35787 "properties" : {
5f26e15b 35788 "add-storage" : {
4d47f125 35789 "default" : 0,
5f26e15b 35790 "description" : "Configure the created CephFS as storage for this cluster.",
4d47f125
TL
35791 "optional" : 1,
35792 "type" : "boolean",
35793 "typetext" : "<boolean>"
35794 },
5f26e15b
TL
35795 "name" : {
35796 "default" : "cephfs",
35797 "description" : "The ceph filesystem name.",
35798 "optional" : 1,
35799 "type" : "string",
35800 "typetext" : "<string>"
4d47f125
TL
35801 },
35802 "node" : {
35803 "description" : "The cluster node name.",
35804 "format" : "pve-node",
35805 "type" : "string",
35806 "typetext" : "<string>"
5f26e15b
TL
35807 },
35808 "pg_num" : {
35809 "default" : 128,
35810 "description" : "Number of placement groups for the backing data pool. The metadata pool will use a quarter of this.",
35811 "maximum" : 32768,
35812 "minimum" : 8,
35813 "optional" : 1,
35814 "type" : "integer",
35815 "typetext" : "<integer> (8 - 32768)"
4d47f125
TL
35816 }
35817 }
7aacca6f 35818 },
4d47f125
TL
35819 "permissions" : {
35820 "check" : [
35821 "perm",
35822 "/",
35823 [
35824 "Sys.Modify"
35825 ]
35826 ]
7aacca6f 35827 },
4d47f125
TL
35828 "protected" : 1,
35829 "proxyto" : "node",
35830 "returns" : {
44660702 35831 "type" : "string"
4d47f125
TL
35832 }
35833 }
35834 },
35835 "leaf" : 1,
5f26e15b
TL
35836 "path" : "/nodes/{node}/ceph/fs/{name}",
35837 "text" : "{name}"
4d47f125
TL
35838 }
35839 ],
35840 "info" : {
35841 "GET" : {
e9cd3bd4 35842 "allowtoken" : 1,
5f26e15b 35843 "description" : "Directory index.",
4d47f125 35844 "method" : "GET",
5f26e15b 35845 "name" : "index",
4d47f125
TL
35846 "parameters" : {
35847 "additionalProperties" : 0,
35848 "properties" : {
35849 "node" : {
35850 "description" : "The cluster node name.",
35851 "format" : "pve-node",
35852 "type" : "string",
35853 "typetext" : "<string>"
35854 }
35855 }
35856 },
35857 "permissions" : {
35858 "check" : [
35859 "perm",
35860 "/",
35861 [
35862 "Sys.Audit",
35863 "Datastore.Audit"
35864 ],
35865 "any",
35866 1
35867 ]
35868 },
35869 "protected" : 1,
95895385 35870 "proxyto" : "node",
4d47f125
TL
35871 "returns" : {
35872 "items" : {
35873 "properties" : {
9d2e98ed
TL
35874 "data_pool" : {
35875 "description" : "The name of the data pool.",
35876 "type" : "string"
35877 },
35878 "metadata_pool" : {
35879 "description" : "The name of the metadata pool.",
35880 "type" : "string"
35881 },
35882 "name" : {
35883 "description" : "The ceph filesystem name.",
35884 "type" : "string"
35885 }
35886 },
35887 "type" : "object"
35888 },
35889 "links" : [
35890 {
35891 "href" : "{name}",
35892 "rel" : "child"
35893 }
35894 ],
35895 "type" : "array"
35896 }
35897 }
35898 },
35899 "leaf" : 0,
35900 "path" : "/nodes/{node}/ceph/fs",
35901 "text" : "fs"
35902 },
35903 {
35904 "children" : [
35905 {
35906 "children" : [
35907 {
35908 "info" : {
35909 "GET" : {
35910 "allowtoken" : 1,
35911 "description" : "Show the current pool status.",
35912 "method" : "GET",
35913 "name" : "getpool",
35914 "parameters" : {
35915 "additionalProperties" : 0,
35916 "properties" : {
35917 "name" : {
35918 "description" : "The name of the pool. It must be unique.",
35919 "type" : "string",
35920 "typetext" : "<string>"
35921 },
35922 "node" : {
35923 "description" : "The cluster node name.",
35924 "format" : "pve-node",
35925 "type" : "string",
35926 "typetext" : "<string>"
35927 },
35928 "verbose" : {
35929 "default" : 0,
35930 "description" : "If enabled, will display additional data(eg. statistics).",
35931 "optional" : 1,
35932 "type" : "boolean",
35933 "typetext" : "<boolean>"
35934 }
35935 }
35936 },
35937 "permissions" : {
35938 "check" : [
35939 "perm",
35940 "/",
35941 [
35942 "Sys.Audit",
35943 "Datastore.Audit"
35944 ],
35945 "any",
35946 1
35947 ]
35948 },
35949 "protected" : 1,
35950 "proxyto" : "node",
35951 "returns" : {
35952 "properties" : {
35953 "application" : {
35954 "default" : "rbd",
35955 "description" : "The application of the pool.",
35956 "enum" : [
35957 "rbd",
35958 "cephfs",
35959 "rgw"
35960 ],
35961 "optional" : 1,
35962 "title" : "Application",
35963 "type" : "string"
35964 },
35965 "application_list" : {
35966 "optional" : 1,
35967 "title" : "Application",
35968 "type" : "array"
35969 },
35970 "autoscale_status" : {
35971 "optional" : 1,
35972 "title" : "Autoscale Status",
35973 "type" : "object"
35974 },
35975 "crush_rule" : {
35976 "description" : "The rule to use for mapping object placement in the cluster.",
35977 "optional" : 1,
35978 "title" : "Crush Rule Name",
35979 "type" : "string"
35980 },
35981 "fast_read" : {
35982 "title" : "Fast Read",
35983 "type" : "boolean"
35984 },
35985 "hashpspool" : {
35986 "title" : "hashpspool",
35987 "type" : "boolean"
35988 },
35989 "id" : {
35990 "title" : "ID",
35991 "type" : "integer"
35992 },
35993 "min_size" : {
35994 "default" : 2,
35995 "description" : "Minimum number of replicas per object",
35996 "maximum" : 7,
35997 "minimum" : 1,
35998 "optional" : 1,
35999 "title" : "Min Size",
36000 "type" : "integer"
36001 },
36002 "name" : {
36003 "description" : "The name of the pool. It must be unique.",
36004 "title" : "Name",
36005 "type" : "string"
36006 },
36007 "nodeep-scrub" : {
36008 "title" : "nodeep-scrub",
36009 "type" : "boolean"
36010 },
36011 "nodelete" : {
36012 "title" : "nodelete",
36013 "type" : "boolean"
36014 },
36015 "nopgchange" : {
36016 "title" : "nopgchange",
36017 "type" : "boolean"
36018 },
36019 "noscrub" : {
36020 "title" : "noscrub",
36021 "type" : "boolean"
36022 },
36023 "nosizechange" : {
36024 "title" : "nosizechange",
36025 "type" : "boolean"
36026 },
36027 "pg_autoscale_mode" : {
36028 "default" : "warn",
36029 "description" : "The automatic PG scaling mode of the pool.",
36030 "enum" : [
36031 "on",
36032 "off",
36033 "warn"
36034 ],
36035 "optional" : 1,
36036 "title" : "PG Autoscale Mode",
36037 "type" : "string"
36038 },
36039 "pg_num" : {
36040 "default" : 128,
36041 "description" : "Number of placement groups.",
36042 "maximum" : 32768,
36043 "minimum" : 1,
36044 "optional" : 1,
36045 "title" : "PG Num",
36046 "type" : "integer"
36047 },
36048 "pg_num_min" : {
36049 "description" : "Minimal number of placement groups.",
36050 "maximum" : 32768,
36051 "optional" : 1,
36052 "title" : "min. PG Num",
36053 "type" : "integer"
36054 },
36055 "pgp_num" : {
36056 "title" : "PGP num",
36057 "type" : "integer"
36058 },
36059 "size" : {
36060 "default" : 3,
36061 "description" : "Number of replicas per object",
36062 "maximum" : 7,
36063 "minimum" : 1,
36064 "optional" : 1,
36065 "title" : "Size",
36066 "type" : "integer"
36067 },
36068 "statistics" : {
36069 "optional" : 1,
36070 "title" : "Statistics",
36071 "type" : "object"
36072 },
36073 "target_size" : {
36074 "description" : "The estimated target size of the pool for the PG autoscaler.",
36075 "optional" : 1,
36076 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
36077 "title" : "PG Autoscale Target Size",
36078 "type" : "string"
36079 },
36080 "target_size_ratio" : {
36081 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
36082 "optional" : 1,
36083 "title" : "PG Autoscale Target Ratio",
36084 "type" : "number"
36085 },
36086 "use_gmt_hitset" : {
36087 "title" : "use_gmt_hitset",
36088 "type" : "boolean"
36089 },
36090 "write_fadvise_dontneed" : {
36091 "title" : "write_fadvise_dontneed",
36092 "type" : "boolean"
36093 }
36094 },
36095 "type" : "object"
36096 }
36097 }
36098 },
36099 "leaf" : 1,
36100 "path" : "/nodes/{node}/ceph/pool/{name}/status",
36101 "text" : "status"
36102 }
36103 ],
36104 "info" : {
36105 "DELETE" : {
36106 "allowtoken" : 1,
36107 "description" : "Destroy pool",
36108 "method" : "DELETE",
36109 "name" : "destroypool",
36110 "parameters" : {
36111 "additionalProperties" : 0,
36112 "properties" : {
36113 "force" : {
36114 "default" : 0,
36115 "description" : "If true, destroys pool even if in use",
36116 "optional" : 1,
36117 "type" : "boolean",
36118 "typetext" : "<boolean>"
36119 },
36120 "name" : {
36121 "description" : "The name of the pool. It must be unique.",
36122 "type" : "string",
36123 "typetext" : "<string>"
36124 },
36125 "node" : {
36126 "description" : "The cluster node name.",
36127 "format" : "pve-node",
36128 "type" : "string",
36129 "typetext" : "<string>"
36130 },
36131 "remove_ecprofile" : {
36132 "default" : 1,
36133 "description" : "Remove the erasure code profile. Defaults to true, if applicable.",
36134 "optional" : 1,
36135 "type" : "boolean",
36136 "typetext" : "<boolean>"
36137 },
36138 "remove_storages" : {
36139 "default" : 0,
36140 "description" : "Remove all pveceph-managed storages configured for this pool",
36141 "optional" : 1,
36142 "type" : "boolean",
36143 "typetext" : "<boolean>"
36144 }
36145 }
36146 },
36147 "permissions" : {
36148 "check" : [
36149 "perm",
36150 "/",
36151 [
36152 "Sys.Modify"
36153 ]
36154 ]
36155 },
36156 "protected" : 1,
36157 "proxyto" : "node",
36158 "returns" : {
36159 "type" : "string"
36160 }
36161 },
36162 "GET" : {
36163 "allowtoken" : 1,
36164 "description" : "Pool index.",
36165 "method" : "GET",
36166 "name" : "poolindex",
36167 "parameters" : {
36168 "additionalProperties" : 0,
36169 "properties" : {
36170 "name" : {
36171 "description" : "The name of the pool.",
36172 "type" : "string",
36173 "typetext" : "<string>"
36174 },
36175 "node" : {
36176 "description" : "The cluster node name.",
36177 "format" : "pve-node",
36178 "type" : "string",
36179 "typetext" : "<string>"
36180 }
36181 }
36182 },
36183 "permissions" : {
36184 "check" : [
36185 "perm",
36186 "/",
36187 [
36188 "Sys.Audit",
36189 "Datastore.Audit"
36190 ],
36191 "any",
36192 1
36193 ]
36194 },
36195 "returns" : {
36196 "items" : {
36197 "properties" : {},
36198 "type" : "object"
36199 },
36200 "links" : [
36201 {
36202 "href" : "{name}",
36203 "rel" : "child"
36204 }
36205 ],
36206 "type" : "array"
36207 }
36208 },
36209 "PUT" : {
36210 "allowtoken" : 1,
36211 "description" : "Change POOL settings",
36212 "method" : "PUT",
36213 "name" : "setpool",
36214 "parameters" : {
36215 "additionalProperties" : 0,
36216 "properties" : {
36217 "application" : {
36218 "description" : "The application of the pool.",
36219 "enum" : [
36220 "rbd",
36221 "cephfs",
36222 "rgw"
36223 ],
36224 "optional" : 1,
36225 "title" : "Application",
36226 "type" : "string"
36227 },
36228 "crush_rule" : {
36229 "description" : "The rule to use for mapping object placement in the cluster.",
36230 "optional" : 1,
36231 "title" : "Crush Rule Name",
36232 "type" : "string",
36233 "typetext" : "<string>"
36234 },
36235 "min_size" : {
36236 "description" : "Minimum number of replicas per object",
36237 "maximum" : 7,
36238 "minimum" : 1,
36239 "optional" : 1,
36240 "title" : "Min Size",
36241 "type" : "integer",
36242 "typetext" : "<integer> (1 - 7)"
36243 },
36244 "name" : {
36245 "description" : "The name of the pool. It must be unique.",
36246 "title" : "Name",
36247 "type" : "string",
36248 "typetext" : "<string>"
36249 },
36250 "node" : {
36251 "description" : "The cluster node name.",
36252 "format" : "pve-node",
36253 "type" : "string",
36254 "typetext" : "<string>"
36255 },
36256 "pg_autoscale_mode" : {
36257 "description" : "The automatic PG scaling mode of the pool.",
36258 "enum" : [
36259 "on",
36260 "off",
36261 "warn"
36262 ],
36263 "optional" : 1,
36264 "title" : "PG Autoscale Mode",
36265 "type" : "string"
36266 },
36267 "pg_num" : {
36268 "description" : "Number of placement groups.",
36269 "maximum" : 32768,
36270 "minimum" : 1,
36271 "optional" : 1,
36272 "title" : "PG Num",
36273 "type" : "integer",
36274 "typetext" : "<integer> (1 - 32768)"
36275 },
36276 "pg_num_min" : {
36277 "description" : "Minimal number of placement groups.",
36278 "maximum" : 32768,
36279 "optional" : 1,
36280 "title" : "min. PG Num",
36281 "type" : "integer",
36282 "typetext" : "<integer> (-N - 32768)"
36283 },
36284 "size" : {
36285 "description" : "Number of replicas per object",
36286 "maximum" : 7,
36287 "minimum" : 1,
36288 "optional" : 1,
36289 "title" : "Size",
36290 "type" : "integer",
36291 "typetext" : "<integer> (1 - 7)"
36292 },
36293 "target_size" : {
36294 "description" : "The estimated target size of the pool for the PG autoscaler.",
36295 "optional" : 1,
36296 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
36297 "title" : "PG Autoscale Target Size",
36298 "type" : "string"
36299 },
36300 "target_size_ratio" : {
36301 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
36302 "optional" : 1,
36303 "title" : "PG Autoscale Target Ratio",
36304 "type" : "number",
36305 "typetext" : "<number>"
36306 }
36307 }
36308 },
36309 "permissions" : {
36310 "check" : [
36311 "perm",
36312 "/",
36313 [
36314 "Sys.Modify"
36315 ]
36316 ]
36317 },
36318 "protected" : 1,
36319 "proxyto" : "node",
36320 "returns" : {
36321 "type" : "string"
36322 }
36323 }
36324 },
36325 "leaf" : 0,
36326 "path" : "/nodes/{node}/ceph/pool/{name}",
36327 "text" : "{name}"
36328 }
36329 ],
36330 "info" : {
36331 "GET" : {
36332 "allowtoken" : 1,
36333 "description" : "List all pools and their settings (which are settable by the POST/PUT endpoints).",
36334 "method" : "GET",
36335 "name" : "lspools",
36336 "parameters" : {
36337 "additionalProperties" : 0,
36338 "properties" : {
36339 "node" : {
36340 "description" : "The cluster node name.",
36341 "format" : "pve-node",
36342 "type" : "string",
36343 "typetext" : "<string>"
36344 }
36345 }
36346 },
36347 "permissions" : {
36348 "check" : [
36349 "perm",
36350 "/",
36351 [
36352 "Sys.Audit",
36353 "Datastore.Audit"
36354 ],
36355 "any",
36356 1
36357 ]
36358 },
36359 "protected" : 1,
36360 "proxyto" : "node",
36361 "returns" : {
36362 "items" : {
36363 "properties" : {
36364 "application_metadata" : {
36365 "optional" : 1,
36366 "title" : "Associated Applications",
36367 "type" : "object"
36368 },
36369 "autoscale_status" : {
36370 "optional" : 1,
36371 "title" : "Autoscale Status",
36372 "type" : "object"
36373 },
36374 "bytes_used" : {
36375 "title" : "Used",
36376 "type" : "integer"
36377 },
36378 "crush_rule" : {
36379 "title" : "Crush Rule",
36380 "type" : "integer"
36381 },
36382 "crush_rule_name" : {
36383 "title" : "Crush Rule Name",
5f26e15b
TL
36384 "type" : "string"
36385 },
9d2e98ed
TL
36386 "min_size" : {
36387 "title" : "Min Size",
36388 "type" : "integer"
36389 },
36390 "percent_used" : {
36391 "title" : "%-Used",
36392 "type" : "number"
36393 },
36394 "pg_autoscale_mode" : {
36395 "optional" : 1,
36396 "title" : "PG Autoscale Mode",
4d47f125
TL
36397 "type" : "string"
36398 },
9d2e98ed
TL
36399 "pg_num" : {
36400 "title" : "PG Num",
36401 "type" : "integer"
36402 },
36403 "pg_num_final" : {
36404 "optional" : 1,
36405 "title" : "Optimal PG Num",
36406 "type" : "integer"
36407 },
36408 "pg_num_min" : {
36409 "optional" : 1,
36410 "title" : "min. PG Num",
36411 "type" : "integer"
36412 },
36413 "pool" : {
36414 "title" : "ID",
36415 "type" : "integer"
36416 },
36417 "pool_name" : {
36418 "title" : "Name",
36419 "type" : "string"
36420 },
36421 "size" : {
36422 "title" : "Size",
36423 "type" : "integer"
36424 },
36425 "target_size" : {
36426 "optional" : 1,
36427 "title" : "PG Autoscale Target Size",
36428 "type" : "integer"
36429 },
36430 "target_size_ratio" : {
36431 "optional" : 1,
36432 "title" : "PG Autoscale Target Ratio",
36433 "type" : "number"
36434 },
36435 "type" : {
36436 "enum" : [
36437 "replicated",
36438 "erasure",
36439 "unknown"
36440 ],
36441 "title" : "Type",
4d47f125
TL
36442 "type" : "string"
36443 }
7aacca6f 36444 },
4d47f125
TL
36445 "type" : "object"
36446 },
36447 "links" : [
36448 {
9d2e98ed 36449 "href" : "{pool_name}",
4d47f125
TL
36450 "rel" : "child"
36451 }
36452 ],
36453 "type" : "array"
36454 }
9d2e98ed
TL
36455 },
36456 "POST" : {
36457 "allowtoken" : 1,
36458 "description" : "Create Ceph pool",
36459 "method" : "POST",
36460 "name" : "createpool",
36461 "parameters" : {
36462 "additionalProperties" : 0,
36463 "properties" : {
36464 "add_storages" : {
36465 "default" : "0; for erasure coded pools: 1",
36466 "description" : "Configure VM and CT storage using the new pool.",
36467 "optional" : 1,
36468 "type" : "boolean",
36469 "typetext" : "<boolean>"
36470 },
36471 "application" : {
36472 "default" : "rbd",
36473 "description" : "The application of the pool.",
36474 "enum" : [
36475 "rbd",
36476 "cephfs",
36477 "rgw"
36478 ],
36479 "optional" : 1,
36480 "title" : "Application",
36481 "type" : "string"
36482 },
36483 "crush_rule" : {
36484 "description" : "The rule to use for mapping object placement in the cluster.",
36485 "optional" : 1,
36486 "title" : "Crush Rule Name",
36487 "type" : "string",
36488 "typetext" : "<string>"
36489 },
36490 "erasure-coding" : {
36491 "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.",
36492 "format" : {
36493 "device-class" : {
36494 "description" : "CRUSH device class. Will create an erasure coded pool plus a replicated pool for metadata.",
36495 "format_description" : "class",
36496 "optional" : 1,
36497 "type" : "string"
36498 },
36499 "failure-domain" : {
36500 "default" : "host",
36501 "description" : "CRUSH failure domain. Default is 'host'. Will create an erasure coded pool plus a replicated pool for metadata.",
36502 "format_description" : "domain",
36503 "optional" : 1,
36504 "type" : "string"
36505 },
36506 "k" : {
36507 "description" : "Number of data chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
36508 "minimum" : 2,
36509 "type" : "integer"
36510 },
36511 "m" : {
36512 "description" : "Number of coding chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
36513 "minimum" : 1,
36514 "type" : "integer"
36515 },
36516 "profile" : {
36517 "description" : "Override the erasure code (EC) profile to use. Will create an erasure coded pool plus a replicated pool for metadata.",
36518 "format_description" : "profile",
36519 "optional" : 1,
36520 "type" : "string"
36521 }
36522 },
36523 "optional" : 1,
36524 "type" : "string",
36525 "typetext" : "k=<integer> ,m=<integer> [,device-class=<class>] [,failure-domain=<domain>] [,profile=<profile>]"
36526 },
36527 "min_size" : {
36528 "default" : 2,
36529 "description" : "Minimum number of replicas per object",
36530 "maximum" : 7,
36531 "minimum" : 1,
36532 "optional" : 1,
36533 "title" : "Min Size",
36534 "type" : "integer",
36535 "typetext" : "<integer> (1 - 7)"
36536 },
36537 "name" : {
36538 "description" : "The name of the pool. It must be unique.",
36539 "title" : "Name",
36540 "type" : "string",
36541 "typetext" : "<string>"
36542 },
36543 "node" : {
36544 "description" : "The cluster node name.",
36545 "format" : "pve-node",
36546 "type" : "string",
36547 "typetext" : "<string>"
36548 },
36549 "pg_autoscale_mode" : {
36550 "default" : "warn",
36551 "description" : "The automatic PG scaling mode of the pool.",
36552 "enum" : [
36553 "on",
36554 "off",
36555 "warn"
36556 ],
36557 "optional" : 1,
36558 "title" : "PG Autoscale Mode",
36559 "type" : "string"
36560 },
36561 "pg_num" : {
36562 "default" : 128,
36563 "description" : "Number of placement groups.",
36564 "maximum" : 32768,
36565 "minimum" : 1,
36566 "optional" : 1,
36567 "title" : "PG Num",
36568 "type" : "integer",
36569 "typetext" : "<integer> (1 - 32768)"
36570 },
36571 "pg_num_min" : {
36572 "description" : "Minimal number of placement groups.",
36573 "maximum" : 32768,
36574 "optional" : 1,
36575 "title" : "min. PG Num",
36576 "type" : "integer",
36577 "typetext" : "<integer> (-N - 32768)"
36578 },
36579 "size" : {
36580 "default" : 3,
36581 "description" : "Number of replicas per object",
36582 "maximum" : 7,
36583 "minimum" : 1,
36584 "optional" : 1,
36585 "title" : "Size",
36586 "type" : "integer",
36587 "typetext" : "<integer> (1 - 7)"
36588 },
36589 "target_size" : {
36590 "description" : "The estimated target size of the pool for the PG autoscaler.",
36591 "optional" : 1,
36592 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
36593 "title" : "PG Autoscale Target Size",
36594 "type" : "string"
36595 },
36596 "target_size_ratio" : {
36597 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
36598 "optional" : 1,
36599 "title" : "PG Autoscale Target Ratio",
36600 "type" : "number",
36601 "typetext" : "<number>"
36602 }
36603 }
36604 },
36605 "permissions" : {
36606 "check" : [
36607 "perm",
36608 "/",
36609 [
36610 "Sys.Modify"
36611 ]
36612 ]
36613 },
36614 "protected" : 1,
36615 "proxyto" : "node",
36616 "returns" : {
36617 "type" : "string"
36618 }
5f26e15b
TL
36619 }
36620 },
36621 "leaf" : 0,
9d2e98ed
TL
36622 "path" : "/nodes/{node}/ceph/pool",
36623 "text" : "pool"
5f26e15b 36624 },
4d47f125
TL
36625 {
36626 "info" : {
36627 "POST" : {
e9cd3bd4 36628 "allowtoken" : 1,
4d47f125
TL
36629 "description" : "Create initial ceph default configuration and setup symlinks.",
36630 "method" : "POST",
36631 "name" : "init",
36632 "parameters" : {
36633 "additionalProperties" : 0,
36634 "properties" : {
e2d681b3
TL
36635 "cluster-network" : {
36636 "description" : "Declare a separate cluster network, OSDs will routeheartbeat, object replication and recovery traffic over it",
36637 "format" : "CIDR",
36638 "maxLength" : 128,
36639 "optional" : 1,
36640 "requires" : "network",
36641 "type" : "string",
36642 "typetext" : "<string>"
36643 },
4d47f125
TL
36644 "disable_cephx" : {
36645 "default" : 0,
1e3f8156 36646 "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 36647 "optional" : 1,
4d47f125
TL
36648 "type" : "boolean",
36649 "typetext" : "<boolean>"
56122987 36650 },
4d47f125
TL
36651 "min_size" : {
36652 "default" : 2,
36653 "description" : "Minimum number of available replicas per object to allow I/O",
36654 "maximum" : 7,
36655 "minimum" : 1,
7aacca6f 36656 "optional" : 1,
4d47f125
TL
36657 "type" : "integer",
36658 "typetext" : "<integer> (1 - 7)"
7aacca6f 36659 },
4d47f125
TL
36660 "network" : {
36661 "description" : "Use specific network for all ceph related traffic",
36662 "format" : "CIDR",
36663 "maxLength" : 128,
5d9c884c 36664 "optional" : 1,
4d47f125
TL
36665 "type" : "string",
36666 "typetext" : "<string>"
5d9c884c 36667 },
4d47f125
TL
36668 "node" : {
36669 "description" : "The cluster node name.",
36670 "format" : "pve-node",
36671 "type" : "string",
36672 "typetext" : "<string>"
7aacca6f 36673 },
4d47f125
TL
36674 "pg_bits" : {
36675 "default" : 6,
36676 "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.",
36677 "maximum" : 14,
36678 "minimum" : 6,
de0983cb 36679 "optional" : 1,
4d47f125
TL
36680 "type" : "integer",
36681 "typetext" : "<integer> (6 - 14)"
de0983cb 36682 },
44660702 36683 "size" : {
4d47f125
TL
36684 "default" : 3,
36685 "description" : "Targeted number of replicas per object",
36686 "maximum" : 7,
36687 "minimum" : 1,
7aacca6f 36688 "optional" : 1,
4d47f125
TL
36689 "type" : "integer",
36690 "typetext" : "<integer> (1 - 7)"
56122987 36691 }
4d47f125 36692 }
44660702 36693 },
4d47f125
TL
36694 "permissions" : {
36695 "check" : [
36696 "perm",
36697 "/",
36698 [
36699 "Sys.Modify"
36700 ]
36701 ]
5da3d723 36702 },
4d47f125
TL
36703 "protected" : 1,
36704 "proxyto" : "node",
36705 "returns" : {
36706 "type" : "null"
36707 }
36708 }
36709 },
36710 "leaf" : 1,
36711 "path" : "/nodes/{node}/ceph/init",
36712 "text" : "init"
36713 },
4d47f125
TL
36714 {
36715 "info" : {
36716 "POST" : {
e9cd3bd4 36717 "allowtoken" : 1,
4d47f125
TL
36718 "description" : "Stop ceph services.",
36719 "method" : "POST",
36720 "name" : "stop",
36721 "parameters" : {
36722 "additionalProperties" : 0,
36723 "properties" : {
36724 "node" : {
36725 "description" : "The cluster node name.",
36726 "format" : "pve-node",
36727 "type" : "string",
36728 "typetext" : "<string>"
36729 },
36730 "service" : {
e2d681b3 36731 "default" : "ceph.target",
4d47f125
TL
36732 "description" : "Ceph service name.",
36733 "optional" : 1,
c5aa7e14 36734 "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
4d47f125
TL
36735 "type" : "string"
36736 }
36737 }
7aacca6f 36738 },
4d47f125
TL
36739 "permissions" : {
36740 "check" : [
36741 "perm",
36742 "/",
36743 [
36744 "Sys.Modify"
36745 ]
36746 ]
7aacca6f 36747 },
4d47f125
TL
36748 "protected" : 1,
36749 "proxyto" : "node",
36750 "returns" : {
36751 "type" : "string"
36752 }
36753 }
36754 },
36755 "leaf" : 1,
36756 "path" : "/nodes/{node}/ceph/stop",
36757 "text" : "stop"
36758 },
36759 {
36760 "info" : {
36761 "POST" : {
e9cd3bd4 36762 "allowtoken" : 1,
4d47f125
TL
36763 "description" : "Start ceph services.",
36764 "method" : "POST",
36765 "name" : "start",
36766 "parameters" : {
36767 "additionalProperties" : 0,
36768 "properties" : {
36769 "node" : {
36770 "description" : "The cluster node name.",
36771 "format" : "pve-node",
36772 "type" : "string",
36773 "typetext" : "<string>"
36774 },
36775 "service" : {
e2d681b3 36776 "default" : "ceph.target",
4d47f125
TL
36777 "description" : "Ceph service name.",
36778 "optional" : 1,
c5aa7e14 36779 "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
4d47f125
TL
36780 "type" : "string"
36781 }
36782 }
44660702 36783 },
4d47f125
TL
36784 "permissions" : {
36785 "check" : [
36786 "perm",
36787 "/",
36788 [
36789 "Sys.Modify"
36790 ]
36791 ]
44660702 36792 },
4d47f125
TL
36793 "protected" : 1,
36794 "proxyto" : "node",
36795 "returns" : {
36796 "type" : "string"
44660702 36797 }
7aacca6f
DM
36798 }
36799 },
4d47f125
TL
36800 "leaf" : 1,
36801 "path" : "/nodes/{node}/ceph/start",
36802 "text" : "start"
36803 },
e2d681b3
TL
36804 {
36805 "info" : {
36806 "POST" : {
e9cd3bd4 36807 "allowtoken" : 1,
e2d681b3
TL
36808 "description" : "Restart ceph services.",
36809 "method" : "POST",
36810 "name" : "restart",
36811 "parameters" : {
36812 "additionalProperties" : 0,
36813 "properties" : {
36814 "node" : {
36815 "description" : "The cluster node name.",
36816 "format" : "pve-node",
36817 "type" : "string",
36818 "typetext" : "<string>"
36819 },
36820 "service" : {
36821 "default" : "ceph.target",
36822 "description" : "Ceph service name.",
36823 "optional" : 1,
c5aa7e14 36824 "pattern" : "(mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
e2d681b3
TL
36825 "type" : "string"
36826 }
36827 }
36828 },
36829 "permissions" : {
36830 "check" : [
36831 "perm",
36832 "/",
36833 [
36834 "Sys.Modify"
36835 ]
36836 ]
36837 },
36838 "protected" : 1,
36839 "proxyto" : "node",
36840 "returns" : {
36841 "type" : "string"
36842 }
36843 }
36844 },
36845 "leaf" : 1,
36846 "path" : "/nodes/{node}/ceph/restart",
36847 "text" : "restart"
36848 },
4d47f125
TL
36849 {
36850 "info" : {
36851 "GET" : {
e9cd3bd4 36852 "allowtoken" : 1,
4d47f125
TL
36853 "description" : "Get ceph status.",
36854 "method" : "GET",
36855 "name" : "status",
36856 "parameters" : {
36857 "additionalProperties" : 0,
36858 "properties" : {
36859 "node" : {
36860 "description" : "The cluster node name.",
36861 "format" : "pve-node",
36862 "type" : "string",
36863 "typetext" : "<string>"
36864 }
36865 }
36866 },
36867 "permissions" : {
36868 "check" : [
36869 "perm",
36870 "/",
36871 [
36872 "Sys.Audit",
36873 "Datastore.Audit"
36874 ],
36875 "any",
36876 1
36877 ]
36878 },
36879 "protected" : 1,
36880 "proxyto" : "node",
36881 "returns" : {
d2656385 36882 "type" : "object"
44660702 36883 }
56122987 36884 }
44660702 36885 },
d2656385
TL
36886 "leaf" : 1,
36887 "path" : "/nodes/{node}/ceph/status",
36888 "text" : "status"
7aacca6f 36889 },
56122987 36890 {
56122987
DM
36891 "info" : {
36892 "GET" : {
e9cd3bd4 36893 "allowtoken" : 1,
4d47f125 36894 "description" : "Get OSD crush map",
44660702 36895 "method" : "GET",
4d47f125 36896 "name" : "crush",
56122987 36897 "parameters" : {
7aacca6f 36898 "additionalProperties" : 0,
56122987 36899 "properties" : {
56122987 36900 "node" : {
7aacca6f 36901 "description" : "The cluster node name.",
44660702 36902 "format" : "pve-node",
013dc89f
DM
36903 "type" : "string",
36904 "typetext" : "<string>"
56122987 36905 }
7aacca6f 36906 }
56122987 36907 },
56122987
DM
36908 "permissions" : {
36909 "check" : [
36910 "perm",
36911 "/",
36912 [
36913 "Sys.Audit",
36914 "Datastore.Audit"
36915 ],
36916 "any",
36917 1
36918 ]
44660702 36919 },
4d47f125
TL
36920 "protected" : 1,
36921 "proxyto" : "node",
44660702
DM
36922 "returns" : {
36923 "type" : "string"
7aacca6f
DM
36924 }
36925 }
44660702
DM
36926 },
36927 "leaf" : 1,
4d47f125
TL
36928 "path" : "/nodes/{node}/ceph/crush",
36929 "text" : "crush"
7aacca6f
DM
36930 },
36931 {
7aacca6f
DM
36932 "info" : {
36933 "GET" : {
e9cd3bd4 36934 "allowtoken" : 1,
4d47f125 36935 "description" : "Read ceph log",
7aacca6f 36936 "method" : "GET",
4d47f125 36937 "name" : "log",
7aacca6f
DM
36938 "parameters" : {
36939 "additionalProperties" : 0,
36940 "properties" : {
4d47f125
TL
36941 "limit" : {
36942 "minimum" : 0,
36943 "optional" : 1,
36944 "type" : "integer",
36945 "typetext" : "<integer> (0 - N)"
36946 },
7aacca6f 36947 "node" : {
7aacca6f 36948 "description" : "The cluster node name.",
44660702 36949 "format" : "pve-node",
013dc89f
DM
36950 "type" : "string",
36951 "typetext" : "<string>"
4d47f125
TL
36952 },
36953 "start" : {
36954 "minimum" : 0,
36955 "optional" : 1,
36956 "type" : "integer",
36957 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
36958 }
36959 }
36960 },
44660702
DM
36961 "permissions" : {
36962 "check" : [
36963 "perm",
4d47f125 36964 "/nodes/{node}",
44660702 36965 [
4d47f125
TL
36966 "Sys.Syslog"
36967 ]
44660702
DM
36968 ]
36969 },
7aacca6f 36970 "protected" : 1,
44660702 36971 "proxyto" : "node",
7aacca6f
DM
36972 "returns" : {
36973 "items" : {
36974 "properties" : {
4d47f125
TL
36975 "n" : {
36976 "description" : "Line number",
36977 "type" : "integer"
56122987 36978 },
4d47f125
TL
36979 "t" : {
36980 "description" : "Line text",
56122987
DM
36981 "type" : "string"
36982 }
7aacca6f
DM
36983 },
36984 "type" : "object"
56122987
DM
36985 },
36986 "type" : "array"
44660702 36987 }
4d47f125
TL
36988 }
36989 },
36990 "leaf" : 1,
36991 "path" : "/nodes/{node}/ceph/log",
36992 "text" : "log"
36993 },
36994 {
36995 "info" : {
36996 "GET" : {
e9cd3bd4 36997 "allowtoken" : 1,
4d47f125
TL
36998 "description" : "List ceph rules.",
36999 "method" : "GET",
37000 "name" : "rules",
44660702
DM
37001 "parameters" : {
37002 "additionalProperties" : 0,
37003 "properties" : {
37004 "node" : {
37005 "description" : "The cluster node name.",
37006 "format" : "pve-node",
013dc89f
DM
37007 "type" : "string",
37008 "typetext" : "<string>"
44660702
DM
37009 }
37010 }
37011 },
7aacca6f
DM
37012 "permissions" : {
37013 "check" : [
37014 "perm",
37015 "/",
37016 [
4d47f125
TL
37017 "Sys.Audit",
37018 "Datastore.Audit"
37019 ],
37020 "any",
37021 1
7aacca6f
DM
37022 ]
37023 },
44660702 37024 "protected" : 1,
7aacca6f 37025 "proxyto" : "node",
56122987 37026 "returns" : {
4d47f125 37027 "items" : {
9d2e98ed
TL
37028 "properties" : {
37029 "name" : {
37030 "description" : "Name of the CRUSH rule.",
37031 "type" : "string"
37032 }
37033 },
4d47f125
TL
37034 "type" : "object"
37035 },
37036 "links" : [
37037 {
37038 "href" : "{name}",
37039 "rel" : "child"
37040 }
37041 ],
37042 "type" : "array"
44660702 37043 }
56122987 37044 }
44660702 37045 },
4d47f125
TL
37046 "leaf" : 1,
37047 "path" : "/nodes/{node}/ceph/rules",
37048 "text" : "rules"
81a3384d
TL
37049 },
37050 {
37051 "info" : {
37052 "GET" : {
37053 "allowtoken" : 1,
37054 "description" : "Heuristical check if it is safe to perform an action.",
37055 "method" : "GET",
37056 "name" : "cmd_safety",
37057 "parameters" : {
37058 "additionalProperties" : 0,
37059 "properties" : {
37060 "action" : {
37061 "description" : "Action to check",
37062 "enum" : [
37063 "stop",
37064 "destroy"
37065 ],
37066 "type" : "string"
37067 },
37068 "id" : {
37069 "description" : "ID of the service",
37070 "type" : "string",
37071 "typetext" : "<string>"
37072 },
37073 "node" : {
37074 "description" : "The cluster node name.",
37075 "format" : "pve-node",
37076 "type" : "string",
37077 "typetext" : "<string>"
37078 },
37079 "service" : {
37080 "description" : "Service type",
37081 "enum" : [
37082 "osd",
37083 "mon",
37084 "mds"
37085 ],
37086 "type" : "string"
37087 }
37088 }
37089 },
37090 "permissions" : {
37091 "check" : [
37092 "perm",
37093 "/",
37094 [
9d2e98ed 37095 "Sys.Audit"
81a3384d
TL
37096 ]
37097 ]
37098 },
37099 "protected" : 1,
37100 "proxyto" : "node",
37101 "returns" : {
37102 "properties" : {
37103 "safe" : {
37104 "description" : "If it is safe to run the command.",
37105 "type" : "boolean"
37106 },
37107 "status" : {
37108 "description" : "Status message given by Ceph.",
37109 "optional" : 1,
37110 "type" : "string"
37111 }
37112 },
37113 "type" : "object"
37114 }
37115 }
37116 },
37117 "leaf" : 1,
37118 "path" : "/nodes/{node}/ceph/cmd-safety",
37119 "text" : "cmd-safety"
4d47f125
TL
37120 }
37121 ],
37122 "info" : {
37123 "GET" : {
e9cd3bd4 37124 "allowtoken" : 1,
4d47f125
TL
37125 "description" : "Directory index.",
37126 "method" : "GET",
37127 "name" : "index",
37128 "parameters" : {
37129 "additionalProperties" : 0,
37130 "properties" : {
37131 "node" : {
37132 "description" : "The cluster node name.",
37133 "format" : "pve-node",
37134 "type" : "string",
37135 "typetext" : "<string>"
37136 }
37137 }
37138 },
37139 "permissions" : {
37140 "check" : [
37141 "perm",
37142 "/",
37143 [
37144 "Sys.Audit",
37145 "Datastore.Audit"
37146 ],
37147 "any",
37148 1
37149 ]
37150 },
37151 "returns" : {
37152 "items" : {
37153 "properties" : {},
37154 "type" : "object"
37155 },
37156 "links" : [
37157 {
37158 "href" : "{name}",
37159 "rel" : "child"
37160 }
37161 ],
37162 "type" : "array"
37163 }
37164 }
37165 },
37166 "leaf" : 0,
37167 "path" : "/nodes/{node}/ceph",
37168 "text" : "ceph"
37169 },
37170 {
37171 "children" : [
e7084ef7
TL
37172 {
37173 "info" : {
37174 "GET" : {
37175 "allowtoken" : 1,
37176 "description" : "Get the currently configured vzdump defaults.",
37177 "method" : "GET",
37178 "name" : "defaults",
37179 "parameters" : {
37180 "additionalProperties" : 0,
37181 "properties" : {
37182 "node" : {
37183 "description" : "The cluster node name.",
37184 "format" : "pve-node",
37185 "type" : "string",
37186 "typetext" : "<string>"
37187 },
37188 "storage" : {
37189 "description" : "The storage identifier.",
37190 "format" : "pve-storage-id",
37191 "optional" : 1,
37192 "type" : "string",
37193 "typetext" : "<string>"
37194 }
37195 }
37196 },
37197 "permissions" : {
37198 "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.",
37199 "user" : "all"
37200 },
37201 "proxyto" : "node",
37202 "returns" : {
37203 "additionalProperties" : 0,
37204 "properties" : {
37205 "all" : {
37206 "default" : 0,
37207 "description" : "Backup all known guest systems on this host.",
37208 "optional" : 1,
37209 "type" : "boolean"
37210 },
37211 "bwlimit" : {
37212 "default" : 0,
4a407cfd 37213 "description" : "Limit I/O bandwidth (in KiB/s).",
e7084ef7
TL
37214 "minimum" : 0,
37215 "optional" : 1,
37216 "type" : "integer"
37217 },
37218 "compress" : {
37219 "default" : "0",
37220 "description" : "Compress dump file.",
37221 "enum" : [
37222 "0",
37223 "1",
37224 "gzip",
37225 "lzo",
37226 "zstd"
37227 ],
37228 "optional" : 1,
37229 "type" : "string"
37230 },
37231 "dumpdir" : {
37232 "description" : "Store resulting files to specified directory.",
37233 "optional" : 1,
37234 "type" : "string"
37235 },
37236 "exclude" : {
37237 "description" : "Exclude specified guest systems (assumes --all)",
37238 "format" : "pve-vmid-list",
37239 "optional" : 1,
37240 "type" : "string"
37241 },
37242 "exclude-path" : {
37243 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
4a407cfd
TL
37244 "items" : {
37245 "type" : "string"
37246 },
e7084ef7 37247 "optional" : 1,
4a407cfd 37248 "type" : "array"
e7084ef7
TL
37249 },
37250 "ionice" : {
37251 "default" : 7,
159464a9 37252 "description" : "Set IO priority when using the BFQ scheduler. For snapshot and suspend mode backups of VMs, this only affects the compressor. A value of 8 means the idle priority is used, otherwise the best-effort priority is used with the specified value.",
e7084ef7
TL
37253 "maximum" : 8,
37254 "minimum" : 0,
37255 "optional" : 1,
37256 "type" : "integer"
37257 },
37258 "lockwait" : {
37259 "default" : 180,
37260 "description" : "Maximal time to wait for the global lock (minutes).",
37261 "minimum" : 0,
37262 "optional" : 1,
37263 "type" : "integer"
37264 },
37265 "mailnotification" : {
37266 "default" : "always",
37267 "description" : "Specify when to send an email",
37268 "enum" : [
37269 "always",
37270 "failure"
37271 ],
37272 "optional" : 1,
37273 "type" : "string"
37274 },
37275 "mailto" : {
37276 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
37277 "format" : "email-or-username-list",
37278 "optional" : 1,
37279 "type" : "string"
37280 },
37281 "maxfiles" : {
0695fdaf 37282 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
e7084ef7
TL
37283 "minimum" : 1,
37284 "optional" : 1,
37285 "type" : "integer"
37286 },
37287 "mode" : {
37288 "default" : "snapshot",
37289 "description" : "Backup mode.",
37290 "enum" : [
37291 "snapshot",
37292 "suspend",
37293 "stop"
37294 ],
37295 "optional" : 1,
37296 "type" : "string"
37297 },
37298 "node" : {
37299 "description" : "Only run if executed on this node.",
37300 "format" : "pve-node",
37301 "optional" : 1,
37302 "type" : "string"
37303 },
7af2edf9 37304 "notes-template" : {
4e7f60c2
TL
37305 "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.",
37306 "maxLength" : 1024,
7af2edf9
TL
37307 "optional" : 1,
37308 "requires" : "storage",
37309 "type" : "string"
37310 },
4e7f60c2
TL
37311 "performance" : {
37312 "description" : "Other performance-related settings.",
37313 "format" : "backup-performance",
37314 "optional" : 1,
37315 "type" : "string"
37316 },
e7084ef7
TL
37317 "pigz" : {
37318 "default" : 0,
37319 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
37320 "optional" : 1,
37321 "type" : "integer"
37322 },
37323 "pool" : {
37324 "description" : "Backup all known guest systems included in the specified pool.",
37325 "optional" : 1,
37326 "type" : "string"
37327 },
7af2edf9
TL
37328 "protected" : {
37329 "description" : "If true, mark backup(s) as protected.",
37330 "optional" : 1,
37331 "requires" : "storage",
37332 "type" : "boolean"
37333 },
e7084ef7 37334 "prune-backups" : {
0695fdaf 37335 "default" : "keep-all=1",
e7084ef7
TL
37336 "description" : "Use these retention options instead of those from the storage configuration.",
37337 "format" : "prune-backups",
37338 "optional" : 1,
37339 "type" : "string"
37340 },
37341 "quiet" : {
37342 "default" : 0,
37343 "description" : "Be quiet.",
37344 "optional" : 1,
37345 "type" : "boolean"
37346 },
37347 "remove" : {
37348 "default" : 1,
0695fdaf 37349 "description" : "Prune older backups according to 'prune-backups'.",
e7084ef7
TL
37350 "optional" : 1,
37351 "type" : "boolean"
37352 },
37353 "script" : {
37354 "description" : "Use specified hook script.",
37355 "optional" : 1,
37356 "type" : "string"
37357 },
e7084ef7
TL
37358 "stdexcludes" : {
37359 "default" : 1,
37360 "description" : "Exclude temporary files and logs.",
37361 "optional" : 1,
37362 "type" : "boolean"
37363 },
37364 "stop" : {
37365 "default" : 0,
37366 "description" : "Stop running backup jobs on this host.",
37367 "optional" : 1,
37368 "type" : "boolean"
37369 },
37370 "stopwait" : {
37371 "default" : 10,
37372 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
37373 "minimum" : 0,
37374 "optional" : 1,
37375 "type" : "integer"
37376 },
37377 "storage" : {
37378 "description" : "Store resulting file to this storage.",
37379 "format" : "pve-storage-id",
37380 "optional" : 1,
37381 "type" : "string"
37382 },
37383 "tmpdir" : {
37384 "description" : "Store temporary files to specified directory.",
37385 "optional" : 1,
37386 "type" : "string"
37387 },
37388 "vmid" : {
37389 "description" : "The ID of the guest system you want to backup.",
37390 "format" : "pve-vmid-list",
37391 "optional" : 1,
37392 "type" : "string"
37393 },
37394 "zstd" : {
37395 "default" : 1,
37396 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
37397 "optional" : 1,
37398 "type" : "integer"
37399 }
37400 },
37401 "type" : "object"
37402 }
37403 }
37404 },
37405 "leaf" : 1,
37406 "path" : "/nodes/{node}/vzdump/defaults",
37407 "text" : "defaults"
37408 },
56122987
DM
37409 {
37410 "info" : {
4d47f125 37411 "GET" : {
e9cd3bd4 37412 "allowtoken" : 1,
4d47f125
TL
37413 "description" : "Extract configuration from vzdump backup archive.",
37414 "method" : "GET",
37415 "name" : "extractconfig",
37416 "parameters" : {
37417 "additionalProperties" : 0,
37418 "properties" : {
44660702
DM
37419 "node" : {
37420 "description" : "The cluster node name.",
37421 "format" : "pve-node",
013dc89f
DM
37422 "type" : "string",
37423 "typetext" : "<string>"
44660702 37424 },
4d47f125
TL
37425 "volume" : {
37426 "description" : "Volume identifier",
37427 "type" : "string",
37428 "typetext" : "<string>"
44660702
DM
37429 }
37430 }
7aacca6f 37431 },
56122987 37432 "permissions" : {
4d47f125
TL
37433 "description" : "The user needs 'VM.Backup' permissions on the backed up guest ID, and 'Datastore.AllocateSpace' on the backup storage.",
37434 "user" : "all"
56122987 37435 },
7aacca6f 37436 "protected" : 1,
44660702
DM
37437 "proxyto" : "node",
37438 "returns" : {
4d47f125 37439 "type" : "string"
7aacca6f
DM
37440 }
37441 }
37442 },
7aacca6f 37443 "leaf" : 1,
4d47f125
TL
37444 "path" : "/nodes/{node}/vzdump/extractconfig",
37445 "text" : "extractconfig"
37446 }
37447 ],
37448 "info" : {
37449 "POST" : {
e9cd3bd4 37450 "allowtoken" : 1,
4d47f125
TL
37451 "description" : "Create backup.",
37452 "method" : "POST",
37453 "name" : "vzdump",
37454 "parameters" : {
37455 "additionalProperties" : 0,
37456 "properties" : {
37457 "all" : {
37458 "default" : 0,
37459 "description" : "Backup all known guest systems on this host.",
37460 "optional" : 1,
37461 "type" : "boolean",
37462 "typetext" : "<boolean>"
37463 },
37464 "bwlimit" : {
37465 "default" : 0,
4a407cfd 37466 "description" : "Limit I/O bandwidth (in KiB/s).",
4d47f125
TL
37467 "minimum" : 0,
37468 "optional" : 1,
37469 "type" : "integer",
37470 "typetext" : "<integer> (0 - N)"
37471 },
37472 "compress" : {
37473 "default" : "0",
37474 "description" : "Compress dump file.",
37475 "enum" : [
37476 "0",
37477 "1",
37478 "gzip",
c5aa7e14
TL
37479 "lzo",
37480 "zstd"
4d47f125
TL
37481 ],
37482 "optional" : 1,
37483 "type" : "string"
37484 },
37485 "dumpdir" : {
37486 "description" : "Store resulting files to specified directory.",
37487 "optional" : 1,
37488 "type" : "string",
37489 "typetext" : "<string>"
37490 },
37491 "exclude" : {
37492 "description" : "Exclude specified guest systems (assumes --all)",
37493 "format" : "pve-vmid-list",
37494 "optional" : 1,
37495 "type" : "string",
37496 "typetext" : "<string>"
37497 },
37498 "exclude-path" : {
d2656385 37499 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
4a407cfd
TL
37500 "items" : {
37501 "type" : "string"
37502 },
4d47f125 37503 "optional" : 1,
4a407cfd
TL
37504 "type" : "array",
37505 "typetext" : "<array>"
4d47f125
TL
37506 },
37507 "ionice" : {
37508 "default" : 7,
159464a9 37509 "description" : "Set IO priority when using the BFQ scheduler. For snapshot and suspend mode backups of VMs, this only affects the compressor. A value of 8 means the idle priority is used, otherwise the best-effort priority is used with the specified value.",
4d47f125
TL
37510 "maximum" : 8,
37511 "minimum" : 0,
37512 "optional" : 1,
37513 "type" : "integer",
37514 "typetext" : "<integer> (0 - 8)"
37515 },
37516 "lockwait" : {
37517 "default" : 180,
37518 "description" : "Maximal time to wait for the global lock (minutes).",
37519 "minimum" : 0,
37520 "optional" : 1,
37521 "type" : "integer",
37522 "typetext" : "<integer> (0 - N)"
37523 },
37524 "mailnotification" : {
37525 "default" : "always",
37526 "description" : "Specify when to send an email",
37527 "enum" : [
37528 "always",
37529 "failure"
37530 ],
37531 "optional" : 1,
37532 "type" : "string"
37533 },
37534 "mailto" : {
d2656385
TL
37535 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
37536 "format" : "email-or-username-list",
4d47f125
TL
37537 "optional" : 1,
37538 "type" : "string",
37539 "typetext" : "<string>"
37540 },
37541 "maxfiles" : {
0695fdaf 37542 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
4d47f125
TL
37543 "minimum" : 1,
37544 "optional" : 1,
37545 "type" : "integer",
37546 "typetext" : "<integer> (1 - N)"
37547 },
37548 "mode" : {
37549 "default" : "snapshot",
37550 "description" : "Backup mode.",
37551 "enum" : [
37552 "snapshot",
37553 "suspend",
37554 "stop"
37555 ],
37556 "optional" : 1,
37557 "type" : "string"
37558 },
37559 "node" : {
37560 "description" : "Only run if executed on this node.",
37561 "format" : "pve-node",
37562 "optional" : 1,
37563 "type" : "string",
37564 "typetext" : "<string>"
37565 },
7af2edf9 37566 "notes-template" : {
4e7f60c2
TL
37567 "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.",
37568 "maxLength" : 1024,
7af2edf9
TL
37569 "optional" : 1,
37570 "requires" : "storage",
37571 "type" : "string",
37572 "typetext" : "<string>"
37573 },
4e7f60c2
TL
37574 "performance" : {
37575 "description" : "Other performance-related settings.",
37576 "format" : "backup-performance",
37577 "optional" : 1,
37578 "type" : "string",
37579 "typetext" : "[max-workers=<integer>]"
37580 },
4d47f125
TL
37581 "pigz" : {
37582 "default" : 0,
37583 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
37584 "optional" : 1,
37585 "type" : "integer",
37586 "typetext" : "<integer>"
37587 },
9226ccbc
TL
37588 "pool" : {
37589 "description" : "Backup all known guest systems included in the specified pool.",
37590 "optional" : 1,
37591 "type" : "string",
37592 "typetext" : "<string>"
37593 },
7af2edf9
TL
37594 "protected" : {
37595 "description" : "If true, mark backup(s) as protected.",
37596 "optional" : 1,
37597 "requires" : "storage",
37598 "type" : "boolean",
37599 "typetext" : "<boolean>"
37600 },
739d4d64 37601 "prune-backups" : {
0695fdaf 37602 "default" : "keep-all=1",
739d4d64
TL
37603 "description" : "Use these retention options instead of those from the storage configuration.",
37604 "format" : "prune-backups",
37605 "optional" : 1,
37606 "type" : "string",
4772952b 37607 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 37608 },
4d47f125
TL
37609 "quiet" : {
37610 "default" : 0,
37611 "description" : "Be quiet.",
37612 "optional" : 1,
37613 "type" : "boolean",
37614 "typetext" : "<boolean>"
37615 },
37616 "remove" : {
37617 "default" : 1,
0695fdaf 37618 "description" : "Prune older backups according to 'prune-backups'.",
4d47f125
TL
37619 "optional" : 1,
37620 "type" : "boolean",
37621 "typetext" : "<boolean>"
37622 },
37623 "script" : {
37624 "description" : "Use specified hook script.",
37625 "optional" : 1,
37626 "type" : "string",
37627 "typetext" : "<string>"
37628 },
4d47f125
TL
37629 "stdexcludes" : {
37630 "default" : 1,
37631 "description" : "Exclude temporary files and logs.",
37632 "optional" : 1,
37633 "type" : "boolean",
37634 "typetext" : "<boolean>"
37635 },
37636 "stdout" : {
37637 "description" : "Write tar to stdout, not to a file.",
37638 "optional" : 1,
37639 "type" : "boolean",
37640 "typetext" : "<boolean>"
37641 },
37642 "stop" : {
37643 "default" : 0,
1e3f8156 37644 "description" : "Stop running backup jobs on this host.",
4d47f125
TL
37645 "optional" : 1,
37646 "type" : "boolean",
37647 "typetext" : "<boolean>"
37648 },
37649 "stopwait" : {
37650 "default" : 10,
37651 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
37652 "minimum" : 0,
37653 "optional" : 1,
37654 "type" : "integer",
37655 "typetext" : "<integer> (0 - N)"
37656 },
37657 "storage" : {
37658 "description" : "Store resulting file to this storage.",
37659 "format" : "pve-storage-id",
37660 "optional" : 1,
37661 "type" : "string",
37662 "typetext" : "<string>"
37663 },
37664 "tmpdir" : {
37665 "description" : "Store temporary files to specified directory.",
37666 "optional" : 1,
37667 "type" : "string",
37668 "typetext" : "<string>"
37669 },
37670 "vmid" : {
37671 "description" : "The ID of the guest system you want to backup.",
37672 "format" : "pve-vmid-list",
37673 "optional" : 1,
37674 "type" : "string",
37675 "typetext" : "<string>"
c5aa7e14
TL
37676 },
37677 "zstd" : {
37678 "default" : 1,
37679 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
37680 "optional" : 1,
37681 "type" : "integer",
37682 "typetext" : "<integer>"
4d47f125
TL
37683 }
37684 }
37685 },
37686 "permissions" : {
9d2e98ed 37687 "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage. The 'tmpdir', 'dumpdir' and 'script' parameters are restricted to the 'root@pam' user. The 'maxfiles' and 'prune-backups' settings require 'Datastore.Allocate' on the backup storage. The 'bwlimit', 'performance' and 'ionice' parameters require 'Sys.Modify' on '/'.",
4d47f125
TL
37688 "user" : "all"
37689 },
37690 "protected" : 1,
37691 "proxyto" : "node",
37692 "returns" : {
37693 "type" : "string"
37694 }
37695 }
37696 },
37697 "leaf" : 0,
37698 "path" : "/nodes/{node}/vzdump",
37699 "text" : "vzdump"
37700 },
37701 {
37702 "children" : [
2489d6df
WB
37703 {
37704 "children" : [
37705 {
37706 "info" : {
4d47f125 37707 "GET" : {
e9cd3bd4 37708 "allowtoken" : 1,
4d47f125
TL
37709 "description" : "Read service properties",
37710 "method" : "GET",
37711 "name" : "service_state",
2489d6df
WB
37712 "parameters" : {
37713 "additionalProperties" : 0,
37714 "properties" : {
2489d6df
WB
37715 "node" : {
37716 "description" : "The cluster node name.",
37717 "format" : "pve-node",
37718 "type" : "string",
37719 "typetext" : "<string>"
4d47f125
TL
37720 },
37721 "service" : {
37722 "description" : "Service ID",
37723 "enum" : [
5370fa8c 37724 "chrony",
4d47f125 37725 "corosync",
5370fa8c
TL
37726 "cron",
37727 "ksmtuned",
37728 "postfix",
37729 "pve-cluster",
4d47f125 37730 "pve-firewall",
4d47f125
TL
37731 "pve-ha-crm",
37732 "pve-ha-lrm",
5370fa8c
TL
37733 "pvedaemon",
37734 "pvefw-logger",
37735 "pveproxy",
37736 "pvescheduler",
37737 "pvestatd",
37738 "spiceproxy",
4d47f125
TL
37739 "sshd",
37740 "syslog",
8f4d9c87 37741 "systemd-journald",
5370fa8c 37742 "systemd-timesyncd"
4d47f125
TL
37743 ],
37744 "type" : "string"
2489d6df
WB
37745 }
37746 }
37747 },
37748 "permissions" : {
37749 "check" : [
37750 "perm",
4d47f125 37751 "/nodes/{node}",
2489d6df 37752 [
4d47f125 37753 "Sys.Audit"
2489d6df
WB
37754 ]
37755 ]
37756 },
37757 "protected" : 1,
37758 "proxyto" : "node",
37759 "returns" : {
4d47f125 37760 "type" : "object"
2489d6df
WB
37761 }
37762 }
37763 },
37764 "leaf" : 1,
4d47f125
TL
37765 "path" : "/nodes/{node}/services/{service}/state",
37766 "text" : "state"
37767 },
37768 {
37769 "info" : {
37770 "POST" : {
e9cd3bd4 37771 "allowtoken" : 1,
4d47f125
TL
37772 "description" : "Start service.",
37773 "method" : "POST",
37774 "name" : "service_start",
37775 "parameters" : {
37776 "additionalProperties" : 0,
37777 "properties" : {
37778 "node" : {
37779 "description" : "The cluster node name.",
37780 "format" : "pve-node",
37781 "type" : "string",
37782 "typetext" : "<string>"
37783 },
37784 "service" : {
37785 "description" : "Service ID",
37786 "enum" : [
5370fa8c 37787 "chrony",
4d47f125 37788 "corosync",
5370fa8c
TL
37789 "cron",
37790 "ksmtuned",
37791 "postfix",
37792 "pve-cluster",
4d47f125 37793 "pve-firewall",
4d47f125
TL
37794 "pve-ha-crm",
37795 "pve-ha-lrm",
5370fa8c
TL
37796 "pvedaemon",
37797 "pvefw-logger",
37798 "pveproxy",
37799 "pvescheduler",
37800 "pvestatd",
37801 "spiceproxy",
4d47f125
TL
37802 "sshd",
37803 "syslog",
8f4d9c87 37804 "systemd-journald",
5370fa8c 37805 "systemd-timesyncd"
4d47f125
TL
37806 ],
37807 "type" : "string"
37808 }
37809 }
7aacca6f 37810 },
4d47f125
TL
37811 "permissions" : {
37812 "check" : [
37813 "perm",
37814 "/nodes/{node}",
37815 [
37816 "Sys.Modify"
37817 ]
37818 ]
7aacca6f 37819 },
4d47f125
TL
37820 "protected" : 1,
37821 "proxyto" : "node",
37822 "returns" : {
37823 "type" : "string"
37824 }
37825 }
56122987 37826 },
4d47f125
TL
37827 "leaf" : 1,
37828 "path" : "/nodes/{node}/services/{service}/start",
37829 "text" : "start"
37830 },
44660702
DM
37831 {
37832 "info" : {
4d47f125 37833 "POST" : {
e9cd3bd4 37834 "allowtoken" : 1,
4d47f125
TL
37835 "description" : "Stop service.",
37836 "method" : "POST",
37837 "name" : "service_stop",
44660702
DM
37838 "parameters" : {
37839 "additionalProperties" : 0,
37840 "properties" : {
44660702
DM
37841 "node" : {
37842 "description" : "The cluster node name.",
37843 "format" : "pve-node",
013dc89f
DM
37844 "type" : "string",
37845 "typetext" : "<string>"
2489d6df 37846 },
4d47f125
TL
37847 "service" : {
37848 "description" : "Service ID",
37849 "enum" : [
5370fa8c 37850 "chrony",
4d47f125 37851 "corosync",
5370fa8c
TL
37852 "cron",
37853 "ksmtuned",
37854 "postfix",
37855 "pve-cluster",
4d47f125 37856 "pve-firewall",
4d47f125
TL
37857 "pve-ha-crm",
37858 "pve-ha-lrm",
5370fa8c
TL
37859 "pvedaemon",
37860 "pvefw-logger",
37861 "pveproxy",
37862 "pvescheduler",
37863 "pvestatd",
37864 "spiceproxy",
4d47f125
TL
37865 "sshd",
37866 "syslog",
8f4d9c87 37867 "systemd-journald",
5370fa8c 37868 "systemd-timesyncd"
4d47f125
TL
37869 ],
37870 "type" : "string"
44660702
DM
37871 }
37872 }
37873 },
37874 "permissions" : {
37875 "check" : [
37876 "perm",
4d47f125 37877 "/nodes/{node}",
44660702
DM
37878 [
37879 "Sys.Modify"
37880 ]
37881 ]
37882 },
37883 "protected" : 1,
37884 "proxyto" : "node",
37885 "returns" : {
2489d6df 37886 "type" : "string"
44660702
DM
37887 }
37888 }
37889 },
37890 "leaf" : 1,
4d47f125
TL
37891 "path" : "/nodes/{node}/services/{service}/stop",
37892 "text" : "stop"
7aacca6f 37893 },
32d876b5
DM
37894 {
37895 "info" : {
4d47f125 37896 "POST" : {
e9cd3bd4 37897 "allowtoken" : 1,
739d4d64 37898 "description" : "Hard restart service. Use reload if you want to reduce interruptions.",
4d47f125
TL
37899 "method" : "POST",
37900 "name" : "service_restart",
32d876b5
DM
37901 "parameters" : {
37902 "additionalProperties" : 0,
37903 "properties" : {
4d47f125
TL
37904 "node" : {
37905 "description" : "The cluster node name.",
37906 "format" : "pve-node",
37907 "type" : "string",
37908 "typetext" : "<string>"
37909 },
37910 "service" : {
37911 "description" : "Service ID",
32d876b5 37912 "enum" : [
5370fa8c 37913 "chrony",
4d47f125 37914 "corosync",
5370fa8c
TL
37915 "cron",
37916 "ksmtuned",
37917 "postfix",
37918 "pve-cluster",
4d47f125 37919 "pve-firewall",
4d47f125
TL
37920 "pve-ha-crm",
37921 "pve-ha-lrm",
5370fa8c
TL
37922 "pvedaemon",
37923 "pvefw-logger",
37924 "pveproxy",
37925 "pvescheduler",
37926 "pvestatd",
37927 "spiceproxy",
4d47f125
TL
37928 "sshd",
37929 "syslog",
8f4d9c87 37930 "systemd-journald",
5370fa8c 37931 "systemd-timesyncd"
32d876b5
DM
37932 ],
37933 "type" : "string"
32d876b5
DM
37934 }
37935 }
37936 },
37937 "permissions" : {
37938 "check" : [
37939 "perm",
4d47f125 37940 "/nodes/{node}",
32d876b5
DM
37941 [
37942 "Sys.Modify"
37943 ]
37944 ]
37945 },
37946 "protected" : 1,
37947 "proxyto" : "node",
37948 "returns" : {
4d47f125 37949 "type" : "string"
32d876b5 37950 }
4d47f125
TL
37951 }
37952 },
37953 "leaf" : 1,
37954 "path" : "/nodes/{node}/services/{service}/restart",
37955 "text" : "restart"
37956 },
37957 {
37958 "info" : {
32d876b5 37959 "POST" : {
e9cd3bd4 37960 "allowtoken" : 1,
739d4d64 37961 "description" : "Reload service. Falls back to restart if service cannot be reloaded.",
32d876b5 37962 "method" : "POST",
4d47f125 37963 "name" : "service_reload",
32d876b5
DM
37964 "parameters" : {
37965 "additionalProperties" : 0,
37966 "properties" : {
32d876b5
DM
37967 "node" : {
37968 "description" : "The cluster node name.",
37969 "format" : "pve-node",
37970 "type" : "string",
37971 "typetext" : "<string>"
4d47f125
TL
37972 },
37973 "service" : {
37974 "description" : "Service ID",
37975 "enum" : [
5370fa8c 37976 "chrony",
4d47f125 37977 "corosync",
5370fa8c
TL
37978 "cron",
37979 "ksmtuned",
37980 "postfix",
37981 "pve-cluster",
4d47f125 37982 "pve-firewall",
4d47f125
TL
37983 "pve-ha-crm",
37984 "pve-ha-lrm",
5370fa8c
TL
37985 "pvedaemon",
37986 "pvefw-logger",
37987 "pveproxy",
37988 "pvescheduler",
37989 "pvestatd",
37990 "spiceproxy",
4d47f125
TL
37991 "sshd",
37992 "syslog",
8f4d9c87 37993 "systemd-journald",
5370fa8c 37994 "systemd-timesyncd"
4d47f125
TL
37995 ],
37996 "type" : "string"
32d876b5
DM
37997 }
37998 }
37999 },
38000 "permissions" : {
38001 "check" : [
38002 "perm",
4d47f125 38003 "/nodes/{node}",
32d876b5
DM
38004 [
38005 "Sys.Modify"
38006 ]
38007 ]
38008 },
38009 "protected" : 1,
38010 "proxyto" : "node",
38011 "returns" : {
4d47f125 38012 "type" : "string"
32d876b5
DM
38013 }
38014 }
38015 },
38016 "leaf" : 1,
4d47f125
TL
38017 "path" : "/nodes/{node}/services/{service}/reload",
38018 "text" : "reload"
32d876b5
DM
38019 }
38020 ],
38021 "info" : {
38022 "GET" : {
e9cd3bd4 38023 "allowtoken" : 1,
4d47f125 38024 "description" : "Directory index",
44660702 38025 "method" : "GET",
4d47f125 38026 "name" : "srvcmdidx",
44660702
DM
38027 "parameters" : {
38028 "additionalProperties" : 0,
38029 "properties" : {
44660702
DM
38030 "node" : {
38031 "description" : "The cluster node name.",
38032 "format" : "pve-node",
013dc89f
DM
38033 "type" : "string",
38034 "typetext" : "<string>"
44660702 38035 },
4d47f125
TL
38036 "service" : {
38037 "description" : "Service ID",
38038 "enum" : [
5370fa8c 38039 "chrony",
4d47f125 38040 "corosync",
5370fa8c
TL
38041 "cron",
38042 "ksmtuned",
38043 "postfix",
38044 "pve-cluster",
4d47f125 38045 "pve-firewall",
4d47f125
TL
38046 "pve-ha-crm",
38047 "pve-ha-lrm",
5370fa8c
TL
38048 "pvedaemon",
38049 "pvefw-logger",
38050 "pveproxy",
38051 "pvescheduler",
38052 "pvestatd",
38053 "spiceproxy",
4d47f125
TL
38054 "sshd",
38055 "syslog",
8f4d9c87 38056 "systemd-journald",
5370fa8c 38057 "systemd-timesyncd"
4d47f125
TL
38058 ],
38059 "type" : "string"
44660702 38060 }
7aacca6f 38061 }
56122987 38062 },
56122987
DM
38063 "permissions" : {
38064 "check" : [
38065 "perm",
7aacca6f 38066 "/nodes/{node}",
56122987 38067 [
4d47f125 38068 "Sys.Audit"
56122987
DM
38069 ]
38070 ]
38071 },
44660702
DM
38072 "returns" : {
38073 "items" : {
38074 "properties" : {
4d47f125 38075 "subdir" : {
44660702
DM
38076 "type" : "string"
38077 }
56122987 38078 },
44660702 38079 "type" : "object"
56122987 38080 },
2489d6df
WB
38081 "links" : [
38082 {
4d47f125 38083 "href" : "{subdir}",
2489d6df
WB
38084 "rel" : "child"
38085 }
38086 ],
38087 "type" : "array"
38088 }
38089 }
4d47f125
TL
38090 },
38091 "leaf" : 0,
38092 "path" : "/nodes/{node}/services/{service}",
38093 "text" : "{service}"
7aacca6f
DM
38094 }
38095 ],
44660702
DM
38096 "info" : {
38097 "GET" : {
e9cd3bd4 38098 "allowtoken" : 1,
4d47f125 38099 "description" : "Service list.",
44660702
DM
38100 "method" : "GET",
38101 "name" : "index",
38102 "parameters" : {
38103 "additionalProperties" : 0,
38104 "properties" : {
38105 "node" : {
38106 "description" : "The cluster node name.",
38107 "format" : "pve-node",
013dc89f
DM
38108 "type" : "string",
38109 "typetext" : "<string>"
44660702
DM
38110 }
38111 }
38112 },
38113 "permissions" : {
38114 "check" : [
38115 "perm",
4d47f125 38116 "/nodes/{node}",
44660702 38117 [
4d47f125
TL
38118 "Sys.Audit"
38119 ]
44660702
DM
38120 ]
38121 },
4d47f125
TL
38122 "protected" : 1,
38123 "proxyto" : "node",
44660702
DM
38124 "returns" : {
38125 "items" : {
38126 "properties" : {},
38127 "type" : "object"
38128 },
38129 "links" : [
38130 {
4d47f125 38131 "href" : "{service}",
44660702
DM
38132 "rel" : "child"
38133 }
38134 ],
38135 "type" : "array"
38136 }
38137 }
38138 },
7aacca6f 38139 "leaf" : 0,
4d47f125
TL
38140 "path" : "/nodes/{node}/services",
38141 "text" : "services"
7aacca6f
DM
38142 },
38143 {
7aacca6f 38144 "info" : {
ac70d7d1
TL
38145 "DELETE" : {
38146 "allowtoken" : 1,
38147 "description" : "Delete subscription key of this node.",
38148 "method" : "DELETE",
38149 "name" : "delete",
38150 "parameters" : {
38151 "additionalProperties" : 0,
38152 "properties" : {
38153 "node" : {
38154 "description" : "The cluster node name.",
38155 "format" : "pve-node",
38156 "type" : "string",
38157 "typetext" : "<string>"
38158 }
38159 }
38160 },
38161 "permissions" : {
38162 "check" : [
38163 "perm",
38164 "/nodes/{node}",
38165 [
38166 "Sys.Modify"
38167 ]
38168 ]
38169 },
38170 "protected" : 1,
38171 "proxyto" : "node",
38172 "returns" : {
38173 "type" : "null"
38174 }
38175 },
4d47f125 38176 "GET" : {
e9cd3bd4 38177 "allowtoken" : 1,
4d47f125
TL
38178 "description" : "Read subscription info.",
38179 "method" : "GET",
38180 "name" : "get",
7aacca6f 38181 "parameters" : {
44660702 38182 "additionalProperties" : 0,
7aacca6f 38183 "properties" : {
44660702 38184 "node" : {
4d47f125 38185 "description" : "The cluster node name.",
44660702 38186 "format" : "pve-node",
013dc89f
DM
38187 "type" : "string",
38188 "typetext" : "<string>"
4d47f125
TL
38189 }
38190 }
38191 },
38192 "permissions" : {
38193 "user" : "all"
38194 },
38195 "proxyto" : "node",
38196 "returns" : {
38197 "type" : "object"
38198 }
38199 },
38200 "POST" : {
e9cd3bd4 38201 "allowtoken" : 1,
4d47f125
TL
38202 "description" : "Update subscription info.",
38203 "method" : "POST",
38204 "name" : "update",
38205 "parameters" : {
38206 "additionalProperties" : 0,
38207 "properties" : {
38208 "force" : {
38209 "default" : 0,
4a407cfd 38210 "description" : "Always connect to server, even if local cache is still valid.",
7aacca6f 38211 "optional" : 1,
4d47f125
TL
38212 "type" : "boolean",
38213 "typetext" : "<boolean>"
44660702 38214 },
4d47f125
TL
38215 "node" : {
38216 "description" : "The cluster node name.",
38217 "format" : "pve-node",
013dc89f
DM
38218 "type" : "string",
38219 "typetext" : "<string>"
4d47f125
TL
38220 }
38221 }
38222 },
38223 "permissions" : {
38224 "check" : [
38225 "perm",
38226 "/nodes/{node}",
38227 [
38228 "Sys.Modify"
38229 ]
38230 ]
38231 },
38232 "protected" : 1,
38233 "proxyto" : "node",
38234 "returns" : {
38235 "type" : "null"
38236 }
38237 },
38238 "PUT" : {
e9cd3bd4 38239 "allowtoken" : 1,
4d47f125
TL
38240 "description" : "Set subscription key.",
38241 "method" : "PUT",
38242 "name" : "set",
38243 "parameters" : {
38244 "additionalProperties" : 0,
38245 "properties" : {
38246 "key" : {
38247 "description" : "Proxmox VE subscription key",
38248 "maxLength" : 32,
5f26e15b 38249 "pattern" : "pve([1248])([cbsp])-[0-9a-f]{10}",
4d47f125 38250 "type" : "string"
7aacca6f 38251 },
4d47f125
TL
38252 "node" : {
38253 "description" : "The cluster node name.",
38254 "format" : "pve-node",
013dc89f
DM
38255 "type" : "string",
38256 "typetext" : "<string>"
7aacca6f 38257 }
7aacca6f
DM
38258 }
38259 },
7aacca6f 38260 "permissions" : {
4d47f125
TL
38261 "check" : [
38262 "perm",
38263 "/nodes/{node}",
38264 [
38265 "Sys.Modify"
38266 ]
38267 ]
7aacca6f 38268 },
44660702 38269 "protected" : 1,
7aacca6f 38270 "proxyto" : "node",
7aacca6f 38271 "returns" : {
4d47f125 38272 "type" : "null"
7aacca6f
DM
38273 }
38274 }
38275 },
4d47f125
TL
38276 "leaf" : 1,
38277 "path" : "/nodes/{node}/subscription",
38278 "text" : "subscription"
44660702
DM
38279 },
38280 {
7aacca6f
DM
38281 "children" : [
38282 {
4d47f125
TL
38283 "info" : {
38284 "DELETE" : {
e9cd3bd4 38285 "allowtoken" : 1,
4d47f125
TL
38286 "description" : "Delete network device configuration",
38287 "method" : "DELETE",
38288 "name" : "delete_network",
38289 "parameters" : {
38290 "additionalProperties" : 0,
38291 "properties" : {
38292 "iface" : {
38293 "description" : "Network interface name.",
38294 "format" : "pve-iface",
38295 "maxLength" : 20,
38296 "minLength" : 2,
38297 "type" : "string",
38298 "typetext" : "<string>"
7aacca6f 38299 },
4d47f125
TL
38300 "node" : {
38301 "description" : "The cluster node name.",
38302 "format" : "pve-node",
38303 "type" : "string",
38304 "typetext" : "<string>"
44660702
DM
38305 }
38306 }
38307 },
4d47f125
TL
38308 "permissions" : {
38309 "check" : [
38310 "perm",
38311 "/nodes/{node}",
38312 [
38313 "Sys.Modify"
38314 ]
38315 ]
38316 },
38317 "protected" : 1,
38318 "proxyto" : "node",
38319 "returns" : {
38320 "type" : "null"
38321 }
38322 },
38323 "GET" : {
e9cd3bd4 38324 "allowtoken" : 1,
4d47f125
TL
38325 "description" : "Read network device configuration",
38326 "method" : "GET",
38327 "name" : "network_config",
38328 "parameters" : {
38329 "additionalProperties" : 0,
38330 "properties" : {
38331 "iface" : {
38332 "description" : "Network interface name.",
38333 "format" : "pve-iface",
38334 "maxLength" : 20,
38335 "minLength" : 2,
38336 "type" : "string",
38337 "typetext" : "<string>"
56122987 38338 },
4d47f125
TL
38339 "node" : {
38340 "description" : "The cluster node name.",
38341 "format" : "pve-node",
38342 "type" : "string",
38343 "typetext" : "<string>"
44660702
DM
38344 }
38345 }
38346 },
4d47f125
TL
38347 "permissions" : {
38348 "check" : [
38349 "perm",
38350 "/nodes/{node}",
38351 [
38352 "Sys.Audit"
38353 ]
38354 ]
38355 },
38356 "proxyto" : "node",
38357 "returns" : {
38358 "properties" : {
38359 "method" : {
38360 "type" : "string"
44660702 38361 },
4d47f125 38362 "type" : {
44660702
DM
38363 "type" : "string"
38364 }
4d47f125
TL
38365 },
38366 "type" : "object"
38367 }
56122987 38368 },
4d47f125 38369 "PUT" : {
e9cd3bd4 38370 "allowtoken" : 1,
4d47f125
TL
38371 "description" : "Update network device configuration",
38372 "method" : "PUT",
38373 "name" : "update_network",
38374 "parameters" : {
38375 "additionalProperties" : 0,
38376 "properties" : {
38377 "address" : {
38378 "description" : "IP address.",
38379 "format" : "ipv4",
38380 "optional" : 1,
38381 "requires" : "netmask",
38382 "type" : "string",
38383 "typetext" : "<string>"
38384 },
38385 "address6" : {
38386 "description" : "IP address.",
38387 "format" : "ipv6",
38388 "optional" : 1,
38389 "requires" : "netmask6",
38390 "type" : "string",
38391 "typetext" : "<string>"
38392 },
38393 "autostart" : {
38394 "description" : "Automatically start interface on boot.",
38395 "optional" : 1,
38396 "type" : "boolean",
38397 "typetext" : "<boolean>"
38398 },
e9cd3bd4
TL
38399 "bond-primary" : {
38400 "description" : "Specify the primary interface for active-backup bond.",
38401 "format" : "pve-iface",
38402 "optional" : 1,
38403 "type" : "string",
38404 "typetext" : "<string>"
38405 },
4d47f125
TL
38406 "bond_mode" : {
38407 "description" : "Bonding mode.",
38408 "enum" : [
38409 "balance-rr",
38410 "active-backup",
38411 "balance-xor",
38412 "broadcast",
38413 "802.3ad",
38414 "balance-tlb",
38415 "balance-alb",
38416 "balance-slb",
38417 "lacp-balance-slb",
38418 "lacp-balance-tcp"
38419 ],
38420 "optional" : 1,
38421 "type" : "string"
38422 },
38423 "bond_xmit_hash_policy" : {
38424 "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
38425 "enum" : [
38426 "layer2",
38427 "layer2+3",
38428 "layer3+4"
38429 ],
38430 "optional" : 1,
38431 "type" : "string"
38432 },
38433 "bridge_ports" : {
1e3f8156 38434 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
38435 "format" : "pve-iface-list",
38436 "optional" : 1,
38437 "type" : "string",
38438 "typetext" : "<string>"
38439 },
38440 "bridge_vlan_aware" : {
38441 "description" : "Enable bridge vlan support.",
38442 "optional" : 1,
38443 "type" : "boolean",
38444 "typetext" : "<boolean>"
38445 },
bb4c8cf8
TL
38446 "cidr" : {
38447 "description" : "IPv4 CIDR.",
38448 "format" : "CIDRv4",
38449 "optional" : 1,
38450 "type" : "string",
38451 "typetext" : "<string>"
38452 },
38453 "cidr6" : {
38454 "description" : "IPv6 CIDR.",
38455 "format" : "CIDRv6",
38456 "optional" : 1,
38457 "type" : "string",
38458 "typetext" : "<string>"
38459 },
4d47f125
TL
38460 "comments" : {
38461 "description" : "Comments",
38462 "optional" : 1,
38463 "type" : "string",
38464 "typetext" : "<string>"
38465 },
38466 "comments6" : {
38467 "description" : "Comments",
38468 "optional" : 1,
38469 "type" : "string",
38470 "typetext" : "<string>"
38471 },
38472 "delete" : {
38473 "description" : "A list of settings you want to delete.",
38474 "format" : "pve-configid-list",
38475 "optional" : 1,
38476 "type" : "string",
38477 "typetext" : "<string>"
38478 },
38479 "gateway" : {
38480 "description" : "Default gateway address.",
38481 "format" : "ipv4",
38482 "optional" : 1,
38483 "type" : "string",
38484 "typetext" : "<string>"
38485 },
38486 "gateway6" : {
38487 "description" : "Default ipv6 gateway address.",
38488 "format" : "ipv6",
38489 "optional" : 1,
38490 "type" : "string",
38491 "typetext" : "<string>"
38492 },
38493 "iface" : {
38494 "description" : "Network interface name.",
38495 "format" : "pve-iface",
38496 "maxLength" : 20,
38497 "minLength" : 2,
38498 "type" : "string",
38499 "typetext" : "<string>"
56122987 38500 },
e9cd3bd4
TL
38501 "mtu" : {
38502 "description" : "MTU.",
38503 "maximum" : 65520,
38504 "minimum" : 1280,
38505 "optional" : 1,
38506 "type" : "integer",
38507 "typetext" : "<integer> (1280 - 65520)"
38508 },
4d47f125
TL
38509 "netmask" : {
38510 "description" : "Network mask.",
38511 "format" : "ipv4mask",
38512 "optional" : 1,
38513 "requires" : "address",
38514 "type" : "string",
38515 "typetext" : "<string>"
38516 },
38517 "netmask6" : {
38518 "description" : "Network mask.",
38519 "maximum" : 128,
38520 "minimum" : 0,
38521 "optional" : 1,
38522 "requires" : "address6",
38523 "type" : "integer",
38524 "typetext" : "<integer> (0 - 128)"
56122987 38525 },
44660702
DM
38526 "node" : {
38527 "description" : "The cluster node name.",
38528 "format" : "pve-node",
013dc89f
DM
38529 "type" : "string",
38530 "typetext" : "<string>"
44660702 38531 },
4d47f125
TL
38532 "ovs_bonds" : {
38533 "description" : "Specify the interfaces used by the bonding device.",
38534 "format" : "pve-iface-list",
38535 "optional" : 1,
38536 "type" : "string",
38537 "typetext" : "<string>"
38538 },
38539 "ovs_bridge" : {
38540 "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
38541 "format" : "pve-iface",
38542 "optional" : 1,
38543 "type" : "string",
38544 "typetext" : "<string>"
38545 },
38546 "ovs_options" : {
38547 "description" : "OVS interface options.",
38548 "maxLength" : 1024,
38549 "optional" : 1,
38550 "type" : "string",
38551 "typetext" : "<string>"
38552 },
38553 "ovs_ports" : {
1e3f8156 38554 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
38555 "format" : "pve-iface-list",
38556 "optional" : 1,
38557 "type" : "string",
38558 "typetext" : "<string>"
38559 },
38560 "ovs_tag" : {
38561 "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
38562 "maximum" : 4094,
38563 "minimum" : 1,
38564 "optional" : 1,
38565 "type" : "integer",
38566 "typetext" : "<integer> (1 - 4094)"
38567 },
38568 "slaves" : {
38569 "description" : "Specify the interfaces used by the bonding device.",
38570 "format" : "pve-iface-list",
38571 "optional" : 1,
38572 "type" : "string",
38573 "typetext" : "<string>"
38574 },
38575 "type" : {
38576 "description" : "Network interface type",
44660702 38577 "enum" : [
4d47f125
TL
38578 "bridge",
38579 "bond",
38580 "eth",
38581 "alias",
38582 "vlan",
38583 "OVSBridge",
38584 "OVSBond",
38585 "OVSPort",
38586 "OVSIntPort",
38587 "unknown"
44660702
DM
38588 ],
38589 "type" : "string"
e9cd3bd4
TL
38590 },
38591 "vlan-id" : {
38592 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
38593 "maximum" : 4094,
38594 "minimum" : 1,
38595 "optional" : 1,
38596 "type" : "integer",
38597 "typetext" : "<integer> (1 - 4094)"
38598 },
38599 "vlan-raw-device" : {
38600 "description" : "Specify the raw interface for the vlan interface.",
38601 "format" : "pve-iface",
38602 "optional" : 1,
38603 "type" : "string",
38604 "typetext" : "<string>"
44660702
DM
38605 }
38606 }
38607 },
38608 "permissions" : {
38609 "check" : [
38610 "perm",
38611 "/nodes/{node}",
38612 [
4d47f125 38613 "Sys.Modify"
44660702
DM
38614 ]
38615 ]
38616 },
4d47f125
TL
38617 "protected" : 1,
38618 "proxyto" : "node",
44660702 38619 "returns" : {
4d47f125 38620 "type" : "null"
44660702
DM
38621 }
38622 }
38623 },
4d47f125
TL
38624 "leaf" : 1,
38625 "path" : "/nodes/{node}/network/{iface}",
38626 "text" : "{iface}"
44660702
DM
38627 }
38628 ],
38629 "info" : {
4d47f125 38630 "DELETE" : {
e9cd3bd4 38631 "allowtoken" : 1,
4d47f125
TL
38632 "description" : "Revert network configuration changes.",
38633 "method" : "DELETE",
38634 "name" : "revert_network_changes",
44660702
DM
38635 "parameters" : {
38636 "additionalProperties" : 0,
38637 "properties" : {
38638 "node" : {
38639 "description" : "The cluster node name.",
38640 "format" : "pve-node",
013dc89f
DM
38641 "type" : "string",
38642 "typetext" : "<string>"
44660702
DM
38643 }
38644 }
38645 },
38646 "permissions" : {
38647 "check" : [
38648 "perm",
38649 "/nodes/{node}",
38650 [
4d47f125 38651 "Sys.Modify"
44660702
DM
38652 ]
38653 ]
38654 },
38655 "protected" : 1,
38656 "proxyto" : "node",
4d47f125
TL
38657 "returns" : {
38658 "type" : "null"
38659 }
38660 },
38661 "GET" : {
e9cd3bd4 38662 "allowtoken" : 1,
4d47f125
TL
38663 "description" : "List available networks",
38664 "method" : "GET",
38665 "name" : "index",
38666 "parameters" : {
38667 "additionalProperties" : 0,
38668 "properties" : {
38669 "node" : {
38670 "description" : "The cluster node name.",
38671 "format" : "pve-node",
38672 "type" : "string",
38673 "typetext" : "<string>"
38674 },
38675 "type" : {
38676 "description" : "Only list specific interface types.",
38677 "enum" : [
38678 "bridge",
38679 "bond",
38680 "eth",
38681 "alias",
38682 "vlan",
38683 "OVSBridge",
38684 "OVSBond",
38685 "OVSPort",
38686 "OVSIntPort",
159464a9
TL
38687 "any_bridge",
38688 "any_local_bridge"
4d47f125
TL
38689 ],
38690 "optional" : 1,
38691 "type" : "string"
38692 }
38693 }
38694 },
38695 "permissions" : {
38696 "user" : "all"
38697 },
38698 "proxyto" : "node",
44660702
DM
38699 "returns" : {
38700 "items" : {
38701 "properties" : {},
38702 "type" : "object"
38703 },
38704 "links" : [
38705 {
4d47f125 38706 "href" : "{iface}",
44660702 38707 "rel" : "child"
56122987 38708 }
44660702
DM
38709 ],
38710 "type" : "array"
38711 }
4d47f125
TL
38712 },
38713 "POST" : {
e9cd3bd4 38714 "allowtoken" : 1,
4d47f125
TL
38715 "description" : "Create network device configuration",
38716 "method" : "POST",
38717 "name" : "create_network",
7aacca6f 38718 "parameters" : {
44660702 38719 "additionalProperties" : 0,
7aacca6f 38720 "properties" : {
4d47f125
TL
38721 "address" : {
38722 "description" : "IP address.",
38723 "format" : "ipv4",
38724 "optional" : 1,
38725 "requires" : "netmask",
38726 "type" : "string",
38727 "typetext" : "<string>"
38728 },
38729 "address6" : {
38730 "description" : "IP address.",
38731 "format" : "ipv6",
38732 "optional" : 1,
38733 "requires" : "netmask6",
38734 "type" : "string",
38735 "typetext" : "<string>"
38736 },
38737 "autostart" : {
38738 "description" : "Automatically start interface on boot.",
38739 "optional" : 1,
38740 "type" : "boolean",
38741 "typetext" : "<boolean>"
38742 },
e9cd3bd4
TL
38743 "bond-primary" : {
38744 "description" : "Specify the primary interface for active-backup bond.",
38745 "format" : "pve-iface",
38746 "optional" : 1,
38747 "type" : "string",
38748 "typetext" : "<string>"
38749 },
4d47f125
TL
38750 "bond_mode" : {
38751 "description" : "Bonding mode.",
38752 "enum" : [
38753 "balance-rr",
38754 "active-backup",
38755 "balance-xor",
38756 "broadcast",
38757 "802.3ad",
38758 "balance-tlb",
38759 "balance-alb",
38760 "balance-slb",
38761 "lacp-balance-slb",
38762 "lacp-balance-tcp"
38763 ],
38764 "optional" : 1,
38765 "type" : "string"
38766 },
38767 "bond_xmit_hash_policy" : {
38768 "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
38769 "enum" : [
38770 "layer2",
38771 "layer2+3",
38772 "layer3+4"
38773 ],
38774 "optional" : 1,
38775 "type" : "string"
38776 },
38777 "bridge_ports" : {
1e3f8156 38778 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
38779 "format" : "pve-iface-list",
38780 "optional" : 1,
013dc89f
DM
38781 "type" : "string",
38782 "typetext" : "<string>"
4d47f125
TL
38783 },
38784 "bridge_vlan_aware" : {
38785 "description" : "Enable bridge vlan support.",
44660702 38786 "optional" : 1,
013dc89f
DM
38787 "type" : "boolean",
38788 "typetext" : "<boolean>"
44660702 38789 },
bb4c8cf8
TL
38790 "cidr" : {
38791 "description" : "IPv4 CIDR.",
38792 "format" : "CIDRv4",
38793 "optional" : 1,
38794 "type" : "string",
38795 "typetext" : "<string>"
38796 },
38797 "cidr6" : {
38798 "description" : "IPv6 CIDR.",
38799 "format" : "CIDRv6",
38800 "optional" : 1,
38801 "type" : "string",
38802 "typetext" : "<string>"
38803 },
4d47f125
TL
38804 "comments" : {
38805 "description" : "Comments",
38806 "optional" : 1,
38807 "type" : "string",
38808 "typetext" : "<string>"
38809 },
38810 "comments6" : {
38811 "description" : "Comments",
38812 "optional" : 1,
38813 "type" : "string",
38814 "typetext" : "<string>"
38815 },
38816 "gateway" : {
38817 "description" : "Default gateway address.",
38818 "format" : "ipv4",
38819 "optional" : 1,
38820 "type" : "string",
38821 "typetext" : "<string>"
38822 },
38823 "gateway6" : {
38824 "description" : "Default ipv6 gateway address.",
38825 "format" : "ipv6",
38826 "optional" : 1,
38827 "type" : "string",
38828 "typetext" : "<string>"
38829 },
38830 "iface" : {
38831 "description" : "Network interface name.",
38832 "format" : "pve-iface",
38833 "maxLength" : 20,
38834 "minLength" : 2,
38835 "type" : "string",
38836 "typetext" : "<string>"
38837 },
e9cd3bd4
TL
38838 "mtu" : {
38839 "description" : "MTU.",
38840 "maximum" : 65520,
38841 "minimum" : 1280,
38842 "optional" : 1,
38843 "type" : "integer",
38844 "typetext" : "<integer> (1280 - 65520)"
38845 },
4d47f125
TL
38846 "netmask" : {
38847 "description" : "Network mask.",
38848 "format" : "ipv4mask",
38849 "optional" : 1,
38850 "requires" : "address",
38851 "type" : "string",
38852 "typetext" : "<string>"
38853 },
38854 "netmask6" : {
38855 "description" : "Network mask.",
38856 "maximum" : 128,
38857 "minimum" : 0,
38858 "optional" : 1,
38859 "requires" : "address6",
38860 "type" : "integer",
38861 "typetext" : "<integer> (0 - 128)"
38862 },
7aacca6f 38863 "node" : {
7aacca6f 38864 "description" : "The cluster node name.",
44660702 38865 "format" : "pve-node",
013dc89f
DM
38866 "type" : "string",
38867 "typetext" : "<string>"
4d47f125
TL
38868 },
38869 "ovs_bonds" : {
38870 "description" : "Specify the interfaces used by the bonding device.",
38871 "format" : "pve-iface-list",
38872 "optional" : 1,
38873 "type" : "string",
38874 "typetext" : "<string>"
38875 },
38876 "ovs_bridge" : {
38877 "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
38878 "format" : "pve-iface",
38879 "optional" : 1,
38880 "type" : "string",
38881 "typetext" : "<string>"
38882 },
38883 "ovs_options" : {
38884 "description" : "OVS interface options.",
38885 "maxLength" : 1024,
38886 "optional" : 1,
38887 "type" : "string",
38888 "typetext" : "<string>"
38889 },
38890 "ovs_ports" : {
1e3f8156 38891 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
38892 "format" : "pve-iface-list",
38893 "optional" : 1,
38894 "type" : "string",
38895 "typetext" : "<string>"
38896 },
38897 "ovs_tag" : {
38898 "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
38899 "maximum" : 4094,
38900 "minimum" : 1,
38901 "optional" : 1,
38902 "type" : "integer",
38903 "typetext" : "<integer> (1 - 4094)"
38904 },
38905 "slaves" : {
38906 "description" : "Specify the interfaces used by the bonding device.",
38907 "format" : "pve-iface-list",
38908 "optional" : 1,
38909 "type" : "string",
38910 "typetext" : "<string>"
38911 },
38912 "type" : {
38913 "description" : "Network interface type",
38914 "enum" : [
38915 "bridge",
38916 "bond",
38917 "eth",
38918 "alias",
38919 "vlan",
38920 "OVSBridge",
38921 "OVSBond",
38922 "OVSPort",
38923 "OVSIntPort",
38924 "unknown"
38925 ],
38926 "type" : "string"
e9cd3bd4
TL
38927 },
38928 "vlan-id" : {
38929 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
38930 "maximum" : 4094,
38931 "minimum" : 1,
38932 "optional" : 1,
38933 "type" : "integer",
38934 "typetext" : "<integer> (1 - 4094)"
38935 },
38936 "vlan-raw-device" : {
38937 "description" : "Specify the raw interface for the vlan interface.",
38938 "format" : "pve-iface",
38939 "optional" : 1,
38940 "type" : "string",
38941 "typetext" : "<string>"
7aacca6f
DM
38942 }
38943 }
38944 },
35a75dd3
DM
38945 "permissions" : {
38946 "check" : [
38947 "perm",
38948 "/nodes/{node}",
38949 [
38950 "Sys.Modify"
38951 ]
38952 ]
38953 },
7aacca6f 38954 "protected" : 1,
7aacca6f 38955 "proxyto" : "node",
44660702
DM
38956 "returns" : {
38957 "type" : "null"
38958 }
38959 },
38960 "PUT" : {
e9cd3bd4 38961 "allowtoken" : 1,
4d47f125 38962 "description" : "Reload network configuration",
44660702 38963 "method" : "PUT",
4d47f125 38964 "name" : "reload_network_config",
7aacca6f
DM
38965 "parameters" : {
38966 "additionalProperties" : 0,
38967 "properties" : {
7aacca6f 38968 "node" : {
7aacca6f 38969 "description" : "The cluster node name.",
44660702 38970 "format" : "pve-node",
013dc89f
DM
38971 "type" : "string",
38972 "typetext" : "<string>"
7aacca6f
DM
38973 }
38974 }
38975 },
35a75dd3
DM
38976 "permissions" : {
38977 "check" : [
38978 "perm",
38979 "/nodes/{node}",
38980 [
38981 "Sys.Modify"
38982 ]
38983 ]
38984 },
44660702
DM
38985 "protected" : 1,
38986 "proxyto" : "node",
7aacca6f 38987 "returns" : {
4d47f125 38988 "type" : "string"
44660702 38989 }
7aacca6f
DM
38990 }
38991 },
4d47f125
TL
38992 "leaf" : 0,
38993 "path" : "/nodes/{node}/network",
38994 "text" : "network"
7aacca6f
DM
38995 },
38996 {
7aacca6f
DM
38997 "children" : [
38998 {
4d47f125
TL
38999 "children" : [
39000 {
39001 "info" : {
39002 "GET" : {
e9cd3bd4 39003 "allowtoken" : 1,
4d47f125
TL
39004 "description" : "Read task log.",
39005 "method" : "GET",
39006 "name" : "read_task_log",
39007 "parameters" : {
39008 "additionalProperties" : 0,
39009 "properties" : {
9d2e98ed
TL
39010 "download" : {
39011 "description" : "Whether the tasklog file should be downloaded. This parameter can't be used in conjunction with other parameters",
39012 "optional" : 1,
39013 "type" : "boolean",
39014 "typetext" : "<boolean>"
39015 },
4d47f125
TL
39016 "limit" : {
39017 "default" : 50,
9d2e98ed 39018 "description" : "The amount of lines to read from the tasklog.",
4d47f125
TL
39019 "minimum" : 0,
39020 "optional" : 1,
39021 "type" : "integer",
39022 "typetext" : "<integer> (0 - N)"
39023 },
39024 "node" : {
39025 "description" : "The cluster node name.",
39026 "format" : "pve-node",
39027 "type" : "string",
39028 "typetext" : "<string>"
39029 },
39030 "start" : {
39031 "default" : 0,
9d2e98ed 39032 "description" : "Start at this line when reading the tasklog",
4d47f125
TL
39033 "minimum" : 0,
39034 "optional" : 1,
39035 "type" : "integer",
39036 "typetext" : "<integer> (0 - N)"
39037 },
39038 "upid" : {
5370fa8c 39039 "description" : "The task's unique ID.",
4d47f125
TL
39040 "type" : "string",
39041 "typetext" : "<string>"
39042 }
39043 }
39044 },
39045 "permissions" : {
5370fa8c 39046 "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they aren't the owner of the task.",
4d47f125
TL
39047 "user" : "all"
39048 },
39049 "protected" : 1,
39050 "proxyto" : "node",
39051 "returns" : {
39052 "items" : {
39053 "properties" : {
39054 "n" : {
39055 "description" : "Line number",
39056 "type" : "integer"
39057 },
39058 "t" : {
39059 "description" : "Line text",
39060 "type" : "string"
39061 }
39062 },
39063 "type" : "object"
39064 },
39065 "type" : "array"
39066 }
39067 }
39068 },
39069 "leaf" : 1,
39070 "path" : "/nodes/{node}/tasks/{upid}/log",
39071 "text" : "log"
39072 },
39073 {
39074 "info" : {
39075 "GET" : {
e9cd3bd4 39076 "allowtoken" : 1,
4d47f125
TL
39077 "description" : "Read task status.",
39078 "method" : "GET",
39079 "name" : "read_task_status",
39080 "parameters" : {
39081 "additionalProperties" : 0,
39082 "properties" : {
39083 "node" : {
39084 "description" : "The cluster node name.",
39085 "format" : "pve-node",
39086 "type" : "string",
39087 "typetext" : "<string>"
39088 },
39089 "upid" : {
5370fa8c 39090 "description" : "The task's unique ID.",
4d47f125
TL
39091 "type" : "string",
39092 "typetext" : "<string>"
39093 }
39094 }
39095 },
39096 "permissions" : {
5370fa8c 39097 "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they are not the owner of the task.",
4d47f125
TL
39098 "user" : "all"
39099 },
39100 "protected" : 1,
39101 "proxyto" : "node",
39102 "returns" : {
39103 "properties" : {
5370fa8c
TL
39104 "exitstatus" : {
39105 "optional" : 1,
39106 "type" : "string"
39107 },
39108 "id" : {
39109 "type" : "string"
39110 },
39111 "node" : {
39112 "type" : "string"
39113 },
4d47f125
TL
39114 "pid" : {
39115 "type" : "integer"
39116 },
5370fa8c
TL
39117 "starttime" : {
39118 "type" : "number"
39119 },
4d47f125
TL
39120 "status" : {
39121 "enum" : [
39122 "running",
39123 "stopped"
39124 ],
39125 "type" : "string"
5370fa8c
TL
39126 },
39127 "type" : {
39128 "type" : "string"
39129 },
39130 "upid" : {
39131 "type" : "string"
39132 },
39133 "user" : {
39134 "type" : "string"
4d47f125
TL
39135 }
39136 },
39137 "type" : "object"
39138 }
39139 }
39140 },
39141 "leaf" : 1,
39142 "path" : "/nodes/{node}/tasks/{upid}/status",
39143 "text" : "status"
39144 }
39145 ],
56122987 39146 "info" : {
7aacca6f 39147 "DELETE" : {
e9cd3bd4 39148 "allowtoken" : 1,
4d47f125 39149 "description" : "Stop a task.",
44660702 39150 "method" : "DELETE",
4d47f125 39151 "name" : "stop_task",
44660702
DM
39152 "parameters" : {
39153 "additionalProperties" : 0,
39154 "properties" : {
44660702
DM
39155 "node" : {
39156 "description" : "The cluster node name.",
39157 "format" : "pve-node",
013dc89f
DM
39158 "type" : "string",
39159 "typetext" : "<string>"
4d47f125
TL
39160 },
39161 "upid" : {
39162 "type" : "string",
39163 "typetext" : "<string>"
44660702
DM
39164 }
39165 }
7aacca6f
DM
39166 },
39167 "permissions" : {
5370fa8c 39168 "description" : "The user needs 'Sys.Modify' permissions on '/nodes/<node>' if they aren't the owner of the task.",
4d47f125 39169 "user" : "all"
7aacca6f 39170 },
44660702 39171 "protected" : 1,
7aacca6f 39172 "proxyto" : "node",
44660702
DM
39173 "returns" : {
39174 "type" : "null"
39175 }
39176 },
39177 "GET" : {
e9cd3bd4 39178 "allowtoken" : 1,
4d47f125 39179 "description" : "",
44660702 39180 "method" : "GET",
4d47f125 39181 "name" : "upid_index",
7aacca6f
DM
39182 "parameters" : {
39183 "additionalProperties" : 0,
39184 "properties" : {
7aacca6f 39185 "node" : {
44660702 39186 "description" : "The cluster node name.",
7aacca6f 39187 "format" : "pve-node",
013dc89f
DM
39188 "type" : "string",
39189 "typetext" : "<string>"
7aacca6f 39190 },
4d47f125
TL
39191 "upid" : {
39192 "type" : "string",
39193 "typetext" : "<string>"
7aacca6f
DM
39194 }
39195 }
39196 },
7aacca6f 39197 "permissions" : {
4d47f125 39198 "user" : "all"
7aacca6f
DM
39199 },
39200 "returns" : {
4d47f125
TL
39201 "items" : {
39202 "properties" : {},
39203 "type" : "object"
39204 },
39205 "links" : [
39206 {
39207 "href" : "{name}",
39208 "rel" : "child"
39209 }
39210 ],
39211 "type" : "array"
44660702 39212 }
7aacca6f
DM
39213 }
39214 },
4d47f125
TL
39215 "leaf" : 0,
39216 "path" : "/nodes/{node}/tasks/{upid}",
39217 "text" : "{upid}"
7aacca6f
DM
39218 }
39219 ],
7aacca6f 39220 "info" : {
44660702 39221 "GET" : {
e9cd3bd4 39222 "allowtoken" : 1,
4d47f125 39223 "description" : "Read task list for one node (finished tasks).",
44660702 39224 "method" : "GET",
4d47f125 39225 "name" : "node_tasks",
44660702
DM
39226 "parameters" : {
39227 "additionalProperties" : 0,
39228 "properties" : {
4d47f125
TL
39229 "errors" : {
39230 "default" : 0,
5370fa8c 39231 "description" : "Only list tasks with a status of ERROR.",
7aacca6f 39232 "optional" : 1,
4d47f125
TL
39233 "type" : "boolean",
39234 "typetext" : "<boolean>"
7aacca6f 39235 },
4d47f125
TL
39236 "limit" : {
39237 "default" : 50,
39238 "description" : "Only list this amount of tasks.",
39239 "minimum" : 0,
44660702 39240 "optional" : 1,
4d47f125
TL
39241 "type" : "integer",
39242 "typetext" : "<integer> (0 - N)"
39243 },
39244 "node" : {
39245 "description" : "The cluster node name.",
39246 "format" : "pve-node",
013dc89f
DM
39247 "type" : "string",
39248 "typetext" : "<string>"
44660702 39249 },
34f3e481
TL
39250 "since" : {
39251 "description" : "Only list tasks since this UNIX epoch.",
39252 "optional" : 1,
39253 "type" : "integer",
39254 "typetext" : "<integer>"
39255 },
5f26e15b
TL
39256 "source" : {
39257 "default" : "archive",
39258 "description" : "List archived, active or all tasks.",
39259 "enum" : [
39260 "archive",
39261 "active",
39262 "all"
39263 ],
39264 "optional" : 1,
39265 "type" : "string"
39266 },
4d47f125
TL
39267 "start" : {
39268 "default" : 0,
39269 "description" : "List tasks beginning from this offset.",
39270 "minimum" : 0,
44660702 39271 "optional" : 1,
4d47f125
TL
39272 "type" : "integer",
39273 "typetext" : "<integer> (0 - N)"
44660702 39274 },
34f3e481
TL
39275 "statusfilter" : {
39276 "description" : "List of Task States that should be returned.",
39277 "format" : "pve-task-status-type-list",
39278 "optional" : 1,
39279 "type" : "string",
39280 "typetext" : "<string>"
39281 },
5f26e15b
TL
39282 "typefilter" : {
39283 "description" : "Only list tasks of this type (e.g., vzstart, vzdump).",
39284 "optional" : 1,
39285 "type" : "string",
39286 "typetext" : "<string>"
39287 },
34f3e481
TL
39288 "until" : {
39289 "description" : "Only list tasks until this UNIX epoch.",
39290 "optional" : 1,
39291 "type" : "integer",
39292 "typetext" : "<integer>"
39293 },
4d47f125
TL
39294 "userfilter" : {
39295 "description" : "Only list tasks from this user.",
44660702 39296 "optional" : 1,
013dc89f
DM
39297 "type" : "string",
39298 "typetext" : "<string>"
44660702 39299 },
4d47f125
TL
39300 "vmid" : {
39301 "description" : "Only list tasks for this VM.",
39302 "format" : "pve-vmid",
8dd66e12
TL
39303 "maximum" : 999999999,
39304 "minimum" : 100,
44660702 39305 "optional" : 1,
4bd7df8b 39306 "type" : "integer",
8dd66e12 39307 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
39308 }
39309 }
39310 },
39311 "permissions" : {
39312 "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).",
39313 "user" : "all"
39314 },
39315 "proxyto" : "node",
39316 "returns" : {
39317 "items" : {
39318 "properties" : {
39319 "endtime" : {
39320 "optional" : 1,
39321 "title" : "Endtime",
39322 "type" : "integer"
39323 },
39324 "id" : {
4d47f125
TL
39325 "title" : "ID",
39326 "type" : "string"
39327 },
39328 "node" : {
4d47f125
TL
39329 "title" : "Node",
39330 "type" : "string"
39331 },
39332 "pid" : {
4d47f125
TL
39333 "title" : "PID",
39334 "type" : "integer"
39335 },
39336 "pstart" : {
4d47f125
TL
39337 "type" : "integer"
39338 },
39339 "starttime" : {
4d47f125
TL
39340 "title" : "Starttime",
39341 "type" : "integer"
39342 },
39343 "status" : {
39344 "optional" : 1,
39345 "title" : "Status",
39346 "type" : "string"
39347 },
39348 "type" : {
4d47f125
TL
39349 "title" : "Type",
39350 "type" : "string"
39351 },
39352 "upid" : {
39353 "title" : "UPID",
39354 "type" : "string"
39355 },
39356 "user" : {
4d47f125
TL
39357 "title" : "User",
39358 "type" : "string"
39359 }
44660702 39360 },
4d47f125
TL
39361 "type" : "object"
39362 },
39363 "links" : [
39364 {
39365 "href" : "{upid}",
39366 "rel" : "child"
39367 }
39368 ],
39369 "type" : "array"
39370 }
39371 }
39372 },
39373 "leaf" : 0,
39374 "path" : "/nodes/{node}/tasks",
39375 "text" : "tasks"
39376 },
39377 {
39378 "children" : [
39379 {
39380 "info" : {
39381 "GET" : {
e9cd3bd4 39382 "allowtoken" : 1,
d2656385 39383 "description" : "Scan remote NFS server.",
4d47f125 39384 "method" : "GET",
d2656385 39385 "name" : "nfsscan",
4d47f125
TL
39386 "parameters" : {
39387 "additionalProperties" : 0,
39388 "properties" : {
39389 "node" : {
39390 "description" : "The cluster node name.",
39391 "format" : "pve-node",
39392 "type" : "string",
39393 "typetext" : "<string>"
d2656385
TL
39394 },
39395 "server" : {
39396 "description" : "The server address (name or IP).",
39397 "format" : "pve-storage-server",
39398 "type" : "string",
39399 "typetext" : "<string>"
4d47f125
TL
39400 }
39401 }
44660702 39402 },
4d47f125
TL
39403 "permissions" : {
39404 "check" : [
39405 "perm",
39406 "/storage",
39407 [
39408 "Datastore.Allocate"
39409 ]
39410 ]
39411 },
39412 "protected" : 1,
39413 "proxyto" : "node",
39414 "returns" : {
39415 "items" : {
39416 "properties" : {
d2656385
TL
39417 "options" : {
39418 "description" : "NFS export options.",
39419 "type" : "string"
39420 },
39421 "path" : {
39422 "description" : "The exported path.",
4d47f125
TL
39423 "type" : "string"
39424 }
39425 },
39426 "type" : "object"
39427 },
39428 "type" : "array"
39429 }
39430 }
39431 },
39432 "leaf" : 1,
d2656385
TL
39433 "path" : "/nodes/{node}/scan/nfs",
39434 "text" : "nfs"
4d47f125
TL
39435 },
39436 {
39437 "info" : {
39438 "GET" : {
e9cd3bd4 39439 "allowtoken" : 1,
d2656385 39440 "description" : "Scan remote CIFS server.",
4d47f125 39441 "method" : "GET",
d2656385 39442 "name" : "cifsscan",
4d47f125
TL
39443 "parameters" : {
39444 "additionalProperties" : 0,
39445 "properties" : {
d2656385
TL
39446 "domain" : {
39447 "description" : "SMB domain (Workgroup).",
39448 "optional" : 1,
39449 "type" : "string",
39450 "typetext" : "<string>"
39451 },
4d47f125
TL
39452 "node" : {
39453 "description" : "The cluster node name.",
39454 "format" : "pve-node",
39455 "type" : "string",
39456 "typetext" : "<string>"
39457 },
d2656385
TL
39458 "password" : {
39459 "description" : "User password.",
39460 "optional" : 1,
39461 "type" : "string",
39462 "typetext" : "<string>"
39463 },
4d47f125
TL
39464 "server" : {
39465 "description" : "The server address (name or IP).",
39466 "format" : "pve-storage-server",
39467 "type" : "string",
39468 "typetext" : "<string>"
d2656385
TL
39469 },
39470 "username" : {
39471 "description" : "User name.",
39472 "optional" : 1,
39473 "type" : "string",
39474 "typetext" : "<string>"
4d47f125
TL
39475 }
39476 }
39477 },
39478 "permissions" : {
39479 "check" : [
39480 "perm",
39481 "/storage",
39482 [
39483 "Datastore.Allocate"
39484 ]
39485 ]
39486 },
39487 "protected" : 1,
39488 "proxyto" : "node",
39489 "returns" : {
39490 "items" : {
39491 "properties" : {
d2656385
TL
39492 "description" : {
39493 "description" : "Descriptive text from server.",
4d47f125
TL
39494 "type" : "string"
39495 },
d2656385
TL
39496 "share" : {
39497 "description" : "The cifs share name.",
4d47f125
TL
39498 "type" : "string"
39499 }
39500 },
39501 "type" : "object"
39502 },
39503 "type" : "array"
39504 }
39505 }
39506 },
39507 "leaf" : 1,
d2656385
TL
39508 "path" : "/nodes/{node}/scan/cifs",
39509 "text" : "cifs"
4d47f125
TL
39510 },
39511 {
39512 "info" : {
39513 "GET" : {
e9cd3bd4 39514 "allowtoken" : 1,
d2656385 39515 "description" : "Scan remote Proxmox Backup Server.",
4d47f125 39516 "method" : "GET",
d2656385 39517 "name" : "pbsscan",
4d47f125
TL
39518 "parameters" : {
39519 "additionalProperties" : 0,
39520 "properties" : {
d2656385
TL
39521 "fingerprint" : {
39522 "description" : "Certificate SHA 256 fingerprint.",
4d47f125 39523 "optional" : 1,
d2656385
TL
39524 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
39525 "type" : "string"
4d47f125
TL
39526 },
39527 "node" : {
39528 "description" : "The cluster node name.",
39529 "format" : "pve-node",
39530 "type" : "string",
39531 "typetext" : "<string>"
39532 },
39533 "password" : {
d2656385 39534 "description" : "User password or API token secret.",
4d47f125
TL
39535 "type" : "string",
39536 "typetext" : "<string>"
39537 },
d2656385
TL
39538 "port" : {
39539 "default" : 8007,
39540 "description" : "Optional port.",
39541 "maximum" : 65535,
39542 "minimum" : 1,
39543 "optional" : 1,
39544 "type" : "integer",
39545 "typetext" : "<integer> (1 - 65535)"
39546 },
4d47f125
TL
39547 "server" : {
39548 "description" : "The server address (name or IP).",
39549 "format" : "pve-storage-server",
39550 "type" : "string",
39551 "typetext" : "<string>"
39552 },
39553 "username" : {
d2656385 39554 "description" : "User-name or API token-ID.",
4d47f125
TL
39555 "type" : "string",
39556 "typetext" : "<string>"
39557 }
39558 }
39559 },
39560 "permissions" : {
39561 "check" : [
39562 "perm",
39563 "/storage",
39564 [
39565 "Datastore.Allocate"
39566 ]
39567 ]
39568 },
39569 "protected" : 1,
39570 "proxyto" : "node",
39571 "returns" : {
39572 "items" : {
39573 "properties" : {
d2656385
TL
39574 "comment" : {
39575 "description" : "Comment from server.",
39576 "optional" : 1,
4d47f125
TL
39577 "type" : "string"
39578 },
d2656385
TL
39579 "store" : {
39580 "description" : "The datastore name.",
4d47f125
TL
39581 "type" : "string"
39582 }
39583 },
39584 "type" : "object"
39585 },
39586 "type" : "array"
56122987 39587 }
44660702 39588 }
56122987 39589 },
4d47f125 39590 "leaf" : 1,
d2656385
TL
39591 "path" : "/nodes/{node}/scan/pbs",
39592 "text" : "pbs"
4d47f125 39593 },
44660702 39594 {
4d47f125
TL
39595 "info" : {
39596 "GET" : {
e9cd3bd4 39597 "allowtoken" : 1,
4d47f125
TL
39598 "description" : "Scan remote GlusterFS server.",
39599 "method" : "GET",
39600 "name" : "glusterfsscan",
39601 "parameters" : {
39602 "additionalProperties" : 0,
39603 "properties" : {
39604 "node" : {
39605 "description" : "The cluster node name.",
39606 "format" : "pve-node",
39607 "type" : "string",
39608 "typetext" : "<string>"
7aacca6f 39609 },
4d47f125
TL
39610 "server" : {
39611 "description" : "The server address (name or IP).",
39612 "format" : "pve-storage-server",
39613 "type" : "string",
39614 "typetext" : "<string>"
44660702 39615 }
7aacca6f 39616 }
56122987 39617 },
4d47f125
TL
39618 "permissions" : {
39619 "check" : [
39620 "perm",
39621 "/storage",
39622 [
39623 "Datastore.Allocate"
39624 ]
39625 ]
39626 },
39627 "protected" : 1,
39628 "proxyto" : "node",
39629 "returns" : {
39630 "items" : {
39631 "properties" : {
39632 "volname" : {
39633 "description" : "The volume name.",
39634 "type" : "string"
7aacca6f
DM
39635 }
39636 },
4d47f125
TL
39637 "type" : "object"
39638 },
39639 "type" : "array"
39640 }
39641 }
39642 },
39643 "leaf" : 1,
39644 "path" : "/nodes/{node}/scan/glusterfs",
39645 "text" : "glusterfs"
39646 },
39647 {
39648 "info" : {
39649 "GET" : {
e9cd3bd4 39650 "allowtoken" : 1,
4d47f125
TL
39651 "description" : "Scan remote iSCSI server.",
39652 "method" : "GET",
39653 "name" : "iscsiscan",
39654 "parameters" : {
39655 "additionalProperties" : 0,
39656 "properties" : {
39657 "node" : {
39658 "description" : "The cluster node name.",
39659 "format" : "pve-node",
39660 "type" : "string",
39661 "typetext" : "<string>"
56122987 39662 },
4d47f125
TL
39663 "portal" : {
39664 "description" : "The iSCSI portal (IP or DNS name with optional port).",
39665 "format" : "pve-storage-portal-dns",
39666 "type" : "string",
39667 "typetext" : "<string>"
39668 }
39669 }
39670 },
39671 "permissions" : {
39672 "check" : [
39673 "perm",
39674 "/storage",
39675 [
39676 "Datastore.Allocate"
39677 ]
39678 ]
39679 },
39680 "protected" : 1,
39681 "proxyto" : "node",
39682 "returns" : {
39683 "items" : {
39684 "properties" : {
39685 "portal" : {
39686 "description" : "The iSCSI portal name.",
39687 "type" : "string"
7aacca6f 39688 },
4d47f125
TL
39689 "target" : {
39690 "description" : "The iSCSI target name.",
39691 "type" : "string"
39692 }
39693 },
39694 "type" : "object"
39695 },
39696 "type" : "array"
39697 }
39698 }
39699 },
39700 "leaf" : 1,
39701 "path" : "/nodes/{node}/scan/iscsi",
39702 "text" : "iscsi"
39703 },
39704 {
39705 "info" : {
39706 "GET" : {
e9cd3bd4 39707 "allowtoken" : 1,
4d47f125
TL
39708 "description" : "List local LVM volume groups.",
39709 "method" : "GET",
39710 "name" : "lvmscan",
39711 "parameters" : {
39712 "additionalProperties" : 0,
39713 "properties" : {
39714 "node" : {
39715 "description" : "The cluster node name.",
39716 "format" : "pve-node",
39717 "type" : "string",
39718 "typetext" : "<string>"
56122987 39719 }
7aacca6f 39720 }
44660702 39721 },
4d47f125
TL
39722 "permissions" : {
39723 "check" : [
39724 "perm",
39725 "/storage",
39726 [
39727 "Datastore.Allocate"
39728 ]
39729 ]
39730 },
39731 "protected" : 1,
39732 "proxyto" : "node",
39733 "returns" : {
39734 "items" : {
39735 "properties" : {
39736 "vg" : {
39737 "description" : "The LVM logical volume group name.",
39738 "type" : "string"
39739 }
39740 },
39741 "type" : "object"
39742 },
39743 "type" : "array"
39744 }
56122987 39745 }
4d47f125
TL
39746 },
39747 "leaf" : 1,
39748 "path" : "/nodes/{node}/scan/lvm",
39749 "text" : "lvm"
39750 },
39751 {
44660702 39752 "info" : {
4d47f125 39753 "GET" : {
e9cd3bd4 39754 "allowtoken" : 1,
4d47f125
TL
39755 "description" : "List local LVM Thin Pools.",
39756 "method" : "GET",
39757 "name" : "lvmthinscan",
44660702
DM
39758 "parameters" : {
39759 "additionalProperties" : 0,
39760 "properties" : {
39761 "node" : {
39762 "description" : "The cluster node name.",
39763 "format" : "pve-node",
013dc89f
DM
39764 "type" : "string",
39765 "typetext" : "<string>"
44660702 39766 },
4d47f125
TL
39767 "vg" : {
39768 "maxLength" : 100,
39769 "pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+",
39770 "type" : "string"
44660702 39771 }
7aacca6f 39772 }
44660702
DM
39773 },
39774 "permissions" : {
4d47f125
TL
39775 "check" : [
39776 "perm",
39777 "/storage",
39778 [
39779 "Datastore.Allocate"
39780 ]
39781 ]
44660702
DM
39782 },
39783 "protected" : 1,
39784 "proxyto" : "node",
39785 "returns" : {
4d47f125
TL
39786 "items" : {
39787 "properties" : {
39788 "lv" : {
39789 "description" : "The LVM Thin Pool name (LVM logical volume).",
39790 "type" : "string"
39791 }
39792 },
39793 "type" : "object"
39794 },
39795 "type" : "array"
7aacca6f 39796 }
4d47f125
TL
39797 }
39798 },
39799 "leaf" : 1,
39800 "path" : "/nodes/{node}/scan/lvmthin",
39801 "text" : "lvmthin"
39802 },
d2656385
TL
39803 {
39804 "info" : {
39805 "GET" : {
39806 "allowtoken" : 1,
39807 "description" : "Scan zfs pool list on local node.",
39808 "method" : "GET",
39809 "name" : "zfsscan",
39810 "parameters" : {
39811 "additionalProperties" : 0,
39812 "properties" : {
39813 "node" : {
39814 "description" : "The cluster node name.",
39815 "format" : "pve-node",
39816 "type" : "string",
39817 "typetext" : "<string>"
39818 }
39819 }
39820 },
39821 "permissions" : {
39822 "check" : [
39823 "perm",
39824 "/storage",
39825 [
39826 "Datastore.Allocate"
39827 ]
39828 ]
39829 },
39830 "protected" : 1,
39831 "proxyto" : "node",
39832 "returns" : {
39833 "items" : {
39834 "properties" : {
39835 "pool" : {
39836 "description" : "ZFS pool name.",
39837 "type" : "string"
39838 }
39839 },
39840 "type" : "object"
39841 },
39842 "type" : "array"
39843 }
39844 }
39845 },
39846 "leaf" : 1,
39847 "path" : "/nodes/{node}/scan/zfs",
39848 "text" : "zfs"
44660702
DM
39849 }
39850 ],
39851 "info" : {
39852 "GET" : {
e9cd3bd4 39853 "allowtoken" : 1,
4d47f125 39854 "description" : "Index of available scan methods",
44660702 39855 "method" : "GET",
4d47f125 39856 "name" : "index",
56122987 39857 "parameters" : {
7aacca6f 39858 "additionalProperties" : 0,
56122987 39859 "properties" : {
56122987
DM
39860 "node" : {
39861 "description" : "The cluster node name.",
44660702 39862 "format" : "pve-node",
013dc89f
DM
39863 "type" : "string",
39864 "typetext" : "<string>"
56122987
DM
39865 }
39866 }
39867 },
7aacca6f
DM
39868 "permissions" : {
39869 "user" : "all"
39870 },
56122987
DM
39871 "returns" : {
39872 "items" : {
39873 "properties" : {
4d47f125 39874 "method" : {
56122987
DM
39875 "type" : "string"
39876 }
39877 },
39878 "type" : "object"
39879 },
56122987
DM
39880 "links" : [
39881 {
4d47f125 39882 "href" : "{method}",
44660702 39883 "rel" : "child"
56122987 39884 }
44660702
DM
39885 ],
39886 "type" : "array"
56122987
DM
39887 }
39888 }
39889 },
44660702 39890 "leaf" : 0,
4d47f125
TL
39891 "path" : "/nodes/{node}/scan",
39892 "text" : "scan"
44660702 39893 },
e2d681b3
TL
39894 {
39895 "children" : [
39896 {
39897 "children" : [
39898 {
39899 "children" : [
39900 {
39901 "info" : {
39902 "GET" : {
e9cd3bd4 39903 "allowtoken" : 1,
e2d681b3
TL
39904 "description" : "List mediated device types for given PCI device.",
39905 "method" : "GET",
39906 "name" : "mdevscan",
39907 "parameters" : {
39908 "additionalProperties" : 0,
39909 "properties" : {
39910 "node" : {
39911 "description" : "The cluster node name.",
39912 "format" : "pve-node",
39913 "type" : "string",
39914 "typetext" : "<string>"
39915 },
39916 "pciid" : {
39917 "description" : "The PCI ID to list the mdev types for.",
39918 "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
39919 "type" : "string"
39920 }
39921 }
39922 },
39923 "permissions" : {
39924 "check" : [
39925 "perm",
39926 "/",
39927 [
9d2e98ed 39928 "Sys.Audit",
e2d681b3 39929 "Sys.Modify"
9d2e98ed
TL
39930 ],
39931 "any",
39932 1
e2d681b3
TL
39933 ]
39934 },
39935 "protected" : 1,
39936 "proxyto" : "node",
39937 "returns" : {
39938 "items" : {
39939 "properties" : {
39940 "available" : {
39941 "description" : "The number of still available instances of this type.",
39942 "type" : "integer"
39943 },
39944 "description" : {
39945 "type" : "string"
39946 },
39947 "type" : {
39948 "description" : "The name of the mdev type.",
39949 "type" : "string"
39950 }
39951 },
39952 "type" : "object"
39953 },
39954 "type" : "array"
39955 }
39956 }
39957 },
39958 "leaf" : 1,
39959 "path" : "/nodes/{node}/hardware/pci/{pciid}/mdev",
39960 "text" : "mdev"
39961 }
39962 ],
39963 "info" : {
39964 "GET" : {
e9cd3bd4 39965 "allowtoken" : 1,
e2d681b3
TL
39966 "description" : "Index of available pci methods",
39967 "method" : "GET",
39968 "name" : "pciindex",
39969 "parameters" : {
39970 "additionalProperties" : 0,
39971 "properties" : {
39972 "node" : {
39973 "description" : "The cluster node name.",
39974 "format" : "pve-node",
39975 "type" : "string",
39976 "typetext" : "<string>"
39977 },
39978 "pciid" : {
39979 "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
39980 "type" : "string"
39981 }
39982 }
39983 },
39984 "permissions" : {
39985 "user" : "all"
39986 },
39987 "returns" : {
39988 "items" : {
39989 "properties" : {
39990 "method" : {
39991 "type" : "string"
39992 }
39993 },
39994 "type" : "object"
39995 },
39996 "links" : [
39997 {
39998 "href" : "{method}",
39999 "rel" : "child"
40000 }
40001 ],
40002 "type" : "array"
40003 }
40004 }
40005 },
40006 "leaf" : 0,
40007 "path" : "/nodes/{node}/hardware/pci/{pciid}",
40008 "text" : "{pciid}"
40009 }
40010 ],
40011 "info" : {
40012 "GET" : {
e9cd3bd4 40013 "allowtoken" : 1,
e2d681b3
TL
40014 "description" : "List local PCI devices.",
40015 "method" : "GET",
40016 "name" : "pciscan",
40017 "parameters" : {
40018 "additionalProperties" : 0,
40019 "properties" : {
40020 "node" : {
40021 "description" : "The cluster node name.",
40022 "format" : "pve-node",
40023 "type" : "string",
40024 "typetext" : "<string>"
40025 },
40026 "pci-class-blacklist" : {
5370fa8c
TL
40027 "default" : "05;06;0b",
40028 "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
40029 "format" : "string-list",
40030 "optional" : 1,
40031 "type" : "string",
40032 "typetext" : "<string>"
40033 },
40034 "verbose" : {
40035 "default" : 1,
40036 "description" : "If disabled, does only print the PCI IDs. Otherwise, additional information like vendor and device will be returned.",
40037 "optional" : 1,
40038 "type" : "boolean",
40039 "typetext" : "<boolean>"
40040 }
40041 }
40042 },
40043 "permissions" : {
40044 "check" : [
40045 "perm",
40046 "/",
40047 [
9d2e98ed 40048 "Sys.Audit",
e2d681b3 40049 "Sys.Modify"
9d2e98ed
TL
40050 ],
40051 "any",
40052 1
e2d681b3
TL
40053 ]
40054 },
40055 "protected" : 1,
40056 "proxyto" : "node",
40057 "returns" : {
40058 "items" : {
40059 "properties" : {
40060 "class" : {
40061 "description" : "The PCI Class of the device.",
40062 "type" : "string"
40063 },
40064 "device" : {
40065 "description" : "The Device ID.",
40066 "type" : "string"
40067 },
40068 "device_name" : {
40069 "optional" : 1,
40070 "type" : "string"
40071 },
40072 "id" : {
40073 "description" : "The PCI ID.",
40074 "type" : "string"
40075 },
40076 "iommugroup" : {
40077 "description" : "The IOMMU group in which the device is in. If no IOMMU group is detected, it is set to -1.",
40078 "type" : "integer"
40079 },
40080 "mdev" : {
40081 "description" : "If set, marks that the device is capable of creating mediated devices.",
40082 "optional" : 1,
40083 "type" : "boolean"
40084 },
40085 "subsystem_device" : {
40086 "description" : "The Subsystem Device ID.",
40087 "optional" : 1,
40088 "type" : "string"
40089 },
40090 "subsystem_device_name" : {
40091 "optional" : 1,
40092 "type" : "string"
40093 },
40094 "subsystem_vendor" : {
40095 "description" : "The Subsystem Vendor ID.",
40096 "optional" : 1,
40097 "type" : "string"
40098 },
40099 "subsystem_vendor_name" : {
40100 "optional" : 1,
40101 "type" : "string"
40102 },
40103 "vendor" : {
40104 "description" : "The Vendor ID.",
40105 "type" : "string"
40106 },
40107 "vendor_name" : {
40108 "optional" : 1,
40109 "type" : "string"
40110 }
40111 },
40112 "type" : "object"
40113 },
40114 "links" : [
40115 {
40116 "href" : "{id}",
40117 "rel" : "child"
40118 }
40119 ],
40120 "type" : "array"
40121 }
40122 }
40123 },
40124 "leaf" : 0,
40125 "path" : "/nodes/{node}/hardware/pci",
40126 "text" : "pci"
d2656385
TL
40127 },
40128 {
40129 "info" : {
40130 "GET" : {
40131 "allowtoken" : 1,
40132 "description" : "List local USB devices.",
40133 "method" : "GET",
40134 "name" : "usbscan",
40135 "parameters" : {
40136 "additionalProperties" : 0,
40137 "properties" : {
40138 "node" : {
40139 "description" : "The cluster node name.",
40140 "format" : "pve-node",
40141 "type" : "string",
40142 "typetext" : "<string>"
40143 }
40144 }
40145 },
40146 "permissions" : {
40147 "check" : [
40148 "perm",
40149 "/",
40150 [
40151 "Sys.Modify"
40152 ]
40153 ]
40154 },
40155 "protected" : 1,
40156 "proxyto" : "node",
40157 "returns" : {
40158 "items" : {
40159 "properties" : {
40160 "busnum" : {
40161 "type" : "integer"
40162 },
40163 "class" : {
40164 "type" : "integer"
40165 },
40166 "devnum" : {
40167 "type" : "integer"
40168 },
40169 "level" : {
40170 "type" : "integer"
40171 },
40172 "manufacturer" : {
40173 "optional" : 1,
40174 "type" : "string"
40175 },
40176 "port" : {
40177 "type" : "integer"
40178 },
40179 "prodid" : {
40180 "type" : "string"
40181 },
40182 "product" : {
40183 "optional" : 1,
40184 "type" : "string"
40185 },
40186 "serial" : {
40187 "optional" : 1,
40188 "type" : "string"
40189 },
40190 "speed" : {
40191 "type" : "string"
40192 },
40193 "usbpath" : {
40194 "optional" : 1,
40195 "type" : "string"
40196 },
40197 "vendid" : {
40198 "type" : "string"
40199 }
40200 },
40201 "type" : "object"
40202 },
40203 "type" : "array"
40204 }
40205 }
40206 },
40207 "leaf" : 1,
40208 "path" : "/nodes/{node}/hardware/usb",
40209 "text" : "usb"
e2d681b3
TL
40210 }
40211 ],
40212 "info" : {
40213 "GET" : {
e9cd3bd4 40214 "allowtoken" : 1,
e2d681b3
TL
40215 "description" : "Index of hardware types",
40216 "method" : "GET",
40217 "name" : "index",
40218 "parameters" : {
40219 "additionalProperties" : 0,
40220 "properties" : {
40221 "node" : {
40222 "description" : "The cluster node name.",
40223 "format" : "pve-node",
40224 "type" : "string",
40225 "typetext" : "<string>"
40226 }
40227 }
40228 },
40229 "permissions" : {
40230 "user" : "all"
40231 },
40232 "returns" : {
40233 "items" : {
40234 "properties" : {
40235 "type" : {
40236 "type" : "string"
40237 }
40238 },
40239 "type" : "object"
40240 },
40241 "links" : [
40242 {
40243 "href" : "{type}",
40244 "rel" : "child"
40245 }
40246 ],
40247 "type" : "array"
40248 }
40249 }
40250 },
40251 "leaf" : 0,
40252 "path" : "/nodes/{node}/hardware",
40253 "text" : "hardware"
40254 },
d2656385
TL
40255 {
40256 "children" : [
40257 {
40258 "children" : [
0695fdaf
TL
40259 {
40260 "info" : {
40261 "GET" : {
40262 "allowtoken" : 1,
40263 "description" : "List all custom and default CPU models.",
40264 "method" : "GET",
40265 "name" : "index",
40266 "parameters" : {
40267 "additionalProperties" : 0,
40268 "properties" : {
40269 "node" : {
40270 "description" : "The cluster node name.",
40271 "format" : "pve-node",
40272 "type" : "string",
40273 "typetext" : "<string>"
40274 }
40275 }
40276 },
40277 "permissions" : {
40278 "description" : "Only returns custom models when the current user has Sys.Audit on /nodes.",
40279 "user" : "all"
40280 },
40281 "returns" : {
40282 "items" : {
40283 "properties" : {
40284 "custom" : {
40285 "description" : "True if this is a custom CPU model.",
40286 "type" : "boolean"
40287 },
40288 "name" : {
40289 "description" : "Name of the CPU model. Identifies it for subsequent API calls. Prefixed with 'custom-' for custom models.",
40290 "type" : "string"
40291 },
40292 "vendor" : {
40293 "description" : "CPU vendor visible to the guest when this model is selected. Vendor of 'reported-model' in case of custom models.",
40294 "type" : "string"
40295 }
40296 },
40297 "type" : "object"
40298 },
40299 "links" : [
40300 {
40301 "href" : "{name}",
40302 "rel" : "child"
40303 }
40304 ],
40305 "type" : "array"
40306 }
40307 }
40308 },
40309 "leaf" : 1,
40310 "path" : "/nodes/{node}/capabilities/qemu/cpu",
40311 "text" : "cpu"
40312 },
d2656385
TL
40313 {
40314 "info" : {
40315 "GET" : {
40316 "allowtoken" : 1,
40317 "description" : "Get available QEMU/KVM machine types.",
40318 "method" : "GET",
40319 "name" : "types",
40320 "parameters" : {
40321 "additionalProperties" : 0,
40322 "properties" : {
40323 "node" : {
40324 "description" : "The cluster node name.",
40325 "format" : "pve-node",
40326 "type" : "string",
40327 "typetext" : "<string>"
40328 }
40329 }
40330 },
40331 "permissions" : {
40332 "user" : "all"
40333 },
40334 "proxyto" : "node",
40335 "returns" : {
40336 "items" : {
40337 "additionalProperties" : 1,
40338 "properties" : {
40339 "id" : {
40340 "description" : "Full name of machine type and version.",
40341 "type" : "string"
40342 },
40343 "type" : {
40344 "description" : "The machine type.",
40345 "enum" : [
40346 "q35",
40347 "i440fx"
40348 ],
40349 "type" : "string"
40350 },
40351 "version" : {
40352 "description" : "The machine version.",
40353 "type" : "string"
40354 }
40355 },
40356 "type" : "object"
40357 },
40358 "type" : "array"
40359 }
40360 }
40361 },
40362 "leaf" : 1,
40363 "path" : "/nodes/{node}/capabilities/qemu/machines",
40364 "text" : "machines"
40365 }
40366 ],
40367 "info" : {
40368 "GET" : {
40369 "allowtoken" : 1,
40370 "description" : "QEMU capabilities index.",
40371 "method" : "GET",
40372 "name" : "qemu_caps_index",
40373 "parameters" : {
40374 "additionalProperties" : 0,
40375 "properties" : {
40376 "node" : {
40377 "description" : "The cluster node name.",
40378 "format" : "pve-node",
40379 "type" : "string",
40380 "typetext" : "<string>"
40381 }
40382 }
40383 },
40384 "permissions" : {
40385 "user" : "all"
40386 },
40387 "returns" : {
40388 "items" : {
40389 "properties" : {},
40390 "type" : "object"
40391 },
40392 "links" : [
40393 {
40394 "href" : "{name}",
40395 "rel" : "child"
40396 }
40397 ],
40398 "type" : "array"
40399 }
40400 }
40401 },
40402 "leaf" : 0,
40403 "path" : "/nodes/{node}/capabilities/qemu",
40404 "text" : "qemu"
40405 }
40406 ],
40407 "info" : {
40408 "GET" : {
40409 "allowtoken" : 1,
40410 "description" : "Node capabilities index.",
40411 "method" : "GET",
40412 "name" : "index",
40413 "parameters" : {
40414 "additionalProperties" : 0,
40415 "properties" : {
40416 "node" : {
40417 "description" : "The cluster node name.",
40418 "format" : "pve-node",
40419 "type" : "string",
40420 "typetext" : "<string>"
40421 }
40422 }
40423 },
40424 "permissions" : {
40425 "user" : "all"
40426 },
40427 "returns" : {
40428 "items" : {
40429 "properties" : {},
40430 "type" : "object"
40431 },
40432 "links" : [
40433 {
40434 "href" : "{name}",
40435 "rel" : "child"
40436 }
40437 ],
40438 "type" : "array"
40439 }
40440 }
40441 },
40442 "leaf" : 0,
40443 "path" : "/nodes/{node}/capabilities",
40444 "text" : "capabilities"
40445 },
44660702 40446 {
56122987
DM
40447 "children" : [
40448 {
4d47f125 40449 "children" : [
739d4d64
TL
40450 {
40451 "info" : {
40452 "DELETE" : {
40453 "allowtoken" : 1,
40454 "description" : "Prune backups. Only those using the standard naming scheme are considered.",
40455 "method" : "DELETE",
40456 "name" : "delete",
40457 "parameters" : {
40458 "additionalProperties" : 0,
40459 "properties" : {
40460 "node" : {
40461 "description" : "The cluster node name.",
40462 "format" : "pve-node",
40463 "type" : "string",
40464 "typetext" : "<string>"
40465 },
40466 "prune-backups" : {
40467 "description" : "Use these retention options instead of those from the storage configuration.",
40468 "format" : "prune-backups",
40469 "optional" : 1,
40470 "type" : "string",
4772952b 40471 "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
40472 },
40473 "storage" : {
40474 "description" : "The storage identifier.",
40475 "format" : "pve-storage-id",
40476 "type" : "string",
40477 "typetext" : "<string>"
40478 },
40479 "type" : {
40480 "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
40481 "enum" : [
40482 "qemu",
40483 "lxc"
40484 ],
40485 "optional" : 1,
40486 "type" : "string"
40487 },
40488 "vmid" : {
40489 "description" : "Only prune backups for this VM.",
40490 "format" : "pve-vmid",
8dd66e12
TL
40491 "maximum" : 999999999,
40492 "minimum" : 100,
739d4d64
TL
40493 "optional" : 1,
40494 "type" : "integer",
8dd66e12 40495 "typetext" : "<integer> (100 - 999999999)"
739d4d64
TL
40496 }
40497 }
40498 },
40499 "permissions" : {
40500 "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).",
40501 "user" : "all"
40502 },
40503 "protected" : 1,
40504 "proxyto" : "node",
40505 "returns" : {
40506 "type" : "string"
40507 }
40508 },
40509 "GET" : {
40510 "allowtoken" : 1,
4772952b 40511 "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
40512 "method" : "GET",
40513 "name" : "dryrun",
40514 "parameters" : {
40515 "additionalProperties" : 0,
40516 "properties" : {
40517 "node" : {
40518 "description" : "The cluster node name.",
40519 "format" : "pve-node",
40520 "type" : "string",
40521 "typetext" : "<string>"
40522 },
40523 "prune-backups" : {
40524 "description" : "Use these retention options instead of those from the storage configuration.",
40525 "format" : "prune-backups",
40526 "optional" : 1,
40527 "type" : "string",
4772952b 40528 "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
40529 },
40530 "storage" : {
40531 "description" : "The storage identifier.",
40532 "format" : "pve-storage-id",
40533 "type" : "string",
40534 "typetext" : "<string>"
40535 },
40536 "type" : {
40537 "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
40538 "enum" : [
40539 "qemu",
40540 "lxc"
40541 ],
40542 "optional" : 1,
40543 "type" : "string"
40544 },
40545 "vmid" : {
40546 "description" : "Only consider backups for this guest.",
40547 "format" : "pve-vmid",
8dd66e12
TL
40548 "maximum" : 999999999,
40549 "minimum" : 100,
739d4d64
TL
40550 "optional" : 1,
40551 "type" : "integer",
8dd66e12 40552 "typetext" : "<integer> (100 - 999999999)"
739d4d64
TL
40553 }
40554 }
40555 },
40556 "permissions" : {
40557 "check" : [
40558 "perm",
40559 "/storage/{storage}",
40560 [
40561 "Datastore.Audit",
40562 "Datastore.AllocateSpace"
40563 ],
40564 "any",
40565 1
40566 ]
40567 },
40568 "protected" : 1,
40569 "proxyto" : "node",
40570 "returns" : {
40571 "items" : {
40572 "properties" : {
40573 "ctime" : {
40574 "description" : "Creation time of the backup (seconds since the UNIX epoch).",
40575 "type" : "integer"
40576 },
40577 "mark" : {
5370fa8c
TL
40578 "description" : "Whether the backup would be kept or removed. Backups that are protected or don't use the standard naming scheme are not removed.",
40579 "enum" : [
40580 "keep",
40581 "remove",
40582 "protected",
40583 "renamed"
40584 ],
739d4d64
TL
40585 "type" : "string"
40586 },
40587 "type" : {
40588 "description" : "One of 'qemu', 'lxc', 'openvz' or 'unknown'.",
40589 "type" : "string"
40590 },
40591 "vmid" : {
40592 "description" : "The VM the backup belongs to.",
40593 "optional" : 1,
40594 "type" : "integer"
40595 },
40596 "volid" : {
40597 "description" : "Backup volume ID.",
40598 "type" : "string"
40599 }
40600 },
40601 "type" : "object"
40602 },
40603 "type" : "array"
40604 }
40605 }
40606 },
40607 "leaf" : 1,
40608 "path" : "/nodes/{node}/storage/{storage}/prunebackups",
40609 "text" : "prunebackups"
40610 },
4d47f125
TL
40611 {
40612 "children" : [
40613 {
40614 "info" : {
40615 "DELETE" : {
e9cd3bd4 40616 "allowtoken" : 1,
4d47f125
TL
40617 "description" : "Delete volume",
40618 "method" : "DELETE",
40619 "name" : "delete",
40620 "parameters" : {
40621 "additionalProperties" : 0,
40622 "properties" : {
1c532546
TL
40623 "delay" : {
40624 "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
40625 "maximum" : 30,
40626 "minimum" : 1,
40627 "optional" : 1,
40628 "type" : "integer",
40629 "typetext" : "<integer> (1 - 30)"
40630 },
4d47f125
TL
40631 "node" : {
40632 "description" : "The cluster node name.",
40633 "format" : "pve-node",
40634 "type" : "string",
40635 "typetext" : "<string>"
40636 },
40637 "storage" : {
40638 "description" : "The storage identifier.",
40639 "format" : "pve-storage-id",
40640 "optional" : 1,
40641 "type" : "string",
40642 "typetext" : "<string>"
40643 },
40644 "volume" : {
40645 "description" : "Volume identifier",
40646 "type" : "string",
40647 "typetext" : "<string>"
40648 }
40649 }
40650 },
40651 "permissions" : {
40652 "description" : "You need 'Datastore.Allocate' privilege on the storage (or 'Datastore.AllocateSpace' for backup volumes if you have VM.Backup privilege on the VM).",
40653 "user" : "all"
40654 },
40655 "protected" : 1,
40656 "proxyto" : "node",
40657 "returns" : {
1c532546
TL
40658 "optional" : 1,
40659 "type" : "string"
4d47f125
TL
40660 }
40661 },
40662 "GET" : {
e9cd3bd4 40663 "allowtoken" : 1,
4d47f125
TL
40664 "description" : "Get volume attributes",
40665 "method" : "GET",
40666 "name" : "info",
40667 "parameters" : {
40668 "additionalProperties" : 0,
40669 "properties" : {
40670 "node" : {
40671 "description" : "The cluster node name.",
40672 "format" : "pve-node",
40673 "type" : "string",
40674 "typetext" : "<string>"
40675 },
40676 "storage" : {
40677 "description" : "The storage identifier.",
40678 "format" : "pve-storage-id",
40679 "optional" : 1,
40680 "type" : "string",
40681 "typetext" : "<string>"
40682 },
40683 "volume" : {
40684 "description" : "Volume identifier",
40685 "type" : "string",
40686 "typetext" : "<string>"
40687 }
40688 }
40689 },
40690 "permissions" : {
40691 "description" : "You need read access for the volume.",
40692 "user" : "all"
40693 },
40694 "protected" : 1,
40695 "proxyto" : "node",
40696 "returns" : {
4772952b
TL
40697 "properties" : {
40698 "format" : {
40699 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
40700 "type" : "string"
40701 },
40702 "notes" : {
40703 "description" : "Optional notes.",
40704 "optional" : 1,
40705 "type" : "string"
40706 },
40707 "path" : {
40708 "description" : "The Path",
40709 "type" : "string"
40710 },
5370fa8c
TL
40711 "protected" : {
40712 "description" : "Protection status. Currently only supported for backups.",
40713 "optional" : 1,
40714 "type" : "boolean"
40715 },
4772952b
TL
40716 "size" : {
40717 "description" : "Volume size in bytes.",
40718 "renderer" : "bytes",
40719 "type" : "integer"
40720 },
40721 "used" : {
40722 "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
40723 "renderer" : "bytes",
40724 "type" : "integer"
40725 }
40726 },
4d47f125
TL
40727 "type" : "object"
40728 }
40729 },
40730 "POST" : {
e9cd3bd4 40731 "allowtoken" : 1,
4d47f125
TL
40732 "description" : "Copy a volume. This is experimental code - do not use.",
40733 "method" : "POST",
40734 "name" : "copy",
40735 "parameters" : {
40736 "additionalProperties" : 0,
40737 "properties" : {
40738 "node" : {
40739 "description" : "The cluster node name.",
40740 "format" : "pve-node",
40741 "type" : "string",
40742 "typetext" : "<string>"
40743 },
40744 "storage" : {
40745 "description" : "The storage identifier.",
40746 "format" : "pve-storage-id",
40747 "optional" : 1,
40748 "type" : "string",
40749 "typetext" : "<string>"
40750 },
40751 "target" : {
40752 "description" : "Target volume identifier",
40753 "type" : "string",
40754 "typetext" : "<string>"
40755 },
40756 "target_node" : {
40757 "description" : "Target node. Default is local node.",
40758 "format" : "pve-node",
40759 "optional" : 1,
40760 "type" : "string",
40761 "typetext" : "<string>"
40762 },
40763 "volume" : {
40764 "description" : "Source volume identifier",
40765 "type" : "string",
40766 "typetext" : "<string>"
40767 }
40768 }
40769 },
40770 "protected" : 1,
40771 "proxyto" : "node",
40772 "returns" : {
40773 "type" : "string"
40774 }
4772952b
TL
40775 },
40776 "PUT" : {
40777 "allowtoken" : 1,
40778 "description" : "Update volume attributes",
40779 "method" : "PUT",
40780 "name" : "updateattributes",
40781 "parameters" : {
40782 "additionalProperties" : 0,
40783 "properties" : {
40784 "node" : {
40785 "description" : "The cluster node name.",
40786 "format" : "pve-node",
40787 "type" : "string",
40788 "typetext" : "<string>"
40789 },
40790 "notes" : {
40791 "description" : "The new notes.",
40792 "optional" : 1,
40793 "type" : "string",
40794 "typetext" : "<string>"
40795 },
5370fa8c
TL
40796 "protected" : {
40797 "description" : "Protection status. Currently only supported for backups.",
40798 "optional" : 1,
40799 "type" : "boolean",
40800 "typetext" : "<boolean>"
40801 },
4772952b
TL
40802 "storage" : {
40803 "description" : "The storage identifier.",
40804 "format" : "pve-storage-id",
40805 "optional" : 1,
40806 "type" : "string",
40807 "typetext" : "<string>"
40808 },
40809 "volume" : {
40810 "description" : "Volume identifier",
40811 "type" : "string",
40812 "typetext" : "<string>"
40813 }
40814 }
40815 },
40816 "permissions" : {
40817 "description" : "You need read access for the volume.",
40818 "user" : "all"
40819 },
40820 "protected" : 1,
40821 "proxyto" : "node",
40822 "returns" : {
40823 "type" : "null"
40824 }
4d47f125
TL
40825 }
40826 },
40827 "leaf" : 1,
40828 "path" : "/nodes/{node}/storage/{storage}/content/{volume}",
40829 "text" : "{volume}"
44660702 40830 }
4d47f125
TL
40831 ],
40832 "info" : {
40833 "GET" : {
e9cd3bd4 40834 "allowtoken" : 1,
4d47f125
TL
40835 "description" : "List storage content.",
40836 "method" : "GET",
40837 "name" : "index",
40838 "parameters" : {
40839 "additionalProperties" : 0,
40840 "properties" : {
40841 "content" : {
40842 "description" : "Only list content of this type.",
40843 "format" : "pve-storage-content",
40844 "optional" : 1,
40845 "type" : "string",
40846 "typetext" : "<string>"
40847 },
40848 "node" : {
40849 "description" : "The cluster node name.",
40850 "format" : "pve-node",
40851 "type" : "string",
40852 "typetext" : "<string>"
40853 },
40854 "storage" : {
40855 "description" : "The storage identifier.",
40856 "format" : "pve-storage-id",
40857 "type" : "string",
40858 "typetext" : "<string>"
40859 },
40860 "vmid" : {
40861 "description" : "Only list images for this VM",
40862 "format" : "pve-vmid",
8dd66e12
TL
40863 "maximum" : 999999999,
40864 "minimum" : 100,
4d47f125
TL
40865 "optional" : 1,
40866 "type" : "integer",
8dd66e12 40867 "typetext" : "<integer> (100 - 999999999)"
4d47f125 40868 }
56122987 40869 }
44660702 40870 },
4d47f125
TL
40871 "permissions" : {
40872 "check" : [
40873 "perm",
40874 "/storage/{storage}",
40875 [
40876 "Datastore.Audit",
40877 "Datastore.AllocateSpace"
40878 ],
40879 "any",
40880 1
40881 ]
7aacca6f 40882 },
4d47f125
TL
40883 "protected" : 1,
40884 "proxyto" : "node",
40885 "returns" : {
40886 "items" : {
40887 "properties" : {
c5aa7e14
TL
40888 "ctime" : {
40889 "description" : "Creation time (seconds since the UNIX Epoch).",
40890 "minimum" : 0,
40891 "optional" : 1,
40892 "type" : "integer"
40893 },
d2656385
TL
40894 "encrypted" : {
40895 "description" : "If whole backup is encrypted, value is the fingerprint or '1' if encrypted. Only useful for the Proxmox Backup Server storage type.",
40896 "optional" : 1,
40897 "type" : "string"
40898 },
4d47f125
TL
40899 "format" : {
40900 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
40901 "type" : "string"
40902 },
4772952b
TL
40903 "notes" : {
40904 "description" : "Optional notes. If they contain multiple lines, only the first one is returned here.",
40905 "optional" : 1,
40906 "type" : "string"
40907 },
4d47f125
TL
40908 "parent" : {
40909 "description" : "Volume identifier of parent (for linked cloned).",
40910 "optional" : 1,
40911 "type" : "string"
40912 },
5370fa8c
TL
40913 "protected" : {
40914 "description" : "Protection status. Currently only supported for backups.",
40915 "optional" : 1,
40916 "type" : "boolean"
40917 },
4d47f125
TL
40918 "size" : {
40919 "description" : "Volume size in bytes.",
40920 "renderer" : "bytes",
40921 "type" : "integer"
40922 },
40923 "used" : {
c5aa7e14 40924 "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
4d47f125
TL
40925 "optional" : 1,
40926 "renderer" : "bytes",
40927 "type" : "integer"
40928 },
4772952b
TL
40929 "verification" : {
40930 "description" : "Last backup verification result, only useful for PBS storages.",
40931 "optional" : 1,
40932 "properties" : {
40933 "state" : {
40934 "description" : "Last backup verification state.",
40935 "type" : "string"
40936 },
40937 "upid" : {
40938 "description" : "Last backup verification UPID.",
40939 "type" : "string"
40940 }
40941 },
40942 "type" : "object"
40943 },
4d47f125
TL
40944 "vmid" : {
40945 "description" : "Associated Owner VMID.",
40946 "optional" : 1,
40947 "type" : "integer"
40948 },
40949 "volid" : {
40950 "description" : "Volume identifier.",
40951 "type" : "string"
40952 }
40953 },
40954 "type" : "object"
44660702 40955 },
4d47f125
TL
40956 "links" : [
40957 {
40958 "href" : "{volid}",
40959 "rel" : "child"
40960 }
40961 ],
40962 "type" : "array"
40963 }
40964 },
40965 "POST" : {
e9cd3bd4 40966 "allowtoken" : 1,
4d47f125
TL
40967 "description" : "Allocate disk images.",
40968 "method" : "POST",
40969 "name" : "create",
40970 "parameters" : {
40971 "additionalProperties" : 0,
40972 "properties" : {
40973 "filename" : {
40974 "description" : "The name of the file to create.",
40975 "type" : "string",
40976 "typetext" : "<string>"
40977 },
40978 "format" : {
40979 "enum" : [
40980 "raw",
40981 "qcow2",
40982 "subvol"
40983 ],
40984 "optional" : 1,
40985 "requires" : "size",
40986 "type" : "string"
40987 },
40988 "node" : {
40989 "description" : "The cluster node name.",
40990 "format" : "pve-node",
40991 "type" : "string",
40992 "typetext" : "<string>"
40993 },
40994 "size" : {
40995 "description" : "Size in kilobyte (1024 bytes). Optional suffixes 'M' (megabyte, 1024K) and 'G' (gigabyte, 1024M)",
40996 "pattern" : "\\d+[MG]?",
40997 "type" : "string"
40998 },
40999 "storage" : {
41000 "description" : "The storage identifier.",
41001 "format" : "pve-storage-id",
41002 "type" : "string",
41003 "typetext" : "<string>"
41004 },
41005 "vmid" : {
41006 "description" : "Specify owner VM",
41007 "format" : "pve-vmid",
8dd66e12
TL
41008 "maximum" : 999999999,
41009 "minimum" : 100,
4d47f125 41010 "type" : "integer",
8dd66e12 41011 "typetext" : "<integer> (100 - 999999999)"
4d47f125 41012 }
44660702
DM
41013 }
41014 },
4d47f125
TL
41015 "permissions" : {
41016 "check" : [
41017 "perm",
41018 "/storage/{storage}",
41019 [
41020 "Datastore.AllocateSpace"
41021 ]
41022 ]
27a7acb2 41023 },
4d47f125
TL
41024 "protected" : 1,
41025 "proxyto" : "node",
41026 "returns" : {
41027 "description" : "Volume identifier",
41028 "type" : "string"
27a7acb2
DM
41029 }
41030 }
41031 },
4d47f125
TL
41032 "leaf" : 0,
41033 "path" : "/nodes/{node}/storage/{storage}/content",
41034 "text" : "content"
41035 },
d2656385
TL
41036 {
41037 "children" : [
41038 {
41039 "info" : {
41040 "GET" : {
41041 "allowtoken" : 1,
41042 "description" : "List files and directories for single file restore under the given path.",
41043 "method" : "GET",
41044 "name" : "list",
41045 "parameters" : {
41046 "additionalProperties" : 0,
41047 "properties" : {
41048 "filepath" : {
41049 "description" : "base64-path to the directory or file being listed, or \"/\".",
41050 "type" : "string",
41051 "typetext" : "<string>"
41052 },
41053 "node" : {
41054 "description" : "The cluster node name.",
41055 "format" : "pve-node",
41056 "type" : "string",
41057 "typetext" : "<string>"
41058 },
41059 "storage" : {
41060 "description" : "The storage identifier.",
41061 "format" : "pve-storage-id",
41062 "type" : "string",
41063 "typetext" : "<string>"
41064 },
41065 "volume" : {
41066 "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
41067 "type" : "string",
41068 "typetext" : "<string>"
41069 }
41070 }
41071 },
41072 "permissions" : {
41073 "description" : "You need read access for the volume.",
41074 "user" : "all"
41075 },
41076 "protected" : 1,
41077 "proxyto" : "node",
41078 "returns" : {
41079 "items" : {
41080 "properties" : {
41081 "filepath" : {
41082 "description" : "base64 path of the current entry",
41083 "type" : "string"
41084 },
41085 "leaf" : {
41086 "description" : "If this entry is a leaf in the directory graph.",
41087 "type" : "boolean"
41088 },
41089 "mtime" : {
41090 "description" : "Entry last-modified time (unix timestamp).",
41091 "optional" : 1,
41092 "type" : "integer"
41093 },
41094 "size" : {
41095 "description" : "Entry file size.",
41096 "optional" : 1,
41097 "type" : "integer"
41098 },
41099 "text" : {
41100 "description" : "Entry display text.",
41101 "type" : "string"
41102 },
41103 "type" : {
41104 "description" : "Entry type.",
41105 "type" : "string"
41106 }
41107 },
41108 "type" : "object"
41109 },
41110 "type" : "array"
41111 }
41112 }
41113 },
41114 "leaf" : 1,
41115 "path" : "/nodes/{node}/storage/{storage}/file-restore/list",
41116 "text" : "list"
41117 },
41118 {
41119 "info" : {
41120 "GET" : {
41121 "allowtoken" : 1,
41122 "description" : "Extract a file or directory (as zip archive) from a PBS backup.",
41123 "method" : "GET",
41124 "name" : "download",
41125 "parameters" : {
41126 "additionalProperties" : 0,
41127 "properties" : {
41128 "filepath" : {
41129 "description" : "base64-path to the directory or file to download.",
41130 "type" : "string",
41131 "typetext" : "<string>"
41132 },
41133 "node" : {
41134 "description" : "The cluster node name.",
41135 "format" : "pve-node",
41136 "type" : "string",
41137 "typetext" : "<string>"
41138 },
41139 "storage" : {
41140 "description" : "The storage identifier.",
41141 "format" : "pve-storage-id",
41142 "type" : "string",
41143 "typetext" : "<string>"
41144 },
41145 "volume" : {
41146 "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
41147 "type" : "string",
41148 "typetext" : "<string>"
41149 }
41150 }
41151 },
41152 "permissions" : {
41153 "description" : "You need read access for the volume.",
41154 "user" : "all"
41155 },
41156 "protected" : 1,
41157 "proxyto" : "node",
41158 "returns" : {
41159 "type" : "any"
41160 }
41161 }
41162 },
41163 "leaf" : 1,
41164 "path" : "/nodes/{node}/storage/{storage}/file-restore/download",
41165 "text" : "download"
41166 }
41167 ],
41168 "leaf" : 0,
41169 "path" : "/nodes/{node}/storage/{storage}/file-restore",
41170 "text" : "file-restore"
41171 },
4d47f125
TL
41172 {
41173 "info" : {
41174 "GET" : {
e9cd3bd4 41175 "allowtoken" : 1,
4d47f125
TL
41176 "description" : "Read storage status.",
41177 "method" : "GET",
41178 "name" : "read_status",
41179 "parameters" : {
41180 "additionalProperties" : 0,
41181 "properties" : {
41182 "node" : {
41183 "description" : "The cluster node name.",
41184 "format" : "pve-node",
41185 "type" : "string",
41186 "typetext" : "<string>"
41187 },
41188 "storage" : {
41189 "description" : "The storage identifier.",
41190 "format" : "pve-storage-id",
41191 "type" : "string",
41192 "typetext" : "<string>"
41193 }
27a7acb2
DM
41194 }
41195 },
4d47f125
TL
41196 "permissions" : {
41197 "check" : [
41198 "perm",
41199 "/storage/{storage}",
41200 [
41201 "Datastore.Audit",
41202 "Datastore.AllocateSpace"
41203 ],
41204 "any",
41205 1
41206 ]
7aacca6f 41207 },
4d47f125
TL
41208 "protected" : 1,
41209 "proxyto" : "node",
41210 "returns" : {
41211 "type" : "object"
56122987 41212 }
44660702
DM
41213 }
41214 },
4d47f125
TL
41215 "leaf" : 1,
41216 "path" : "/nodes/{node}/storage/{storage}/status",
41217 "text" : "status"
41218 },
41219 {
41220 "info" : {
41221 "GET" : {
e9cd3bd4 41222 "allowtoken" : 1,
4d47f125
TL
41223 "description" : "Read storage RRD statistics (returns PNG).",
41224 "method" : "GET",
41225 "name" : "rrd",
41226 "parameters" : {
41227 "additionalProperties" : 0,
41228 "properties" : {
41229 "cf" : {
41230 "description" : "The RRD consolidation function",
41231 "enum" : [
41232 "AVERAGE",
41233 "MAX"
41234 ],
41235 "optional" : 1,
41236 "type" : "string"
41237 },
41238 "ds" : {
41239 "description" : "The list of datasources you want to display.",
41240 "format" : "pve-configid-list",
41241 "type" : "string",
41242 "typetext" : "<string>"
41243 },
41244 "node" : {
41245 "description" : "The cluster node name.",
41246 "format" : "pve-node",
41247 "type" : "string",
41248 "typetext" : "<string>"
41249 },
41250 "storage" : {
41251 "description" : "The storage identifier.",
41252 "format" : "pve-storage-id",
41253 "type" : "string",
41254 "typetext" : "<string>"
41255 },
41256 "timeframe" : {
41257 "description" : "Specify the time frame you are interested in.",
41258 "enum" : [
41259 "hour",
41260 "day",
41261 "week",
41262 "month",
41263 "year"
41264 ],
41265 "type" : "string"
41266 }
44660702
DM
41267 }
41268 },
4d47f125
TL
41269 "permissions" : {
41270 "check" : [
41271 "perm",
41272 "/storage/{storage}",
41273 [
41274 "Datastore.Audit",
41275 "Datastore.AllocateSpace"
41276 ],
41277 "any",
41278 1
41279 ]
41280 },
41281 "protected" : 1,
41282 "proxyto" : "node",
41283 "returns" : {
41284 "properties" : {
41285 "filename" : {
41286 "type" : "string"
41287 }
41288 },
41289 "type" : "object"
44660702
DM
41290 }
41291 }
41292 },
4d47f125
TL
41293 "leaf" : 1,
41294 "path" : "/nodes/{node}/storage/{storage}/rrd",
41295 "text" : "rrd"
41296 },
41297 {
41298 "info" : {
41299 "GET" : {
e9cd3bd4 41300 "allowtoken" : 1,
4d47f125
TL
41301 "description" : "Read storage RRD statistics.",
41302 "method" : "GET",
41303 "name" : "rrddata",
41304 "parameters" : {
41305 "additionalProperties" : 0,
41306 "properties" : {
41307 "cf" : {
41308 "description" : "The RRD consolidation function",
41309 "enum" : [
41310 "AVERAGE",
41311 "MAX"
41312 ],
41313 "optional" : 1,
41314 "type" : "string"
41315 },
41316 "node" : {
41317 "description" : "The cluster node name.",
41318 "format" : "pve-node",
41319 "type" : "string",
41320 "typetext" : "<string>"
41321 },
41322 "storage" : {
41323 "description" : "The storage identifier.",
41324 "format" : "pve-storage-id",
41325 "type" : "string",
41326 "typetext" : "<string>"
41327 },
41328 "timeframe" : {
41329 "description" : "Specify the time frame you are interested in.",
41330 "enum" : [
41331 "hour",
41332 "day",
41333 "week",
41334 "month",
41335 "year"
41336 ],
41337 "type" : "string"
41338 }
56122987
DM
41339 }
41340 },
4d47f125
TL
41341 "permissions" : {
41342 "check" : [
41343 "perm",
41344 "/storage/{storage}",
41345 [
41346 "Datastore.Audit",
41347 "Datastore.AllocateSpace"
41348 ],
41349 "any",
41350 1
41351 ]
41352 },
41353 "protected" : 1,
41354 "proxyto" : "node",
41355 "returns" : {
41356 "items" : {
41357 "properties" : {},
41358 "type" : "object"
41359 },
41360 "type" : "array"
56122987 41361 }
7aacca6f 41362 }
56122987 41363 },
4d47f125
TL
41364 "leaf" : 1,
41365 "path" : "/nodes/{node}/storage/{storage}/rrddata",
41366 "text" : "rrddata"
41367 },
41368 {
41369 "info" : {
41370 "POST" : {
e9cd3bd4 41371 "allowtoken" : 1,
4d47f125
TL
41372 "description" : "Upload templates and ISO images.",
41373 "method" : "POST",
41374 "name" : "upload",
41375 "parameters" : {
41376 "additionalProperties" : 0,
41377 "properties" : {
5370fa8c
TL
41378 "checksum" : {
41379 "description" : "The expected checksum of the file.",
41380 "optional" : 1,
41381 "requires" : "checksum-algorithm",
41382 "type" : "string",
41383 "typetext" : "<string>"
41384 },
41385 "checksum-algorithm" : {
41386 "description" : "The algorithm to calculate the checksum of the file.",
41387 "enum" : [
41388 "md5",
41389 "sha1",
41390 "sha224",
41391 "sha256",
41392 "sha384",
41393 "sha512"
41394 ],
41395 "optional" : 1,
41396 "requires" : "checksum",
41397 "type" : "string"
41398 },
4d47f125
TL
41399 "content" : {
41400 "description" : "Content type.",
5370fa8c
TL
41401 "enum" : [
41402 "iso",
41403 "vztmpl"
41404 ],
4d47f125 41405 "format" : "pve-storage-content",
5370fa8c 41406 "type" : "string"
4d47f125
TL
41407 },
41408 "filename" : {
5370fa8c
TL
41409 "description" : "The name of the file to create. Caution: This will be normalized!",
41410 "maxLength" : 255,
4d47f125
TL
41411 "type" : "string",
41412 "typetext" : "<string>"
41413 },
41414 "node" : {
41415 "description" : "The cluster node name.",
41416 "format" : "pve-node",
41417 "type" : "string",
41418 "typetext" : "<string>"
41419 },
41420 "storage" : {
41421 "description" : "The storage identifier.",
41422 "format" : "pve-storage-id",
41423 "type" : "string",
41424 "typetext" : "<string>"
41425 },
41426 "tmpfilename" : {
1e3f8156 41427 "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 41428 "optional" : 1,
4a407cfd
TL
41429 "pattern" : "/var/tmp/pveupload-[0-9a-f]+",
41430 "type" : "string"
4d47f125 41431 }
44660702
DM
41432 }
41433 },
4d47f125
TL
41434 "permissions" : {
41435 "check" : [
41436 "perm",
41437 "/storage/{storage}",
41438 [
41439 "Datastore.AllocateTemplate"
41440 ]
41441 ]
56122987 41442 },
4d47f125
TL
41443 "protected" : 1,
41444 "returns" : {
44660702 41445 "type" : "string"
56122987 41446 }
44660702 41447 }
56122987 41448 },
4d47f125
TL
41449 "leaf" : 1,
41450 "path" : "/nodes/{node}/storage/{storage}/upload",
41451 "text" : "upload"
34f3e481
TL
41452 },
41453 {
41454 "info" : {
41455 "POST" : {
41456 "allowtoken" : 1,
41457 "description" : "Download templates and ISO images by using an URL.",
41458 "method" : "POST",
41459 "name" : "download_url",
41460 "parameters" : {
41461 "additionalProperties" : 0,
41462 "properties" : {
41463 "checksum" : {
41464 "description" : "The expected checksum of the file.",
41465 "optional" : 1,
41466 "requires" : "checksum-algorithm",
41467 "type" : "string",
41468 "typetext" : "<string>"
41469 },
41470 "checksum-algorithm" : {
41471 "description" : "The algorithm to calculate the checksum of the file.",
41472 "enum" : [
41473 "md5",
41474 "sha1",
41475 "sha224",
41476 "sha256",
41477 "sha384",
41478 "sha512"
41479 ],
41480 "optional" : 1,
41481 "requires" : "checksum",
41482 "type" : "string"
41483 },
41484 "content" : {
41485 "description" : "Content type.",
41486 "enum" : [
41487 "iso",
41488 "vztmpl"
41489 ],
41490 "format" : "pve-storage-content",
41491 "type" : "string"
41492 },
41493 "filename" : {
41494 "description" : "The name of the file to create. Caution: This will be normalized!",
41495 "maxLength" : 255,
41496 "type" : "string",
41497 "typetext" : "<string>"
41498 },
41499 "node" : {
41500 "description" : "The cluster node name.",
41501 "format" : "pve-node",
41502 "type" : "string",
41503 "typetext" : "<string>"
41504 },
41505 "storage" : {
41506 "description" : "The storage identifier.",
41507 "format" : "pve-storage-id",
41508 "type" : "string",
41509 "typetext" : "<string>"
41510 },
41511 "url" : {
41512 "description" : "The URL to download the file from.",
41513 "pattern" : "https?://.*",
41514 "type" : "string"
41515 },
41516 "verify-certificates" : {
41517 "default" : 1,
41518 "description" : "If false, no SSL/TLS certificates will be verified.",
41519 "optional" : 1,
41520 "type" : "boolean",
41521 "typetext" : "<boolean>"
41522 }
41523 }
41524 },
41525 "permissions" : {
41526 "check" : [
41527 "and",
41528 [
41529 "perm",
41530 "/storage/{storage}",
41531 [
41532 "Datastore.AllocateTemplate"
41533 ]
41534 ],
41535 [
41536 "perm",
41537 "/",
41538 [
41539 "Sys.Audit",
41540 "Sys.Modify"
41541 ]
41542 ]
41543 ]
41544 },
41545 "protected" : 1,
41546 "proxyto" : "node",
41547 "returns" : {
41548 "type" : "string"
41549 }
41550 }
41551 },
41552 "leaf" : 1,
41553 "path" : "/nodes/{node}/storage/{storage}/download-url",
41554 "text" : "download-url"
56122987 41555 }
4d47f125 41556 ],
56122987
DM
41557 "info" : {
41558 "GET" : {
e9cd3bd4 41559 "allowtoken" : 1,
4d47f125 41560 "description" : "",
44660702 41561 "method" : "GET",
4d47f125 41562 "name" : "diridx",
44660702
DM
41563 "parameters" : {
41564 "additionalProperties" : 0,
41565 "properties" : {
41566 "node" : {
41567 "description" : "The cluster node name.",
41568 "format" : "pve-node",
013dc89f
DM
41569 "type" : "string",
41570 "typetext" : "<string>"
4d47f125
TL
41571 },
41572 "storage" : {
41573 "description" : "The storage identifier.",
41574 "format" : "pve-storage-id",
41575 "type" : "string",
41576 "typetext" : "<string>"
44660702
DM
41577 }
41578 }
41579 },
7aacca6f
DM
41580 "permissions" : {
41581 "check" : [
41582 "perm",
4d47f125 41583 "/storage/{storage}",
7aacca6f 41584 [
4d47f125
TL
41585 "Datastore.Audit",
41586 "Datastore.AllocateSpace"
41587 ],
41588 "any",
41589 1
7aacca6f
DM
41590 ]
41591 },
56122987
DM
41592 "returns" : {
41593 "items" : {
41594 "properties" : {
4d47f125 41595 "subdir" : {
44660702 41596 "type" : "string"
56122987
DM
41597 }
41598 },
41599 "type" : "object"
7aacca6f 41600 },
4d47f125
TL
41601 "links" : [
41602 {
41603 "href" : "{subdir}",
41604 "rel" : "child"
41605 }
41606 ],
7aacca6f 41607 "type" : "array"
44660702
DM
41608 }
41609 }
41610 },
4d47f125
TL
41611 "leaf" : 0,
41612 "path" : "/nodes/{node}/storage/{storage}",
41613 "text" : "{storage}"
44660702
DM
41614 }
41615 ],
41616 "info" : {
41617 "GET" : {
e9cd3bd4 41618 "allowtoken" : 1,
4d47f125 41619 "description" : "Get status for all datastores.",
44660702
DM
41620 "method" : "GET",
41621 "name" : "index",
41622 "parameters" : {
41623 "additionalProperties" : 0,
41624 "properties" : {
4d47f125
TL
41625 "content" : {
41626 "description" : "Only list stores which support this content type.",
41627 "format" : "pve-storage-content-list",
41628 "optional" : 1,
41629 "type" : "string",
41630 "typetext" : "<string>"
41631 },
41632 "enabled" : {
41633 "default" : 0,
41634 "description" : "Only list stores which are enabled (not disabled in config).",
41635 "optional" : 1,
41636 "type" : "boolean",
41637 "typetext" : "<boolean>"
41638 },
41639 "format" : {
41640 "default" : 0,
41641 "description" : "Include information about formats",
41642 "optional" : 1,
41643 "type" : "boolean",
41644 "typetext" : "<boolean>"
41645 },
44660702
DM
41646 "node" : {
41647 "description" : "The cluster node name.",
41648 "format" : "pve-node",
013dc89f
DM
41649 "type" : "string",
41650 "typetext" : "<string>"
4d47f125
TL
41651 },
41652 "storage" : {
41653 "description" : "Only list status for specified storage",
41654 "format" : "pve-storage-id",
41655 "optional" : 1,
41656 "type" : "string",
41657 "typetext" : "<string>"
41658 },
41659 "target" : {
41660 "description" : "If target is different to 'node', we only lists shared storages which content is accessible on this 'node' and the specified 'target' node.",
41661 "format" : "pve-node",
41662 "optional" : 1,
41663 "type" : "string",
41664 "typetext" : "<string>"
44660702
DM
41665 }
41666 }
41667 },
4d47f125
TL
41668 "permissions" : {
41669 "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
41670 "user" : "all"
41671 },
41672 "protected" : 1,
41673 "proxyto" : "node",
41674 "returns" : {
41675 "items" : {
41676 "properties" : {
41677 "active" : {
41678 "description" : "Set when storage is accessible.",
41679 "optional" : 1,
41680 "type" : "boolean"
41681 },
41682 "avail" : {
41683 "description" : "Available storage space in bytes.",
41684 "optional" : 1,
41685 "renderer" : "bytes",
41686 "type" : "integer"
41687 },
41688 "content" : {
41689 "description" : "Allowed storage content types.",
41690 "format" : "pve-storage-content-list",
41691 "type" : "string"
41692 },
41693 "enabled" : {
41694 "description" : "Set when storage is enabled (not disabled).",
41695 "optional" : 1,
41696 "type" : "boolean"
41697 },
41698 "shared" : {
41699 "description" : "Shared flag from storage configuration.",
41700 "optional" : 1,
41701 "type" : "boolean"
41702 },
41703 "storage" : {
41704 "description" : "The storage identifier.",
41705 "format" : "pve-storage-id",
41706 "type" : "string"
41707 },
41708 "total" : {
41709 "description" : "Total storage space in bytes.",
41710 "optional" : 1,
41711 "renderer" : "bytes",
41712 "type" : "integer"
41713 },
41714 "type" : {
41715 "description" : "Storage type.",
41716 "type" : "string"
41717 },
41718 "used" : {
41719 "description" : "Used storage space in bytes.",
41720 "optional" : 1,
41721 "renderer" : "bytes",
41722 "type" : "integer"
41723 },
41724 "used_fraction" : {
41725 "description" : "Used fraction (used/total).",
41726 "optional" : 1,
41727 "renderer" : "fraction_as_percentage",
41728 "type" : "number"
7aacca6f 41729 }
4d47f125
TL
41730 },
41731 "type" : "object"
41732 },
41733 "links" : [
41734 {
41735 "href" : "{storage}",
41736 "rel" : "child"
41737 }
41738 ],
41739 "type" : "array"
41740 }
41741 }
41742 },
41743 "leaf" : 0,
41744 "path" : "/nodes/{node}/storage",
41745 "text" : "storage"
41746 },
41747 {
41748 "children" : [
41749 {
5370fa8c
TL
41750 "children" : [
41751 {
41752 "info" : {
41753 "DELETE" : {
41754 "allowtoken" : 1,
41755 "description" : "Remove an LVM Volume Group.",
41756 "method" : "DELETE",
41757 "name" : "delete",
41758 "parameters" : {
41759 "additionalProperties" : 0,
41760 "properties" : {
41761 "cleanup-config" : {
41762 "default" : 0,
41763 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
41764 "optional" : 1,
41765 "type" : "boolean",
41766 "typetext" : "<boolean>"
41767 },
41768 "cleanup-disks" : {
41769 "default" : 0,
41770 "description" : "Also wipe disks so they can be repurposed afterwards.",
41771 "optional" : 1,
41772 "type" : "boolean",
41773 "typetext" : "<boolean>"
41774 },
41775 "name" : {
41776 "description" : "The storage identifier.",
41777 "format" : "pve-storage-id",
41778 "type" : "string",
41779 "typetext" : "<string>"
41780 },
41781 "node" : {
41782 "description" : "The cluster node name.",
41783 "format" : "pve-node",
41784 "type" : "string",
41785 "typetext" : "<string>"
41786 }
41787 }
41788 },
41789 "permissions" : {
41790 "check" : [
41791 "perm",
41792 "/",
41793 [
499c9b7f 41794 "Sys.Modify"
5370fa8c 41795 ]
499c9b7f
TL
41796 ],
41797 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
5370fa8c
TL
41798 },
41799 "protected" : 1,
41800 "proxyto" : "node",
41801 "returns" : {
41802 "type" : "string"
41803 }
41804 }
41805 },
41806 "leaf" : 1,
41807 "path" : "/nodes/{node}/disks/lvm/{name}",
41808 "text" : "{name}"
41809 }
41810 ],
4d47f125
TL
41811 "info" : {
41812 "GET" : {
e9cd3bd4 41813 "allowtoken" : 1,
4d47f125
TL
41814 "description" : "List LVM Volume Groups",
41815 "method" : "GET",
41816 "name" : "index",
41817 "parameters" : {
41818 "additionalProperties" : 0,
41819 "properties" : {
41820 "node" : {
41821 "description" : "The cluster node name.",
41822 "format" : "pve-node",
41823 "type" : "string",
41824 "typetext" : "<string>"
41825 }
41826 }
41827 },
41828 "permissions" : {
41829 "check" : [
41830 "perm",
41831 "/",
41832 [
8dd66e12
TL
41833 "Sys.Audit"
41834 ]
4d47f125
TL
41835 ]
41836 },
41837 "protected" : 1,
41838 "proxyto" : "node",
41839 "returns" : {
41840 "properties" : {
41841 "children" : {
44660702
DM
41842 "items" : {
41843 "properties" : {
4d47f125
TL
41844 "children" : {
41845 "description" : "The underlying physical volumes",
41846 "items" : {
41847 "properties" : {
41848 "free" : {
41849 "description" : "The free bytes in the physical volume",
41850 "type" : "integer"
41851 },
41852 "leaf" : {
41853 "type" : "boolean"
41854 },
41855 "name" : {
41856 "description" : "The name of the physical volume",
41857 "type" : "string"
41858 },
41859 "size" : {
41860 "description" : "The size of the physical volume in bytes",
41861 "type" : "integer"
41862 }
41863 },
41864 "type" : "object"
41865 },
41866 "optional" : 1,
41867 "type" : "array"
41868 },
41869 "free" : {
41870 "description" : "The free bytes in the volume group",
41871 "type" : "integer"
41872 },
41873 "leaf" : {
41874 "type" : "boolean"
41875 },
41876 "name" : {
41877 "description" : "The name of the volume group",
44660702 41878 "type" : "string"
4d47f125
TL
41879 },
41880 "size" : {
41881 "description" : "The size of the volume group in bytes",
41882 "type" : "integer"
44660702
DM
41883 }
41884 },
41885 "type" : "object"
41886 },
44660702 41887 "type" : "array"
4d47f125
TL
41888 },
41889 "leaf" : {
41890 "type" : "boolean"
44660702
DM
41891 }
41892 },
4d47f125
TL
41893 "type" : "object"
41894 }
41895 },
41896 "POST" : {
e9cd3bd4 41897 "allowtoken" : 1,
4d47f125
TL
41898 "description" : "Create an LVM Volume Group",
41899 "method" : "POST",
41900 "name" : "create",
41901 "parameters" : {
41902 "additionalProperties" : 0,
41903 "properties" : {
41904 "add_storage" : {
41905 "default" : 0,
41906 "description" : "Configure storage using the Volume Group",
41907 "optional" : 1,
41908 "type" : "boolean",
41909 "typetext" : "<boolean>"
44660702 41910 },
4d47f125
TL
41911 "device" : {
41912 "description" : "The block device you want to create the volume group on",
41913 "type" : "string",
41914 "typetext" : "<string>"
44660702 41915 },
4d47f125
TL
41916 "name" : {
41917 "description" : "The storage identifier.",
41918 "format" : "pve-storage-id",
41919 "type" : "string",
41920 "typetext" : "<string>"
41921 },
41922 "node" : {
41923 "description" : "The cluster node name.",
41924 "format" : "pve-node",
41925 "type" : "string",
41926 "typetext" : "<string>"
41927 }
41928 }
41929 },
41930 "permissions" : {
41931 "check" : [
41932 "perm",
41933 "/",
41934 [
499c9b7f 41935 "Sys.Modify"
4d47f125 41936 ]
499c9b7f
TL
41937 ],
41938 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
4d47f125
TL
41939 },
41940 "protected" : 1,
41941 "proxyto" : "node",
41942 "returns" : {
41943 "type" : "string"
41944 }
41945 }
41946 },
5370fa8c 41947 "leaf" : 0,
4d47f125
TL
41948 "path" : "/nodes/{node}/disks/lvm",
41949 "text" : "lvm"
41950 },
41951 {
5370fa8c
TL
41952 "children" : [
41953 {
41954 "info" : {
41955 "DELETE" : {
41956 "allowtoken" : 1,
41957 "description" : "Remove an LVM thin pool.",
41958 "method" : "DELETE",
41959 "name" : "delete",
41960 "parameters" : {
41961 "additionalProperties" : 0,
41962 "properties" : {
41963 "cleanup-config" : {
41964 "default" : 0,
41965 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
41966 "optional" : 1,
41967 "type" : "boolean",
41968 "typetext" : "<boolean>"
41969 },
41970 "cleanup-disks" : {
41971 "default" : 0,
41972 "description" : "Also wipe disks so they can be repurposed afterwards.",
41973 "optional" : 1,
41974 "type" : "boolean",
41975 "typetext" : "<boolean>"
41976 },
41977 "name" : {
41978 "description" : "The storage identifier.",
41979 "format" : "pve-storage-id",
41980 "type" : "string",
41981 "typetext" : "<string>"
41982 },
41983 "node" : {
41984 "description" : "The cluster node name.",
41985 "format" : "pve-node",
41986 "type" : "string",
41987 "typetext" : "<string>"
41988 },
41989 "volume-group" : {
41990 "description" : "The storage identifier.",
41991 "format" : "pve-storage-id",
41992 "type" : "string",
41993 "typetext" : "<string>"
41994 }
41995 }
41996 },
41997 "permissions" : {
41998 "check" : [
41999 "perm",
42000 "/",
42001 [
499c9b7f 42002 "Sys.Modify"
5370fa8c 42003 ]
499c9b7f
TL
42004 ],
42005 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
5370fa8c
TL
42006 },
42007 "protected" : 1,
42008 "proxyto" : "node",
42009 "returns" : {
42010 "type" : "string"
42011 }
42012 }
42013 },
42014 "leaf" : 1,
42015 "path" : "/nodes/{node}/disks/lvmthin/{name}",
42016 "text" : "{name}"
42017 }
42018 ],
4d47f125
TL
42019 "info" : {
42020 "GET" : {
e9cd3bd4 42021 "allowtoken" : 1,
4d47f125
TL
42022 "description" : "List LVM thinpools",
42023 "method" : "GET",
42024 "name" : "index",
42025 "parameters" : {
42026 "additionalProperties" : 0,
42027 "properties" : {
42028 "node" : {
42029 "description" : "The cluster node name.",
42030 "format" : "pve-node",
42031 "type" : "string",
42032 "typetext" : "<string>"
44660702
DM
42033 }
42034 }
42035 },
4d47f125
TL
42036 "permissions" : {
42037 "check" : [
42038 "perm",
42039 "/",
42040 [
8dd66e12
TL
42041 "Sys.Audit"
42042 ]
4d47f125
TL
42043 ]
42044 },
42045 "protected" : 1,
42046 "proxyto" : "node",
42047 "returns" : {
42048 "items" : {
42049 "properties" : {
42050 "lv" : {
42051 "description" : "The name of the thinpool.",
42052 "type" : "string"
42053 },
42054 "lv_size" : {
42055 "description" : "The size of the thinpool in bytes.",
42056 "type" : "integer"
42057 },
42058 "metadata_size" : {
42059 "description" : "The size of the metadata lv in bytes.",
42060 "type" : "integer"
42061 },
42062 "metadata_used" : {
42063 "description" : "The used bytes of the metadata lv.",
42064 "type" : "integer"
42065 },
42066 "used" : {
42067 "description" : "The used bytes of the thinpool.",
42068 "type" : "integer"
5370fa8c
TL
42069 },
42070 "vg" : {
42071 "description" : "The associated volume group.",
42072 "type" : "string"
44660702
DM
42073 }
42074 },
4d47f125
TL
42075 "type" : "object"
42076 },
42077 "type" : "array"
42078 }
42079 },
42080 "POST" : {
e9cd3bd4 42081 "allowtoken" : 1,
4d47f125
TL
42082 "description" : "Create an LVM thinpool",
42083 "method" : "POST",
42084 "name" : "create",
42085 "parameters" : {
42086 "additionalProperties" : 0,
42087 "properties" : {
42088 "add_storage" : {
42089 "default" : 0,
42090 "description" : "Configure storage using the thinpool.",
42091 "optional" : 1,
42092 "type" : "boolean",
42093 "typetext" : "<boolean>"
56122987 42094 },
4d47f125
TL
42095 "device" : {
42096 "description" : "The block device you want to create the thinpool on.",
42097 "type" : "string",
42098 "typetext" : "<string>"
42099 },
42100 "name" : {
42101 "description" : "The storage identifier.",
42102 "format" : "pve-storage-id",
42103 "type" : "string",
42104 "typetext" : "<string>"
42105 },
42106 "node" : {
42107 "description" : "The cluster node name.",
42108 "format" : "pve-node",
42109 "type" : "string",
42110 "typetext" : "<string>"
44660702 42111 }
56122987
DM
42112 }
42113 },
4d47f125
TL
42114 "permissions" : {
42115 "check" : [
42116 "perm",
42117 "/",
42118 [
499c9b7f 42119 "Sys.Modify"
4d47f125 42120 ]
499c9b7f
TL
42121 ],
42122 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
4d47f125
TL
42123 },
42124 "protected" : 1,
42125 "proxyto" : "node",
42126 "returns" : {
42127 "type" : "string"
42128 }
42129 }
42130 },
5370fa8c 42131 "leaf" : 0,
4d47f125
TL
42132 "path" : "/nodes/{node}/disks/lvmthin",
42133 "text" : "lvmthin"
42134 },
42135 {
5370fa8c
TL
42136 "children" : [
42137 {
42138 "info" : {
42139 "DELETE" : {
42140 "allowtoken" : 1,
42141 "description" : "Unmounts the storage and removes the mount unit.",
42142 "method" : "DELETE",
42143 "name" : "delete",
42144 "parameters" : {
42145 "additionalProperties" : 0,
42146 "properties" : {
42147 "cleanup-config" : {
42148 "default" : 0,
42149 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
42150 "optional" : 1,
42151 "type" : "boolean",
42152 "typetext" : "<boolean>"
42153 },
42154 "cleanup-disks" : {
42155 "default" : 0,
42156 "description" : "Also wipe disk so it can be repurposed afterwards.",
42157 "optional" : 1,
42158 "type" : "boolean",
42159 "typetext" : "<boolean>"
42160 },
42161 "name" : {
42162 "description" : "The storage identifier.",
42163 "format" : "pve-storage-id",
42164 "type" : "string",
42165 "typetext" : "<string>"
42166 },
42167 "node" : {
42168 "description" : "The cluster node name.",
42169 "format" : "pve-node",
42170 "type" : "string",
42171 "typetext" : "<string>"
42172 }
42173 }
42174 },
42175 "permissions" : {
42176 "check" : [
42177 "perm",
42178 "/",
42179 [
499c9b7f 42180 "Sys.Modify"
5370fa8c 42181 ]
499c9b7f
TL
42182 ],
42183 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
5370fa8c
TL
42184 },
42185 "protected" : 1,
42186 "proxyto" : "node",
42187 "returns" : {
42188 "type" : "string"
42189 }
42190 }
42191 },
42192 "leaf" : 1,
42193 "path" : "/nodes/{node}/disks/directory/{name}",
42194 "text" : "{name}"
42195 }
42196 ],
4d47f125
TL
42197 "info" : {
42198 "GET" : {
e9cd3bd4 42199 "allowtoken" : 1,
4d47f125
TL
42200 "description" : "PVE Managed Directory storages.",
42201 "method" : "GET",
42202 "name" : "index",
42203 "parameters" : {
42204 "additionalProperties" : 0,
42205 "properties" : {
42206 "node" : {
42207 "description" : "The cluster node name.",
42208 "format" : "pve-node",
42209 "type" : "string",
42210 "typetext" : "<string>"
42211 }
42212 }
42213 },
42214 "permissions" : {
42215 "check" : [
42216 "perm",
42217 "/",
42218 [
8dd66e12
TL
42219 "Sys.Audit"
42220 ]
4d47f125
TL
42221 ]
42222 },
42223 "protected" : 1,
42224 "proxyto" : "node",
42225 "returns" : {
42226 "items" : {
42227 "properties" : {
42228 "device" : {
42229 "description" : "The mounted device.",
42230 "type" : "string"
42231 },
42232 "options" : {
42233 "description" : "The mount options.",
42234 "type" : "string"
42235 },
42236 "path" : {
42237 "description" : "The mount path.",
42238 "type" : "string"
42239 },
42240 "type" : {
42241 "description" : "The filesystem type.",
42242 "type" : "string"
42243 },
42244 "unitfile" : {
42245 "description" : "The path of the mount unit.",
42246 "type" : "string"
44660702 42247 }
56122987 42248 },
4d47f125
TL
42249 "type" : "object"
42250 },
42251 "type" : "array"
42252 }
42253 },
42254 "POST" : {
e9cd3bd4 42255 "allowtoken" : 1,
4d47f125
TL
42256 "description" : "Create a Filesystem on an unused disk. Will be mounted under '/mnt/pve/NAME'.",
42257 "method" : "POST",
42258 "name" : "create",
42259 "parameters" : {
42260 "additionalProperties" : 0,
42261 "properties" : {
42262 "add_storage" : {
42263 "default" : 0,
42264 "description" : "Configure storage using the directory.",
42265 "optional" : 1,
42266 "type" : "boolean",
42267 "typetext" : "<boolean>"
42268 },
42269 "device" : {
42270 "description" : "The block device you want to create the filesystem on.",
42271 "type" : "string",
42272 "typetext" : "<string>"
42273 },
42274 "filesystem" : {
42275 "default" : "ext4",
42276 "description" : "The desired filesystem.",
42277 "enum" : [
42278 "ext4",
42279 "xfs"
42280 ],
42281 "optional" : 1,
42282 "type" : "string"
56122987 42283 },
4d47f125
TL
42284 "name" : {
42285 "description" : "The storage identifier.",
42286 "format" : "pve-storage-id",
42287 "type" : "string",
42288 "typetext" : "<string>"
42289 },
42290 "node" : {
42291 "description" : "The cluster node name.",
42292 "format" : "pve-node",
42293 "type" : "string",
42294 "typetext" : "<string>"
7aacca6f 42295 }
56122987
DM
42296 }
42297 },
4d47f125
TL
42298 "permissions" : {
42299 "check" : [
42300 "perm",
42301 "/",
42302 [
499c9b7f 42303 "Sys.Modify"
4d47f125 42304 ]
499c9b7f
TL
42305 ],
42306 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
4d47f125
TL
42307 },
42308 "protected" : 1,
42309 "proxyto" : "node",
42310 "returns" : {
42311 "type" : "string"
42312 }
42313 }
42314 },
5370fa8c 42315 "leaf" : 0,
4d47f125
TL
42316 "path" : "/nodes/{node}/disks/directory",
42317 "text" : "directory"
42318 },
42319 {
42320 "children" : [
56122987 42321 {
56122987 42322 "info" : {
5370fa8c
TL
42323 "DELETE" : {
42324 "allowtoken" : 1,
42325 "description" : "Destroy a ZFS pool.",
42326 "method" : "DELETE",
42327 "name" : "delete",
42328 "parameters" : {
42329 "additionalProperties" : 0,
42330 "properties" : {
42331 "cleanup-config" : {
42332 "default" : 0,
42333 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
42334 "optional" : 1,
42335 "type" : "boolean",
42336 "typetext" : "<boolean>"
42337 },
42338 "cleanup-disks" : {
42339 "default" : 0,
42340 "description" : "Also wipe disks so they can be repurposed afterwards.",
42341 "optional" : 1,
42342 "type" : "boolean",
42343 "typetext" : "<boolean>"
42344 },
42345 "name" : {
42346 "description" : "The storage identifier.",
42347 "format" : "pve-storage-id",
42348 "type" : "string",
42349 "typetext" : "<string>"
42350 },
42351 "node" : {
42352 "description" : "The cluster node name.",
42353 "format" : "pve-node",
42354 "type" : "string",
42355 "typetext" : "<string>"
42356 }
42357 }
42358 },
42359 "permissions" : {
42360 "check" : [
42361 "perm",
42362 "/",
42363 [
8dd66e12 42364 "Sys.Modify"
5370fa8c 42365 ]
499c9b7f
TL
42366 ],
42367 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
5370fa8c
TL
42368 },
42369 "protected" : 1,
42370 "proxyto" : "node",
42371 "returns" : {
42372 "type" : "string"
42373 }
42374 },
56122987 42375 "GET" : {
e9cd3bd4 42376 "allowtoken" : 1,
4d47f125 42377 "description" : "Get details about a zpool.",
44660702 42378 "method" : "GET",
4d47f125 42379 "name" : "detail",
56122987 42380 "parameters" : {
44660702 42381 "additionalProperties" : 0,
56122987 42382 "properties" : {
4d47f125
TL
42383 "name" : {
42384 "description" : "The storage identifier.",
42385 "format" : "pve-storage-id",
42386 "type" : "string",
42387 "typetext" : "<string>"
44660702 42388 },
7aacca6f 42389 "node" : {
7aacca6f 42390 "description" : "The cluster node name.",
44660702 42391 "format" : "pve-node",
013dc89f
DM
42392 "type" : "string",
42393 "typetext" : "<string>"
56122987 42394 }
44660702 42395 }
7aacca6f 42396 },
7aacca6f
DM
42397 "permissions" : {
42398 "check" : [
42399 "perm",
4d47f125 42400 "/",
7aacca6f 42401 [
8dd66e12
TL
42402 "Sys.Audit"
42403 ]
7aacca6f
DM
42404 ]
42405 },
44660702
DM
42406 "protected" : 1,
42407 "proxyto" : "node",
7aacca6f 42408 "returns" : {
56122987 42409 "properties" : {
4d47f125
TL
42410 "action" : {
42411 "description" : "Information about the recommended action to fix the state.",
42412 "optional" : 1,
42413 "type" : "string"
56122987 42414 },
4d47f125 42415 "children" : {
e2d681b3 42416 "description" : "The pool configuration information, including the vdevs for each section (e.g. spares, cache), may be nested.",
4d47f125
TL
42417 "items" : {
42418 "properties" : {
42419 "cksum" : {
e2d681b3 42420 "optional" : 1,
4d47f125
TL
42421 "type" : "number"
42422 },
42423 "msg" : {
42424 "description" : "An optional message about the vdev.",
42425 "type" : "string"
42426 },
42427 "name" : {
e2d681b3 42428 "description" : "The name of the vdev or section.",
4d47f125
TL
42429 "type" : "string"
42430 },
42431 "read" : {
e2d681b3 42432 "optional" : 1,
4d47f125
TL
42433 "type" : "number"
42434 },
42435 "state" : {
42436 "description" : "The state of the vdev.",
e2d681b3 42437 "optional" : 1,
4d47f125
TL
42438 "type" : "string"
42439 },
42440 "write" : {
e2d681b3 42441 "optional" : 1,
4d47f125
TL
42442 "type" : "number"
42443 }
42444 },
42445 "type" : "object"
42446 },
42447 "type" : "array"
56122987 42448 },
e2d681b3
TL
42449 "errors" : {
42450 "description" : "Information about the errors on the zpool.",
42451 "type" : "string"
42452 },
4d47f125
TL
42453 "name" : {
42454 "description" : "The name of the zpool.",
42455 "type" : "string"
44660702 42456 },
4d47f125 42457 "scan" : {
e2d681b3 42458 "description" : "Information about the last/current scrub.",
d2656385 42459 "optional" : 1,
4d47f125 42460 "type" : "string"
44660702 42461 },
4d47f125
TL
42462 "state" : {
42463 "description" : "The state of the zpool.",
42464 "type" : "string"
42465 },
42466 "status" : {
42467 "description" : "Information about the state of the zpool.",
44660702 42468 "optional" : 1,
4d47f125 42469 "type" : "string"
56122987 42470 }
4d47f125
TL
42471 },
42472 "type" : "object"
44660702
DM
42473 }
42474 }
42475 },
42476 "leaf" : 1,
4d47f125
TL
42477 "path" : "/nodes/{node}/disks/zfs/{name}",
42478 "text" : "{name}"
44660702
DM
42479 }
42480 ],
42481 "info" : {
42482 "GET" : {
e9cd3bd4 42483 "allowtoken" : 1,
4d47f125 42484 "description" : "List Zpools.",
44660702 42485 "method" : "GET",
4d47f125 42486 "name" : "index",
44660702
DM
42487 "parameters" : {
42488 "additionalProperties" : 0,
42489 "properties" : {
42490 "node" : {
42491 "description" : "The cluster node name.",
42492 "format" : "pve-node",
013dc89f
DM
42493 "type" : "string",
42494 "typetext" : "<string>"
4d47f125
TL
42495 }
42496 }
42497 },
42498 "permissions" : {
42499 "check" : [
42500 "perm",
42501 "/",
42502 [
8dd66e12
TL
42503 "Sys.Audit"
42504 ]
4d47f125
TL
42505 ]
42506 },
42507 "protected" : 1,
42508 "proxyto" : "node",
42509 "returns" : {
42510 "items" : {
42511 "properties" : {
42512 "alloc" : {
42513 "description" : "",
42514 "type" : "integer"
42515 },
42516 "dedup" : {
42517 "description" : "",
42518 "type" : "number"
42519 },
42520 "frag" : {
42521 "description" : "",
42522 "type" : "integer"
42523 },
42524 "free" : {
42525 "description" : "",
42526 "type" : "integer"
42527 },
42528 "health" : {
42529 "description" : "",
42530 "type" : "string"
42531 },
42532 "name" : {
42533 "description" : "",
42534 "type" : "string"
42535 },
42536 "size" : {
42537 "description" : "",
42538 "type" : "integer"
42539 }
42540 },
42541 "type" : "object"
42542 },
42543 "links" : [
42544 {
42545 "href" : "{name}",
42546 "rel" : "child"
42547 }
42548 ],
42549 "type" : "array"
42550 }
42551 },
42552 "POST" : {
e9cd3bd4 42553 "allowtoken" : 1,
4d47f125
TL
42554 "description" : "Create a ZFS pool.",
42555 "method" : "POST",
42556 "name" : "create",
42557 "parameters" : {
42558 "additionalProperties" : 0,
42559 "properties" : {
42560 "add_storage" : {
42561 "default" : 0,
42562 "description" : "Configure storage using the zpool.",
42563 "optional" : 1,
42564 "type" : "boolean",
42565 "typetext" : "<boolean>"
42566 },
42567 "ashift" : {
42568 "default" : 12,
42569 "description" : "Pool sector size exponent.",
42570 "maximum" : 16,
42571 "minimum" : 9,
42572 "optional" : 1,
42573 "type" : "integer",
42574 "typetext" : "<integer> (9 - 16)"
42575 },
42576 "compression" : {
42577 "default" : "on",
42578 "description" : "The compression algorithm to use.",
42579 "enum" : [
42580 "on",
42581 "off",
42582 "gzip",
42583 "lz4",
42584 "lzjb",
5370fa8c
TL
42585 "zle",
42586 "zstd"
4d47f125
TL
42587 ],
42588 "optional" : 1,
42589 "type" : "string"
42590 },
42591 "devices" : {
42592 "description" : "The block devices you want to create the zpool on.",
42593 "format" : "string-list",
42594 "type" : "string",
42595 "typetext" : "<string>"
44660702 42596 },
81a3384d
TL
42597 "draid-config" : {
42598 "format" : {
42599 "data" : {
42600 "description" : "The number of data devices per redundancy group. (dRAID)",
42601 "minimum" : 1,
42602 "type" : "integer"
42603 },
42604 "spares" : {
42605 "description" : "Number of dRAID spares.",
42606 "minimum" : 0,
42607 "type" : "integer"
42608 }
42609 },
42610 "optional" : 1,
42611 "type" : "string",
42612 "typetext" : "data=<integer> ,spares=<integer>"
42613 },
4d47f125 42614 "name" : {
44660702
DM
42615 "description" : "The storage identifier.",
42616 "format" : "pve-storage-id",
013dc89f
DM
42617 "type" : "string",
42618 "typetext" : "<string>"
4d47f125
TL
42619 },
42620 "node" : {
42621 "description" : "The cluster node name.",
42622 "format" : "pve-node",
42623 "type" : "string",
42624 "typetext" : "<string>"
42625 },
42626 "raidlevel" : {
42627 "description" : "The RAID level to use.",
42628 "enum" : [
42629 "single",
42630 "mirror",
42631 "raid10",
42632 "raidz",
42633 "raidz2",
81a3384d
TL
42634 "raidz3",
42635 "draid",
42636 "draid2",
42637 "draid3"
4d47f125
TL
42638 ],
42639 "type" : "string"
56122987
DM
42640 }
42641 }
44660702
DM
42642 },
42643 "permissions" : {
42644 "check" : [
42645 "perm",
4d47f125 42646 "/",
44660702 42647 [
8dd66e12 42648 "Sys.Modify"
4d47f125 42649 ]
499c9b7f
TL
42650 ],
42651 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
44660702 42652 },
4d47f125
TL
42653 "protected" : 1,
42654 "proxyto" : "node",
44660702 42655 "returns" : {
4d47f125 42656 "type" : "string"
56122987
DM
42657 }
42658 }
44660702
DM
42659 },
42660 "leaf" : 0,
4d47f125
TL
42661 "path" : "/nodes/{node}/disks/zfs",
42662 "text" : "zfs"
42663 },
2c0dde61
DM
42664 {
42665 "info" : {
42666 "GET" : {
e9cd3bd4 42667 "allowtoken" : 1,
2c0dde61
DM
42668 "description" : "List local disks.",
42669 "method" : "GET",
42670 "name" : "list",
42671 "parameters" : {
42672 "additionalProperties" : 0,
42673 "properties" : {
d2656385
TL
42674 "include-partitions" : {
42675 "default" : 0,
42676 "description" : "Also include partitions.",
42677 "optional" : 1,
42678 "type" : "boolean",
42679 "typetext" : "<boolean>"
42680 },
2c0dde61
DM
42681 "node" : {
42682 "description" : "The cluster node name.",
42683 "format" : "pve-node",
013dc89f
DM
42684 "type" : "string",
42685 "typetext" : "<string>"
4d47f125
TL
42686 },
42687 "skipsmart" : {
42688 "default" : 0,
42689 "description" : "Skip smart checks.",
42690 "optional" : 1,
42691 "type" : "boolean",
42692 "typetext" : "<boolean>"
42693 },
42694 "type" : {
42695 "description" : "Only list specific types of disks.",
42696 "enum" : [
42697 "unused",
42698 "journal_disks"
42699 ],
42700 "optional" : 1,
42701 "type" : "string"
2c0dde61
DM
42702 }
42703 }
42704 },
42705 "permissions" : {
42706 "check" : [
d2656385 42707 "or",
2c0dde61 42708 [
d2656385
TL
42709 "perm",
42710 "/",
42711 [
8dd66e12
TL
42712 "Sys.Audit"
42713 ]
2c0dde61 42714 ],
d2656385
TL
42715 [
42716 "perm",
42717 "/nodes/{node}",
42718 [
8dd66e12
TL
42719 "Sys.Audit"
42720 ]
d2656385 42721 ]
2c0dde61
DM
42722 ]
42723 },
42724 "protected" : 1,
42725 "proxyto" : "node",
42726 "returns" : {
42727 "items" : {
42728 "properties" : {
42729 "devpath" : {
42730 "description" : "The device path",
42731 "type" : "string"
42732 },
42733 "gpt" : {
42734 "type" : "boolean"
42735 },
42736 "health" : {
42737 "optional" : 1,
42738 "type" : "string"
42739 },
42740 "model" : {
42741 "optional" : 1,
42742 "type" : "string"
42743 },
de786b48
TL
42744 "mounted" : {
42745 "type" : "boolean"
42746 },
2c0dde61
DM
42747 "osdid" : {
42748 "type" : "integer"
42749 },
d2656385
TL
42750 "parent" : {
42751 "description" : "For partitions only. The device path of the disk the partition resides on.",
42752 "optional" : 1,
42753 "type" : "string"
42754 },
2c0dde61
DM
42755 "serial" : {
42756 "optional" : 1,
42757 "type" : "string"
42758 },
42759 "size" : {
42760 "type" : "integer"
42761 },
42762 "used" : {
42763 "optional" : 1,
42764 "type" : "string"
42765 },
42766 "vendor" : {
42767 "optional" : 1,
42768 "type" : "string"
42769 },
42770 "wwn" : {
42771 "optional" : 1,
42772 "type" : "string"
42773 }
42774 },
42775 "type" : "object"
42776 },
42777 "type" : "array"
42778 }
42779 }
42780 },
42781 "leaf" : 1,
42782 "path" : "/nodes/{node}/disks/list",
42783 "text" : "list"
42784 },
42785 {
42786 "info" : {
42787 "GET" : {
e9cd3bd4 42788 "allowtoken" : 1,
2c0dde61
DM
42789 "description" : "Get SMART Health of a disk.",
42790 "method" : "GET",
42791 "name" : "smart",
42792 "parameters" : {
42793 "additionalProperties" : 0,
42794 "properties" : {
42795 "disk" : {
42796 "description" : "Block device name",
42797 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
42798 "type" : "string"
42799 },
42800 "healthonly" : {
42801 "description" : "If true returns only the health status",
42802 "optional" : 1,
013dc89f
DM
42803 "type" : "boolean",
42804 "typetext" : "<boolean>"
2c0dde61
DM
42805 },
42806 "node" : {
42807 "description" : "The cluster node name.",
42808 "format" : "pve-node",
013dc89f
DM
42809 "type" : "string",
42810 "typetext" : "<string>"
2c0dde61
DM
42811 }
42812 }
42813 },
42814 "permissions" : {
42815 "check" : [
42816 "perm",
42817 "/",
42818 [
8dd66e12
TL
42819 "Sys.Audit"
42820 ]
2c0dde61
DM
42821 ]
42822 },
42823 "protected" : 1,
42824 "proxyto" : "node",
42825 "returns" : {
de0983cb
DM
42826 "properties" : {
42827 "attributes" : {
42828 "optional" : 1,
42829 "type" : "array"
42830 },
42831 "health" : {
42832 "type" : "string"
42833 },
42834 "text" : {
42835 "optional" : 1,
42836 "type" : "string"
42837 },
42838 "type" : {
42839 "optional" : 1,
42840 "type" : "string"
42841 }
42842 },
2c0dde61
DM
42843 "type" : "object"
42844 }
42845 }
42846 },
42847 "leaf" : 1,
42848 "path" : "/nodes/{node}/disks/smart",
42849 "text" : "smart"
42850 },
42851 {
42852 "info" : {
42853 "POST" : {
e9cd3bd4 42854 "allowtoken" : 1,
2c0dde61
DM
42855 "description" : "Initialize Disk with GPT",
42856 "method" : "POST",
42857 "name" : "initgpt",
42858 "parameters" : {
42859 "additionalProperties" : 0,
42860 "properties" : {
42861 "disk" : {
42862 "description" : "Block device name",
42863 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
42864 "type" : "string"
42865 },
42866 "node" : {
42867 "description" : "The cluster node name.",
42868 "format" : "pve-node",
013dc89f
DM
42869 "type" : "string",
42870 "typetext" : "<string>"
2c0dde61
DM
42871 },
42872 "uuid" : {
42873 "description" : "UUID for the GPT table",
42874 "maxLength" : 36,
42875 "optional" : 1,
42876 "pattern" : "[a-fA-F0-9\\-]+",
42877 "type" : "string"
42878 }
42879 }
42880 },
42881 "permissions" : {
42882 "check" : [
42883 "perm",
42884 "/",
42885 [
42886 "Sys.Modify"
42887 ]
42888 ]
42889 },
42890 "protected" : 1,
42891 "proxyto" : "node",
42892 "returns" : {
42893 "type" : "string"
42894 }
42895 }
42896 },
42897 "leaf" : 1,
42898 "path" : "/nodes/{node}/disks/initgpt",
42899 "text" : "initgpt"
0695fdaf
TL
42900 },
42901 {
42902 "info" : {
42903 "PUT" : {
42904 "allowtoken" : 1,
42905 "description" : "Wipe a disk or partition.",
42906 "method" : "PUT",
42907 "name" : "wipe_disk",
42908 "parameters" : {
42909 "additionalProperties" : 0,
42910 "properties" : {
42911 "disk" : {
42912 "description" : "Block device name",
42913 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
42914 "type" : "string"
42915 },
42916 "node" : {
42917 "description" : "The cluster node name.",
42918 "format" : "pve-node",
42919 "type" : "string",
42920 "typetext" : "<string>"
42921 }
42922 }
42923 },
42924 "protected" : 1,
42925 "proxyto" : "node",
42926 "returns" : {
42927 "type" : "string"
42928 }
42929 }
42930 },
42931 "leaf" : 1,
42932 "path" : "/nodes/{node}/disks/wipedisk",
42933 "text" : "wipedisk"
2c0dde61
DM
42934 }
42935 ],
42936 "info" : {
42937 "GET" : {
e9cd3bd4 42938 "allowtoken" : 1,
2c0dde61
DM
42939 "description" : "Node index.",
42940 "method" : "GET",
42941 "name" : "index",
42942 "parameters" : {
42943 "additionalProperties" : 0,
42944 "properties" : {
42945 "node" : {
42946 "description" : "The cluster node name.",
42947 "format" : "pve-node",
013dc89f
DM
42948 "type" : "string",
42949 "typetext" : "<string>"
2c0dde61
DM
42950 }
42951 }
42952 },
42953 "permissions" : {
42954 "user" : "all"
42955 },
42956 "proxyto" : "node",
42957 "returns" : {
42958 "items" : {
42959 "properties" : {},
42960 "type" : "object"
42961 },
42962 "links" : [
42963 {
42964 "href" : "{name}",
42965 "rel" : "child"
42966 }
42967 ],
42968 "type" : "array"
42969 }
42970 }
42971 },
42972 "leaf" : 0,
42973 "path" : "/nodes/{node}/disks",
42974 "text" : "disks"
42975 },
56122987 42976 {
56122987
DM
42977 "children" : [
42978 {
42979 "info" : {
44660702 42980 "GET" : {
e9cd3bd4 42981 "allowtoken" : 1,
44660702
DM
42982 "description" : "List available updates.",
42983 "method" : "GET",
42984 "name" : "list_updates",
42985 "parameters" : {
42986 "additionalProperties" : 0,
42987 "properties" : {
42988 "node" : {
42989 "description" : "The cluster node name.",
42990 "format" : "pve-node",
013dc89f
DM
42991 "type" : "string",
42992 "typetext" : "<string>"
44660702
DM
42993 }
42994 }
7aacca6f
DM
42995 },
42996 "permissions" : {
42997 "check" : [
42998 "perm",
42999 "/nodes/{node}",
43000 [
43001 "Sys.Modify"
43002 ]
43003 ]
43004 },
44660702 43005 "protected" : 1,
56122987 43006 "proxyto" : "node",
44660702
DM
43007 "returns" : {
43008 "items" : {
43009 "properties" : {},
43010 "type" : "object"
43011 },
43012 "type" : "array"
43013 }
43014 },
43015 "POST" : {
e9cd3bd4 43016 "allowtoken" : 1,
44660702 43017 "description" : "This is used to resynchronize the package index files from their sources (apt-get update).",
7aacca6f
DM
43018 "method" : "POST",
43019 "name" : "update_database",
56122987
DM
43020 "parameters" : {
43021 "additionalProperties" : 0,
43022 "properties" : {
44660702
DM
43023 "node" : {
43024 "description" : "The cluster node name.",
43025 "format" : "pve-node",
013dc89f
DM
43026 "type" : "string",
43027 "typetext" : "<string>"
44660702 43028 },
56122987 43029 "notify" : {
56122987 43030 "default" : 0,
44660702
DM
43031 "description" : "Send notification mail about new packages (to email address specified for user 'root@pam').",
43032 "optional" : 1,
013dc89f
DM
43033 "type" : "boolean",
43034 "typetext" : "<boolean>"
56122987
DM
43035 },
43036 "quiet" : {
56122987 43037 "default" : 0,
44660702 43038 "description" : "Only produces output suitable for logging, omitting progress indicators.",
56122987 43039 "optional" : 1,
013dc89f
DM
43040 "type" : "boolean",
43041 "typetext" : "<boolean>"
56122987 43042 }
7aacca6f
DM
43043 }
43044 },
43045 "permissions" : {
43046 "check" : [
43047 "perm",
43048 "/nodes/{node}",
43049 [
43050 "Sys.Modify"
43051 ]
43052 ]
43053 },
44660702
DM
43054 "protected" : 1,
43055 "proxyto" : "node",
43056 "returns" : {
43057 "type" : "string"
43058 }
56122987
DM
43059 }
43060 },
7aacca6f 43061 "leaf" : 1,
44660702
DM
43062 "path" : "/nodes/{node}/apt/update",
43063 "text" : "update"
56122987
DM
43064 },
43065 {
56122987
DM
43066 "info" : {
43067 "GET" : {
e9cd3bd4 43068 "allowtoken" : 1,
44660702 43069 "description" : "Get package changelogs.",
56122987 43070 "method" : "GET",
7aacca6f 43071 "name" : "changelog",
56122987 43072 "parameters" : {
44660702 43073 "additionalProperties" : 0,
56122987
DM
43074 "properties" : {
43075 "name" : {
43076 "description" : "Package name.",
013dc89f
DM
43077 "type" : "string",
43078 "typetext" : "<string>"
56122987 43079 },
44660702
DM
43080 "node" : {
43081 "description" : "The cluster node name.",
43082 "format" : "pve-node",
013dc89f
DM
43083 "type" : "string",
43084 "typetext" : "<string>"
44660702 43085 },
56122987 43086 "version" : {
7aacca6f 43087 "description" : "Package version.",
44660702 43088 "optional" : 1,
013dc89f
DM
43089 "type" : "string",
43090 "typetext" : "<string>"
56122987 43091 }
44660702 43092 }
56122987 43093 },
44660702
DM
43094 "permissions" : {
43095 "check" : [
43096 "perm",
43097 "/nodes/{node}",
43098 [
43099 "Sys.Modify"
43100 ]
43101 ]
43102 },
43103 "proxyto" : "node",
43104 "returns" : {
43105 "type" : "string"
43106 }
56122987
DM
43107 }
43108 },
44660702
DM
43109 "leaf" : 1,
43110 "path" : "/nodes/{node}/apt/changelog",
7aacca6f 43111 "text" : "changelog"
56122987 43112 },
34f3e481
TL
43113 {
43114 "info" : {
43115 "GET" : {
43116 "allowtoken" : 1,
43117 "description" : "Get APT repository information.",
43118 "method" : "GET",
43119 "name" : "repositories",
43120 "parameters" : {
43121 "additionalProperties" : 0,
43122 "properties" : {
43123 "node" : {
43124 "description" : "The cluster node name.",
43125 "format" : "pve-node",
43126 "type" : "string",
43127 "typetext" : "<string>"
43128 }
43129 }
43130 },
43131 "permissions" : {
43132 "check" : [
43133 "perm",
43134 "/nodes/{node}",
43135 [
43136 "Sys.Audit"
43137 ]
43138 ]
43139 },
43140 "proxyto" : "node",
43141 "returns" : {
43142 "description" : "Result from parsing the APT repository files in /etc/apt/.",
43143 "properties" : {
43144 "digest" : {
43145 "description" : "Common digest of all files.",
43146 "type" : "string"
43147 },
43148 "errors" : {
43149 "description" : "List of problematic repository files.",
43150 "items" : {
43151 "properties" : {
43152 "error" : {
43153 "description" : "The error message",
43154 "type" : "string"
43155 },
43156 "path" : {
43157 "description" : "Path to the problematic file.",
43158 "type" : "string"
43159 }
43160 },
43161 "type" : "object"
43162 },
43163 "type" : "array"
43164 },
43165 "files" : {
43166 "description" : "List of parsed repository files.",
43167 "items" : {
43168 "properties" : {
43169 "digest" : {
43170 "description" : "Digest of the file as bytes.",
43171 "items" : {
43172 "type" : "integer"
43173 },
43174 "type" : "array"
43175 },
43176 "file-type" : {
43177 "description" : "Format of the file.",
43178 "enum" : [
43179 "list",
43180 "sources"
43181 ],
43182 "type" : "string"
43183 },
43184 "path" : {
43185 "description" : "Path to the problematic file.",
43186 "type" : "string"
43187 },
43188 "repositories" : {
43189 "description" : "The parsed repositories.",
43190 "items" : {
43191 "properties" : {
43192 "Comment" : {
43193 "description" : "Associated comment",
43194 "optional" : 1,
43195 "type" : "string"
43196 },
43197 "Components" : {
43198 "description" : "List of repository components",
43199 "items" : {
43200 "type" : "string"
43201 },
43202 "optional" : 1,
43203 "type" : "array"
43204 },
43205 "Enabled" : {
43206 "description" : "Whether the repository is enabled or not",
43207 "type" : "boolean"
43208 },
43209 "FileType" : {
43210 "description" : "Format of the defining file.",
43211 "enum" : [
43212 "list",
43213 "sources"
43214 ],
43215 "type" : "string"
43216 },
43217 "Options" : {
43218 "description" : "Additional options",
43219 "items" : {
43220 "properties" : {
43221 "Key" : {
43222 "type" : "string"
43223 },
43224 "Values" : {
43225 "items" : {
43226 "type" : "string"
43227 },
43228 "type" : "array"
43229 }
43230 },
43231 "type" : "object"
43232 },
43233 "optional" : 1,
43234 "type" : "array"
43235 },
43236 "Suites" : {
43237 "description" : "List of package distribuitions",
43238 "items" : {
43239 "type" : "string"
43240 },
43241 "type" : "array"
43242 },
43243 "Types" : {
43244 "description" : "List of package types.",
43245 "items" : {
43246 "enum" : [
43247 "deb",
43248 "deb-src"
43249 ],
43250 "type" : "string"
43251 },
43252 "type" : "array"
43253 },
43254 "URIs" : {
43255 "description" : "List of repository URIs.",
43256 "items" : {
43257 "type" : "string"
43258 },
43259 "type" : "array"
43260 }
43261 },
43262 "type" : "object"
43263 },
43264 "type" : "array"
43265 }
43266 },
43267 "type" : "object"
43268 },
43269 "type" : "array"
43270 },
43271 "infos" : {
43272 "description" : "Additional information/warnings for APT repositories.",
43273 "items" : {
43274 "properties" : {
43275 "index" : {
43276 "description" : "Index of the associated repository within the file.",
43277 "type" : "string"
43278 },
43279 "kind" : {
43280 "description" : "Kind of the information (e.g. warning).",
43281 "type" : "string"
43282 },
43283 "message" : {
43284 "description" : "Information message.",
43285 "type" : "string"
43286 },
43287 "path" : {
43288 "description" : "Path to the associated file.",
43289 "type" : "string"
43290 },
43291 "property" : {
43292 "description" : "Property from which the info originates.",
43293 "optional" : 1,
43294 "type" : "string"
43295 }
43296 },
43297 "type" : "object"
43298 },
43299 "type" : "array"
43300 },
43301 "standard-repos" : {
43302 "description" : "List of standard repositories and their configuration status",
43303 "items" : {
43304 "properties" : {
43305 "handle" : {
43306 "description" : "Handle to identify the repository.",
43307 "type" : "string"
43308 },
43309 "name" : {
43310 "description" : "Full name of the repository.",
43311 "type" : "string"
43312 },
43313 "status" : {
43314 "description" : "Indicating enabled/disabled status, if the repository is configured.",
43315 "optional" : 1,
43316 "type" : "boolean"
43317 }
43318 },
43319 "type" : "object"
43320 },
43321 "type" : "array"
43322 }
43323 },
43324 "type" : "object"
43325 }
43326 },
43327 "POST" : {
43328 "allowtoken" : 1,
43329 "description" : "Change the properties of a repository. Currently only allows enabling/disabling.",
43330 "method" : "POST",
43331 "name" : "change_repository",
43332 "parameters" : {
43333 "additionalProperties" : 0,
43334 "properties" : {
43335 "digest" : {
43336 "description" : "Digest to detect modifications.",
43337 "maxLength" : 80,
43338 "optional" : 1,
43339 "type" : "string",
43340 "typetext" : "<string>"
43341 },
43342 "enabled" : {
43343 "description" : "Whether the repository should be enabled or not.",
43344 "optional" : 1,
43345 "type" : "boolean",
43346 "typetext" : "<boolean>"
43347 },
43348 "index" : {
43349 "description" : "Index within the file (starting from 0).",
43350 "type" : "integer",
43351 "typetext" : "<integer>"
43352 },
43353 "node" : {
43354 "description" : "The cluster node name.",
43355 "format" : "pve-node",
43356 "type" : "string",
43357 "typetext" : "<string>"
43358 },
43359 "path" : {
43360 "description" : "Path to the containing file.",
43361 "type" : "string",
43362 "typetext" : "<string>"
43363 }
43364 }
43365 },
43366 "permissions" : {
43367 "check" : [
43368 "perm",
43369 "/nodes/{node}",
43370 [
43371 "Sys.Modify"
43372 ]
43373 ]
43374 },
43375 "protected" : 1,
43376 "proxyto" : "node",
43377 "returns" : {
43378 "type" : "null"
43379 }
43380 },
43381 "PUT" : {
43382 "allowtoken" : 1,
43383 "description" : "Add a standard repository to the configuration",
43384 "method" : "PUT",
43385 "name" : "add_repository",
43386 "parameters" : {
43387 "additionalProperties" : 0,
43388 "properties" : {
43389 "digest" : {
43390 "description" : "Digest to detect modifications.",
43391 "maxLength" : 80,
43392 "optional" : 1,
43393 "type" : "string",
43394 "typetext" : "<string>"
43395 },
43396 "handle" : {
43397 "description" : "Handle that identifies a repository.",
43398 "type" : "string",
43399 "typetext" : "<string>"
43400 },
43401 "node" : {
43402 "description" : "The cluster node name.",
43403 "format" : "pve-node",
43404 "type" : "string",
43405 "typetext" : "<string>"
43406 }
43407 }
43408 },
43409 "permissions" : {
43410 "check" : [
43411 "perm",
43412 "/nodes/{node}",
43413 [
43414 "Sys.Modify"
43415 ]
43416 ]
43417 },
43418 "protected" : 1,
43419 "proxyto" : "node",
43420 "returns" : {
43421 "type" : "null"
43422 }
43423 }
43424 },
43425 "leaf" : 1,
43426 "path" : "/nodes/{node}/apt/repositories",
43427 "text" : "repositories"
43428 },
56122987 43429 {
56122987
DM
43430 "info" : {
43431 "GET" : {
e9cd3bd4 43432 "allowtoken" : 1,
44660702
DM
43433 "description" : "Get package information for important Proxmox packages.",
43434 "method" : "GET",
7aacca6f
DM
43435 "name" : "versions",
43436 "parameters" : {
44660702 43437 "additionalProperties" : 0,
7aacca6f
DM
43438 "properties" : {
43439 "node" : {
44660702 43440 "description" : "The cluster node name.",
7aacca6f 43441 "format" : "pve-node",
013dc89f
DM
43442 "type" : "string",
43443 "typetext" : "<string>"
7aacca6f 43444 }
44660702 43445 }
7aacca6f 43446 },
56122987
DM
43447 "permissions" : {
43448 "check" : [
43449 "perm",
43450 "/nodes/{node}",
43451 [
43452 "Sys.Audit"
43453 ]
43454 ]
43455 },
7aacca6f 43456 "proxyto" : "node",
56122987
DM
43457 "returns" : {
43458 "items" : {
7aacca6f
DM
43459 "properties" : {},
43460 "type" : "object"
44660702
DM
43461 },
43462 "type" : "array"
56122987
DM
43463 }
43464 }
43465 },
44660702 43466 "leaf" : 1,
7aacca6f 43467 "path" : "/nodes/{node}/apt/versions",
44660702 43468 "text" : "versions"
56122987
DM
43469 }
43470 ],
56122987
DM
43471 "info" : {
43472 "GET" : {
e9cd3bd4 43473 "allowtoken" : 1,
44660702 43474 "description" : "Directory index for apt (Advanced Package Tool).",
7aacca6f 43475 "method" : "GET",
44660702 43476 "name" : "index",
7aacca6f
DM
43477 "parameters" : {
43478 "additionalProperties" : 0,
43479 "properties" : {
43480 "node" : {
44660702 43481 "description" : "The cluster node name.",
7aacca6f 43482 "format" : "pve-node",
013dc89f
DM
43483 "type" : "string",
43484 "typetext" : "<string>"
7aacca6f
DM
43485 }
43486 }
43487 },
7aacca6f
DM
43488 "permissions" : {
43489 "user" : "all"
43490 },
44660702
DM
43491 "returns" : {
43492 "items" : {
43493 "properties" : {
43494 "id" : {
43495 "type" : "string"
43496 }
43497 },
43498 "type" : "object"
43499 },
43500 "links" : [
43501 {
43502 "href" : "{id}",
43503 "rel" : "child"
43504 }
43505 ],
43506 "type" : "array"
43507 }
56122987 43508 }
7aacca6f 43509 },
44660702 43510 "leaf" : 0,
7aacca6f 43511 "path" : "/nodes/{node}/apt",
44660702 43512 "text" : "apt"
56122987
DM
43513 },
43514 {
56122987
DM
43515 "children" : [
43516 {
43517 "children" : [
43518 {
56122987
DM
43519 "info" : {
43520 "DELETE" : {
e9cd3bd4 43521 "allowtoken" : 1,
44660702 43522 "description" : "Delete rule.",
7aacca6f 43523 "method" : "DELETE",
44660702 43524 "name" : "delete_rule",
56122987
DM
43525 "parameters" : {
43526 "additionalProperties" : 0,
43527 "properties" : {
56122987
DM
43528 "digest" : {
43529 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 43530 "maxLength" : 40,
56122987 43531 "optional" : 1,
013dc89f
DM
43532 "type" : "string",
43533 "typetext" : "<string>"
56122987 43534 },
44660702
DM
43535 "node" : {
43536 "description" : "The cluster node name.",
43537 "format" : "pve-node",
013dc89f
DM
43538 "type" : "string",
43539 "typetext" : "<string>"
44660702 43540 },
7aacca6f 43541 "pos" : {
7aacca6f 43542 "description" : "Update rule at position <pos>.",
44660702
DM
43543 "minimum" : 0,
43544 "optional" : 1,
4bd7df8b 43545 "type" : "integer",
013dc89f 43546 "typetext" : "<integer> (0 - N)"
56122987
DM
43547 }
43548 }
43549 },
44660702
DM
43550 "permissions" : {
43551 "check" : [
43552 "perm",
43553 "/nodes/{node}",
43554 [
43555 "Sys.Modify"
43556 ]
43557 ]
43558 },
43559 "protected" : 1,
43560 "proxyto" : "node",
56122987
DM
43561 "returns" : {
43562 "type" : "null"
44660702
DM
43563 }
43564 },
43565 "GET" : {
e9cd3bd4 43566 "allowtoken" : 1,
44660702
DM
43567 "description" : "Get single rule data.",
43568 "method" : "GET",
43569 "name" : "get_rule",
43570 "parameters" : {
43571 "additionalProperties" : 0,
43572 "properties" : {
43573 "node" : {
43574 "description" : "The cluster node name.",
43575 "format" : "pve-node",
013dc89f
DM
43576 "type" : "string",
43577 "typetext" : "<string>"
44660702
DM
43578 },
43579 "pos" : {
43580 "description" : "Update rule at position <pos>.",
43581 "minimum" : 0,
43582 "optional" : 1,
4bd7df8b 43583 "type" : "integer",
013dc89f 43584 "typetext" : "<integer> (0 - N)"
44660702
DM
43585 }
43586 }
56122987 43587 },
56122987
DM
43588 "permissions" : {
43589 "check" : [
43590 "perm",
43591 "/nodes/{node}",
43592 [
44660702 43593 "Sys.Audit"
56122987
DM
43594 ]
43595 ]
44660702
DM
43596 },
43597 "proxyto" : "node",
43598 "returns" : {
43599 "properties" : {
e2d681b3
TL
43600 "action" : {
43601 "type" : "string"
43602 },
43603 "comment" : {
43604 "optional" : 1,
43605 "type" : "string"
43606 },
43607 "dest" : {
43608 "optional" : 1,
43609 "type" : "string"
43610 },
43611 "dport" : {
43612 "optional" : 1,
43613 "type" : "string"
43614 },
43615 "enable" : {
43616 "optional" : 1,
43617 "type" : "integer"
43618 },
4772952b
TL
43619 "icmp-type" : {
43620 "optional" : 1,
43621 "type" : "string"
43622 },
e2d681b3
TL
43623 "iface" : {
43624 "optional" : 1,
43625 "type" : "string"
43626 },
43627 "ipversion" : {
43628 "optional" : 1,
43629 "type" : "integer"
43630 },
95895385
TL
43631 "log" : {
43632 "description" : "Log level for firewall rule",
43633 "enum" : [
43634 "emerg",
43635 "alert",
43636 "crit",
43637 "err",
43638 "warning",
43639 "notice",
43640 "info",
43641 "debug",
43642 "nolog"
43643 ],
43644 "optional" : 1,
43645 "type" : "string"
43646 },
e2d681b3
TL
43647 "macro" : {
43648 "optional" : 1,
5f26e15b 43649 "type" : "string"
e2d681b3 43650 },
44660702
DM
43651 "pos" : {
43652 "type" : "integer"
e2d681b3
TL
43653 },
43654 "proto" : {
43655 "optional" : 1,
43656 "type" : "string"
43657 },
43658 "source" : {
43659 "optional" : 1,
43660 "type" : "string"
43661 },
43662 "sport" : {
43663 "optional" : 1,
43664 "type" : "string"
43665 },
43666 "type" : {
43667 "type" : "string"
44660702
DM
43668 }
43669 },
43670 "type" : "object"
7aacca6f 43671 }
56122987
DM
43672 },
43673 "PUT" : {
e9cd3bd4 43674 "allowtoken" : 1,
44660702
DM
43675 "description" : "Modify rule data.",
43676 "method" : "PUT",
56122987 43677 "name" : "update_rule",
56122987 43678 "parameters" : {
44660702 43679 "additionalProperties" : 0,
56122987 43680 "properties" : {
44660702
DM
43681 "action" : {
43682 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
43683 "maxLength" : 20,
43684 "minLength" : 2,
56122987 43685 "optional" : 1,
44660702
DM
43686 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
43687 "type" : "string"
56122987 43688 },
7aacca6f 43689 "comment" : {
e94f0d56 43690 "description" : "Descriptive comment.",
56122987 43691 "optional" : 1,
013dc89f
DM
43692 "type" : "string",
43693 "typetext" : "<string>"
56122987 43694 },
44660702
DM
43695 "delete" : {
43696 "description" : "A list of settings you want to delete.",
43697 "format" : "pve-configid-list",
56122987 43698 "optional" : 1,
013dc89f
DM
43699 "type" : "string",
43700 "typetext" : "<string>"
56122987 43701 },
44660702
DM
43702 "dest" : {
43703 "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.",
43704 "format" : "pve-fw-addr-spec",
0695fdaf 43705 "maxLength" : 512,
56122987 43706 "optional" : 1,
013dc89f
DM
43707 "type" : "string",
43708 "typetext" : "<string>"
56122987 43709 },
44660702
DM
43710 "digest" : {
43711 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
43712 "maxLength" : 40,
56122987 43713 "optional" : 1,
013dc89f
DM
43714 "type" : "string",
43715 "typetext" : "<string>"
56122987 43716 },
7aacca6f 43717 "dport" : {
7aacca6f 43718 "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
43719 "format" : "pve-fw-dport-spec",
43720 "optional" : 1,
013dc89f
DM
43721 "type" : "string",
43722 "typetext" : "<string>"
7aacca6f 43723 },
44660702 43724 "enable" : {
e94f0d56 43725 "description" : "Flag to enable/disable a rule.",
44660702 43726 "minimum" : 0,
56122987 43727 "optional" : 1,
4bd7df8b 43728 "type" : "integer",
013dc89f 43729 "typetext" : "<integer> (0 - N)"
56122987 43730 },
4772952b 43731 "icmp-type" : {
287a95cf 43732 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
43733 "format" : "pve-fw-icmp-type-spec",
43734 "optional" : 1,
43735 "type" : "string",
43736 "typetext" : "<string>"
43737 },
7aacca6f 43738 "iface" : {
44660702 43739 "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 43740 "format" : "pve-iface",
44660702 43741 "maxLength" : 20,
56122987 43742 "minLength" : 2,
44660702 43743 "optional" : 1,
013dc89f
DM
43744 "type" : "string",
43745 "typetext" : "<string>"
56122987 43746 },
95895385
TL
43747 "log" : {
43748 "description" : "Log level for firewall rule.",
43749 "enum" : [
43750 "emerg",
43751 "alert",
43752 "crit",
43753 "err",
43754 "warning",
43755 "notice",
43756 "info",
43757 "debug",
43758 "nolog"
43759 ],
43760 "optional" : 1,
43761 "type" : "string"
43762 },
44660702 43763 "macro" : {
e94f0d56 43764 "description" : "Use predefined standard macro.",
44660702
DM
43765 "maxLength" : 128,
43766 "optional" : 1,
013dc89f
DM
43767 "type" : "string",
43768 "typetext" : "<string>"
44660702
DM
43769 },
43770 "moveto" : {
43771 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
43772 "minimum" : 0,
7aacca6f 43773 "optional" : 1,
4bd7df8b 43774 "type" : "integer",
013dc89f 43775 "typetext" : "<integer> (0 - N)"
44660702
DM
43776 },
43777 "node" : {
43778 "description" : "The cluster node name.",
43779 "format" : "pve-node",
013dc89f
DM
43780 "type" : "string",
43781 "typetext" : "<string>"
56122987
DM
43782 },
43783 "pos" : {
44660702 43784 "description" : "Update rule at position <pos>.",
7aacca6f 43785 "minimum" : 0,
7aacca6f 43786 "optional" : 1,
4bd7df8b 43787 "type" : "integer",
013dc89f 43788 "typetext" : "<integer> (0 - N)"
7aacca6f 43789 },
44660702
DM
43790 "proto" : {
43791 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
43792 "format" : "pve-fw-protocol-spec",
7aacca6f 43793 "optional" : 1,
013dc89f
DM
43794 "type" : "string",
43795 "typetext" : "<string>"
7aacca6f 43796 },
44660702
DM
43797 "source" : {
43798 "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.",
43799 "format" : "pve-fw-addr-spec",
0695fdaf 43800 "maxLength" : 512,
56122987 43801 "optional" : 1,
013dc89f
DM
43802 "type" : "string",
43803 "typetext" : "<string>"
7aacca6f 43804 },
44660702
DM
43805 "sport" : {
43806 "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.",
43807 "format" : "pve-fw-sport-spec",
43808 "optional" : 1,
013dc89f
DM
43809 "type" : "string",
43810 "typetext" : "<string>"
44660702
DM
43811 },
43812 "type" : {
e94f0d56 43813 "description" : "Rule type.",
44660702
DM
43814 "enum" : [
43815 "in",
43816 "out",
43817 "group"
43818 ],
43819 "optional" : 1,
43820 "type" : "string"
56122987 43821 }
44660702 43822 }
56122987 43823 },
56122987
DM
43824 "permissions" : {
43825 "check" : [
43826 "perm",
43827 "/nodes/{node}",
43828 [
43829 "Sys.Modify"
43830 ]
43831 ]
7aacca6f 43832 },
44660702 43833 "protected" : 1,
7aacca6f 43834 "proxyto" : "node",
7aacca6f
DM
43835 "returns" : {
43836 "type" : "null"
56122987
DM
43837 }
43838 }
7aacca6f 43839 },
44660702 43840 "leaf" : 1,
7aacca6f 43841 "path" : "/nodes/{node}/firewall/rules/{pos}",
44660702 43842 "text" : "{pos}"
56122987
DM
43843 }
43844 ],
56122987
DM
43845 "info" : {
43846 "GET" : {
e9cd3bd4 43847 "allowtoken" : 1,
44660702
DM
43848 "description" : "List rules.",
43849 "method" : "GET",
43850 "name" : "get_rules",
43851 "parameters" : {
43852 "additionalProperties" : 0,
43853 "properties" : {
43854 "node" : {
43855 "description" : "The cluster node name.",
43856 "format" : "pve-node",
013dc89f
DM
43857 "type" : "string",
43858 "typetext" : "<string>"
44660702
DM
43859 }
43860 }
43861 },
43862 "permissions" : {
43863 "check" : [
43864 "perm",
43865 "/nodes/{node}",
43866 [
43867 "Sys.Audit"
43868 ]
43869 ]
43870 },
43871 "proxyto" : "node",
56122987 43872 "returns" : {
56122987
DM
43873 "items" : {
43874 "properties" : {
43875 "pos" : {
43876 "type" : "integer"
43877 }
44660702
DM
43878 },
43879 "type" : "object"
56122987 43880 },
7aacca6f
DM
43881 "links" : [
43882 {
43883 "href" : "{pos}",
43884 "rel" : "child"
43885 }
43886 ],
43887 "type" : "array"
44660702 43888 }
56122987
DM
43889 },
43890 "POST" : {
e9cd3bd4 43891 "allowtoken" : 1,
44660702 43892 "description" : "Create new rule.",
7aacca6f
DM
43893 "method" : "POST",
43894 "name" : "create_rule",
56122987 43895 "parameters" : {
44660702 43896 "additionalProperties" : 0,
56122987 43897 "properties" : {
7aacca6f 43898 "action" : {
7aacca6f 43899 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
44660702 43900 "maxLength" : 20,
7aacca6f
DM
43901 "minLength" : 2,
43902 "optional" : 0,
44660702
DM
43903 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
43904 "type" : "string"
56122987 43905 },
44660702 43906 "comment" : {
e94f0d56 43907 "description" : "Descriptive comment.",
56122987 43908 "optional" : 1,
013dc89f
DM
43909 "type" : "string",
43910 "typetext" : "<string>"
56122987 43911 },
44660702
DM
43912 "dest" : {
43913 "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.",
43914 "format" : "pve-fw-addr-spec",
0695fdaf 43915 "maxLength" : 512,
7aacca6f 43916 "optional" : 1,
013dc89f
DM
43917 "type" : "string",
43918 "typetext" : "<string>"
56122987 43919 },
44660702
DM
43920 "digest" : {
43921 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
43922 "maxLength" : 40,
43923 "optional" : 1,
013dc89f
DM
43924 "type" : "string",
43925 "typetext" : "<string>"
56122987 43926 },
44660702
DM
43927 "dport" : {
43928 "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.",
43929 "format" : "pve-fw-dport-spec",
7aacca6f 43930 "optional" : 1,
013dc89f
DM
43931 "type" : "string",
43932 "typetext" : "<string>"
56122987 43933 },
44660702 43934 "enable" : {
e94f0d56 43935 "description" : "Flag to enable/disable a rule.",
44660702
DM
43936 "minimum" : 0,
43937 "optional" : 1,
4bd7df8b 43938 "type" : "integer",
013dc89f 43939 "typetext" : "<integer> (0 - N)"
44660702 43940 },
4772952b 43941 "icmp-type" : {
287a95cf 43942 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
43943 "format" : "pve-fw-icmp-type-spec",
43944 "optional" : 1,
43945 "type" : "string",
43946 "typetext" : "<string>"
43947 },
7aacca6f 43948 "iface" : {
44660702 43949 "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 43950 "format" : "pve-iface",
56122987 43951 "maxLength" : 20,
7aacca6f 43952 "minLength" : 2,
7aacca6f 43953 "optional" : 1,
013dc89f
DM
43954 "type" : "string",
43955 "typetext" : "<string>"
56122987 43956 },
95895385
TL
43957 "log" : {
43958 "description" : "Log level for firewall rule.",
43959 "enum" : [
43960 "emerg",
43961 "alert",
43962 "crit",
43963 "err",
43964 "warning",
43965 "notice",
43966 "info",
43967 "debug",
43968 "nolog"
43969 ],
43970 "optional" : 1,
43971 "type" : "string"
43972 },
44660702 43973 "macro" : {
e94f0d56 43974 "description" : "Use predefined standard macro.",
44660702 43975 "maxLength" : 128,
7aacca6f 43976 "optional" : 1,
013dc89f
DM
43977 "type" : "string",
43978 "typetext" : "<string>"
56122987 43979 },
44660702
DM
43980 "node" : {
43981 "description" : "The cluster node name.",
43982 "format" : "pve-node",
013dc89f
DM
43983 "type" : "string",
43984 "typetext" : "<string>"
44660702
DM
43985 },
43986 "pos" : {
43987 "description" : "Update rule at position <pos>.",
43988 "minimum" : 0,
43989 "optional" : 1,
4bd7df8b 43990 "type" : "integer",
013dc89f 43991 "typetext" : "<integer> (0 - N)"
44660702
DM
43992 },
43993 "proto" : {
43994 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
43995 "format" : "pve-fw-protocol-spec",
56122987 43996 "optional" : 1,
013dc89f
DM
43997 "type" : "string",
43998 "typetext" : "<string>"
56122987 43999 },
7aacca6f 44000 "source" : {
7aacca6f 44001 "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 44002 "format" : "pve-fw-addr-spec",
0695fdaf 44003 "maxLength" : 512,
44660702 44004 "optional" : 1,
013dc89f
DM
44005 "type" : "string",
44006 "typetext" : "<string>"
7aacca6f 44007 },
44660702
DM
44008 "sport" : {
44009 "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.",
44010 "format" : "pve-fw-sport-spec",
7aacca6f 44011 "optional" : 1,
013dc89f
DM
44012 "type" : "string",
44013 "typetext" : "<string>"
44660702
DM
44014 },
44015 "type" : {
e94f0d56 44016 "description" : "Rule type.",
44660702
DM
44017 "enum" : [
44018 "in",
44019 "out",
44020 "group"
44021 ],
44022 "optional" : 0,
44023 "type" : "string"
56122987 44024 }
44660702 44025 }
7aacca6f 44026 },
56122987
DM
44027 "permissions" : {
44028 "check" : [
44029 "perm",
44030 "/nodes/{node}",
44031 [
44032 "Sys.Modify"
44033 ]
44034 ]
44035 },
44660702
DM
44036 "protected" : 1,
44037 "proxyto" : "node",
44038 "returns" : {
44039 "type" : "null"
44040 }
56122987
DM
44041 }
44042 },
44660702 44043 "leaf" : 0,
7aacca6f 44044 "path" : "/nodes/{node}/firewall/rules",
44660702 44045 "text" : "rules"
56122987
DM
44046 },
44047 {
56122987 44048 "info" : {
44660702 44049 "GET" : {
e9cd3bd4 44050 "allowtoken" : 1,
44660702
DM
44051 "description" : "Get host firewall options.",
44052 "method" : "GET",
44053 "name" : "get_options",
56122987 44054 "parameters" : {
7aacca6f 44055 "additionalProperties" : 0,
56122987 44056 "properties" : {
44660702
DM
44057 "node" : {
44058 "description" : "The cluster node name.",
44059 "format" : "pve-node",
013dc89f
DM
44060 "type" : "string",
44061 "typetext" : "<string>"
44660702
DM
44062 }
44063 }
44064 },
44065 "permissions" : {
44066 "check" : [
44067 "perm",
44068 "/nodes/{node}",
44069 [
44070 "Sys.Audit"
44071 ]
44072 ]
44073 },
44074 "proxyto" : "node",
44075 "returns" : {
44076 "properties" : {
44077 "enable" : {
44078 "description" : "Enable host firewall rules.",
7aacca6f 44079 "optional" : 1,
44660702 44080 "type" : "boolean"
7aacca6f 44081 },
44660702
DM
44082 "log_level_in" : {
44083 "description" : "Log level for incoming traffic.",
56122987
DM
44084 "enum" : [
44085 "emerg",
44086 "alert",
44087 "crit",
44088 "err",
44089 "warning",
44090 "notice",
44091 "info",
44092 "debug",
44093 "nolog"
44094 ],
56122987 44095 "optional" : 1,
44660702
DM
44096 "type" : "string"
44097 },
44098 "log_level_out" : {
44099 "description" : "Log level for outgoing traffic.",
56122987
DM
44100 "enum" : [
44101 "emerg",
44102 "alert",
44103 "crit",
44104 "err",
44105 "warning",
44106 "notice",
44107 "info",
44108 "debug",
44109 "nolog"
44110 ],
44660702
DM
44111 "optional" : 1,
44112 "type" : "string"
44113 },
95895385
TL
44114 "log_nf_conntrack" : {
44115 "default" : 0,
44116 "description" : "Enable logging of conntrack information.",
44117 "optional" : 1,
44118 "type" : "boolean"
44119 },
44660702 44120 "ndp" : {
5c1699e5
TL
44121 "default" : 0,
44122 "description" : "Enable NDP (Neighbor Discovery Protocol).",
44660702
DM
44123 "optional" : 1,
44124 "type" : "boolean"
44125 },
5f26e15b
TL
44126 "nf_conntrack_allow_invalid" : {
44127 "default" : 0,
44128 "description" : "Allow invalid packets on connection tracking.",
44129 "optional" : 1,
44130 "type" : "boolean"
44131 },
9d2e98ed
TL
44132 "nf_conntrack_helpers" : {
44133 "default" : "",
44134 "description" : "Enable conntrack helpers for specific protocols. Supported protocols: amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp, tftp",
44135 "format" : "pve-fw-conntrack-helper",
44136 "optional" : 1,
44137 "type" : "string"
44138 },
44660702 44139 "nf_conntrack_max" : {
5c1699e5 44140 "default" : 262144,
44660702
DM
44141 "description" : "Maximum number of tracked connections.",
44142 "minimum" : 32768,
44143 "optional" : 1,
44144 "type" : "integer"
44145 },
44146 "nf_conntrack_tcp_timeout_established" : {
5c1699e5 44147 "default" : 432000,
44660702
DM
44148 "description" : "Conntrack established timeout.",
44149 "minimum" : 7875,
44150 "optional" : 1,
44151 "type" : "integer"
44152 },
5c1699e5
TL
44153 "nf_conntrack_tcp_timeout_syn_recv" : {
44154 "default" : 60,
44155 "description" : "Conntrack syn recv timeout.",
44156 "maximum" : 60,
44157 "minimum" : 30,
44158 "optional" : 1,
44159 "type" : "integer"
44160 },
44660702
DM
44161 "nosmurfs" : {
44162 "description" : "Enable SMURFS filter.",
44163 "optional" : 1,
44164 "type" : "boolean"
56122987 44165 },
5c1699e5
TL
44166 "protection_synflood" : {
44167 "default" : 0,
44168 "description" : "Enable synflood protection",
44169 "optional" : 1,
44170 "type" : "boolean"
44171 },
44172 "protection_synflood_burst" : {
44173 "default" : 1000,
44174 "description" : "Synflood protection rate burst by ip src.",
44175 "optional" : 1,
44176 "type" : "integer"
44177 },
44178 "protection_synflood_rate" : {
44179 "default" : 200,
44180 "description" : "Synflood protection rate syn/sec by ip src.",
44181 "optional" : 1,
44182 "type" : "integer"
44183 },
7aacca6f 44184 "smurf_log_level" : {
44660702 44185 "description" : "Log level for SMURFS filter.",
56122987
DM
44186 "enum" : [
44187 "emerg",
44188 "alert",
44189 "crit",
44190 "err",
44191 "warning",
44192 "notice",
44193 "info",
44194 "debug",
44195 "nolog"
7aacca6f 44196 ],
7aacca6f
DM
44197 "optional" : 1,
44198 "type" : "string"
56122987 44199 },
44660702
DM
44200 "tcp_flags_log_level" : {
44201 "description" : "Log level for illegal tcp flags filter.",
56122987
DM
44202 "enum" : [
44203 "emerg",
44204 "alert",
44205 "crit",
44206 "err",
44207 "warning",
44208 "notice",
44209 "info",
44210 "debug",
44211 "nolog"
44212 ],
44660702
DM
44213 "optional" : 1,
44214 "type" : "string"
7aacca6f 44215 },
44660702 44216 "tcpflags" : {
5c1699e5 44217 "default" : 0,
44660702 44218 "description" : "Filter illegal combinations of TCP flags.",
56122987 44219 "optional" : 1,
44660702 44220 "type" : "boolean"
56122987 44221 }
44660702
DM
44222 },
44223 "type" : "object"
7aacca6f 44224 }
56122987 44225 },
44660702 44226 "PUT" : {
e9cd3bd4 44227 "allowtoken" : 1,
44660702
DM
44228 "description" : "Set Firewall options.",
44229 "method" : "PUT",
44230 "name" : "set_options",
7aacca6f 44231 "parameters" : {
44660702 44232 "additionalProperties" : 0,
7aacca6f 44233 "properties" : {
44660702
DM
44234 "delete" : {
44235 "description" : "A list of settings you want to delete.",
44236 "format" : "pve-configid-list",
7aacca6f 44237 "optional" : 1,
013dc89f
DM
44238 "type" : "string",
44239 "typetext" : "<string>"
56122987 44240 },
44660702
DM
44241 "digest" : {
44242 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44243 "maxLength" : 40,
44244 "optional" : 1,
013dc89f
DM
44245 "type" : "string",
44246 "typetext" : "<string>"
56122987 44247 },
44660702
DM
44248 "enable" : {
44249 "description" : "Enable host firewall rules.",
7aacca6f 44250 "optional" : 1,
013dc89f
DM
44251 "type" : "boolean",
44252 "typetext" : "<boolean>"
44660702
DM
44253 },
44254 "log_level_in" : {
44255 "description" : "Log level for incoming traffic.",
56122987
DM
44256 "enum" : [
44257 "emerg",
44258 "alert",
44259 "crit",
44260 "err",
44261 "warning",
44262 "notice",
44263 "info",
44264 "debug",
44265 "nolog"
44660702 44266 ],
7aacca6f 44267 "optional" : 1,
44660702 44268 "type" : "string"
7aacca6f 44269 },
44660702
DM
44270 "log_level_out" : {
44271 "description" : "Log level for outgoing traffic.",
56122987
DM
44272 "enum" : [
44273 "emerg",
44274 "alert",
44275 "crit",
44276 "err",
44277 "warning",
44278 "notice",
44279 "info",
44280 "debug",
44281 "nolog"
44282 ],
44283 "optional" : 1,
7aacca6f 44284 "type" : "string"
56122987 44285 },
95895385
TL
44286 "log_nf_conntrack" : {
44287 "default" : 0,
44288 "description" : "Enable logging of conntrack information.",
44289 "optional" : 1,
44290 "type" : "boolean",
44291 "typetext" : "<boolean>"
44292 },
44660702 44293 "ndp" : {
5c1699e5
TL
44294 "default" : 0,
44295 "description" : "Enable NDP (Neighbor Discovery Protocol).",
7aacca6f 44296 "optional" : 1,
013dc89f
DM
44297 "type" : "boolean",
44298 "typetext" : "<boolean>"
44660702 44299 },
5f26e15b
TL
44300 "nf_conntrack_allow_invalid" : {
44301 "default" : 0,
44302 "description" : "Allow invalid packets on connection tracking.",
44303 "optional" : 1,
44304 "type" : "boolean",
44305 "typetext" : "<boolean>"
44306 },
9d2e98ed
TL
44307 "nf_conntrack_helpers" : {
44308 "default" : "",
44309 "description" : "Enable conntrack helpers for specific protocols. Supported protocols: amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp, tftp",
44310 "format" : "pve-fw-conntrack-helper",
44311 "optional" : 1,
44312 "type" : "string",
44313 "typetext" : "<string>"
44314 },
44660702 44315 "nf_conntrack_max" : {
5c1699e5 44316 "default" : 262144,
44660702
DM
44317 "description" : "Maximum number of tracked connections.",
44318 "minimum" : 32768,
44319 "optional" : 1,
4bd7df8b 44320 "type" : "integer",
013dc89f 44321 "typetext" : "<integer> (32768 - N)"
44660702
DM
44322 },
44323 "nf_conntrack_tcp_timeout_established" : {
5c1699e5 44324 "default" : 432000,
44660702
DM
44325 "description" : "Conntrack established timeout.",
44326 "minimum" : 7875,
44327 "optional" : 1,
4bd7df8b 44328 "type" : "integer",
013dc89f 44329 "typetext" : "<integer> (7875 - N)"
44660702 44330 },
5c1699e5
TL
44331 "nf_conntrack_tcp_timeout_syn_recv" : {
44332 "default" : 60,
44333 "description" : "Conntrack syn recv timeout.",
44334 "maximum" : 60,
44335 "minimum" : 30,
44336 "optional" : 1,
44337 "type" : "integer",
44338 "typetext" : "<integer> (30 - 60)"
44339 },
44660702
DM
44340 "node" : {
44341 "description" : "The cluster node name.",
44342 "format" : "pve-node",
013dc89f
DM
44343 "type" : "string",
44344 "typetext" : "<string>"
44660702
DM
44345 },
44346 "nosmurfs" : {
44347 "description" : "Enable SMURFS filter.",
44348 "optional" : 1,
013dc89f
DM
44349 "type" : "boolean",
44350 "typetext" : "<boolean>"
44660702 44351 },
5c1699e5
TL
44352 "protection_synflood" : {
44353 "default" : 0,
44354 "description" : "Enable synflood protection",
44355 "optional" : 1,
44356 "type" : "boolean",
44357 "typetext" : "<boolean>"
44358 },
44359 "protection_synflood_burst" : {
44360 "default" : 1000,
44361 "description" : "Synflood protection rate burst by ip src.",
44362 "optional" : 1,
44363 "type" : "integer",
44364 "typetext" : "<integer>"
44365 },
44366 "protection_synflood_rate" : {
44367 "default" : 200,
44368 "description" : "Synflood protection rate syn/sec by ip src.",
44369 "optional" : 1,
44370 "type" : "integer",
44371 "typetext" : "<integer>"
44372 },
44660702
DM
44373 "smurf_log_level" : {
44374 "description" : "Log level for SMURFS filter.",
56122987
DM
44375 "enum" : [
44376 "emerg",
44377 "alert",
44378 "crit",
44379 "err",
44380 "warning",
44381 "notice",
44382 "info",
44383 "debug",
44384 "nolog"
44660702
DM
44385 ],
44386 "optional" : 1,
44387 "type" : "string"
56122987 44388 },
44660702
DM
44389 "tcp_flags_log_level" : {
44390 "description" : "Log level for illegal tcp flags filter.",
56122987
DM
44391 "enum" : [
44392 "emerg",
44393 "alert",
44394 "crit",
44395 "err",
44396 "warning",
44397 "notice",
44398 "info",
44399 "debug",
44400 "nolog"
44401 ],
44660702
DM
44402 "optional" : 1,
44403 "type" : "string"
7aacca6f 44404 },
44660702 44405 "tcpflags" : {
5c1699e5 44406 "default" : 0,
44660702 44407 "description" : "Filter illegal combinations of TCP flags.",
56122987 44408 "optional" : 1,
013dc89f
DM
44409 "type" : "boolean",
44410 "typetext" : "<boolean>"
56122987 44411 }
7aacca6f 44412 }
56122987 44413 },
44660702
DM
44414 "permissions" : {
44415 "check" : [
44416 "perm",
44417 "/nodes/{node}",
44418 [
44419 "Sys.Modify"
44420 ]
44421 ]
44422 },
44423 "protected" : 1,
44424 "proxyto" : "node",
44425 "returns" : {
44426 "type" : "null"
44427 }
7aacca6f
DM
44428 }
44429 },
44660702
DM
44430 "leaf" : 1,
44431 "path" : "/nodes/{node}/firewall/options",
7aacca6f
DM
44432 "text" : "options"
44433 },
44434 {
7aacca6f
DM
44435 "info" : {
44436 "GET" : {
e9cd3bd4 44437 "allowtoken" : 1,
44660702
DM
44438 "description" : "Read firewall log",
44439 "method" : "GET",
7aacca6f 44440 "name" : "log",
56122987 44441 "parameters" : {
44660702 44442 "additionalProperties" : 0,
56122987 44443 "properties" : {
7aacca6f 44444 "limit" : {
44660702 44445 "minimum" : 0,
7aacca6f 44446 "optional" : 1,
4bd7df8b 44447 "type" : "integer",
013dc89f 44448 "typetext" : "<integer> (0 - N)"
7aacca6f 44449 },
56122987 44450 "node" : {
7aacca6f 44451 "description" : "The cluster node name.",
44660702 44452 "format" : "pve-node",
013dc89f
DM
44453 "type" : "string",
44454 "typetext" : "<string>"
44660702 44455 },
9d2e98ed
TL
44456 "since" : {
44457 "description" : "Display log since this UNIX epoch.",
44458 "minimum" : 0,
44459 "optional" : 1,
44460 "type" : "integer",
44461 "typetext" : "<integer> (0 - N)"
44462 },
44660702
DM
44463 "start" : {
44464 "minimum" : 0,
44465 "optional" : 1,
4bd7df8b 44466 "type" : "integer",
013dc89f 44467 "typetext" : "<integer> (0 - N)"
9d2e98ed
TL
44468 },
44469 "until" : {
44470 "description" : "Display log until this UNIX epoch.",
44471 "minimum" : 0,
44472 "optional" : 1,
44473 "type" : "integer",
44474 "typetext" : "<integer> (0 - N)"
56122987 44475 }
44660702 44476 }
7aacca6f 44477 },
56122987
DM
44478 "permissions" : {
44479 "check" : [
44480 "perm",
44481 "/nodes/{node}",
44482 [
44483 "Sys.Syslog"
44484 ]
44485 ]
44486 },
44660702
DM
44487 "protected" : 1,
44488 "proxyto" : "node",
56122987
DM
44489 "returns" : {
44490 "items" : {
56122987 44491 "properties" : {
56122987 44492 "n" : {
44660702
DM
44493 "description" : "Line number",
44494 "type" : "integer"
7aacca6f
DM
44495 },
44496 "t" : {
44660702
DM
44497 "description" : "Line text",
44498 "type" : "string"
56122987 44499 }
44660702
DM
44500 },
44501 "type" : "object"
56122987
DM
44502 },
44503 "type" : "array"
7aacca6f 44504 }
56122987
DM
44505 }
44506 },
44660702
DM
44507 "leaf" : 1,
44508 "path" : "/nodes/{node}/firewall/log",
7aacca6f 44509 "text" : "log"
56122987
DM
44510 }
44511 ],
44512 "info" : {
44513 "GET" : {
e9cd3bd4 44514 "allowtoken" : 1,
44660702
DM
44515 "description" : "Directory index.",
44516 "method" : "GET",
44517 "name" : "index",
56122987 44518 "parameters" : {
44660702 44519 "additionalProperties" : 0,
56122987
DM
44520 "properties" : {
44521 "node" : {
44522 "description" : "The cluster node name.",
44660702 44523 "format" : "pve-node",
013dc89f
DM
44524 "type" : "string",
44525 "typetext" : "<string>"
56122987 44526 }
44660702 44527 }
56122987 44528 },
7aacca6f
DM
44529 "permissions" : {
44530 "user" : "all"
44531 },
56122987
DM
44532 "returns" : {
44533 "items" : {
44534 "properties" : {},
44535 "type" : "object"
44536 },
56122987
DM
44537 "links" : [
44538 {
44660702
DM
44539 "href" : "{name}",
44540 "rel" : "child"
56122987 44541 }
44660702
DM
44542 ],
44543 "type" : "array"
44544 }
56122987 44545 }
7aacca6f 44546 },
44660702 44547 "leaf" : 0,
7aacca6f 44548 "path" : "/nodes/{node}/firewall",
44660702 44549 "text" : "firewall"
56122987 44550 },
5d9c884c
DM
44551 {
44552 "children" : [
44553 {
44554 "children" : [
44555 {
44556 "info" : {
44557 "GET" : {
e9cd3bd4 44558 "allowtoken" : 1,
5d9c884c
DM
44559 "description" : "Get replication job status.",
44560 "method" : "GET",
44561 "name" : "job_status",
44562 "parameters" : {
44563 "additionalProperties" : 0,
44564 "properties" : {
44565 "id" : {
44566 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
44567 "format" : "pve-replication-job-id",
44568 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
44569 "type" : "string"
44570 },
44571 "node" : {
44572 "description" : "The cluster node name.",
44573 "format" : "pve-node",
44574 "type" : "string",
44575 "typetext" : "<string>"
44576 }
44577 }
44578 },
44579 "permissions" : {
44580 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
44581 "user" : "all"
44582 },
44583 "protected" : 1,
44584 "proxyto" : "node",
44585 "returns" : {
5d9c884c
DM
44586 "type" : "object"
44587 }
44588 }
44589 },
44590 "leaf" : 1,
44591 "path" : "/nodes/{node}/replication/{id}/status",
44592 "text" : "status"
44593 },
44594 {
44595 "info" : {
44596 "GET" : {
e9cd3bd4 44597 "allowtoken" : 1,
5d9c884c
DM
44598 "description" : "Read replication job log.",
44599 "method" : "GET",
44600 "name" : "read_job_log",
44601 "parameters" : {
44602 "additionalProperties" : 0,
44603 "properties" : {
44604 "id" : {
44605 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
44606 "format" : "pve-replication-job-id",
44607 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
44608 "type" : "string"
44609 },
44610 "limit" : {
44611 "minimum" : 0,
44612 "optional" : 1,
44613 "type" : "integer",
44614 "typetext" : "<integer> (0 - N)"
44615 },
44616 "node" : {
44617 "description" : "The cluster node name.",
44618 "format" : "pve-node",
44619 "type" : "string",
44620 "typetext" : "<string>"
44621 },
44622 "start" : {
44623 "minimum" : 0,
44624 "optional" : 1,
44625 "type" : "integer",
44626 "typetext" : "<integer> (0 - N)"
44627 }
44628 }
44629 },
44630 "permissions" : {
44631 "description" : "Requires the VM.Audit permission on /vms/<vmid>, or 'Sys.Audit' on '/nodes/<node>'",
44632 "user" : "all"
44633 },
44634 "protected" : 1,
44635 "proxyto" : "node",
44636 "returns" : {
44637 "items" : {
44638 "properties" : {
44639 "n" : {
44640 "description" : "Line number",
44641 "type" : "integer"
44642 },
44643 "t" : {
44644 "description" : "Line text",
44645 "type" : "string"
44646 }
44647 },
44648 "type" : "object"
44649 },
44650 "type" : "array"
44651 }
44652 }
44653 },
44654 "leaf" : 1,
44655 "path" : "/nodes/{node}/replication/{id}/log",
44656 "text" : "log"
44657 },
44658 {
44659 "info" : {
44660 "POST" : {
e9cd3bd4 44661 "allowtoken" : 1,
5d9c884c
DM
44662 "description" : "Schedule replication job to start as soon as possible.",
44663 "method" : "POST",
44664 "name" : "schedule_now",
44665 "parameters" : {
44666 "additionalProperties" : 0,
44667 "properties" : {
44668 "id" : {
44669 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
44670 "format" : "pve-replication-job-id",
44671 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
44672 "type" : "string"
44673 },
44674 "node" : {
44675 "description" : "The cluster node name.",
44676 "format" : "pve-node",
44677 "type" : "string",
44678 "typetext" : "<string>"
44679 }
44680 }
44681 },
44682 "permissions" : {
44683 "check" : [
44684 "perm",
44685 "/storage",
44686 [
44687 "Datastore.Allocate"
44688 ]
44689 ]
44690 },
44691 "protected" : 1,
44692 "proxyto" : "node",
44693 "returns" : {
44694 "type" : "string"
44695 }
44696 }
44697 },
44698 "leaf" : 1,
44699 "path" : "/nodes/{node}/replication/{id}/schedule_now",
44700 "text" : "schedule_now"
44701 }
44702 ],
44703 "info" : {
44704 "GET" : {
e9cd3bd4 44705 "allowtoken" : 1,
5d9c884c
DM
44706 "description" : "Directory index.",
44707 "method" : "GET",
44708 "name" : "index",
44709 "parameters" : {
44710 "additionalProperties" : 0,
44711 "properties" : {
44712 "id" : {
44713 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
44714 "format" : "pve-replication-job-id",
44715 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
44716 "type" : "string"
44717 },
44718 "node" : {
44719 "description" : "The cluster node name.",
44720 "format" : "pve-node",
44721 "type" : "string",
44722 "typetext" : "<string>"
44723 }
44724 }
44725 },
44726 "permissions" : {
44727 "user" : "all"
44728 },
44729 "returns" : {
44730 "items" : {
44731 "properties" : {},
44732 "type" : "object"
44733 },
44734 "links" : [
44735 {
44736 "href" : "{name}",
44737 "rel" : "child"
44738 }
44739 ],
44740 "type" : "array"
44741 }
44742 }
44743 },
44744 "leaf" : 0,
44745 "path" : "/nodes/{node}/replication/{id}",
44746 "text" : "{id}"
44747 }
44748 ],
44749 "info" : {
44750 "GET" : {
e9cd3bd4 44751 "allowtoken" : 1,
5d9c884c
DM
44752 "description" : "List status of all replication jobs on this node.",
44753 "method" : "GET",
44754 "name" : "status",
44755 "parameters" : {
44756 "additionalProperties" : 0,
44757 "properties" : {
44758 "guest" : {
44759 "description" : "Only list replication jobs for this guest.",
44760 "format" : "pve-vmid",
8dd66e12
TL
44761 "maximum" : 999999999,
44762 "minimum" : 100,
5d9c884c
DM
44763 "optional" : 1,
44764 "type" : "integer",
8dd66e12 44765 "typetext" : "<integer> (100 - 999999999)"
5d9c884c
DM
44766 },
44767 "node" : {
44768 "description" : "The cluster node name.",
44769 "format" : "pve-node",
44770 "type" : "string",
44771 "typetext" : "<string>"
44772 }
44773 }
44774 },
44775 "permissions" : {
44776 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
44777 "user" : "all"
44778 },
44779 "protected" : 1,
44780 "proxyto" : "node",
44781 "returns" : {
44782 "items" : {
44783 "properties" : {
44784 "id" : {
44785 "type" : "string"
44786 }
44787 },
44788 "type" : "object"
44789 },
44790 "links" : [
44791 {
44792 "href" : "{id}",
44793 "rel" : "child"
44794 }
44795 ],
44796 "type" : "array"
44797 }
44798 }
44799 },
44800 "leaf" : 0,
44801 "path" : "/nodes/{node}/replication",
44802 "text" : "replication"
44803 },
a9a8e3d1
DM
44804 {
44805 "children" : [
44806 {
44807 "children" : [
44808 {
44809 "info" : {
44810 "DELETE" : {
e9cd3bd4 44811 "allowtoken" : 1,
a9a8e3d1
DM
44812 "description" : "Revoke existing certificate from CA.",
44813 "method" : "DELETE",
44814 "name" : "revoke_certificate",
44815 "parameters" : {
44816 "additionalProperties" : 0,
44817 "properties" : {
44818 "node" : {
44819 "description" : "The cluster node name.",
44820 "format" : "pve-node",
44821 "type" : "string",
44822 "typetext" : "<string>"
44823 }
44824 }
44825 },
ac70d7d1
TL
44826 "permissions" : {
44827 "check" : [
44828 "perm",
44829 "/nodes/{node}",
44830 [
44831 "Sys.Modify"
44832 ]
44833 ]
44834 },
a9a8e3d1
DM
44835 "protected" : 1,
44836 "proxyto" : "node",
44837 "returns" : {
44838 "type" : "string"
44839 }
44840 },
44841 "POST" : {
e9cd3bd4 44842 "allowtoken" : 1,
a9a8e3d1
DM
44843 "description" : "Order a new certificate from ACME-compatible CA.",
44844 "method" : "POST",
44845 "name" : "new_certificate",
44846 "parameters" : {
44847 "additionalProperties" : 0,
44848 "properties" : {
44849 "force" : {
44850 "default" : 0,
44851 "description" : "Overwrite existing custom certificate.",
44852 "optional" : 1,
44853 "type" : "boolean",
44854 "typetext" : "<boolean>"
44855 },
44856 "node" : {
44857 "description" : "The cluster node name.",
44858 "format" : "pve-node",
44859 "type" : "string",
44860 "typetext" : "<string>"
44861 }
44862 }
44863 },
ac70d7d1
TL
44864 "permissions" : {
44865 "check" : [
44866 "perm",
44867 "/nodes/{node}",
44868 [
44869 "Sys.Modify"
44870 ]
44871 ]
44872 },
a9a8e3d1
DM
44873 "protected" : 1,
44874 "proxyto" : "node",
44875 "returns" : {
44876 "type" : "string"
44877 }
44878 },
44879 "PUT" : {
e9cd3bd4 44880 "allowtoken" : 1,
a9a8e3d1
DM
44881 "description" : "Renew existing certificate from CA.",
44882 "method" : "PUT",
44883 "name" : "renew_certificate",
44884 "parameters" : {
44885 "additionalProperties" : 0,
44886 "properties" : {
44887 "force" : {
44888 "default" : 0,
44889 "description" : "Force renewal even if expiry is more than 30 days away.",
44890 "optional" : 1,
44891 "type" : "boolean",
44892 "typetext" : "<boolean>"
44893 },
44894 "node" : {
44895 "description" : "The cluster node name.",
44896 "format" : "pve-node",
44897 "type" : "string",
44898 "typetext" : "<string>"
44899 }
44900 }
44901 },
ac70d7d1
TL
44902 "permissions" : {
44903 "check" : [
44904 "perm",
44905 "/nodes/{node}",
44906 [
44907 "Sys.Modify"
44908 ]
44909 ]
44910 },
a9a8e3d1
DM
44911 "protected" : 1,
44912 "proxyto" : "node",
44913 "returns" : {
44914 "type" : "string"
44915 }
44916 }
44917 },
44918 "leaf" : 1,
44919 "path" : "/nodes/{node}/certificates/acme/certificate",
44920 "text" : "certificate"
44921 }
44922 ],
44923 "info" : {
44924 "GET" : {
e9cd3bd4 44925 "allowtoken" : 1,
a9a8e3d1
DM
44926 "description" : "ACME index.",
44927 "method" : "GET",
44928 "name" : "index",
44929 "parameters" : {
44930 "additionalProperties" : 0,
44931 "properties" : {
44932 "node" : {
44933 "description" : "The cluster node name.",
44934 "format" : "pve-node",
44935 "type" : "string",
44936 "typetext" : "<string>"
44937 }
44938 }
44939 },
44940 "permissions" : {
44941 "user" : "all"
44942 },
44943 "returns" : {
44944 "items" : {
44945 "properties" : {},
44946 "type" : "object"
44947 },
44948 "links" : [
44949 {
44950 "href" : "{name}",
44951 "rel" : "child"
44952 }
44953 ],
44954 "type" : "array"
44955 }
44956 }
44957 },
44958 "leaf" : 0,
44959 "path" : "/nodes/{node}/certificates/acme",
44960 "text" : "acme"
44961 },
44962 {
44963 "info" : {
44964 "GET" : {
e9cd3bd4 44965 "allowtoken" : 1,
a9a8e3d1
DM
44966 "description" : "Get information about node's certificates.",
44967 "method" : "GET",
44968 "name" : "info",
44969 "parameters" : {
44970 "additionalProperties" : 0,
44971 "properties" : {
44972 "node" : {
44973 "description" : "The cluster node name.",
44974 "format" : "pve-node",
44975 "type" : "string",
44976 "typetext" : "<string>"
44977 }
44978 }
44979 },
44980 "permissions" : {
44981 "user" : "all"
44982 },
44983 "proxyto" : "node",
44984 "returns" : {
44985 "items" : {
44986 "properties" : {
44987 "filename" : {
44988 "optional" : 1,
44989 "type" : "string"
44990 },
44991 "fingerprint" : {
44992 "description" : "Certificate SHA 256 fingerprint.",
44993 "optional" : 1,
44994 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
44995 "type" : "string"
44996 },
44997 "issuer" : {
44998 "description" : "Certificate issuer name.",
44999 "optional" : 1,
45000 "type" : "string"
45001 },
45002 "notafter" : {
45003 "description" : "Certificate's notAfter timestamp (UNIX epoch).",
45004 "optional" : 1,
4d47f125 45005 "renderer" : "timestamp",
a9a8e3d1
DM
45006 "type" : "integer"
45007 },
45008 "notbefore" : {
45009 "description" : "Certificate's notBefore timestamp (UNIX epoch).",
45010 "optional" : 1,
4d47f125 45011 "renderer" : "timestamp",
a9a8e3d1
DM
45012 "type" : "integer"
45013 },
45014 "pem" : {
45015 "description" : "Certificate in PEM format",
45016 "format" : "pem-certificate",
45017 "optional" : 1,
45018 "type" : "string"
45019 },
1c532546
TL
45020 "public-key-bits" : {
45021 "description" : "Certificate's public key size",
45022 "optional" : 1,
45023 "type" : "integer"
45024 },
45025 "public-key-type" : {
45026 "description" : "Certificate's public key algorithm",
45027 "optional" : 1,
45028 "type" : "string"
45029 },
a9a8e3d1
DM
45030 "san" : {
45031 "description" : "List of Certificate's SubjectAlternativeName entries.",
45032 "items" : {
45033 "type" : "string"
45034 },
45035 "optional" : 1,
4d47f125 45036 "renderer" : "yaml",
a9a8e3d1
DM
45037 "type" : "array"
45038 },
45039 "subject" : {
45040 "description" : "Certificate subject name.",
45041 "optional" : 1,
45042 "type" : "string"
45043 }
45044 },
45045 "type" : "object"
45046 },
45047 "type" : "array"
45048 }
45049 }
45050 },
45051 "leaf" : 1,
45052 "path" : "/nodes/{node}/certificates/info",
45053 "text" : "info"
45054 },
45055 {
45056 "info" : {
45057 "DELETE" : {
e9cd3bd4 45058 "allowtoken" : 1,
a9a8e3d1
DM
45059 "description" : "DELETE custom certificate chain and key.",
45060 "method" : "DELETE",
45061 "name" : "remove_custom_cert",
45062 "parameters" : {
45063 "additionalProperties" : 0,
45064 "properties" : {
45065 "node" : {
45066 "description" : "The cluster node name.",
45067 "format" : "pve-node",
45068 "type" : "string",
45069 "typetext" : "<string>"
45070 },
45071 "restart" : {
45072 "default" : 0,
45073 "description" : "Restart pveproxy.",
45074 "optional" : 1,
45075 "type" : "boolean",
45076 "typetext" : "<boolean>"
45077 }
45078 }
45079 },
ac70d7d1
TL
45080 "permissions" : {
45081 "check" : [
45082 "perm",
45083 "/nodes/{node}",
45084 [
45085 "Sys.Modify"
45086 ]
45087 ]
45088 },
a9a8e3d1
DM
45089 "protected" : 1,
45090 "proxyto" : "node",
45091 "returns" : {
45092 "type" : "null"
45093 }
45094 },
45095 "POST" : {
e9cd3bd4 45096 "allowtoken" : 1,
a9a8e3d1
DM
45097 "description" : "Upload or update custom certificate chain and key.",
45098 "method" : "POST",
45099 "name" : "upload_custom_cert",
45100 "parameters" : {
45101 "additionalProperties" : 0,
45102 "properties" : {
45103 "certificates" : {
45104 "description" : "PEM encoded certificate (chain).",
45105 "format" : "pem-certificate-chain",
45106 "type" : "string",
45107 "typetext" : "<string>"
45108 },
45109 "force" : {
45110 "default" : 0,
45111 "description" : "Overwrite existing custom or ACME certificate files.",
45112 "optional" : 1,
45113 "type" : "boolean",
45114 "typetext" : "<boolean>"
45115 },
45116 "key" : {
45117 "description" : "PEM encoded private key.",
45118 "format" : "pem-string",
45119 "optional" : 1,
45120 "type" : "string",
45121 "typetext" : "<string>"
45122 },
45123 "node" : {
45124 "description" : "The cluster node name.",
45125 "format" : "pve-node",
45126 "type" : "string",
45127 "typetext" : "<string>"
45128 },
45129 "restart" : {
45130 "default" : 0,
45131 "description" : "Restart pveproxy.",
45132 "optional" : 1,
45133 "type" : "boolean",
45134 "typetext" : "<boolean>"
45135 }
45136 }
45137 },
ac70d7d1
TL
45138 "permissions" : {
45139 "check" : [
45140 "perm",
45141 "/nodes/{node}",
45142 [
45143 "Sys.Modify"
45144 ]
45145 ]
45146 },
a9a8e3d1
DM
45147 "protected" : 1,
45148 "proxyto" : "node",
45149 "returns" : {
45150 "properties" : {
45151 "filename" : {
45152 "optional" : 1,
45153 "type" : "string"
45154 },
45155 "fingerprint" : {
45156 "description" : "Certificate SHA 256 fingerprint.",
45157 "optional" : 1,
45158 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
45159 "type" : "string"
45160 },
45161 "issuer" : {
45162 "description" : "Certificate issuer name.",
45163 "optional" : 1,
45164 "type" : "string"
45165 },
45166 "notafter" : {
45167 "description" : "Certificate's notAfter timestamp (UNIX epoch).",
45168 "optional" : 1,
4d47f125 45169 "renderer" : "timestamp",
a9a8e3d1
DM
45170 "type" : "integer"
45171 },
45172 "notbefore" : {
45173 "description" : "Certificate's notBefore timestamp (UNIX epoch).",
45174 "optional" : 1,
4d47f125 45175 "renderer" : "timestamp",
a9a8e3d1
DM
45176 "type" : "integer"
45177 },
45178 "pem" : {
45179 "description" : "Certificate in PEM format",
45180 "format" : "pem-certificate",
45181 "optional" : 1,
45182 "type" : "string"
45183 },
1c532546
TL
45184 "public-key-bits" : {
45185 "description" : "Certificate's public key size",
45186 "optional" : 1,
45187 "type" : "integer"
45188 },
45189 "public-key-type" : {
45190 "description" : "Certificate's public key algorithm",
45191 "optional" : 1,
45192 "type" : "string"
45193 },
a9a8e3d1
DM
45194 "san" : {
45195 "description" : "List of Certificate's SubjectAlternativeName entries.",
45196 "items" : {
45197 "type" : "string"
45198 },
45199 "optional" : 1,
4d47f125 45200 "renderer" : "yaml",
a9a8e3d1
DM
45201 "type" : "array"
45202 },
45203 "subject" : {
45204 "description" : "Certificate subject name.",
45205 "optional" : 1,
45206 "type" : "string"
45207 }
45208 },
45209 "type" : "object"
45210 }
45211 }
45212 },
45213 "leaf" : 1,
45214 "path" : "/nodes/{node}/certificates/custom",
45215 "text" : "custom"
45216 }
45217 ],
45218 "info" : {
45219 "GET" : {
e9cd3bd4 45220 "allowtoken" : 1,
a9a8e3d1
DM
45221 "description" : "Node index.",
45222 "method" : "GET",
45223 "name" : "index",
45224 "parameters" : {
45225 "additionalProperties" : 0,
45226 "properties" : {
45227 "node" : {
45228 "description" : "The cluster node name.",
45229 "format" : "pve-node",
45230 "type" : "string",
45231 "typetext" : "<string>"
45232 }
45233 }
45234 },
45235 "permissions" : {
45236 "user" : "all"
45237 },
45238 "returns" : {
45239 "items" : {
45240 "properties" : {},
45241 "type" : "object"
45242 },
45243 "links" : [
45244 {
45245 "href" : "{name}",
45246 "rel" : "child"
45247 }
45248 ],
45249 "type" : "array"
45250 }
45251 }
45252 },
45253 "leaf" : 0,
c5aa7e14
TL
45254 "path" : "/nodes/{node}/certificates",
45255 "text" : "certificates"
45256 },
45257 {
45258 "info" : {
45259 "GET" : {
45260 "allowtoken" : 1,
45261 "description" : "Get node configuration options.",
45262 "method" : "GET",
45263 "name" : "get_config",
45264 "parameters" : {
45265 "additionalProperties" : 0,
45266 "properties" : {
45267 "node" : {
45268 "description" : "The cluster node name.",
45269 "format" : "pve-node",
45270 "type" : "string",
45271 "typetext" : "<string>"
45272 },
45273 "property" : {
45274 "default" : "all",
45275 "description" : "Return only a specific property from the node configuration.",
45276 "enum" : [
45277 "acme",
45278 "acmedomain0",
45279 "acmedomain1",
45280 "acmedomain2",
45281 "acmedomain3",
45282 "acmedomain4",
45283 "acmedomain5",
45284 "description",
45285 "startall-onboot-delay",
45286 "wakeonlan"
45287 ],
45288 "optional" : 1,
45289 "type" : "string"
45290 }
45291 }
45292 },
45293 "permissions" : {
45294 "check" : [
45295 "perm",
45296 "/",
45297 [
45298 "Sys.Audit"
45299 ]
45300 ]
45301 },
45302 "proxyto" : "node",
45303 "returns" : {
c30bb419
TL
45304 "properties" : {
45305 "acme" : {
45306 "description" : "Node specific ACME settings.",
45307 "format" : {
45308 "account" : {
45309 "default" : "default",
45310 "description" : "ACME account config file name.",
45311 "format" : "pve-configid",
45312 "format_description" : "name",
45313 "optional" : 1,
45314 "type" : "string"
45315 },
45316 "domains" : {
45317 "description" : "List of domains for this node's ACME certificate",
45318 "format" : "pve-acme-domain-list",
45319 "format_description" : "domain[;domain;...]",
45320 "optional" : 1,
45321 "type" : "string"
45322 }
45323 },
45324 "optional" : 1,
45325 "type" : "string"
45326 },
45327 "acmedomain[n]" : {
45328 "description" : "ACME domain and validation plugin",
45329 "format" : {
45330 "alias" : {
45331 "description" : "Alias for the Domain to verify ACME Challenge over DNS",
45332 "format" : "pve-acme-alias",
45333 "format_description" : "domain",
45334 "optional" : 1,
45335 "type" : "string"
45336 },
45337 "domain" : {
45338 "default_key" : 1,
45339 "description" : "domain for this node's ACME certificate",
45340 "format" : "pve-acme-domain",
45341 "format_description" : "domain",
45342 "type" : "string"
45343 },
45344 "plugin" : {
45345 "default" : "standalone",
45346 "description" : "The ACME plugin ID",
45347 "format" : "pve-configid",
45348 "format_description" : "name of the plugin configuration",
45349 "optional" : 1,
45350 "type" : "string"
45351 }
45352 },
45353 "optional" : 1,
45354 "type" : "string"
45355 },
45356 "description" : {
45357 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
45358 "maxLength" : 65536,
45359 "optional" : 1,
45360 "type" : "string"
45361 },
45362 "digest" : {
45363 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
45364 "maxLength" : 40,
45365 "optional" : 1,
45366 "type" : "string"
45367 },
45368 "startall-onboot-delay" : {
45369 "default" : 0,
45370 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
45371 "maximum" : 300,
45372 "minimum" : 0,
45373 "optional" : 1,
45374 "type" : "integer"
45375 },
45376 "wakeonlan" : {
45377 "description" : "MAC address for wake on LAN",
45378 "format" : "mac-addr",
45379 "optional" : 1,
45380 "type" : "string"
45381 }
45382 },
c5aa7e14
TL
45383 "type" : "object"
45384 }
45385 },
45386 "PUT" : {
45387 "allowtoken" : 1,
45388 "description" : "Set node configuration options.",
45389 "method" : "PUT",
45390 "name" : "set_options",
45391 "parameters" : {
45392 "additionalProperties" : 0,
45393 "properties" : {
45394 "acme" : {
45395 "description" : "Node specific ACME settings.",
45396 "format" : {
45397 "account" : {
45398 "default" : "default",
45399 "description" : "ACME account config file name.",
45400 "format" : "pve-configid",
45401 "format_description" : "name",
45402 "optional" : 1,
45403 "type" : "string"
45404 },
45405 "domains" : {
45406 "description" : "List of domains for this node's ACME certificate",
45407 "format" : "pve-acme-domain-list",
45408 "format_description" : "domain[;domain;...]",
45409 "optional" : 1,
45410 "type" : "string"
45411 }
45412 },
45413 "optional" : 1,
45414 "type" : "string",
45415 "typetext" : "[account=<name>] [,domains=<domain[;domain;...]>]"
45416 },
45417 "acmedomain[n]" : {
45418 "description" : "ACME domain and validation plugin",
45419 "format" : {
45420 "alias" : {
45421 "description" : "Alias for the Domain to verify ACME Challenge over DNS",
ac70d7d1 45422 "format" : "pve-acme-alias",
c5aa7e14
TL
45423 "format_description" : "domain",
45424 "optional" : 1,
45425 "type" : "string"
45426 },
45427 "domain" : {
45428 "default_key" : 1,
45429 "description" : "domain for this node's ACME certificate",
45430 "format" : "pve-acme-domain",
45431 "format_description" : "domain",
45432 "type" : "string"
45433 },
45434 "plugin" : {
45435 "default" : "standalone",
45436 "description" : "The ACME plugin ID",
45437 "format" : "pve-configid",
45438 "format_description" : "name of the plugin configuration",
45439 "optional" : 1,
45440 "type" : "string"
45441 }
45442 },
45443 "optional" : 1,
45444 "type" : "string",
45445 "typetext" : "[domain=]<domain> [,alias=<domain>] [,plugin=<name of the plugin configuration>]"
45446 },
45447 "delete" : {
45448 "description" : "A list of settings you want to delete.",
45449 "format" : "pve-configid-list",
45450 "optional" : 1,
45451 "type" : "string",
45452 "typetext" : "<string>"
45453 },
45454 "description" : {
0695fdaf
TL
45455 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
45456 "maxLength" : 65536,
c5aa7e14
TL
45457 "optional" : 1,
45458 "type" : "string",
45459 "typetext" : "<string>"
45460 },
45461 "digest" : {
45462 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
45463 "maxLength" : 40,
45464 "optional" : 1,
45465 "type" : "string",
45466 "typetext" : "<string>"
45467 },
45468 "node" : {
45469 "description" : "The cluster node name.",
45470 "format" : "pve-node",
45471 "type" : "string",
45472 "typetext" : "<string>"
45473 },
45474 "startall-onboot-delay" : {
45475 "default" : 0,
45476 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
45477 "maximum" : 300,
45478 "minimum" : 0,
45479 "optional" : 1,
45480 "type" : "integer",
45481 "typetext" : "<integer> (0 - 300)"
45482 },
45483 "wakeonlan" : {
45484 "description" : "MAC address for wake on LAN",
45485 "format" : "mac-addr",
45486 "optional" : 1,
45487 "type" : "string",
45488 "typetext" : "<string>"
45489 }
45490 }
45491 },
45492 "permissions" : {
45493 "check" : [
45494 "perm",
45495 "/",
45496 [
45497 "Sys.Modify"
45498 ]
45499 ]
45500 },
45501 "protected" : 1,
45502 "proxyto" : "node",
45503 "returns" : {
45504 "type" : "null"
45505 }
45506 }
45507 },
45508 "leaf" : 1,
45509 "path" : "/nodes/{node}/config",
45510 "text" : "config"
45511 },
45512 {
45513 "children" : [
45514 {
45515 "children" : [
45516 {
45517 "children" : [
45518 {
45519 "info" : {
45520 "GET" : {
45521 "allowtoken" : 1,
45522 "description" : "List zone content.",
45523 "method" : "GET",
45524 "name" : "index",
45525 "parameters" : {
45526 "additionalProperties" : 0,
45527 "properties" : {
45528 "node" : {
45529 "description" : "The cluster node name.",
45530 "format" : "pve-node",
45531 "type" : "string",
45532 "typetext" : "<string>"
45533 },
45534 "zone" : {
45535 "description" : "The SDN zone object identifier.",
45536 "format" : "pve-sdn-zone-id",
45537 "type" : "string",
45538 "typetext" : "<string>"
45539 }
45540 }
45541 },
45542 "permissions" : {
45543 "check" : [
45544 "perm",
45545 "/sdn/zones/{zone}",
45546 [
45547 "SDN.Audit"
45548 ],
45549 "any",
45550 1
45551 ]
45552 },
45553 "protected" : 1,
45554 "proxyto" : "node",
45555 "returns" : {
45556 "items" : {
45557 "properties" : {
45558 "status" : {
45559 "description" : "Status.",
45560 "optional" : 1,
45561 "type" : "string"
45562 },
45563 "statusmsg" : {
45564 "description" : "Status details",
45565 "optional" : 1,
45566 "type" : "string"
45567 },
45568 "vnet" : {
45569 "description" : "Vnet identifier.",
45570 "type" : "string"
45571 }
45572 },
45573 "type" : "object"
45574 },
45575 "links" : [
45576 {
45577 "href" : "{vnet}",
45578 "rel" : "child"
45579 }
45580 ],
45581 "type" : "array"
45582 }
45583 }
45584 },
45585 "leaf" : 1,
45586 "path" : "/nodes/{node}/sdn/zones/{zone}/content",
45587 "text" : "content"
45588 }
45589 ],
45590 "info" : {
45591 "GET" : {
45592 "allowtoken" : 1,
45593 "description" : "",
45594 "method" : "GET",
45595 "name" : "diridx",
45596 "parameters" : {
45597 "additionalProperties" : 0,
45598 "properties" : {
45599 "node" : {
45600 "description" : "The cluster node name.",
45601 "format" : "pve-node",
45602 "type" : "string",
45603 "typetext" : "<string>"
45604 },
45605 "zone" : {
45606 "description" : "The SDN zone object identifier.",
45607 "format" : "pve-sdn-zone-id",
45608 "type" : "string",
45609 "typetext" : "<string>"
45610 }
45611 }
45612 },
45613 "permissions" : {
45614 "check" : [
45615 "perm",
45616 "/sdn/zones/{zone}",
45617 [
45618 "SDN.Audit"
45619 ],
45620 "any",
45621 1
45622 ]
45623 },
45624 "returns" : {
45625 "items" : {
45626 "properties" : {
45627 "subdir" : {
45628 "type" : "string"
45629 }
45630 },
45631 "type" : "object"
45632 },
45633 "links" : [
45634 {
45635 "href" : "{subdir}",
45636 "rel" : "child"
45637 }
45638 ],
45639 "type" : "array"
45640 }
45641 }
45642 },
45643 "leaf" : 0,
45644 "path" : "/nodes/{node}/sdn/zones/{zone}",
45645 "text" : "{zone}"
45646 }
45647 ],
45648 "info" : {
45649 "GET" : {
45650 "allowtoken" : 1,
45651 "description" : "Get status for all zones.",
45652 "method" : "GET",
45653 "name" : "index",
45654 "parameters" : {
45655 "additionalProperties" : 0,
45656 "properties" : {
45657 "node" : {
45658 "description" : "The cluster node name.",
45659 "format" : "pve-node",
45660 "type" : "string",
45661 "typetext" : "<string>"
45662 }
45663 }
45664 },
45665 "permissions" : {
45666 "description" : "Only list entries where you have 'SDN.Audit'",
45667 "user" : "all"
45668 },
45669 "protected" : 1,
45670 "proxyto" : "node",
45671 "returns" : {
45672 "items" : {
45673 "properties" : {
45674 "status" : {
45675 "description" : "Status of zone",
ac70d7d1
TL
45676 "enum" : [
45677 "available",
45678 "pending",
45679 "error"
45680 ],
c5aa7e14
TL
45681 "type" : "string"
45682 },
45683 "zone" : {
45684 "description" : "The SDN zone object identifier.",
45685 "format" : "pve-sdn-zone-id",
45686 "type" : "string"
45687 }
45688 },
45689 "type" : "object"
45690 },
45691 "links" : [
45692 {
45693 "href" : "{zone}",
45694 "rel" : "child"
45695 }
45696 ],
45697 "type" : "array"
45698 }
45699 }
45700 },
45701 "leaf" : 0,
45702 "path" : "/nodes/{node}/sdn/zones",
45703 "text" : "zones"
45704 }
45705 ],
45706 "info" : {
45707 "GET" : {
45708 "allowtoken" : 1,
45709 "description" : "SDN index.",
45710 "method" : "GET",
45711 "name" : "sdnindex",
45712 "parameters" : {
45713 "additionalProperties" : 0,
45714 "properties" : {
45715 "node" : {
45716 "description" : "The cluster node name.",
45717 "format" : "pve-node",
45718 "type" : "string",
45719 "typetext" : "<string>"
45720 }
45721 }
45722 },
45723 "permissions" : {
45724 "user" : "all"
45725 },
45726 "returns" : {
45727 "items" : {
45728 "properties" : {},
45729 "type" : "object"
45730 },
45731 "links" : [
45732 {
45733 "href" : "{name}",
45734 "rel" : "child"
45735 }
45736 ],
45737 "type" : "array"
45738 }
45739 }
45740 },
45741 "leaf" : 0,
45742 "path" : "/nodes/{node}/sdn",
45743 "text" : "sdn"
a9a8e3d1 45744 },
56122987 45745 {
56122987
DM
45746 "info" : {
45747 "GET" : {
e9cd3bd4 45748 "allowtoken" : 1,
44660702
DM
45749 "description" : "API version details",
45750 "method" : "GET",
45751 "name" : "version",
56122987 45752 "parameters" : {
44660702 45753 "additionalProperties" : 0,
56122987
DM
45754 "properties" : {
45755 "node" : {
56122987 45756 "description" : "The cluster node name.",
44660702 45757 "format" : "pve-node",
013dc89f
DM
45758 "type" : "string",
45759 "typetext" : "<string>"
56122987 45760 }
44660702 45761 }
56122987 45762 },
56122987 45763 "permissions" : {
7aacca6f 45764 "user" : "all"
56122987 45765 },
56122987 45766 "proxyto" : "node",
56122987 45767 "returns" : {
56122987 45768 "properties" : {
44660702 45769 "release" : {
1e3f8156 45770 "description" : "The current installed Proxmox VE Release",
56122987
DM
45771 "type" : "string"
45772 },
44660702 45773 "repoid" : {
1e3f8156 45774 "description" : "The short git commit hash ID from which this version was build",
7aacca6f
DM
45775 "type" : "string"
45776 },
45777 "version" : {
1e3f8156 45778 "description" : "The current installed pve-manager package version",
7aacca6f
DM
45779 "type" : "string"
45780 }
44660702
DM
45781 },
45782 "type" : "object"
7aacca6f 45783 }
56122987
DM
45784 }
45785 },
56122987 45786 "leaf" : 1,
44660702
DM
45787 "path" : "/nodes/{node}/version",
45788 "text" : "version"
56122987
DM
45789 },
45790 {
56122987
DM
45791 "info" : {
45792 "GET" : {
e9cd3bd4 45793 "allowtoken" : 1,
7aacca6f 45794 "description" : "Read node status",
44660702 45795 "method" : "GET",
7aacca6f 45796 "name" : "status",
56122987 45797 "parameters" : {
44660702 45798 "additionalProperties" : 0,
56122987
DM
45799 "properties" : {
45800 "node" : {
7aacca6f 45801 "description" : "The cluster node name.",
44660702 45802 "format" : "pve-node",
013dc89f
DM
45803 "type" : "string",
45804 "typetext" : "<string>"
56122987 45805 }
44660702 45806 }
56122987 45807 },
56122987
DM
45808 "permissions" : {
45809 "check" : [
45810 "perm",
45811 "/nodes/{node}",
45812 [
45813 "Sys.Audit"
45814 ]
45815 ]
44660702
DM
45816 },
45817 "proxyto" : "node",
45818 "returns" : {
44660702 45819 "type" : "object"
7aacca6f
DM
45820 }
45821 },
45822 "POST" : {
e9cd3bd4 45823 "allowtoken" : 1,
44660702
DM
45824 "description" : "Reboot or shutdown a node.",
45825 "method" : "POST",
7aacca6f 45826 "name" : "node_cmd",
56122987 45827 "parameters" : {
44660702 45828 "additionalProperties" : 0,
56122987 45829 "properties" : {
7aacca6f
DM
45830 "command" : {
45831 "description" : "Specify the command.",
56122987 45832 "enum" : [
7aacca6f
DM
45833 "reboot",
45834 "shutdown"
56122987
DM
45835 ],
45836 "type" : "string"
44660702
DM
45837 },
45838 "node" : {
45839 "description" : "The cluster node name.",
45840 "format" : "pve-node",
013dc89f
DM
45841 "type" : "string",
45842 "typetext" : "<string>"
56122987 45843 }
44660702 45844 }
7aacca6f 45845 },
7aacca6f
DM
45846 "permissions" : {
45847 "check" : [
45848 "perm",
45849 "/nodes/{node}",
45850 [
45851 "Sys.PowerMgmt"
45852 ]
45853 ]
45854 },
44660702 45855 "protected" : 1,
7aacca6f 45856 "proxyto" : "node",
7aacca6f
DM
45857 "returns" : {
45858 "type" : "null"
56122987
DM
45859 }
45860 }
45861 },
7aacca6f 45862 "leaf" : 1,
44660702
DM
45863 "path" : "/nodes/{node}/status",
45864 "text" : "status"
56122987
DM
45865 },
45866 {
56122987
DM
45867 "info" : {
45868 "GET" : {
e9cd3bd4 45869 "allowtoken" : 1,
44660702
DM
45870 "description" : "Read tap/vm network device interface counters",
45871 "method" : "GET",
45872 "name" : "netstat",
45873 "parameters" : {
45874 "additionalProperties" : 0,
45875 "properties" : {
45876 "node" : {
45877 "description" : "The cluster node name.",
45878 "format" : "pve-node",
013dc89f
DM
45879 "type" : "string",
45880 "typetext" : "<string>"
44660702 45881 }
56122987
DM
45882 }
45883 },
45884 "permissions" : {
45885 "check" : [
45886 "perm",
45887 "/nodes/{node}",
45888 [
7aacca6f 45889 "Sys.Audit"
56122987
DM
45890 ]
45891 ]
45892 },
7aacca6f 45893 "proxyto" : "node",
44660702
DM
45894 "returns" : {
45895 "items" : {
45896 "properties" : {},
45897 "type" : "object"
45898 },
45899 "type" : "array"
45900 }
7aacca6f
DM
45901 }
45902 },
44660702
DM
45903 "leaf" : 1,
45904 "path" : "/nodes/{node}/netstat",
7aacca6f
DM
45905 "text" : "netstat"
45906 },
45907 {
45908 "info" : {
45909 "POST" : {
e9cd3bd4 45910 "allowtoken" : 1,
159464a9 45911 "description" : "Execute multiple commands in order, root only.",
7aacca6f 45912 "method" : "POST",
7aacca6f 45913 "name" : "execute",
56122987
DM
45914 "parameters" : {
45915 "additionalProperties" : 0,
45916 "properties" : {
7aacca6f
DM
45917 "commands" : {
45918 "description" : "JSON encoded array of commands.",
de786b48 45919 "format" : "pve-command-batch",
013dc89f 45920 "type" : "string",
de786b48 45921 "typetext" : "<string>",
4a407cfd 45922 "verbose_description" : "JSON encoded array of commands, where each command is an object with the following properties:\n args: <object>\n\t A set of parameter names and their values.\n\n method: (GET|POST|PUT|DELETE)\n\t A method related to the API endpoint (GET, POST etc.).\n\n path: <string>\n\t A relative path to an API endpoint on this node.\n\n"
56122987
DM
45923 },
45924 "node" : {
44660702 45925 "description" : "The cluster node name.",
56122987 45926 "format" : "pve-node",
013dc89f
DM
45927 "type" : "string",
45928 "typetext" : "<string>"
56122987
DM
45929 }
45930 }
44660702 45931 },
44660702
DM
45932 "protected" : 1,
45933 "proxyto" : "node",
45934 "returns" : {
de786b48
TL
45935 "items" : {
45936 "properties" : {},
45937 "type" : "object"
45938 },
44660702 45939 "type" : "array"
56122987
DM
45940 }
45941 }
45942 },
56122987 45943 "leaf" : 1,
44660702
DM
45944 "path" : "/nodes/{node}/execute",
45945 "text" : "execute"
56122987 45946 },
5f26e15b
TL
45947 {
45948 "info" : {
45949 "POST" : {
e9cd3bd4 45950 "allowtoken" : 1,
5f26e15b
TL
45951 "description" : "Try to wake a node via 'wake on LAN' network packet.",
45952 "method" : "POST",
45953 "name" : "wakeonlan",
45954 "parameters" : {
45955 "additionalProperties" : 0,
45956 "properties" : {
45957 "node" : {
45958 "description" : "target node for wake on LAN packet",
45959 "format" : "pve-node",
45960 "type" : "string",
45961 "typetext" : "<string>"
45962 }
45963 }
45964 },
45965 "permissions" : {
45966 "check" : [
45967 "perm",
45968 "/nodes/{node}",
45969 [
45970 "Sys.PowerMgmt"
45971 ]
45972 ]
45973 },
45974 "protected" : 1,
45975 "returns" : {
45976 "description" : "MAC address used to assemble the WoL magic packet.",
45977 "format" : "mac-addr",
45978 "type" : "string"
45979 }
45980 }
45981 },
45982 "leaf" : 1,
45983 "path" : "/nodes/{node}/wakeonlan",
45984 "text" : "wakeonlan"
45985 },
56122987
DM
45986 {
45987 "info" : {
7aacca6f 45988 "GET" : {
e9cd3bd4 45989 "allowtoken" : 1,
44660702
DM
45990 "description" : "Read node RRD statistics (returns PNG)",
45991 "method" : "GET",
7aacca6f 45992 "name" : "rrd",
56122987 45993 "parameters" : {
7aacca6f 45994 "additionalProperties" : 0,
56122987 45995 "properties" : {
44660702
DM
45996 "cf" : {
45997 "description" : "The RRD consolidation function",
45998 "enum" : [
45999 "AVERAGE",
46000 "MAX"
46001 ],
46002 "optional" : 1,
46003 "type" : "string"
46004 },
7aacca6f 46005 "ds" : {
7aacca6f 46006 "description" : "The list of datasources you want to display.",
44660702 46007 "format" : "pve-configid-list",
013dc89f
DM
46008 "type" : "string",
46009 "typetext" : "<string>"
44660702
DM
46010 },
46011 "node" : {
46012 "description" : "The cluster node name.",
46013 "format" : "pve-node",
013dc89f
DM
46014 "type" : "string",
46015 "typetext" : "<string>"
7aacca6f
DM
46016 },
46017 "timeframe" : {
46018 "description" : "Specify the time frame you are interested in.",
46019 "enum" : [
46020 "hour",
46021 "day",
46022 "week",
46023 "month",
46024 "year"
46025 ],
46026 "type" : "string"
56122987 46027 }
7aacca6f 46028 }
56122987 46029 },
56122987 46030 "permissions" : {
56122987
DM
46031 "check" : [
46032 "perm",
46033 "/nodes/{node}",
46034 [
7aacca6f 46035 "Sys.Audit"
56122987
DM
46036 ]
46037 ]
46038 },
7aacca6f 46039 "protected" : 1,
56122987 46040 "returns" : {
56122987 46041 "properties" : {
7aacca6f 46042 "filename" : {
56122987
DM
46043 "type" : "string"
46044 }
44660702
DM
46045 },
46046 "type" : "object"
46047 }
56122987
DM
46048 }
46049 },
44660702 46050 "leaf" : 1,
7aacca6f 46051 "path" : "/nodes/{node}/rrd",
44660702 46052 "text" : "rrd"
56122987
DM
46053 },
46054 {
46055 "info" : {
7aacca6f 46056 "GET" : {
e9cd3bd4 46057 "allowtoken" : 1,
44660702
DM
46058 "description" : "Read node RRD statistics",
46059 "method" : "GET",
7aacca6f 46060 "name" : "rrddata",
56122987 46061 "parameters" : {
44660702 46062 "additionalProperties" : 0,
56122987 46063 "properties" : {
7aacca6f 46064 "cf" : {
7aacca6f
DM
46065 "description" : "The RRD consolidation function",
46066 "enum" : [
46067 "AVERAGE",
46068 "MAX"
44660702
DM
46069 ],
46070 "optional" : 1,
46071 "type" : "string"
56122987
DM
46072 },
46073 "node" : {
44660702 46074 "description" : "The cluster node name.",
56122987 46075 "format" : "pve-node",
013dc89f
DM
46076 "type" : "string",
46077 "typetext" : "<string>"
56122987 46078 },
7aacca6f 46079 "timeframe" : {
7aacca6f
DM
46080 "description" : "Specify the time frame you are interested in.",
46081 "enum" : [
46082 "hour",
46083 "day",
46084 "week",
46085 "month",
46086 "year"
44660702
DM
46087 ],
46088 "type" : "string"
56122987 46089 }
56122987
DM
46090 }
46091 },
56122987
DM
46092 "permissions" : {
46093 "check" : [
46094 "perm",
46095 "/nodes/{node}",
46096 [
44660702 46097 "Sys.Audit"
56122987
DM
46098 ]
46099 ]
7aacca6f 46100 },
44660702 46101 "protected" : 1,
56122987 46102 "returns" : {
7aacca6f 46103 "items" : {
44660702 46104 "properties" : {},
7aacca6f
DM
46105 "type" : "object"
46106 },
46107 "type" : "array"
44660702
DM
46108 }
46109 }
46110 },
46111 "leaf" : 1,
46112 "path" : "/nodes/{node}/rrddata",
46113 "text" : "rrddata"
46114 },
46115 {
46116 "info" : {
46117 "GET" : {
e9cd3bd4 46118 "allowtoken" : 1,
44660702
DM
46119 "description" : "Read system log",
46120 "method" : "GET",
46121 "name" : "syslog",
56122987 46122 "parameters" : {
44660702 46123 "additionalProperties" : 0,
56122987 46124 "properties" : {
44660702
DM
46125 "limit" : {
46126 "minimum" : 0,
7aacca6f 46127 "optional" : 1,
4bd7df8b 46128 "type" : "integer",
013dc89f 46129 "typetext" : "<integer> (0 - N)"
7aacca6f 46130 },
56122987 46131 "node" : {
7aacca6f 46132 "description" : "The cluster node name.",
44660702 46133 "format" : "pve-node",
013dc89f
DM
46134 "type" : "string",
46135 "typetext" : "<string>"
56122987 46136 },
35a75dd3
DM
46137 "service" : {
46138 "description" : "Service ID",
46139 "maxLength" : 128,
46140 "optional" : 1,
46141 "type" : "string",
46142 "typetext" : "<string>"
46143 },
44660702
DM
46144 "since" : {
46145 "description" : "Display all log since this date-time string.",
46146 "optional" : 1,
46147 "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
46148 "type" : "string"
46149 },
46150 "start" : {
7aacca6f
DM
46151 "minimum" : 0,
46152 "optional" : 1,
4bd7df8b 46153 "type" : "integer",
013dc89f 46154 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
46155 },
46156 "until" : {
46157 "description" : "Display all log until this date-time string.",
7aacca6f 46158 "optional" : 1,
44660702 46159 "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
56122987
DM
46160 "type" : "string"
46161 }
44660702 46162 }
56122987 46163 },
44660702
DM
46164 "permissions" : {
46165 "check" : [
46166 "perm",
46167 "/nodes/{node}",
46168 [
46169 "Sys.Syslog"
46170 ]
46171 ]
46172 },
46173 "protected" : 1,
46174 "proxyto" : "node",
46175 "returns" : {
46176 "items" : {
46177 "properties" : {
46178 "n" : {
46179 "description" : "Line number",
46180 "type" : "integer"
46181 },
46182 "t" : {
46183 "description" : "Line text",
46184 "type" : "string"
46185 }
46186 },
46187 "type" : "object"
46188 },
46189 "type" : "array"
46190 }
56122987
DM
46191 }
46192 },
44660702
DM
46193 "leaf" : 1,
46194 "path" : "/nodes/{node}/syslog",
7aacca6f 46195 "text" : "syslog"
56122987 46196 },
bb4c8cf8
TL
46197 {
46198 "info" : {
46199 "GET" : {
e9cd3bd4 46200 "allowtoken" : 1,
bb4c8cf8
TL
46201 "description" : "Read Journal",
46202 "method" : "GET",
46203 "name" : "journal",
46204 "parameters" : {
46205 "additionalProperties" : 0,
46206 "properties" : {
46207 "endcursor" : {
46208 "description" : "End before the given Cursor. Conflicts with 'until'",
46209 "optional" : 1,
46210 "type" : "string",
46211 "typetext" : "<string>"
46212 },
46213 "lastentries" : {
46214 "description" : "Limit to the last X lines. Conflicts with a range.",
46215 "minimum" : 0,
46216 "optional" : 1,
46217 "type" : "integer",
46218 "typetext" : "<integer> (0 - N)"
46219 },
46220 "node" : {
46221 "description" : "The cluster node name.",
46222 "format" : "pve-node",
46223 "type" : "string",
46224 "typetext" : "<string>"
46225 },
46226 "since" : {
46227 "description" : "Display all log since this UNIX epoch. Conflicts with 'startcursor'.",
46228 "minimum" : 0,
46229 "optional" : 1,
46230 "type" : "integer",
46231 "typetext" : "<integer> (0 - N)"
46232 },
46233 "startcursor" : {
46234 "description" : "Start after the given Cursor. Conflicts with 'since'",
46235 "optional" : 1,
46236 "type" : "string",
46237 "typetext" : "<string>"
46238 },
46239 "until" : {
46240 "description" : "Display all log until this UNIX epoch. Conflicts with 'endcursor'.",
46241 "minimum" : 0,
46242 "optional" : 1,
46243 "type" : "integer",
46244 "typetext" : "<integer> (0 - N)"
46245 }
46246 }
46247 },
46248 "permissions" : {
46249 "check" : [
46250 "perm",
46251 "/nodes/{node}",
46252 [
46253 "Sys.Syslog"
46254 ]
46255 ]
46256 },
46257 "protected" : 1,
46258 "proxyto" : "node",
46259 "returns" : {
46260 "items" : {
46261 "type" : "string"
46262 },
46263 "type" : "array"
46264 }
46265 }
46266 },
46267 "leaf" : 1,
46268 "path" : "/nodes/{node}/journal",
46269 "text" : "journal"
46270 },
56122987 46271 {
56122987
DM
46272 "info" : {
46273 "POST" : {
e9cd3bd4 46274 "allowtoken" : 1,
44660702
DM
46275 "description" : "Creates a VNC Shell proxy.",
46276 "method" : "POST",
46277 "name" : "vncshell",
46278 "parameters" : {
46279 "additionalProperties" : 0,
56122987 46280 "properties" : {
95895385
TL
46281 "cmd" : {
46282 "default" : "login",
46283 "description" : "Run specific command or default to login.",
46284 "enum" : [
c8eee6ff 46285 "login",
499c9b7f 46286 "ceph_install",
c8eee6ff 46287 "upgrade"
95895385
TL
46288 ],
46289 "optional" : 1,
46290 "type" : "string"
46291 },
4772952b
TL
46292 "cmd-opts" : {
46293 "default" : "",
46294 "description" : "Add parameters to a command. Encoded as null terminated strings.",
46295 "optional" : 1,
46296 "requires" : "cmd",
46297 "type" : "string",
46298 "typetext" : "<string>"
46299 },
5d9c884c
DM
46300 "height" : {
46301 "description" : "sets the height of the console in pixels.",
46302 "maximum" : 2160,
46303 "minimum" : 16,
46304 "optional" : 1,
46305 "type" : "integer",
46306 "typetext" : "<integer> (16 - 2160)"
46307 },
44660702
DM
46308 "node" : {
46309 "description" : "The cluster node name.",
46310 "format" : "pve-node",
013dc89f
DM
46311 "type" : "string",
46312 "typetext" : "<string>"
7aacca6f 46313 },
44660702
DM
46314 "websocket" : {
46315 "description" : "use websocket instead of standard vnc.",
46316 "optional" : 1,
013dc89f
DM
46317 "type" : "boolean",
46318 "typetext" : "<boolean>"
5d9c884c
DM
46319 },
46320 "width" : {
46321 "description" : "sets the width of the console in pixels.",
46322 "maximum" : 4096,
46323 "minimum" : 16,
46324 "optional" : 1,
46325 "type" : "integer",
46326 "typetext" : "<integer> (16 - 4096)"
56122987 46327 }
44660702 46328 }
56122987 46329 },
56122987
DM
46330 "permissions" : {
46331 "check" : [
46332 "perm",
7aacca6f 46333 "/nodes/{node}",
56122987 46334 [
7aacca6f 46335 "Sys.Console"
56122987 46336 ]
44660702
DM
46337 ],
46338 "description" : "Restricted to users on realm 'pam'"
56122987 46339 },
44660702
DM
46340 "protected" : 1,
46341 "returns" : {
46342 "additionalProperties" : 0,
56122987 46343 "properties" : {
44660702
DM
46344 "cert" : {
46345 "type" : "string"
7aacca6f 46346 },
44660702
DM
46347 "port" : {
46348 "type" : "integer"
7aacca6f 46349 },
44660702
DM
46350 "ticket" : {
46351 "type" : "string"
46352 },
46353 "upid" : {
46354 "type" : "string"
46355 },
46356 "user" : {
46357 "type" : "string"
56122987 46358 }
44660702
DM
46359 }
46360 }
56122987
DM
46361 }
46362 },
7aacca6f 46363 "leaf" : 1,
44660702
DM
46364 "path" : "/nodes/{node}/vncshell",
46365 "text" : "vncshell"
56122987 46366 },
35a75dd3
DM
46367 {
46368 "info" : {
46369 "POST" : {
e9cd3bd4 46370 "allowtoken" : 1,
35a75dd3
DM
46371 "description" : "Creates a VNC Shell proxy.",
46372 "method" : "POST",
46373 "name" : "termproxy",
46374 "parameters" : {
46375 "additionalProperties" : 0,
46376 "properties" : {
95895385
TL
46377 "cmd" : {
46378 "default" : "login",
46379 "description" : "Run specific command or default to login.",
46380 "enum" : [
c8eee6ff 46381 "login",
499c9b7f 46382 "ceph_install",
c8eee6ff 46383 "upgrade"
95895385
TL
46384 ],
46385 "optional" : 1,
46386 "type" : "string"
46387 },
4772952b
TL
46388 "cmd-opts" : {
46389 "default" : "",
46390 "description" : "Add parameters to a command. Encoded as null terminated strings.",
46391 "optional" : 1,
46392 "requires" : "cmd",
46393 "type" : "string",
46394 "typetext" : "<string>"
46395 },
35a75dd3
DM
46396 "node" : {
46397 "description" : "The cluster node name.",
46398 "format" : "pve-node",
46399 "type" : "string",
46400 "typetext" : "<string>"
35a75dd3
DM
46401 }
46402 }
46403 },
46404 "permissions" : {
46405 "check" : [
46406 "perm",
46407 "/nodes/{node}",
46408 [
46409 "Sys.Console"
46410 ]
46411 ],
46412 "description" : "Restricted to users on realm 'pam'"
46413 },
46414 "protected" : 1,
46415 "returns" : {
46416 "additionalProperties" : 0,
46417 "properties" : {
46418 "port" : {
46419 "type" : "integer"
46420 },
46421 "ticket" : {
46422 "type" : "string"
46423 },
46424 "upid" : {
46425 "type" : "string"
46426 },
46427 "user" : {
46428 "type" : "string"
46429 }
46430 }
46431 }
46432 }
46433 },
46434 "leaf" : 1,
46435 "path" : "/nodes/{node}/termproxy",
46436 "text" : "termproxy"
46437 },
56122987
DM
46438 {
46439 "info" : {
46440 "GET" : {
e9cd3bd4 46441 "allowtoken" : 1,
0695fdaf 46442 "description" : "Opens a websocket for VNC traffic.",
44660702
DM
46443 "method" : "GET",
46444 "name" : "vncwebsocket",
56122987 46445 "parameters" : {
44660702 46446 "additionalProperties" : 0,
56122987
DM
46447 "properties" : {
46448 "node" : {
46449 "description" : "The cluster node name.",
44660702 46450 "format" : "pve-node",
013dc89f
DM
46451 "type" : "string",
46452 "typetext" : "<string>"
7aacca6f
DM
46453 },
46454 "port" : {
7aacca6f
DM
46455 "description" : "Port number returned by previous vncproxy call.",
46456 "maximum" : 5999,
44660702 46457 "minimum" : 5900,
4bd7df8b 46458 "type" : "integer",
013dc89f 46459 "typetext" : "<integer> (5900 - 5999)"
44660702
DM
46460 },
46461 "vncticket" : {
46462 "description" : "Ticket from previous call to vncproxy.",
46463 "maxLength" : 512,
013dc89f
DM
46464 "type" : "string",
46465 "typetext" : "<string>"
56122987 46466 }
44660702 46467 }
56122987 46468 },
56122987
DM
46469 "permissions" : {
46470 "check" : [
46471 "perm",
46472 "/nodes/{node}",
46473 [
7aacca6f 46474 "Sys.Console"
56122987 46475 ]
44660702
DM
46476 ],
46477 "description" : "Restricted to users on realm 'pam'. You also need to pass a valid ticket (vncticket)."
46478 },
46479 "returns" : {
46480 "properties" : {
46481 "port" : {
46482 "type" : "string"
46483 }
46484 },
46485 "type" : "object"
7aacca6f 46486 }
56122987
DM
46487 }
46488 },
44660702 46489 "leaf" : 1,
7aacca6f 46490 "path" : "/nodes/{node}/vncwebsocket",
44660702 46491 "text" : "vncwebsocket"
56122987
DM
46492 },
46493 {
46494 "info" : {
46495 "POST" : {
e9cd3bd4 46496 "allowtoken" : 1,
44660702 46497 "description" : "Creates a SPICE shell.",
7aacca6f 46498 "method" : "POST",
44660702 46499 "name" : "spiceshell",
56122987 46500 "parameters" : {
7aacca6f 46501 "additionalProperties" : 0,
56122987 46502 "properties" : {
95895385
TL
46503 "cmd" : {
46504 "default" : "login",
46505 "description" : "Run specific command or default to login.",
46506 "enum" : [
c8eee6ff 46507 "login",
499c9b7f 46508 "ceph_install",
c8eee6ff 46509 "upgrade"
95895385
TL
46510 ],
46511 "optional" : 1,
46512 "type" : "string"
46513 },
4772952b
TL
46514 "cmd-opts" : {
46515 "default" : "",
46516 "description" : "Add parameters to a command. Encoded as null terminated strings.",
46517 "optional" : 1,
46518 "requires" : "cmd",
46519 "type" : "string",
46520 "typetext" : "<string>"
46521 },
7aacca6f 46522 "node" : {
44660702 46523 "description" : "The cluster node name.",
56122987 46524 "format" : "pve-node",
013dc89f
DM
46525 "type" : "string",
46526 "typetext" : "<string>"
7aacca6f 46527 },
44660702 46528 "proxy" : {
4d47f125 46529 "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
46530 "format" : "address",
46531 "optional" : 1,
013dc89f
DM
46532 "type" : "string",
46533 "typetext" : "<string>"
56122987 46534 }
7aacca6f 46535 }
56122987 46536 },
56122987
DM
46537 "permissions" : {
46538 "check" : [
46539 "perm",
7aacca6f 46540 "/nodes/{node}",
56122987 46541 [
7aacca6f 46542 "Sys.Console"
56122987 46543 ]
7aacca6f
DM
46544 ],
46545 "description" : "Restricted to users on realm 'pam'"
44660702
DM
46546 },
46547 "protected" : 1,
46548 "proxyto" : "node",
46549 "returns" : {
46550 "additionalProperties" : 1,
46551 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
46552 "properties" : {
46553 "host" : {
46554 "type" : "string"
46555 },
46556 "password" : {
46557 "type" : "string"
46558 },
46559 "proxy" : {
46560 "type" : "string"
46561 },
46562 "tls-port" : {
46563 "type" : "integer"
46564 },
46565 "type" : {
46566 "type" : "string"
46567 }
46568 }
7aacca6f 46569 }
56122987
DM
46570 }
46571 },
56122987 46572 "leaf" : 1,
44660702
DM
46573 "path" : "/nodes/{node}/spiceshell",
46574 "text" : "spiceshell"
56122987
DM
46575 },
46576 {
56122987 46577 "info" : {
7aacca6f 46578 "GET" : {
e9cd3bd4 46579 "allowtoken" : 1,
44660702 46580 "description" : "Read DNS settings.",
7aacca6f 46581 "method" : "GET",
44660702
DM
46582 "name" : "dns",
46583 "parameters" : {
7aacca6f
DM
46584 "additionalProperties" : 0,
46585 "properties" : {
44660702
DM
46586 "node" : {
46587 "description" : "The cluster node name.",
46588 "format" : "pve-node",
013dc89f
DM
46589 "type" : "string",
46590 "typetext" : "<string>"
7aacca6f
DM
46591 }
46592 }
46593 },
7aacca6f
DM
46594 "permissions" : {
46595 "check" : [
46596 "perm",
46597 "/nodes/{node}",
46598 [
46599 "Sys.Audit"
46600 ]
46601 ]
46602 },
44660702
DM
46603 "proxyto" : "node",
46604 "returns" : {
56122987
DM
46605 "additionalProperties" : 0,
46606 "properties" : {
44660702
DM
46607 "dns1" : {
46608 "description" : "First name server IP address.",
46609 "optional" : 1,
46610 "type" : "string"
46611 },
46612 "dns2" : {
46613 "description" : "Second name server IP address.",
46614 "optional" : 1,
46615 "type" : "string"
46616 },
46617 "dns3" : {
46618 "description" : "Third name server IP address.",
46619 "optional" : 1,
46620 "type" : "string"
46621 },
46622 "search" : {
46623 "description" : "Search domain for host-name lookup.",
46624 "optional" : 1,
46625 "type" : "string"
7aacca6f 46626 }
44660702
DM
46627 },
46628 "type" : "object"
46629 }
7aacca6f
DM
46630 },
46631 "PUT" : {
e9cd3bd4 46632 "allowtoken" : 1,
44660702
DM
46633 "description" : "Write DNS settings.",
46634 "method" : "PUT",
7aacca6f
DM
46635 "name" : "update_dns",
46636 "parameters" : {
46637 "additionalProperties" : 0,
46638 "properties" : {
44660702
DM
46639 "dns1" : {
46640 "description" : "First name server IP address.",
46641 "format" : "ip",
46642 "optional" : 1,
013dc89f
DM
46643 "type" : "string",
46644 "typetext" : "<string>"
7aacca6f 46645 },
44660702
DM
46646 "dns2" : {
46647 "description" : "Second name server IP address.",
46648 "format" : "ip",
7aacca6f 46649 "optional" : 1,
013dc89f
DM
46650 "type" : "string",
46651 "typetext" : "<string>"
7aacca6f 46652 },
44660702
DM
46653 "dns3" : {
46654 "description" : "Third name server IP address.",
46655 "format" : "ip",
7aacca6f 46656 "optional" : 1,
013dc89f
DM
46657 "type" : "string",
46658 "typetext" : "<string>"
7aacca6f
DM
46659 },
46660 "node" : {
44660702 46661 "description" : "The cluster node name.",
56122987 46662 "format" : "pve-node",
013dc89f
DM
46663 "type" : "string",
46664 "typetext" : "<string>"
7aacca6f 46665 },
44660702
DM
46666 "search" : {
46667 "description" : "Search domain for host-name lookup.",
013dc89f
DM
46668 "type" : "string",
46669 "typetext" : "<string>"
56122987
DM
46670 }
46671 }
46672 },
46673 "permissions" : {
46674 "check" : [
46675 "perm",
7aacca6f 46676 "/nodes/{node}",
56122987 46677 [
7aacca6f 46678 "Sys.Modify"
56122987
DM
46679 ]
46680 ]
46681 },
44660702 46682 "protected" : 1,
7aacca6f 46683 "proxyto" : "node",
56122987 46684 "returns" : {
7aacca6f
DM
46685 "type" : "null"
46686 }
56122987 46687 }
44660702
DM
46688 },
46689 "leaf" : 1,
46690 "path" : "/nodes/{node}/dns",
46691 "text" : "dns"
56122987
DM
46692 },
46693 {
46694 "info" : {
7aacca6f 46695 "GET" : {
e9cd3bd4 46696 "allowtoken" : 1,
7aacca6f 46697 "description" : "Read server time and time zone settings.",
44660702
DM
46698 "method" : "GET",
46699 "name" : "time",
56122987 46700 "parameters" : {
44660702 46701 "additionalProperties" : 0,
56122987
DM
46702 "properties" : {
46703 "node" : {
44660702 46704 "description" : "The cluster node name.",
56122987 46705 "format" : "pve-node",
013dc89f
DM
46706 "type" : "string",
46707 "typetext" : "<string>"
56122987 46708 }
44660702 46709 }
56122987
DM
46710 },
46711 "permissions" : {
46712 "check" : [
46713 "perm",
7aacca6f 46714 "/nodes/{node}",
56122987 46715 [
7aacca6f 46716 "Sys.Audit"
56122987
DM
46717 ]
46718 ]
44660702
DM
46719 },
46720 "proxyto" : "node",
46721 "returns" : {
46722 "additionalProperties" : 0,
46723 "properties" : {
46724 "localtime" : {
46725 "description" : "Seconds since 1970-01-01 00:00:00 (local time)",
46726 "minimum" : 1297163644,
4d47f125 46727 "renderer" : "timestamp_gmt",
44660702
DM
46728 "type" : "integer"
46729 },
46730 "time" : {
46731 "description" : "Seconds since 1970-01-01 00:00:00 UTC.",
46732 "minimum" : 1297163644,
4d47f125 46733 "renderer" : "timestamp",
44660702
DM
46734 "type" : "integer"
46735 },
46736 "timezone" : {
46737 "description" : "Time zone",
46738 "type" : "string"
46739 }
46740 },
46741 "type" : "object"
7aacca6f
DM
46742 }
46743 },
46744 "PUT" : {
e9cd3bd4 46745 "allowtoken" : 1,
7aacca6f 46746 "description" : "Set time zone.",
44660702
DM
46747 "method" : "PUT",
46748 "name" : "set_timezone",
46749 "parameters" : {
46750 "additionalProperties" : 0,
46751 "properties" : {
46752 "node" : {
46753 "description" : "The cluster node name.",
46754 "format" : "pve-node",
013dc89f
DM
46755 "type" : "string",
46756 "typetext" : "<string>"
44660702
DM
46757 },
46758 "timezone" : {
46759 "description" : "Time zone. The file '/usr/share/zoneinfo/zone.tab' contains the list of valid names.",
013dc89f
DM
46760 "type" : "string",
46761 "typetext" : "<string>"
44660702
DM
46762 }
46763 }
46764 },
7aacca6f
DM
46765 "permissions" : {
46766 "check" : [
46767 "perm",
46768 "/nodes/{node}",
46769 [
46770 "Sys.Modify"
46771 ]
46772 ]
56122987 46773 },
7aacca6f 46774 "protected" : 1,
44660702
DM
46775 "proxyto" : "node",
46776 "returns" : {
46777 "type" : "null"
46778 }
7aacca6f
DM
46779 }
46780 },
7aacca6f 46781 "leaf" : 1,
44660702
DM
46782 "path" : "/nodes/{node}/time",
46783 "text" : "time"
7aacca6f
DM
46784 },
46785 {
46786 "info" : {
44660702 46787 "GET" : {
e9cd3bd4 46788 "allowtoken" : 1,
44660702
DM
46789 "description" : "Get list of appliances.",
46790 "method" : "GET",
46791 "name" : "aplinfo",
7aacca6f
DM
46792 "parameters" : {
46793 "additionalProperties" : 0,
46794 "properties" : {
7aacca6f 46795 "node" : {
44660702 46796 "description" : "The cluster node name.",
7aacca6f 46797 "format" : "pve-node",
013dc89f
DM
46798 "type" : "string",
46799 "typetext" : "<string>"
7aacca6f
DM
46800 }
46801 }
56122987 46802 },
7aacca6f 46803 "permissions" : {
44660702 46804 "user" : "all"
56122987 46805 },
44660702 46806 "proxyto" : "node",
7aacca6f
DM
46807 "returns" : {
46808 "items" : {
44660702
DM
46809 "properties" : {},
46810 "type" : "object"
7aacca6f
DM
46811 },
46812 "type" : "array"
44660702
DM
46813 }
46814 },
46815 "POST" : {
e9cd3bd4 46816 "allowtoken" : 1,
44660702
DM
46817 "description" : "Download appliance templates.",
46818 "method" : "POST",
46819 "name" : "apl_download",
7aacca6f
DM
46820 "parameters" : {
46821 "additionalProperties" : 0,
46822 "properties" : {
46823 "node" : {
7aacca6f 46824 "description" : "The cluster node name.",
44660702 46825 "format" : "pve-node",
013dc89f
DM
46826 "type" : "string",
46827 "typetext" : "<string>"
44660702
DM
46828 },
46829 "storage" : {
4bd7df8b 46830 "description" : "The storage where the template will be stored",
44660702 46831 "format" : "pve-storage-id",
013dc89f
DM
46832 "type" : "string",
46833 "typetext" : "<string>"
44660702
DM
46834 },
46835 "template" : {
1e3f8156 46836 "description" : "The template which will downloaded",
44660702 46837 "maxLength" : 255,
013dc89f
DM
46838 "type" : "string",
46839 "typetext" : "<string>"
7aacca6f
DM
46840 }
46841 }
56122987 46842 },
7aacca6f 46843 "permissions" : {
44660702
DM
46844 "check" : [
46845 "perm",
46846 "/storage/{storage}",
46847 [
46848 "Datastore.AllocateTemplate"
46849 ]
46850 ]
46851 },
46852 "protected" : 1,
46853 "proxyto" : "node",
46854 "returns" : {
46855 "type" : "string"
7aacca6f
DM
46856 }
46857 }
46858 },
7aacca6f 46859 "leaf" : 1,
44660702
DM
46860 "path" : "/nodes/{node}/aplinfo",
46861 "text" : "aplinfo"
7aacca6f 46862 },
5370fa8c
TL
46863 {
46864 "info" : {
46865 "GET" : {
46866 "allowtoken" : 1,
46867 "description" : "Query metadata of an URL: file size, file name and mime type.",
46868 "method" : "GET",
46869 "name" : "query_url_metadata",
46870 "parameters" : {
46871 "additionalProperties" : 0,
46872 "properties" : {
46873 "node" : {
46874 "description" : "The cluster node name.",
46875 "format" : "pve-node",
46876 "type" : "string",
46877 "typetext" : "<string>"
46878 },
46879 "url" : {
46880 "description" : "The URL to query the metadata from.",
46881 "pattern" : "https?://.*",
46882 "type" : "string"
46883 },
46884 "verify-certificates" : {
46885 "default" : 1,
46886 "description" : "If false, no SSL/TLS certificates will be verified.",
46887 "optional" : 1,
46888 "type" : "boolean",
46889 "typetext" : "<boolean>"
46890 }
46891 }
46892 },
46893 "permissions" : {
46894 "check" : [
46895 "perm",
46896 "/",
46897 [
46898 "Sys.Audit",
46899 "Sys.Modify"
46900 ]
46901 ]
46902 },
46903 "proxyto" : "node",
46904 "returns" : {
46905 "properties" : {
46906 "filename" : {
46907 "optional" : 1,
46908 "type" : "string"
46909 },
46910 "mimetype" : {
46911 "optional" : 1,
46912 "type" : "string"
46913 },
46914 "size" : {
46915 "optional" : 1,
46916 "renderer" : "bytes",
46917 "type" : "integer"
46918 }
46919 },
46920 "type" : "object"
46921 }
46922 }
46923 },
46924 "leaf" : 1,
46925 "path" : "/nodes/{node}/query-url-metadata",
46926 "text" : "query-url-metadata"
46927 },
7aacca6f
DM
46928 {
46929 "info" : {
46930 "GET" : {
e9cd3bd4 46931 "allowtoken" : 1,
44660702
DM
46932 "description" : "Gather various systems information about a node",
46933 "method" : "GET",
46934 "name" : "report",
7aacca6f 46935 "parameters" : {
44660702 46936 "additionalProperties" : 0,
7aacca6f
DM
46937 "properties" : {
46938 "node" : {
7aacca6f 46939 "description" : "The cluster node name.",
44660702 46940 "format" : "pve-node",
013dc89f
DM
46941 "type" : "string",
46942 "typetext" : "<string>"
7aacca6f 46943 }
44660702 46944 }
56122987 46945 },
7aacca6f
DM
46946 "permissions" : {
46947 "check" : [
46948 "perm",
46949 "/nodes/{node}",
46950 [
46951 "Sys.Audit"
46952 ]
46953 ]
56122987 46954 },
44660702 46955 "protected" : 1,
7aacca6f
DM
46956 "proxyto" : "node",
46957 "returns" : {
56122987 46958 "type" : "string"
7aacca6f
DM
46959 }
46960 }
46961 },
7aacca6f 46962 "leaf" : 1,
44660702
DM
46963 "path" : "/nodes/{node}/report",
46964 "text" : "report"
7aacca6f
DM
46965 },
46966 {
7aacca6f
DM
46967 "info" : {
46968 "POST" : {
e9cd3bd4 46969 "allowtoken" : 1,
1c532546 46970 "description" : "Start all VMs and containers located on this node (by default only those with onboot=1).",
7aacca6f 46971 "method" : "POST",
44660702 46972 "name" : "startall",
7aacca6f 46973 "parameters" : {
44660702 46974 "additionalProperties" : 0,
7aacca6f
DM
46975 "properties" : {
46976 "force" : {
1c532546
TL
46977 "default" : "off",
46978 "description" : "Issue start command even if virtual guest have 'onboot' not set or set to off.",
7aacca6f 46979 "optional" : 1,
013dc89f
DM
46980 "type" : "boolean",
46981 "typetext" : "<boolean>"
7aacca6f
DM
46982 },
46983 "node" : {
7aacca6f 46984 "description" : "The cluster node name.",
44660702 46985 "format" : "pve-node",
013dc89f
DM
46986 "type" : "string",
46987 "typetext" : "<string>"
52e44c50
FG
46988 },
46989 "vms" : {
1c532546 46990 "description" : "Only consider guests from this comma separated list of VMIDs.",
52e44c50
FG
46991 "format" : "pve-vmid-list",
46992 "optional" : 1,
46993 "type" : "string",
46994 "typetext" : "<string>"
7aacca6f 46995 }
44660702 46996 }
56122987 46997 },
7aacca6f 46998 "permissions" : {
9d2e98ed
TL
46999 "description" : "The 'VM.PowerMgmt' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
47000 "user" : "all"
44660702
DM
47001 },
47002 "protected" : 1,
47003 "proxyto" : "node",
47004 "returns" : {
47005 "type" : "string"
7aacca6f
DM
47006 }
47007 }
47008 },
44660702 47009 "leaf" : 1,
7aacca6f 47010 "path" : "/nodes/{node}/startall",
44660702 47011 "text" : "startall"
7aacca6f
DM
47012 },
47013 {
7aacca6f
DM
47014 "info" : {
47015 "POST" : {
e9cd3bd4 47016 "allowtoken" : 1,
7aacca6f 47017 "description" : "Stop all VMs and Containers.",
44660702
DM
47018 "method" : "POST",
47019 "name" : "stopall",
7aacca6f 47020 "parameters" : {
44660702 47021 "additionalProperties" : 0,
7aacca6f 47022 "properties" : {
9d2e98ed
TL
47023 "force-stop" : {
47024 "default" : 1,
47025 "description" : "Force a hard-stop after the timeout.",
47026 "optional" : 1,
47027 "type" : "boolean",
47028 "typetext" : "<boolean>"
47029 },
7aacca6f 47030 "node" : {
44660702 47031 "description" : "The cluster node name.",
7aacca6f 47032 "format" : "pve-node",
013dc89f
DM
47033 "type" : "string",
47034 "typetext" : "<string>"
52e44c50 47035 },
9d2e98ed
TL
47036 "timeout" : {
47037 "default" : 180,
47038 "description" : "Timeout for each guest shutdown task. Depending on `force-stop`, the shutdown gets then simply aborted or a hard-stop is forced.",
47039 "maximum" : 7200,
47040 "minimum" : 0,
47041 "optional" : 1,
47042 "type" : "integer",
47043 "typetext" : "<integer> (0 - 7200)"
47044 },
52e44c50
FG
47045 "vms" : {
47046 "description" : "Only consider Guests with these IDs.",
47047 "format" : "pve-vmid-list",
47048 "optional" : 1,
47049 "type" : "string",
47050 "typetext" : "<string>"
7aacca6f 47051 }
44660702 47052 }
56122987 47053 },
7aacca6f 47054 "permissions" : {
9d2e98ed
TL
47055 "description" : "The 'VM.PowerMgmt' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
47056 "user" : "all"
56122987 47057 },
44660702 47058 "protected" : 1,
7aacca6f 47059 "proxyto" : "node",
44660702
DM
47060 "returns" : {
47061 "type" : "string"
47062 }
47063 }
56122987 47064 },
44660702
DM
47065 "leaf" : 1,
47066 "path" : "/nodes/{node}/stopall",
47067 "text" : "stopall"
47068 },
47069 {
47070 "info" : {
47071 "POST" : {
e9cd3bd4 47072 "allowtoken" : 1,
44660702
DM
47073 "description" : "Migrate all VMs and Containers.",
47074 "method" : "POST",
47075 "name" : "migrateall",
47076 "parameters" : {
47077 "additionalProperties" : 0,
47078 "properties" : {
47079 "maxworkers" : {
9d2e98ed 47080 "description" : "Maximal number of parallel migration job. If not set, uses'max_workers' from datacenter.cfg. One of both must be set!",
44660702
DM
47081 "minimum" : 1,
47082 "optional" : 1,
4bd7df8b 47083 "type" : "integer",
013dc89f 47084 "typetext" : "<integer> (1 - N)"
44660702
DM
47085 },
47086 "node" : {
47087 "description" : "The cluster node name.",
47088 "format" : "pve-node",
013dc89f
DM
47089 "type" : "string",
47090 "typetext" : "<string>"
44660702
DM
47091 },
47092 "target" : {
47093 "description" : "Target node.",
47094 "format" : "pve-node",
013dc89f
DM
47095 "type" : "string",
47096 "typetext" : "<string>"
52e44c50
FG
47097 },
47098 "vms" : {
47099 "description" : "Only consider Guests with these IDs.",
47100 "format" : "pve-vmid-list",
47101 "optional" : 1,
47102 "type" : "string",
47103 "typetext" : "<string>"
e9cd3bd4
TL
47104 },
47105 "with-local-disks" : {
47106 "description" : "Enable live storage migration for local disk",
47107 "optional" : 1,
47108 "type" : "boolean",
47109 "typetext" : "<boolean>"
44660702
DM
47110 }
47111 }
47112 },
47113 "permissions" : {
9d2e98ed
TL
47114 "description" : "The 'VM.Migrate' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
47115 "user" : "all"
44660702
DM
47116 },
47117 "protected" : 1,
47118 "proxyto" : "node",
47119 "returns" : {
47120 "type" : "string"
47121 }
47122 }
56122987 47123 },
44660702
DM
47124 "leaf" : 1,
47125 "path" : "/nodes/{node}/migrateall",
47126 "text" : "migrateall"
4d47f125
TL
47127 },
47128 {
47129 "info" : {
47130 "GET" : {
e9cd3bd4 47131 "allowtoken" : 1,
4d47f125
TL
47132 "description" : "Get the content of /etc/hosts.",
47133 "method" : "GET",
47134 "name" : "get_etc_hosts",
47135 "parameters" : {
47136 "additionalProperties" : 0,
47137 "properties" : {
47138 "node" : {
47139 "description" : "The cluster node name.",
47140 "format" : "pve-node",
47141 "type" : "string",
47142 "typetext" : "<string>"
47143 }
47144 }
47145 },
47146 "permissions" : {
47147 "check" : [
47148 "perm",
47149 "/",
47150 [
47151 "Sys.Audit"
47152 ]
47153 ]
47154 },
47155 "protected" : 1,
47156 "proxyto" : "node",
47157 "returns" : {
47158 "properties" : {
47159 "data" : {
47160 "description" : "The content of /etc/hosts.",
47161 "type" : "string"
47162 },
47163 "digest" : {
47164 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
47165 "maxLength" : 40,
47166 "optional" : 1,
47167 "type" : "string"
47168 }
47169 },
47170 "type" : "object"
47171 }
47172 },
47173 "POST" : {
e9cd3bd4 47174 "allowtoken" : 1,
4d47f125
TL
47175 "description" : "Write /etc/hosts.",
47176 "method" : "POST",
47177 "name" : "write_etc_hosts",
47178 "parameters" : {
47179 "additionalProperties" : 0,
47180 "properties" : {
47181 "data" : {
47182 "description" : "The target content of /etc/hosts.",
47183 "type" : "string",
47184 "typetext" : "<string>"
47185 },
47186 "digest" : {
47187 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
47188 "maxLength" : 40,
47189 "optional" : 1,
47190 "type" : "string",
47191 "typetext" : "<string>"
47192 },
47193 "node" : {
47194 "description" : "The cluster node name.",
47195 "format" : "pve-node",
47196 "type" : "string",
47197 "typetext" : "<string>"
47198 }
47199 }
47200 },
47201 "permissions" : {
47202 "check" : [
47203 "perm",
47204 "/nodes/{node}",
47205 [
47206 "Sys.Modify"
47207 ]
47208 ]
47209 },
47210 "protected" : 1,
47211 "proxyto" : "node",
47212 "returns" : {
47213 "type" : "null"
47214 }
47215 }
47216 },
47217 "leaf" : 1,
47218 "path" : "/nodes/{node}/hosts",
47219 "text" : "hosts"
44660702
DM
47220 }
47221 ],
47222 "info" : {
47223 "GET" : {
e9cd3bd4 47224 "allowtoken" : 1,
44660702
DM
47225 "description" : "Node index.",
47226 "method" : "GET",
47227 "name" : "index",
47228 "parameters" : {
47229 "additionalProperties" : 0,
47230 "properties" : {
47231 "node" : {
47232 "description" : "The cluster node name.",
47233 "format" : "pve-node",
013dc89f
DM
47234 "type" : "string",
47235 "typetext" : "<string>"
44660702
DM
47236 }
47237 }
56122987 47238 },
44660702
DM
47239 "permissions" : {
47240 "user" : "all"
56122987 47241 },
44660702
DM
47242 "returns" : {
47243 "items" : {
47244 "properties" : {},
47245 "type" : "object"
47246 },
47247 "links" : [
47248 {
47249 "href" : "{name}",
47250 "rel" : "child"
47251 }
56122987 47252 ],
44660702 47253 "type" : "array"
7aacca6f
DM
47254 }
47255 }
47256 },
44660702
DM
47257 "leaf" : 0,
47258 "path" : "/nodes/{node}",
47259 "text" : "{node}"
47260 }
47261 ],
47262 "info" : {
7aacca6f 47263 "GET" : {
e9cd3bd4 47264 "allowtoken" : 1,
44660702 47265 "description" : "Cluster node index.",
7aacca6f 47266 "method" : "GET",
44660702 47267 "name" : "index",
7aacca6f 47268 "parameters" : {
7aacca6f
DM
47269 "additionalProperties" : 0
47270 },
47271 "permissions" : {
7aacca6f
DM
47272 "user" : "all"
47273 },
44660702
DM
47274 "returns" : {
47275 "items" : {
4d47f125
TL
47276 "properties" : {
47277 "cpu" : {
47278 "description" : "CPU utilization.",
47279 "optional" : 1,
47280 "renderer" : "fraction_as_percentage",
47281 "type" : "number"
47282 },
47283 "level" : {
47284 "description" : "Support level.",
47285 "optional" : 1,
47286 "type" : "string"
47287 },
47288 "maxcpu" : {
47289 "description" : "Number of available CPUs.",
47290 "optional" : 1,
47291 "type" : "integer"
47292 },
47293 "maxmem" : {
47294 "description" : "Number of available memory in bytes.",
47295 "optional" : 1,
47296 "renderer" : "bytes",
47297 "type" : "integer"
47298 },
47299 "mem" : {
47300 "description" : "Used memory in bytes.",
47301 "optional" : 1,
47302 "renderer" : "bytes",
1c532546 47303 "type" : "integer"
4d47f125
TL
47304 },
47305 "node" : {
47306 "description" : "The cluster node name.",
47307 "format" : "pve-node",
47308 "type" : "string"
47309 },
47310 "ssl_fingerprint" : {
47311 "description" : "The SSL fingerprint for the node certificate.",
47312 "optional" : 1,
47313 "type" : "string"
47314 },
47315 "status" : {
47316 "description" : "Node status.",
47317 "enum" : [
47318 "unknown",
47319 "online",
47320 "offline"
47321 ],
47322 "type" : "string"
47323 },
47324 "uptime" : {
47325 "description" : "Node uptime in seconds.",
47326 "optional" : 1,
47327 "renderer" : "duration",
47328 "type" : "integer"
47329 }
47330 },
44660702
DM
47331 "type" : "object"
47332 },
47333 "links" : [
47334 {
47335 "href" : "{node}",
47336 "rel" : "child"
47337 }
47338 ],
47339 "type" : "array"
47340 }
7aacca6f
DM
47341 }
47342 },
44660702
DM
47343 "leaf" : 0,
47344 "path" : "/nodes",
47345 "text" : "nodes"
47346 },
47347 {
7aacca6f
DM
47348 "children" : [
47349 {
7aacca6f 47350 "info" : {
44660702 47351 "DELETE" : {
e9cd3bd4 47352 "allowtoken" : 1,
44660702
DM
47353 "description" : "Delete storage configuration.",
47354 "method" : "DELETE",
47355 "name" : "delete",
7aacca6f
DM
47356 "parameters" : {
47357 "additionalProperties" : 0,
47358 "properties" : {
47359 "storage" : {
7aacca6f 47360 "description" : "The storage identifier.",
44660702 47361 "format" : "pve-storage-id",
013dc89f
DM
47362 "type" : "string",
47363 "typetext" : "<string>"
7aacca6f
DM
47364 }
47365 }
56122987 47366 },
7aacca6f
DM
47367 "permissions" : {
47368 "check" : [
47369 "perm",
47370 "/storage",
47371 [
47372 "Datastore.Allocate"
47373 ]
47374 ]
56122987 47375 },
44660702
DM
47376 "protected" : 1,
47377 "returns" : {
47378 "type" : "null"
47379 }
47380 },
47381 "GET" : {
e9cd3bd4 47382 "allowtoken" : 1,
44660702
DM
47383 "description" : "Read storage configuration.",
47384 "method" : "GET",
47385 "name" : "read",
7aacca6f
DM
47386 "parameters" : {
47387 "additionalProperties" : 0,
47388 "properties" : {
47389 "storage" : {
44660702 47390 "description" : "The storage identifier.",
7aacca6f 47391 "format" : "pve-storage-id",
013dc89f
DM
47392 "type" : "string",
47393 "typetext" : "<string>"
7aacca6f
DM
47394 }
47395 }
47396 },
44660702
DM
47397 "permissions" : {
47398 "check" : [
47399 "perm",
47400 "/storage/{storage}",
47401 [
47402 "Datastore.Allocate"
47403 ]
47404 ]
47405 },
5da3d723
TL
47406 "returns" : {
47407 "type" : "object"
47408 }
7aacca6f
DM
47409 },
47410 "PUT" : {
e9cd3bd4 47411 "allowtoken" : 1,
44660702
DM
47412 "description" : "Update storage configuration.",
47413 "method" : "PUT",
47414 "name" : "update",
47415 "parameters" : {
47416 "additionalProperties" : 0,
47417 "properties" : {
47418 "blocksize" : {
47419 "description" : "block size",
7aacca6f 47420 "optional" : 1,
013dc89f
DM
47421 "type" : "string",
47422 "typetext" : "<string>"
7aacca6f 47423 },
27a7acb2 47424 "bwlimit" : {
4a407cfd 47425 "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
27a7acb2
DM
47426 "format" : {
47427 "clone" : {
95895385 47428 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
47429 "format_description" : "LIMIT",
47430 "minimum" : "0",
47431 "optional" : 1,
47432 "type" : "number"
47433 },
47434 "default" : {
95895385 47435 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
47436 "format_description" : "LIMIT",
47437 "minimum" : "0",
47438 "optional" : 1,
47439 "type" : "number"
47440 },
47441 "migration" : {
95895385 47442 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
47443 "format_description" : "LIMIT",
47444 "minimum" : "0",
47445 "optional" : 1,
47446 "type" : "number"
47447 },
47448 "move" : {
95895385 47449 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
47450 "format_description" : "LIMIT",
47451 "minimum" : "0",
47452 "optional" : 1,
47453 "type" : "number"
47454 },
47455 "restore" : {
95895385 47456 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
47457 "format_description" : "LIMIT",
47458 "minimum" : "0",
47459 "optional" : 1,
47460 "type" : "number"
47461 }
47462 },
47463 "optional" : 1,
47464 "type" : "string",
47465 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
47466 },
44660702
DM
47467 "comstar_hg" : {
47468 "description" : "host group for comstar views",
47469 "optional" : 1,
013dc89f
DM
47470 "type" : "string",
47471 "typetext" : "<string>"
7aacca6f 47472 },
44660702
DM
47473 "comstar_tg" : {
47474 "description" : "target group for comstar views",
7aacca6f 47475 "optional" : 1,
013dc89f
DM
47476 "type" : "string",
47477 "typetext" : "<string>"
7aacca6f 47478 },
44660702
DM
47479 "content" : {
47480 "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
47481 "format" : "pve-storage-content-list",
7aacca6f 47482 "optional" : 1,
013dc89f
DM
47483 "type" : "string",
47484 "typetext" : "<string>"
7aacca6f 47485 },
9d2e98ed
TL
47486 "content-dirs" : {
47487 "description" : "Overrides for default content type directories.",
47488 "format" : "pve-dir-override-list",
47489 "optional" : 1,
47490 "type" : "string",
47491 "typetext" : "<string>"
47492 },
4a407cfd
TL
47493 "create-base-path" : {
47494 "default" : "yes",
47495 "description" : "Create the base directory if it doesn't exist.",
47496 "optional" : 1,
47497 "type" : "boolean",
47498 "typetext" : "<boolean>"
47499 },
47500 "create-subdirs" : {
47501 "default" : "yes",
47502 "description" : "Populate the directory with the default structure.",
47503 "optional" : 1,
47504 "type" : "boolean",
47505 "typetext" : "<boolean>"
47506 },
c30bb419
TL
47507 "data-pool" : {
47508 "description" : "Data Pool (for erasure coding only)",
47509 "optional" : 1,
47510 "type" : "string",
47511 "typetext" : "<string>"
47512 },
44660702
DM
47513 "delete" : {
47514 "description" : "A list of settings you want to delete.",
47515 "format" : "pve-configid-list",
47516 "maxLength" : 4096,
7aacca6f 47517 "optional" : 1,
013dc89f
DM
47518 "type" : "string",
47519 "typetext" : "<string>"
7aacca6f
DM
47520 },
47521 "digest" : {
44660702 47522 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7aacca6f 47523 "maxLength" : 40,
7aacca6f 47524 "optional" : 1,
013dc89f
DM
47525 "type" : "string",
47526 "typetext" : "<string>"
7aacca6f 47527 },
44660702
DM
47528 "disable" : {
47529 "description" : "Flag to disable the storage.",
47530 "optional" : 1,
013dc89f
DM
47531 "type" : "boolean",
47532 "typetext" : "<boolean>"
7aacca6f 47533 },
27a7acb2
DM
47534 "domain" : {
47535 "description" : "CIFS domain.",
47536 "maxLength" : 256,
47537 "optional" : 1,
47538 "type" : "string",
47539 "typetext" : "<string>"
47540 },
04d22a9f
TL
47541 "encryption-key" : {
47542 "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
47543 "optional" : 1,
47544 "type" : "string",
47545 "typetext" : "<string>"
47546 },
c5aa7e14
TL
47547 "fingerprint" : {
47548 "description" : "Certificate SHA 256 fingerprint.",
47549 "optional" : 1,
47550 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
47551 "type" : "string"
47552 },
7aacca6f
DM
47553 "format" : {
47554 "description" : "Default image format.",
44660702 47555 "format" : "pve-storage-format",
7aacca6f 47556 "optional" : 1,
013dc89f
DM
47557 "type" : "string",
47558 "typetext" : "<string>"
7aacca6f 47559 },
5370fa8c
TL
47560 "fs-name" : {
47561 "description" : "The Ceph filesystem name.",
47562 "format" : "pve-configid",
47563 "optional" : 1,
47564 "type" : "string",
47565 "typetext" : "<string>"
47566 },
5da3d723
TL
47567 "fuse" : {
47568 "description" : "Mount CephFS through FUSE.",
47569 "optional" : 1,
47570 "type" : "boolean",
47571 "typetext" : "<boolean>"
47572 },
2c0dde61
DM
47573 "is_mountpoint" : {
47574 "default" : "no",
2489d6df 47575 "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 47576 "optional" : 1,
2489d6df
WB
47577 "type" : "string",
47578 "typetext" : "<string>"
2c0dde61 47579 },
5370fa8c
TL
47580 "keyring" : {
47581 "description" : "Client keyring contents (for external clusters).",
47582 "optional" : 1,
47583 "type" : "string",
47584 "typetext" : "<string>"
47585 },
44660702 47586 "krbd" : {
e2d681b3 47587 "description" : "Always access rbd through krbd kernel module.",
7aacca6f 47588 "optional" : 1,
013dc89f
DM
47589 "type" : "boolean",
47590 "typetext" : "<boolean>"
7aacca6f 47591 },
4d47f125
TL
47592 "lio_tpg" : {
47593 "description" : "target portal group for Linux LIO targets",
47594 "optional" : 1,
47595 "type" : "string",
47596 "typetext" : "<string>"
47597 },
d2656385 47598 "master-pubkey" : {
5f4e66fe 47599 "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
47600 "optional" : 1,
47601 "type" : "string",
47602 "typetext" : "<string>"
47603 },
7af2edf9
TL
47604 "max-protected-backups" : {
47605 "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
47606 "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
47607 "minimum" : -1,
47608 "optional" : 1,
47609 "type" : "integer",
47610 "typetext" : "<integer> (-1 - N)"
47611 },
44660702 47612 "maxfiles" : {
5f4e66fe 47613 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
44660702
DM
47614 "minimum" : 0,
47615 "optional" : 1,
4bd7df8b 47616 "type" : "integer",
013dc89f 47617 "typetext" : "<integer> (0 - N)"
4bd7df8b
DM
47618 },
47619 "mkdir" : {
47620 "default" : "yes",
4a407cfd 47621 "description" : "Create the directory if it doesn't exist and populate it with default sub-dirs. NOTE: Deprecated, use the 'create-base-path' and 'create-subdirs' options instead.",
4bd7df8b 47622 "optional" : 1,
013dc89f
DM
47623 "type" : "boolean",
47624 "typetext" : "<boolean>"
7aacca6f 47625 },
2489d6df
WB
47626 "monhost" : {
47627 "description" : "IP addresses of monitors (for external clusters).",
47628 "format" : "pve-storage-portal-dns-list",
47629 "optional" : 1,
47630 "type" : "string",
47631 "typetext" : "<string>"
47632 },
5c1699e5
TL
47633 "mountpoint" : {
47634 "description" : "mount point",
47635 "format" : "pve-storage-path",
47636 "optional" : 1,
47637 "type" : "string",
47638 "typetext" : "<string>"
47639 },
d2656385 47640 "namespace" : {
de786b48 47641 "description" : "Namespace.",
d2656385
TL
47642 "optional" : 1,
47643 "type" : "string",
47644 "typetext" : "<string>"
47645 },
5f4e66fe
TL
47646 "nocow" : {
47647 "default" : 0,
47648 "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.",
47649 "optional" : 1,
47650 "type" : "boolean",
47651 "typetext" : "<boolean>"
47652 },
7aacca6f 47653 "nodes" : {
44660702 47654 "description" : "List of cluster node names.",
7aacca6f
DM
47655 "format" : "pve-node-list",
47656 "optional" : 1,
013dc89f
DM
47657 "type" : "string",
47658 "typetext" : "<string>"
7aacca6f 47659 },
44660702
DM
47660 "nowritecache" : {
47661 "description" : "disable write caching on the target",
7aacca6f 47662 "optional" : 1,
013dc89f
DM
47663 "type" : "boolean",
47664 "typetext" : "<boolean>"
7aacca6f
DM
47665 },
47666 "options" : {
159464a9 47667 "description" : "NFS/CIFS mount options (see 'man nfs' or 'man mount.cifs')",
44660702
DM
47668 "format" : "pve-storage-options",
47669 "optional" : 1,
013dc89f
DM
47670 "type" : "string",
47671 "typetext" : "<string>"
44660702 47672 },
27a7acb2 47673 "password" : {
04d22a9f 47674 "description" : "Password for accessing the share/datastore.",
27a7acb2
DM
47675 "maxLength" : 256,
47676 "optional" : 1,
47677 "type" : "string",
47678 "typetext" : "<string>"
47679 },
44660702
DM
47680 "pool" : {
47681 "description" : "Pool.",
47682 "optional" : 1,
013dc89f
DM
47683 "type" : "string",
47684 "typetext" : "<string>"
44660702 47685 },
4772952b
TL
47686 "port" : {
47687 "default" : 8007,
47688 "description" : "For non default port.",
47689 "maximum" : 65535,
47690 "minimum" : 1,
47691 "optional" : 1,
47692 "type" : "integer",
47693 "typetext" : "<integer> (1 - 65535)"
47694 },
5370fa8c
TL
47695 "preallocation" : {
47696 "default" : "metadata",
47697 "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
47698 "enum" : [
47699 "off",
47700 "metadata",
47701 "falloc",
47702 "full"
47703 ],
47704 "optional" : 1,
47705 "type" : "string"
47706 },
739d4d64
TL
47707 "prune-backups" : {
47708 "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.",
47709 "format" : "prune-backups",
47710 "optional" : 1,
47711 "type" : "string",
4772952b 47712 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 47713 },
44660702
DM
47714 "saferemove" : {
47715 "description" : "Zero-out data when removing LVs.",
47716 "optional" : 1,
013dc89f
DM
47717 "type" : "boolean",
47718 "typetext" : "<boolean>"
7aacca6f
DM
47719 },
47720 "saferemove_throughput" : {
44660702 47721 "description" : "Wipe throughput (cstream -t parameter value).",
7aacca6f 47722 "optional" : 1,
013dc89f
DM
47723 "type" : "string",
47724 "typetext" : "<string>"
7aacca6f 47725 },
44660702
DM
47726 "server" : {
47727 "description" : "Server IP or DNS name.",
47728 "format" : "pve-storage-server",
7aacca6f 47729 "optional" : 1,
013dc89f
DM
47730 "type" : "string",
47731 "typetext" : "<string>"
7aacca6f 47732 },
44660702
DM
47733 "server2" : {
47734 "description" : "Backup volfile server IP or DNS name.",
47735 "format" : "pve-storage-server",
7aacca6f 47736 "optional" : 1,
44660702 47737 "requires" : "server",
013dc89f
DM
47738 "type" : "string",
47739 "typetext" : "<string>"
44660702
DM
47740 },
47741 "shared" : {
47742 "description" : "Mark storage as shared.",
47743 "optional" : 1,
013dc89f
DM
47744 "type" : "boolean",
47745 "typetext" : "<boolean>"
44660702 47746 },
27a7acb2 47747 "smbversion" : {
5370fa8c
TL
47748 "default" : "default",
47749 "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
5da3d723 47750 "enum" : [
5370fa8c 47751 "default",
5da3d723
TL
47752 "2.0",
47753 "2.1",
5370fa8c
TL
47754 "3",
47755 "3.0",
47756 "3.11"
5da3d723 47757 ],
27a7acb2 47758 "optional" : 1,
5da3d723 47759 "type" : "string"
27a7acb2 47760 },
44660702
DM
47761 "sparse" : {
47762 "description" : "use sparse volumes",
47763 "optional" : 1,
013dc89f
DM
47764 "type" : "boolean",
47765 "typetext" : "<boolean>"
44660702
DM
47766 },
47767 "storage" : {
47768 "description" : "The storage identifier.",
47769 "format" : "pve-storage-id",
013dc89f
DM
47770 "type" : "string",
47771 "typetext" : "<string>"
44660702 47772 },
5da3d723
TL
47773 "subdir" : {
47774 "description" : "Subdir to mount.",
47775 "format" : "pve-storage-path",
47776 "optional" : 1,
47777 "type" : "string",
47778 "typetext" : "<string>"
47779 },
4bd7df8b
DM
47780 "tagged_only" : {
47781 "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
47782 "optional" : 1,
013dc89f
DM
47783 "type" : "boolean",
47784 "typetext" : "<boolean>"
4bd7df8b 47785 },
44660702
DM
47786 "transport" : {
47787 "description" : "Gluster transport: tcp or rdma",
47788 "enum" : [
47789 "tcp",
47790 "rdma",
47791 "unix"
47792 ],
47793 "optional" : 1,
47794 "type" : "string"
7aacca6f
DM
47795 },
47796 "username" : {
47797 "description" : "RBD Id.",
44660702 47798 "optional" : 1,
013dc89f
DM
47799 "type" : "string",
47800 "typetext" : "<string>"
7aacca6f 47801 }
44660702
DM
47802 },
47803 "type" : "object"
47804 },
47805 "permissions" : {
47806 "check" : [
47807 "perm",
47808 "/storage",
47809 [
47810 "Datastore.Allocate"
47811 ]
47812 ]
47813 },
47814 "protected" : 1,
47815 "returns" : {
4772952b
TL
47816 "properties" : {
47817 "config" : {
47818 "additionalProperties" : 1,
47819 "description" : "Partial, possible server generated, configuration properties.",
47820 "optional" : 1,
47821 "properties" : {
47822 "encryption-key" : {
47823 "description" : "The, possible auto-generated, encryption-key.",
47824 "optional" : 1,
47825 "type" : "string"
47826 }
47827 },
47828 "type" : "object"
47829 },
47830 "storage" : {
47831 "description" : "The ID of the created storage.",
47832 "type" : "string"
47833 },
47834 "type" : {
47835 "description" : "The type of the created storage.",
47836 "enum" : [
5f4e66fe 47837 "btrfs",
4772952b
TL
47838 "cephfs",
47839 "cifs",
47840 "dir",
4772952b
TL
47841 "glusterfs",
47842 "iscsi",
47843 "iscsidirect",
47844 "lvm",
47845 "lvmthin",
47846 "nfs",
47847 "pbs",
47848 "rbd",
47849 "zfs",
47850 "zfspool"
47851 ],
47852 "type" : "string"
47853 }
47854 },
47855 "type" : "object"
44660702
DM
47856 }
47857 }
47858 },
47859 "leaf" : 1,
47860 "path" : "/storage/{storage}",
47861 "text" : "{storage}"
47862 }
47863 ],
47864 "info" : {
47865 "GET" : {
e9cd3bd4 47866 "allowtoken" : 1,
44660702
DM
47867 "description" : "Storage index.",
47868 "method" : "GET",
47869 "name" : "index",
47870 "parameters" : {
47871 "additionalProperties" : 0,
47872 "properties" : {
47873 "type" : {
47874 "description" : "Only list storage of specific type",
47875 "enum" : [
5f4e66fe 47876 "btrfs",
5da3d723 47877 "cephfs",
27a7acb2 47878 "cifs",
44660702 47879 "dir",
44660702
DM
47880 "glusterfs",
47881 "iscsi",
47882 "iscsidirect",
47883 "lvm",
47884 "lvmthin",
47885 "nfs",
c5aa7e14 47886 "pbs",
44660702 47887 "rbd",
44660702
DM
47888 "zfs",
47889 "zfspool"
47890 ],
47891 "optional" : 1,
47892 "type" : "string"
47893 }
47894 }
47895 },
47896 "permissions" : {
47897 "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
47898 "user" : "all"
47899 },
47900 "returns" : {
47901 "items" : {
47902 "properties" : {
47903 "storage" : {
47904 "type" : "string"
7aacca6f 47905 }
56122987 47906 },
44660702
DM
47907 "type" : "object"
47908 },
47909 "links" : [
47910 {
47911 "href" : "{storage}",
47912 "rel" : "child"
47913 }
47914 ],
47915 "type" : "array"
47916 }
47917 },
47918 "POST" : {
e9cd3bd4 47919 "allowtoken" : 1,
44660702
DM
47920 "description" : "Create a new storage.",
47921 "method" : "POST",
47922 "name" : "create",
47923 "parameters" : {
47924 "additionalProperties" : 0,
47925 "properties" : {
47926 "authsupported" : {
47927 "description" : "Authsupported.",
47928 "optional" : 1,
013dc89f
DM
47929 "type" : "string",
47930 "typetext" : "<string>"
44660702
DM
47931 },
47932 "base" : {
47933 "description" : "Base volume. This volume is automatically activated.",
47934 "format" : "pve-volume-id",
47935 "optional" : 1,
013dc89f
DM
47936 "type" : "string",
47937 "typetext" : "<string>"
44660702
DM
47938 },
47939 "blocksize" : {
47940 "description" : "block size",
47941 "optional" : 1,
013dc89f
DM
47942 "type" : "string",
47943 "typetext" : "<string>"
44660702 47944 },
27a7acb2 47945 "bwlimit" : {
4a407cfd 47946 "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
27a7acb2
DM
47947 "format" : {
47948 "clone" : {
95895385 47949 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
47950 "format_description" : "LIMIT",
47951 "minimum" : "0",
47952 "optional" : 1,
47953 "type" : "number"
47954 },
47955 "default" : {
95895385 47956 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
47957 "format_description" : "LIMIT",
47958 "minimum" : "0",
47959 "optional" : 1,
47960 "type" : "number"
47961 },
47962 "migration" : {
95895385 47963 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
47964 "format_description" : "LIMIT",
47965 "minimum" : "0",
47966 "optional" : 1,
47967 "type" : "number"
47968 },
47969 "move" : {
95895385 47970 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
47971 "format_description" : "LIMIT",
47972 "minimum" : "0",
47973 "optional" : 1,
47974 "type" : "number"
47975 },
47976 "restore" : {
95895385 47977 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
47978 "format_description" : "LIMIT",
47979 "minimum" : "0",
47980 "optional" : 1,
47981 "type" : "number"
47982 }
47983 },
47984 "optional" : 1,
47985 "type" : "string",
47986 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
47987 },
44660702
DM
47988 "comstar_hg" : {
47989 "description" : "host group for comstar views",
47990 "optional" : 1,
013dc89f
DM
47991 "type" : "string",
47992 "typetext" : "<string>"
44660702
DM
47993 },
47994 "comstar_tg" : {
47995 "description" : "target group for comstar views",
47996 "optional" : 1,
013dc89f
DM
47997 "type" : "string",
47998 "typetext" : "<string>"
44660702
DM
47999 },
48000 "content" : {
48001 "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
48002 "format" : "pve-storage-content-list",
48003 "optional" : 1,
013dc89f
DM
48004 "type" : "string",
48005 "typetext" : "<string>"
44660702 48006 },
9d2e98ed
TL
48007 "content-dirs" : {
48008 "description" : "Overrides for default content type directories.",
48009 "format" : "pve-dir-override-list",
48010 "optional" : 1,
48011 "type" : "string",
48012 "typetext" : "<string>"
48013 },
4a407cfd
TL
48014 "create-base-path" : {
48015 "default" : "yes",
48016 "description" : "Create the base directory if it doesn't exist.",
48017 "optional" : 1,
48018 "type" : "boolean",
48019 "typetext" : "<boolean>"
48020 },
48021 "create-subdirs" : {
48022 "default" : "yes",
48023 "description" : "Populate the directory with the default structure.",
48024 "optional" : 1,
48025 "type" : "boolean",
48026 "typetext" : "<boolean>"
48027 },
c30bb419
TL
48028 "data-pool" : {
48029 "description" : "Data Pool (for erasure coding only)",
48030 "optional" : 1,
48031 "type" : "string",
48032 "typetext" : "<string>"
48033 },
c5aa7e14 48034 "datastore" : {
4772952b 48035 "description" : "Proxmox Backup Server datastore name.",
c5aa7e14
TL
48036 "optional" : 1,
48037 "type" : "string",
48038 "typetext" : "<string>"
48039 },
44660702
DM
48040 "disable" : {
48041 "description" : "Flag to disable the storage.",
48042 "optional" : 1,
013dc89f
DM
48043 "type" : "boolean",
48044 "typetext" : "<boolean>"
44660702 48045 },
27a7acb2
DM
48046 "domain" : {
48047 "description" : "CIFS domain.",
48048 "maxLength" : 256,
48049 "optional" : 1,
48050 "type" : "string",
48051 "typetext" : "<string>"
48052 },
04d22a9f
TL
48053 "encryption-key" : {
48054 "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
48055 "optional" : 1,
48056 "type" : "string",
48057 "typetext" : "<string>"
48058 },
44660702
DM
48059 "export" : {
48060 "description" : "NFS export path.",
48061 "format" : "pve-storage-path",
48062 "optional" : 1,
013dc89f
DM
48063 "type" : "string",
48064 "typetext" : "<string>"
44660702 48065 },
c5aa7e14
TL
48066 "fingerprint" : {
48067 "description" : "Certificate SHA 256 fingerprint.",
48068 "optional" : 1,
48069 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
48070 "type" : "string"
48071 },
44660702
DM
48072 "format" : {
48073 "description" : "Default image format.",
48074 "format" : "pve-storage-format",
48075 "optional" : 1,
013dc89f
DM
48076 "type" : "string",
48077 "typetext" : "<string>"
44660702 48078 },
5370fa8c
TL
48079 "fs-name" : {
48080 "description" : "The Ceph filesystem name.",
48081 "format" : "pve-configid",
48082 "optional" : 1,
48083 "type" : "string",
48084 "typetext" : "<string>"
48085 },
5da3d723
TL
48086 "fuse" : {
48087 "description" : "Mount CephFS through FUSE.",
48088 "optional" : 1,
48089 "type" : "boolean",
48090 "typetext" : "<boolean>"
48091 },
2c0dde61
DM
48092 "is_mountpoint" : {
48093 "default" : "no",
2489d6df 48094 "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 48095 "optional" : 1,
2489d6df
WB
48096 "type" : "string",
48097 "typetext" : "<string>"
2c0dde61 48098 },
44660702
DM
48099 "iscsiprovider" : {
48100 "description" : "iscsi provider",
48101 "optional" : 1,
013dc89f
DM
48102 "type" : "string",
48103 "typetext" : "<string>"
44660702 48104 },
5370fa8c
TL
48105 "keyring" : {
48106 "description" : "Client keyring contents (for external clusters).",
48107 "optional" : 1,
48108 "type" : "string",
48109 "typetext" : "<string>"
48110 },
44660702 48111 "krbd" : {
e2d681b3 48112 "description" : "Always access rbd through krbd kernel module.",
44660702 48113 "optional" : 1,
013dc89f
DM
48114 "type" : "boolean",
48115 "typetext" : "<boolean>"
56122987 48116 },
4d47f125
TL
48117 "lio_tpg" : {
48118 "description" : "target portal group for Linux LIO targets",
48119 "optional" : 1,
48120 "type" : "string",
48121 "typetext" : "<string>"
48122 },
d2656385 48123 "master-pubkey" : {
5f4e66fe 48124 "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
48125 "optional" : 1,
48126 "type" : "string",
48127 "typetext" : "<string>"
48128 },
7af2edf9
TL
48129 "max-protected-backups" : {
48130 "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
48131 "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
48132 "minimum" : -1,
48133 "optional" : 1,
48134 "type" : "integer",
48135 "typetext" : "<integer> (-1 - N)"
48136 },
44660702 48137 "maxfiles" : {
5f4e66fe 48138 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
44660702
DM
48139 "minimum" : 0,
48140 "optional" : 1,
4bd7df8b 48141 "type" : "integer",
013dc89f 48142 "typetext" : "<integer> (0 - N)"
4bd7df8b
DM
48143 },
48144 "mkdir" : {
48145 "default" : "yes",
4a407cfd 48146 "description" : "Create the directory if it doesn't exist and populate it with default sub-dirs. NOTE: Deprecated, use the 'create-base-path' and 'create-subdirs' options instead.",
4bd7df8b 48147 "optional" : 1,
013dc89f
DM
48148 "type" : "boolean",
48149 "typetext" : "<boolean>"
7aacca6f 48150 },
44660702 48151 "monhost" : {
2489d6df 48152 "description" : "IP addresses of monitors (for external clusters).",
4bd7df8b 48153 "format" : "pve-storage-portal-dns-list",
44660702 48154 "optional" : 1,
013dc89f
DM
48155 "type" : "string",
48156 "typetext" : "<string>"
7aacca6f 48157 },
5c1699e5
TL
48158 "mountpoint" : {
48159 "description" : "mount point",
48160 "format" : "pve-storage-path",
48161 "optional" : 1,
48162 "type" : "string",
48163 "typetext" : "<string>"
48164 },
d2656385 48165 "namespace" : {
de786b48 48166 "description" : "Namespace.",
d2656385
TL
48167 "optional" : 1,
48168 "type" : "string",
48169 "typetext" : "<string>"
48170 },
5f4e66fe
TL
48171 "nocow" : {
48172 "default" : 0,
48173 "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.",
48174 "optional" : 1,
48175 "type" : "boolean",
48176 "typetext" : "<boolean>"
48177 },
44660702
DM
48178 "nodes" : {
48179 "description" : "List of cluster node names.",
48180 "format" : "pve-node-list",
48181 "optional" : 1,
013dc89f
DM
48182 "type" : "string",
48183 "typetext" : "<string>"
7aacca6f 48184 },
44660702
DM
48185 "nowritecache" : {
48186 "description" : "disable write caching on the target",
48187 "optional" : 1,
013dc89f
DM
48188 "type" : "boolean",
48189 "typetext" : "<boolean>"
44660702
DM
48190 },
48191 "options" : {
159464a9 48192 "description" : "NFS/CIFS mount options (see 'man nfs' or 'man mount.cifs')",
44660702
DM
48193 "format" : "pve-storage-options",
48194 "optional" : 1,
013dc89f
DM
48195 "type" : "string",
48196 "typetext" : "<string>"
44660702 48197 },
27a7acb2 48198 "password" : {
04d22a9f 48199 "description" : "Password for accessing the share/datastore.",
27a7acb2
DM
48200 "maxLength" : 256,
48201 "optional" : 1,
48202 "type" : "string",
48203 "typetext" : "<string>"
48204 },
44660702
DM
48205 "path" : {
48206 "description" : "File system path.",
48207 "format" : "pve-storage-path",
48208 "optional" : 1,
013dc89f
DM
48209 "type" : "string",
48210 "typetext" : "<string>"
44660702
DM
48211 },
48212 "pool" : {
48213 "description" : "Pool.",
48214 "optional" : 1,
013dc89f
DM
48215 "type" : "string",
48216 "typetext" : "<string>"
44660702 48217 },
4772952b
TL
48218 "port" : {
48219 "default" : 8007,
48220 "description" : "For non default port.",
48221 "maximum" : 65535,
48222 "minimum" : 1,
48223 "optional" : 1,
48224 "type" : "integer",
48225 "typetext" : "<integer> (1 - 65535)"
48226 },
44660702
DM
48227 "portal" : {
48228 "description" : "iSCSI portal (IP or DNS name with optional port).",
48229 "format" : "pve-storage-portal-dns",
48230 "optional" : 1,
013dc89f
DM
48231 "type" : "string",
48232 "typetext" : "<string>"
44660702 48233 },
5370fa8c
TL
48234 "preallocation" : {
48235 "default" : "metadata",
48236 "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
48237 "enum" : [
48238 "off",
48239 "metadata",
48240 "falloc",
48241 "full"
48242 ],
48243 "optional" : 1,
48244 "type" : "string"
48245 },
739d4d64
TL
48246 "prune-backups" : {
48247 "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.",
48248 "format" : "prune-backups",
48249 "optional" : 1,
48250 "type" : "string",
4772952b 48251 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 48252 },
44660702
DM
48253 "saferemove" : {
48254 "description" : "Zero-out data when removing LVs.",
48255 "optional" : 1,
013dc89f
DM
48256 "type" : "boolean",
48257 "typetext" : "<boolean>"
44660702
DM
48258 },
48259 "saferemove_throughput" : {
48260 "description" : "Wipe throughput (cstream -t parameter value).",
48261 "optional" : 1,
013dc89f
DM
48262 "type" : "string",
48263 "typetext" : "<string>"
44660702
DM
48264 },
48265 "server" : {
48266 "description" : "Server IP or DNS name.",
48267 "format" : "pve-storage-server",
48268 "optional" : 1,
013dc89f
DM
48269 "type" : "string",
48270 "typetext" : "<string>"
44660702
DM
48271 },
48272 "server2" : {
48273 "description" : "Backup volfile server IP or DNS name.",
48274 "format" : "pve-storage-server",
48275 "optional" : 1,
48276 "requires" : "server",
013dc89f
DM
48277 "type" : "string",
48278 "typetext" : "<string>"
44660702 48279 },
27a7acb2
DM
48280 "share" : {
48281 "description" : "CIFS share.",
48282 "optional" : 1,
48283 "type" : "string",
48284 "typetext" : "<string>"
48285 },
44660702
DM
48286 "shared" : {
48287 "description" : "Mark storage as shared.",
48288 "optional" : 1,
013dc89f
DM
48289 "type" : "boolean",
48290 "typetext" : "<boolean>"
44660702 48291 },
27a7acb2 48292 "smbversion" : {
5370fa8c
TL
48293 "default" : "default",
48294 "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
5da3d723 48295 "enum" : [
5370fa8c 48296 "default",
5da3d723
TL
48297 "2.0",
48298 "2.1",
5370fa8c
TL
48299 "3",
48300 "3.0",
48301 "3.11"
5da3d723 48302 ],
27a7acb2 48303 "optional" : 1,
5da3d723 48304 "type" : "string"
27a7acb2 48305 },
44660702
DM
48306 "sparse" : {
48307 "description" : "use sparse volumes",
48308 "optional" : 1,
013dc89f
DM
48309 "type" : "boolean",
48310 "typetext" : "<boolean>"
44660702
DM
48311 },
48312 "storage" : {
48313 "description" : "The storage identifier.",
48314 "format" : "pve-storage-id",
013dc89f
DM
48315 "type" : "string",
48316 "typetext" : "<string>"
44660702 48317 },
5da3d723
TL
48318 "subdir" : {
48319 "description" : "Subdir to mount.",
48320 "format" : "pve-storage-path",
48321 "optional" : 1,
48322 "type" : "string",
48323 "typetext" : "<string>"
48324 },
4bd7df8b
DM
48325 "tagged_only" : {
48326 "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
48327 "optional" : 1,
013dc89f
DM
48328 "type" : "boolean",
48329 "typetext" : "<boolean>"
4bd7df8b 48330 },
44660702
DM
48331 "target" : {
48332 "description" : "iSCSI target.",
48333 "optional" : 1,
013dc89f
DM
48334 "type" : "string",
48335 "typetext" : "<string>"
44660702
DM
48336 },
48337 "thinpool" : {
48338 "description" : "LVM thin pool LV name.",
48339 "format" : "pve-storage-vgname",
48340 "optional" : 1,
013dc89f
DM
48341 "type" : "string",
48342 "typetext" : "<string>"
44660702
DM
48343 },
48344 "transport" : {
48345 "description" : "Gluster transport: tcp or rdma",
48346 "enum" : [
48347 "tcp",
48348 "rdma",
48349 "unix"
7aacca6f 48350 ],
44660702
DM
48351 "optional" : 1,
48352 "type" : "string"
56122987 48353 },
44660702
DM
48354 "type" : {
48355 "description" : "Storage type.",
48356 "enum" : [
5f4e66fe 48357 "btrfs",
5da3d723 48358 "cephfs",
27a7acb2 48359 "cifs",
44660702 48360 "dir",
44660702
DM
48361 "glusterfs",
48362 "iscsi",
48363 "iscsidirect",
48364 "lvm",
48365 "lvmthin",
48366 "nfs",
c5aa7e14 48367 "pbs",
44660702 48368 "rbd",
44660702
DM
48369 "zfs",
48370 "zfspool"
48371 ],
48372 "type" : "string"
56122987 48373 },
44660702
DM
48374 "username" : {
48375 "description" : "RBD Id.",
48376 "optional" : 1,
013dc89f
DM
48377 "type" : "string",
48378 "typetext" : "<string>"
7aacca6f 48379 },
44660702
DM
48380 "vgname" : {
48381 "description" : "Volume group name.",
48382 "format" : "pve-storage-vgname",
48383 "optional" : 1,
013dc89f
DM
48384 "type" : "string",
48385 "typetext" : "<string>"
44660702
DM
48386 },
48387 "volume" : {
48388 "description" : "Glusterfs Volume.",
48389 "optional" : 1,
013dc89f
DM
48390 "type" : "string",
48391 "typetext" : "<string>"
44660702
DM
48392 }
48393 },
48394 "type" : "object"
48395 },
48396 "permissions" : {
48397 "check" : [
48398 "perm",
48399 "/storage",
48400 [
48401 "Datastore.Allocate"
48402 ]
48403 ]
56122987 48404 },
44660702
DM
48405 "protected" : 1,
48406 "returns" : {
4772952b
TL
48407 "properties" : {
48408 "config" : {
48409 "additionalProperties" : 1,
48410 "description" : "Partial, possible server generated, configuration properties.",
48411 "optional" : 1,
48412 "properties" : {
48413 "encryption-key" : {
48414 "description" : "The, possible auto-generated, encryption-key.",
48415 "optional" : 1,
48416 "type" : "string"
48417 }
48418 },
48419 "type" : "object"
48420 },
48421 "storage" : {
48422 "description" : "The ID of the created storage.",
48423 "type" : "string"
48424 },
48425 "type" : {
48426 "description" : "The type of the created storage.",
48427 "enum" : [
5f4e66fe 48428 "btrfs",
4772952b
TL
48429 "cephfs",
48430 "cifs",
48431 "dir",
4772952b
TL
48432 "glusterfs",
48433 "iscsi",
48434 "iscsidirect",
48435 "lvm",
48436 "lvmthin",
48437 "nfs",
48438 "pbs",
48439 "rbd",
48440 "zfs",
48441 "zfspool"
48442 ],
48443 "type" : "string"
48444 }
48445 },
48446 "type" : "object"
44660702
DM
48447 }
48448 }
48449 },
48450 "leaf" : 0,
48451 "path" : "/storage",
48452 "text" : "storage"
48453 },
48454 {
48455 "children" : [
48456 {
56122987
DM
48457 "children" : [
48458 {
bb4c8cf8
TL
48459 "children" : [
48460 {
48461 "info" : {
48462 "GET" : {
e9cd3bd4 48463 "allowtoken" : 1,
bb4c8cf8
TL
48464 "description" : "Get user TFA types (Personal and Realm).",
48465 "method" : "GET",
48466 "name" : "read_user_tfa_type",
48467 "parameters" : {
48468 "additionalProperties" : 0,
48469 "properties" : {
5370fa8c
TL
48470 "multiple" : {
48471 "default" : 0,
48472 "description" : "Request all entries as an array.",
48473 "optional" : 1,
48474 "type" : "boolean",
48475 "typetext" : "<boolean>"
48476 },
bb4c8cf8 48477 "userid" : {
9d2e98ed 48478 "description" : "Full User ID, in the `name@realm` format.",
bb4c8cf8
TL
48479 "format" : "pve-userid",
48480 "maxLength" : 64,
48481 "type" : "string",
48482 "typetext" : "<string>"
48483 }
48484 }
48485 },
48486 "permissions" : {
48487 "check" : [
48488 "or",
48489 [
48490 "userid-param",
48491 "self"
48492 ],
48493 [
48494 "userid-group",
48495 [
48496 "User.Modify",
48497 "Sys.Audit"
48498 ]
48499 ]
48500 ]
48501 },
48502 "protected" : 1,
48503 "returns" : {
48504 "additionalProperties" : 0,
48505 "properties" : {
48506 "realm" : {
48507 "description" : "The type of TFA the users realm has set, if any.",
48508 "enum" : [
48509 "oath",
48510 "yubico"
48511 ],
48512 "optional" : 1,
48513 "type" : "string"
48514 },
5370fa8c
TL
48515 "types" : {
48516 "description" : "Array of the user configured TFA types, if any. Only available if 'multiple' was not passed.",
48517 "items" : {
48518 "description" : "A TFA type.",
48519 "enum" : [
48520 "totp",
48521 "u2f",
48522 "yubico",
48523 "webauthn",
48524 "recovedry"
48525 ],
48526 "type" : "string"
48527 },
48528 "optional" : 1,
48529 "type" : "array"
48530 },
bb4c8cf8 48531 "user" : {
5370fa8c 48532 "description" : "The type of TFA the user has set, if any. Only set if 'multiple' was not passed.",
bb4c8cf8
TL
48533 "enum" : [
48534 "oath",
48535 "u2f"
48536 ],
48537 "optional" : 1,
48538 "type" : "string"
48539 }
48540 },
48541 "type" : "object"
48542 }
48543 }
48544 },
48545 "leaf" : 1,
48546 "path" : "/access/users/{userid}/tfa",
48547 "text" : "tfa"
e9cd3bd4 48548 },
4a407cfd
TL
48549 {
48550 "info" : {
48551 "PUT" : {
48552 "allowtoken" : 1,
48553 "description" : "Unlock a user's TFA authentication.",
48554 "method" : "PUT",
48555 "name" : "unlock_tfa",
48556 "parameters" : {
48557 "additionalProperties" : 0,
48558 "properties" : {
48559 "userid" : {
48560 "description" : "Full User ID, in the `name@realm` format.",
48561 "format" : "pve-userid",
48562 "maxLength" : 64,
48563 "type" : "string",
48564 "typetext" : "<string>"
48565 }
48566 }
48567 },
48568 "permissions" : {
48569 "check" : [
48570 "userid-group",
48571 [
48572 "User.Modify"
48573 ]
48574 ]
48575 },
48576 "protected" : 1,
48577 "returns" : {
48578 "type" : "boolean"
48579 }
48580 }
48581 },
48582 "leaf" : 1,
48583 "path" : "/access/users/{userid}/unlock-tfa",
48584 "text" : "unlock-tfa"
48585 },
e9cd3bd4
TL
48586 {
48587 "children" : [
48588 {
48589 "info" : {
48590 "DELETE" : {
48591 "allowtoken" : 1,
48592 "description" : "Remove API token for a specific user.",
48593 "method" : "DELETE",
48594 "name" : "remove_token",
48595 "parameters" : {
48596 "additionalProperties" : 0,
48597 "properties" : {
48598 "tokenid" : {
48599 "description" : "User-specific token identifier.",
48600 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
48601 "type" : "string"
48602 },
48603 "userid" : {
9d2e98ed 48604 "description" : "Full User ID, in the `name@realm` format.",
e9cd3bd4
TL
48605 "format" : "pve-userid",
48606 "maxLength" : 64,
48607 "type" : "string",
48608 "typetext" : "<string>"
48609 }
48610 }
48611 },
48612 "permissions" : {
48613 "check" : [
48614 "or",
48615 [
48616 "userid-param",
48617 "self"
48618 ],
48619 [
de786b48 48620 "userid-group",
e9cd3bd4
TL
48621 [
48622 "User.Modify"
48623 ]
48624 ]
48625 ]
48626 },
48627 "protected" : 1,
48628 "returns" : {
c5aa7e14
TL
48629 "type" : "null"
48630 }
48631 },
48632 "GET" : {
48633 "allowtoken" : 1,
48634 "description" : "Get specific API token information.",
48635 "method" : "GET",
48636 "name" : "read_token",
48637 "parameters" : {
48638 "additionalProperties" : 0,
48639 "properties" : {
48640 "tokenid" : {
48641 "description" : "User-specific token identifier.",
48642 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
48643 "type" : "string"
48644 },
48645 "userid" : {
9d2e98ed 48646 "description" : "Full User ID, in the `name@realm` format.",
c5aa7e14
TL
48647 "format" : "pve-userid",
48648 "maxLength" : 64,
48649 "type" : "string",
48650 "typetext" : "<string>"
48651 }
48652 }
48653 },
48654 "permissions" : {
48655 "check" : [
48656 "or",
48657 [
48658 "userid-param",
48659 "self"
48660 ],
48661 [
de786b48 48662 "userid-group",
c5aa7e14
TL
48663 [
48664 "User.Modify"
48665 ]
48666 ]
48667 ]
48668 },
48669 "returns" : {
48670 "properties" : {
48671 "comment" : {
48672 "optional" : 1,
48673 "type" : "string"
48674 },
48675 "expire" : {
48676 "default" : "same as user",
48677 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
48678 "minimum" : 0,
48679 "optional" : 1,
48680 "type" : "integer"
48681 },
48682 "privsep" : {
48683 "default" : 1,
48684 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
48685 "optional" : 1,
48686 "type" : "boolean"
48687 }
48688 },
48689 "type" : "object"
48690 }
48691 },
48692 "POST" : {
48693 "allowtoken" : 1,
48694 "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!",
48695 "method" : "POST",
48696 "name" : "generate_token",
48697 "parameters" : {
48698 "additionalProperties" : 0,
48699 "properties" : {
48700 "comment" : {
48701 "optional" : 1,
48702 "type" : "string",
48703 "typetext" : "<string>"
48704 },
48705 "expire" : {
48706 "default" : "same as user",
48707 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
48708 "minimum" : 0,
48709 "optional" : 1,
48710 "type" : "integer",
48711 "typetext" : "<integer> (0 - N)"
48712 },
48713 "privsep" : {
48714 "default" : 1,
48715 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
48716 "optional" : 1,
48717 "type" : "boolean",
48718 "typetext" : "<boolean>"
48719 },
48720 "tokenid" : {
48721 "description" : "User-specific token identifier.",
48722 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
48723 "type" : "string"
48724 },
48725 "userid" : {
9d2e98ed 48726 "description" : "Full User ID, in the `name@realm` format.",
c5aa7e14
TL
48727 "format" : "pve-userid",
48728 "maxLength" : 64,
48729 "type" : "string",
48730 "typetext" : "<string>"
48731 }
48732 }
48733 },
48734 "permissions" : {
48735 "check" : [
48736 "or",
48737 [
48738 "userid-param",
48739 "self"
48740 ],
48741 [
de786b48 48742 "userid-group",
c5aa7e14
TL
48743 [
48744 "User.Modify"
48745 ]
48746 ]
48747 ]
48748 },
48749 "protected" : 1,
48750 "returns" : {
e9cd3bd4
TL
48751 "additionalProperties" : 0,
48752 "properties" : {
c5aa7e14
TL
48753 "full-tokenid" : {
48754 "description" : "The full token id.",
48755 "format_description" : "<userid>!<tokenid>",
e9cd3bd4
TL
48756 "type" : "string"
48757 },
e9cd3bd4
TL
48758 "info" : {
48759 "properties" : {
48760 "comment" : {
48761 "optional" : 1,
48762 "type" : "string"
48763 },
48764 "expire" : {
48765 "default" : "same as user",
48766 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
48767 "minimum" : 0,
48768 "optional" : 1,
48769 "type" : "integer"
48770 },
48771 "privsep" : {
48772 "default" : 1,
48773 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
48774 "optional" : 1,
48775 "type" : "boolean"
48776 }
48777 },
48778 "type" : "object"
48779 },
48780 "value" : {
48781 "description" : "API token value used for authentication.",
48782 "type" : "string"
48783 }
48784 },
48785 "type" : "object"
48786 }
48787 },
48788 "PUT" : {
48789 "allowtoken" : 1,
48790 "description" : "Update API token for a specific user.",
48791 "method" : "PUT",
48792 "name" : "update_token_info",
48793 "parameters" : {
48794 "additionalProperties" : 0,
48795 "properties" : {
48796 "comment" : {
48797 "optional" : 1,
48798 "type" : "string",
48799 "typetext" : "<string>"
48800 },
48801 "expire" : {
48802 "default" : "same as user",
48803 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
48804 "minimum" : 0,
48805 "optional" : 1,
48806 "type" : "integer",
48807 "typetext" : "<integer> (0 - N)"
48808 },
48809 "privsep" : {
48810 "default" : 1,
48811 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
48812 "optional" : 1,
48813 "type" : "boolean",
48814 "typetext" : "<boolean>"
48815 },
48816 "tokenid" : {
48817 "description" : "User-specific token identifier.",
48818 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
48819 "type" : "string"
48820 },
48821 "userid" : {
9d2e98ed 48822 "description" : "Full User ID, in the `name@realm` format.",
e9cd3bd4
TL
48823 "format" : "pve-userid",
48824 "maxLength" : 64,
48825 "type" : "string",
48826 "typetext" : "<string>"
48827 }
48828 }
48829 },
48830 "permissions" : {
48831 "check" : [
48832 "or",
48833 [
48834 "userid-param",
48835 "self"
48836 ],
48837 [
de786b48 48838 "userid-group",
e9cd3bd4
TL
48839 [
48840 "User.Modify"
48841 ]
48842 ]
48843 ]
48844 },
48845 "protected" : 1,
48846 "returns" : {
48847 "description" : "Updated token information.",
48848 "properties" : {
48849 "comment" : {
48850 "optional" : 1,
48851 "type" : "string"
48852 },
48853 "expire" : {
48854 "default" : "same as user",
48855 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
48856 "minimum" : 0,
48857 "optional" : 1,
48858 "type" : "integer"
48859 },
48860 "privsep" : {
48861 "default" : 1,
48862 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
48863 "optional" : 1,
48864 "type" : "boolean"
48865 }
48866 },
48867 "type" : "object"
48868 }
48869 }
48870 },
48871 "leaf" : 1,
48872 "path" : "/access/users/{userid}/token/{tokenid}",
48873 "text" : "{tokenid}"
48874 }
48875 ],
48876 "info" : {
48877 "GET" : {
48878 "allowtoken" : 1,
48879 "description" : "Get user API tokens.",
48880 "method" : "GET",
48881 "name" : "token_index",
48882 "parameters" : {
48883 "additionalProperties" : 0,
48884 "properties" : {
48885 "userid" : {
9d2e98ed 48886 "description" : "Full User ID, in the `name@realm` format.",
e9cd3bd4
TL
48887 "format" : "pve-userid",
48888 "maxLength" : 64,
48889 "type" : "string",
48890 "typetext" : "<string>"
48891 }
48892 }
48893 },
48894 "permissions" : {
48895 "check" : [
48896 "or",
48897 [
48898 "userid-param",
48899 "self"
48900 ],
48901 [
de786b48 48902 "userid-group",
e9cd3bd4
TL
48903 [
48904 "User.Modify"
48905 ]
48906 ]
48907 ]
48908 },
48909 "returns" : {
48910 "items" : {
48911 "properties" : {
48912 "comment" : {
48913 "optional" : 1,
48914 "type" : "string"
48915 },
48916 "expire" : {
48917 "default" : "same as user",
48918 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
48919 "minimum" : 0,
48920 "optional" : 1,
48921 "type" : "integer"
48922 },
48923 "privsep" : {
48924 "default" : 1,
48925 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
48926 "optional" : 1,
48927 "type" : "boolean"
48928 },
48929 "tokenid" : {
48930 "description" : "User-specific token identifier.",
48931 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
48932 "type" : "string"
48933 }
48934 },
48935 "type" : "object"
48936 },
48937 "links" : [
48938 {
48939 "href" : "{tokenid}",
48940 "rel" : "child"
48941 }
48942 ],
48943 "type" : "array"
48944 }
48945 }
48946 },
48947 "leaf" : 0,
48948 "path" : "/access/users/{userid}/token",
48949 "text" : "token"
bb4c8cf8
TL
48950 }
48951 ],
56122987 48952 "info" : {
44660702 48953 "DELETE" : {
e9cd3bd4 48954 "allowtoken" : 1,
44660702
DM
48955 "description" : "Delete user.",
48956 "method" : "DELETE",
48957 "name" : "delete_user",
56122987 48958 "parameters" : {
7aacca6f 48959 "additionalProperties" : 0,
56122987 48960 "properties" : {
56122987 48961 "userid" : {
9d2e98ed 48962 "description" : "Full User ID, in the `name@realm` format.",
56122987 48963 "format" : "pve-userid",
44660702 48964 "maxLength" : 64,
013dc89f
DM
48965 "type" : "string",
48966 "typetext" : "<string>"
56122987 48967 }
7aacca6f 48968 }
56122987 48969 },
56122987
DM
48970 "permissions" : {
48971 "check" : [
44660702 48972 "and",
56122987 48973 [
44660702
DM
48974 "userid-param",
48975 "Realm.AllocateUser"
56122987 48976 ],
44660702
DM
48977 [
48978 "userid-group",
48979 [
48980 "User.Modify"
48981 ]
48982 ]
56122987 48983 ]
7aacca6f 48984 },
44660702 48985 "protected" : 1,
56122987
DM
48986 "returns" : {
48987 "type" : "null"
44660702 48988 }
7aacca6f 48989 },
44660702 48990 "GET" : {
e9cd3bd4 48991 "allowtoken" : 1,
44660702
DM
48992 "description" : "Get user configuration.",
48993 "method" : "GET",
48994 "name" : "read_user",
56122987
DM
48995 "parameters" : {
48996 "additionalProperties" : 0,
48997 "properties" : {
48998 "userid" : {
9d2e98ed 48999 "description" : "Full User ID, in the `name@realm` format.",
56122987 49000 "format" : "pve-userid",
44660702 49001 "maxLength" : 64,
013dc89f
DM
49002 "type" : "string",
49003 "typetext" : "<string>"
56122987
DM
49004 }
49005 }
49006 },
56122987
DM
49007 "permissions" : {
49008 "check" : [
44660702 49009 "userid-group",
56122987 49010 [
44660702
DM
49011 "User.Modify",
49012 "Sys.Audit"
56122987
DM
49013 ]
49014 ]
49015 },
56122987 49016 "returns" : {
7aacca6f 49017 "additionalProperties" : 0,
56122987 49018 "properties" : {
44660702
DM
49019 "comment" : {
49020 "optional" : 1,
49021 "type" : "string"
56122987 49022 },
44660702 49023 "email" : {
e2d681b3 49024 "format" : "email-opt",
44660702
DM
49025 "optional" : 1,
49026 "type" : "string"
7aacca6f
DM
49027 },
49028 "enable" : {
e2d681b3
TL
49029 "default" : 1,
49030 "description" : "Enable the account (default). You can set this to '0' to disable the account",
49031 "optional" : 1,
7aacca6f
DM
49032 "type" : "boolean"
49033 },
44660702 49034 "expire" : {
e2d681b3
TL
49035 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
49036 "minimum" : 0,
44660702
DM
49037 "optional" : 1,
49038 "type" : "integer"
49039 },
49040 "firstname" : {
56122987
DM
49041 "optional" : 1,
49042 "type" : "string"
49043 },
44660702 49044 "groups" : {
e9cd3bd4
TL
49045 "items" : {
49046 "format" : "pve-groupid",
49047 "type" : "string"
49048 },
49049 "optional" : 1,
44660702 49050 "type" : "array"
56122987 49051 },
44660702 49052 "keys" : {
e2d681b3 49053 "description" : "Keys for two factor auth (yubico).",
44660702
DM
49054 "optional" : 1,
49055 "type" : "string"
7aacca6f 49056 },
44660702
DM
49057 "lastname" : {
49058 "optional" : 1,
49059 "type" : "string"
e9cd3bd4
TL
49060 },
49061 "tokens" : {
c30bb419
TL
49062 "additionalProperties" : {
49063 "properties" : {
49064 "comment" : {
49065 "optional" : 1,
49066 "type" : "string"
49067 },
49068 "expire" : {
49069 "default" : "same as user",
49070 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
49071 "minimum" : 0,
49072 "optional" : 1,
49073 "type" : "integer"
49074 },
49075 "privsep" : {
49076 "default" : 1,
49077 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
49078 "optional" : 1,
49079 "type" : "boolean"
49080 }
49081 },
49082 "type" : "object"
49083 },
e9cd3bd4
TL
49084 "optional" : 1,
49085 "type" : "object"
56122987 49086 }
e2d681b3
TL
49087 },
49088 "type" : "object"
44660702
DM
49089 }
49090 },
49091 "PUT" : {
e9cd3bd4 49092 "allowtoken" : 1,
44660702
DM
49093 "description" : "Update user configuration.",
49094 "method" : "PUT",
49095 "name" : "update_user",
56122987 49096 "parameters" : {
44660702 49097 "additionalProperties" : 0,
56122987 49098 "properties" : {
44660702
DM
49099 "append" : {
49100 "optional" : 1,
49101 "requires" : "groups",
013dc89f
DM
49102 "type" : "boolean",
49103 "typetext" : "<boolean>"
44660702
DM
49104 },
49105 "comment" : {
49106 "optional" : 1,
013dc89f
DM
49107 "type" : "string",
49108 "typetext" : "<string>"
44660702
DM
49109 },
49110 "email" : {
49111 "format" : "email-opt",
49112 "optional" : 1,
013dc89f
DM
49113 "type" : "string",
49114 "typetext" : "<string>"
44660702
DM
49115 },
49116 "enable" : {
e2d681b3
TL
49117 "default" : 1,
49118 "description" : "Enable the account (default). You can set this to '0' to disable the account",
44660702 49119 "optional" : 1,
013dc89f
DM
49120 "type" : "boolean",
49121 "typetext" : "<boolean>"
44660702
DM
49122 },
49123 "expire" : {
49124 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
49125 "minimum" : 0,
49126 "optional" : 1,
4bd7df8b 49127 "type" : "integer",
013dc89f 49128 "typetext" : "<integer> (0 - N)"
44660702
DM
49129 },
49130 "firstname" : {
49131 "optional" : 1,
013dc89f
DM
49132 "type" : "string",
49133 "typetext" : "<string>"
44660702
DM
49134 },
49135 "groups" : {
49136 "format" : "pve-groupid-list",
49137 "optional" : 1,
013dc89f
DM
49138 "type" : "string",
49139 "typetext" : "<string>"
44660702
DM
49140 },
49141 "keys" : {
49142 "description" : "Keys for two factor auth (yubico).",
49143 "optional" : 1,
013dc89f
DM
49144 "type" : "string",
49145 "typetext" : "<string>"
44660702
DM
49146 },
49147 "lastname" : {
49148 "optional" : 1,
013dc89f
DM
49149 "type" : "string",
49150 "typetext" : "<string>"
44660702 49151 },
56122987 49152 "userid" : {
9d2e98ed 49153 "description" : "Full User ID, in the `name@realm` format.",
56122987 49154 "format" : "pve-userid",
44660702 49155 "maxLength" : 64,
013dc89f
DM
49156 "type" : "string",
49157 "typetext" : "<string>"
56122987 49158 }
44660702 49159 }
56122987 49160 },
56122987
DM
49161 "permissions" : {
49162 "check" : [
49163 "userid-group",
49164 [
44660702
DM
49165 "User.Modify"
49166 ],
49167 "groups_param",
c30bb419 49168 "update"
56122987
DM
49169 ]
49170 },
44660702
DM
49171 "protected" : 1,
49172 "returns" : {
49173 "type" : "null"
49174 }
56122987
DM
49175 }
49176 },
bb4c8cf8 49177 "leaf" : 0,
44660702 49178 "path" : "/access/users/{userid}",
7aacca6f 49179 "text" : "{userid}"
56122987 49180 }
7aacca6f 49181 ],
56122987 49182 "info" : {
7aacca6f 49183 "GET" : {
e9cd3bd4 49184 "allowtoken" : 1,
44660702
DM
49185 "description" : "User index.",
49186 "method" : "GET",
7aacca6f 49187 "name" : "index",
56122987 49188 "parameters" : {
44660702
DM
49189 "additionalProperties" : 0,
49190 "properties" : {
49191 "enabled" : {
49192 "description" : "Optional filter for enable property.",
49193 "optional" : 1,
013dc89f
DM
49194 "type" : "boolean",
49195 "typetext" : "<boolean>"
e9cd3bd4
TL
49196 },
49197 "full" : {
49198 "default" : 0,
49199 "description" : "Include group and token information.",
49200 "optional" : 1,
49201 "type" : "boolean",
49202 "typetext" : "<boolean>"
44660702
DM
49203 }
49204 }
49205 },
49206 "permissions" : {
49207 "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.",
49208 "user" : "all"
56122987 49209 },
4a407cfd 49210 "protected" : 1,
7aacca6f 49211 "returns" : {
7aacca6f
DM
49212 "items" : {
49213 "properties" : {
e2d681b3
TL
49214 "comment" : {
49215 "optional" : 1,
49216 "type" : "string"
49217 },
49218 "email" : {
49219 "format" : "email-opt",
49220 "optional" : 1,
49221 "type" : "string"
49222 },
49223 "enable" : {
49224 "default" : 1,
49225 "description" : "Enable the account (default). You can set this to '0' to disable the account",
49226 "optional" : 1,
49227 "type" : "boolean"
49228 },
49229 "expire" : {
49230 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
49231 "minimum" : 0,
49232 "optional" : 1,
49233 "type" : "integer"
49234 },
49235 "firstname" : {
49236 "optional" : 1,
49237 "type" : "string"
49238 },
e9cd3bd4
TL
49239 "groups" : {
49240 "format" : "pve-groupid-list",
49241 "optional" : 1,
49242 "type" : "string"
49243 },
e2d681b3
TL
49244 "keys" : {
49245 "description" : "Keys for two factor auth (yubico).",
49246 "optional" : 1,
49247 "type" : "string"
49248 },
49249 "lastname" : {
49250 "optional" : 1,
49251 "type" : "string"
49252 },
34f3e481
TL
49253 "realm-type" : {
49254 "description" : "The type of the users realm",
49255 "format" : "pve-realm",
49256 "optional" : 1,
49257 "type" : "string"
49258 },
4a407cfd
TL
49259 "tfa-locked-until" : {
49260 "description" : "Contains a timestamp until when a user is locked out of 2nd factors.",
49261 "optional" : 1,
49262 "type" : "integer"
49263 },
e9cd3bd4
TL
49264 "tokens" : {
49265 "items" : {
49266 "properties" : {
49267 "comment" : {
49268 "optional" : 1,
49269 "type" : "string"
49270 },
49271 "expire" : {
49272 "default" : "same as user",
49273 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
49274 "minimum" : 0,
49275 "optional" : 1,
49276 "type" : "integer"
49277 },
49278 "privsep" : {
49279 "default" : 1,
49280 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
49281 "optional" : 1,
49282 "type" : "boolean"
49283 },
49284 "tokenid" : {
49285 "description" : "User-specific token identifier.",
49286 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
49287 "type" : "string"
49288 }
49289 },
49290 "type" : "object"
49291 },
49292 "optional" : 1,
49293 "type" : "array"
49294 },
4a407cfd
TL
49295 "totp-locked" : {
49296 "description" : "True if the user is currently locked out of TOTP factors.",
49297 "optional" : 1,
49298 "type" : "boolean"
49299 },
44660702 49300 "userid" : {
9d2e98ed 49301 "description" : "Full User ID, in the `name@realm` format.",
e2d681b3
TL
49302 "format" : "pve-userid",
49303 "maxLength" : 64,
7aacca6f
DM
49304 "type" : "string"
49305 }
49306 },
49307 "type" : "object"
49308 },
44660702
DM
49309 "links" : [
49310 {
49311 "href" : "{userid}",
49312 "rel" : "child"
49313 }
49314 ],
7aacca6f
DM
49315 "type" : "array"
49316 }
49317 },
49318 "POST" : {
e9cd3bd4 49319 "allowtoken" : 1,
44660702 49320 "description" : "Create new user.",
7aacca6f 49321 "method" : "POST",
44660702 49322 "name" : "create_user",
56122987 49323 "parameters" : {
7aacca6f
DM
49324 "additionalProperties" : 0,
49325 "properties" : {
44660702
DM
49326 "comment" : {
49327 "optional" : 1,
013dc89f
DM
49328 "type" : "string",
49329 "typetext" : "<string>"
7aacca6f 49330 },
44660702
DM
49331 "email" : {
49332 "format" : "email-opt",
49333 "optional" : 1,
013dc89f
DM
49334 "type" : "string",
49335 "typetext" : "<string>"
44660702
DM
49336 },
49337 "enable" : {
49338 "default" : 1,
e2d681b3 49339 "description" : "Enable the account (default). You can set this to '0' to disable the account",
44660702 49340 "optional" : 1,
013dc89f
DM
49341 "type" : "boolean",
49342 "typetext" : "<boolean>"
44660702
DM
49343 },
49344 "expire" : {
49345 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
49346 "minimum" : 0,
49347 "optional" : 1,
4bd7df8b 49348 "type" : "integer",
013dc89f 49349 "typetext" : "<integer> (0 - N)"
44660702
DM
49350 },
49351 "firstname" : {
49352 "optional" : 1,
013dc89f
DM
49353 "type" : "string",
49354 "typetext" : "<string>"
44660702
DM
49355 },
49356 "groups" : {
49357 "format" : "pve-groupid-list",
49358 "optional" : 1,
013dc89f
DM
49359 "type" : "string",
49360 "typetext" : "<string>"
44660702
DM
49361 },
49362 "keys" : {
49363 "description" : "Keys for two factor auth (yubico).",
49364 "optional" : 1,
013dc89f
DM
49365 "type" : "string",
49366 "typetext" : "<string>"
44660702
DM
49367 },
49368 "lastname" : {
7aacca6f 49369 "optional" : 1,
013dc89f
DM
49370 "type" : "string",
49371 "typetext" : "<string>"
44660702
DM
49372 },
49373 "password" : {
49374 "description" : "Initial password.",
49375 "maxLength" : 64,
49376 "minLength" : 5,
49377 "optional" : 1,
013dc89f
DM
49378 "type" : "string",
49379 "typetext" : "<string>"
44660702
DM
49380 },
49381 "userid" : {
9d2e98ed 49382 "description" : "Full User ID, in the `name@realm` format.",
44660702
DM
49383 "format" : "pve-userid",
49384 "maxLength" : 64,
013dc89f
DM
49385 "type" : "string",
49386 "typetext" : "<string>"
56122987 49387 }
7aacca6f 49388 }
56122987 49389 },
44660702
DM
49390 "permissions" : {
49391 "check" : [
49392 "and",
49393 [
49394 "userid-param",
49395 "Realm.AllocateUser"
49396 ],
49397 [
49398 "userid-group",
49399 [
49400 "User.Modify"
49401 ],
49402 "groups_param",
c30bb419 49403 "create"
44660702
DM
49404 ]
49405 ],
49406 "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."
49407 },
49408 "protected" : 1,
49409 "returns" : {
49410 "type" : "null"
49411 }
56122987
DM
49412 }
49413 },
44660702
DM
49414 "leaf" : 0,
49415 "path" : "/access/users",
49416 "text" : "users"
49417 },
49418 {
56122987
DM
49419 "children" : [
49420 {
56122987
DM
49421 "info" : {
49422 "DELETE" : {
e9cd3bd4 49423 "allowtoken" : 1,
44660702
DM
49424 "description" : "Delete group.",
49425 "method" : "DELETE",
49426 "name" : "delete_group",
49427 "parameters" : {
49428 "additionalProperties" : 0,
49429 "properties" : {
49430 "groupid" : {
49431 "format" : "pve-groupid",
013dc89f
DM
49432 "type" : "string",
49433 "typetext" : "<string>"
44660702
DM
49434 }
49435 }
49436 },
7aacca6f
DM
49437 "permissions" : {
49438 "check" : [
49439 "perm",
49440 "/access/groups",
49441 [
49442 "Group.Allocate"
49443 ]
49444 ]
49445 },
7aacca6f 49446 "protected" : 1,
7aacca6f
DM
49447 "returns" : {
49448 "type" : "null"
44660702 49449 }
7aacca6f 49450 },
44660702 49451 "GET" : {
e9cd3bd4 49452 "allowtoken" : 1,
44660702
DM
49453 "description" : "Get group configuration.",
49454 "method" : "GET",
49455 "name" : "read_group",
49456 "parameters" : {
49457 "additionalProperties" : 0,
49458 "properties" : {
49459 "groupid" : {
49460 "format" : "pve-groupid",
013dc89f
DM
49461 "type" : "string",
49462 "typetext" : "<string>"
44660702
DM
49463 }
49464 }
56122987 49465 },
7aacca6f
DM
49466 "permissions" : {
49467 "check" : [
49468 "perm",
49469 "/access/groups",
49470 [
44660702 49471 "Sys.Audit",
7aacca6f 49472 "Group.Allocate"
44660702
DM
49473 ],
49474 "any",
49475 1
7aacca6f
DM
49476 ]
49477 },
7aacca6f 49478 "returns" : {
44660702 49479 "additionalProperties" : 0,
7aacca6f
DM
49480 "properties" : {
49481 "comment" : {
44660702
DM
49482 "optional" : 1,
49483 "type" : "string"
7aacca6f
DM
49484 },
49485 "members" : {
49486 "items" : {
9d2e98ed 49487 "description" : "Full User ID, in the `name@realm` format.",
e2d681b3
TL
49488 "format" : "pve-userid",
49489 "maxLength" : 64,
7aacca6f
DM
49490 "type" : "string"
49491 },
49492 "type" : "array"
49493 }
49494 },
44660702
DM
49495 "type" : "object"
49496 }
49497 },
49498 "PUT" : {
e9cd3bd4 49499 "allowtoken" : 1,
44660702
DM
49500 "description" : "Update group data.",
49501 "method" : "PUT",
49502 "name" : "update_group",
56122987 49503 "parameters" : {
44660702 49504 "additionalProperties" : 0,
56122987 49505 "properties" : {
44660702
DM
49506 "comment" : {
49507 "optional" : 1,
013dc89f
DM
49508 "type" : "string",
49509 "typetext" : "<string>"
44660702 49510 },
56122987
DM
49511 "groupid" : {
49512 "format" : "pve-groupid",
013dc89f
DM
49513 "type" : "string",
49514 "typetext" : "<string>"
56122987 49515 }
44660702 49516 }
56122987 49517 },
56122987
DM
49518 "permissions" : {
49519 "check" : [
49520 "perm",
49521 "/access/groups",
49522 [
49523 "Group.Allocate"
44660702 49524 ]
56122987
DM
49525 ]
49526 },
44660702
DM
49527 "protected" : 1,
49528 "returns" : {
49529 "type" : "null"
49530 }
7aacca6f
DM
49531 }
49532 },
7aacca6f 49533 "leaf" : 1,
44660702
DM
49534 "path" : "/access/groups/{groupid}",
49535 "text" : "{groupid}"
49536 }
49537 ],
49538 "info" : {
49539 "GET" : {
e9cd3bd4 49540 "allowtoken" : 1,
44660702
DM
49541 "description" : "Group index.",
49542 "method" : "GET",
49543 "name" : "index",
49544 "parameters" : {
49545 "additionalProperties" : 0
49546 },
49547 "permissions" : {
49548 "description" : "The returned list is restricted to groups where you have 'User.Modify', 'Sys.Audit' or 'Group.Allocate' permissions on /access/groups/<group>.",
49549 "user" : "all"
49550 },
49551 "returns" : {
49552 "items" : {
49553 "properties" : {
e2d681b3
TL
49554 "comment" : {
49555 "optional" : 1,
49556 "type" : "string"
49557 },
44660702 49558 "groupid" : {
e2d681b3 49559 "format" : "pve-groupid",
44660702 49560 "type" : "string"
e9cd3bd4
TL
49561 },
49562 "users" : {
49563 "description" : "list of users which form this group",
49564 "format" : "pve-userid-list",
49565 "optional" : 1,
49566 "type" : "string"
44660702
DM
49567 }
49568 },
49569 "type" : "object"
49570 },
49571 "links" : [
49572 {
49573 "href" : "{groupid}",
49574 "rel" : "child"
49575 }
49576 ],
49577 "type" : "array"
49578 }
49579 },
49580 "POST" : {
e9cd3bd4 49581 "allowtoken" : 1,
44660702
DM
49582 "description" : "Create new group.",
49583 "method" : "POST",
49584 "name" : "create_group",
49585 "parameters" : {
49586 "additionalProperties" : 0,
49587 "properties" : {
49588 "comment" : {
49589 "optional" : 1,
013dc89f
DM
49590 "type" : "string",
49591 "typetext" : "<string>"
44660702
DM
49592 },
49593 "groupid" : {
49594 "format" : "pve-groupid",
013dc89f
DM
49595 "type" : "string",
49596 "typetext" : "<string>"
44660702
DM
49597 }
49598 }
49599 },
49600 "permissions" : {
49601 "check" : [
49602 "perm",
49603 "/access/groups",
49604 [
49605 "Group.Allocate"
49606 ]
49607 ]
49608 },
49609 "protected" : 1,
49610 "returns" : {
49611 "type" : "null"
49612 }
7aacca6f 49613 }
44660702 49614 },
7aacca6f 49615 "leaf" : 0,
44660702
DM
49616 "path" : "/access/groups",
49617 "text" : "groups"
7aacca6f
DM
49618 },
49619 {
49620 "children" : [
49621 {
7aacca6f 49622 "info" : {
7aacca6f 49623 "DELETE" : {
e9cd3bd4 49624 "allowtoken" : 1,
7aacca6f 49625 "description" : "Delete role.",
44660702 49626 "method" : "DELETE",
7aacca6f 49627 "name" : "delete_role",
56122987
DM
49628 "parameters" : {
49629 "additionalProperties" : 0,
49630 "properties" : {
7aacca6f
DM
49631 "roleid" : {
49632 "format" : "pve-roleid",
013dc89f
DM
49633 "type" : "string",
49634 "typetext" : "<string>"
56122987
DM
49635 }
49636 }
49637 },
56122987
DM
49638 "permissions" : {
49639 "check" : [
49640 "perm",
7aacca6f 49641 "/access",
56122987 49642 [
7aacca6f
DM
49643 "Sys.Modify"
49644 ]
56122987 49645 ]
44660702
DM
49646 },
49647 "protected" : 1,
49648 "returns" : {
49649 "type" : "null"
56122987
DM
49650 }
49651 },
44660702 49652 "GET" : {
e9cd3bd4 49653 "allowtoken" : 1,
44660702
DM
49654 "description" : "Get role configuration.",
49655 "method" : "GET",
49656 "name" : "read_role",
49657 "parameters" : {
49658 "additionalProperties" : 0,
49659 "properties" : {
49660 "roleid" : {
49661 "format" : "pve-roleid",
013dc89f
DM
49662 "type" : "string",
49663 "typetext" : "<string>"
44660702
DM
49664 }
49665 }
49666 },
7aacca6f 49667 "permissions" : {
44660702 49668 "user" : "all"
56122987 49669 },
e2d681b3
TL
49670 "returns" : {
49671 "additionalProperties" : 0,
49672 "properties" : {
49673 "Datastore.Allocate" : {
49674 "optional" : 1,
49675 "type" : "boolean"
49676 },
49677 "Datastore.AllocateSpace" : {
49678 "optional" : 1,
49679 "type" : "boolean"
49680 },
49681 "Datastore.AllocateTemplate" : {
49682 "optional" : 1,
49683 "type" : "boolean"
49684 },
49685 "Datastore.Audit" : {
49686 "optional" : 1,
49687 "type" : "boolean"
49688 },
49689 "Group.Allocate" : {
49690 "optional" : 1,
49691 "type" : "boolean"
49692 },
159464a9
TL
49693 "Mapping.Audit" : {
49694 "optional" : 1,
49695 "type" : "boolean"
49696 },
49697 "Mapping.Modify" : {
49698 "optional" : 1,
49699 "type" : "boolean"
49700 },
49701 "Mapping.Use" : {
49702 "optional" : 1,
49703 "type" : "boolean"
49704 },
e2d681b3
TL
49705 "Permissions.Modify" : {
49706 "optional" : 1,
49707 "type" : "boolean"
49708 },
49709 "Pool.Allocate" : {
49710 "optional" : 1,
49711 "type" : "boolean"
49712 },
0695fdaf
TL
49713 "Pool.Audit" : {
49714 "optional" : 1,
49715 "type" : "boolean"
49716 },
e2d681b3
TL
49717 "Realm.Allocate" : {
49718 "optional" : 1,
49719 "type" : "boolean"
49720 },
49721 "Realm.AllocateUser" : {
49722 "optional" : 1,
49723 "type" : "boolean"
49724 },
5c1699e5
TL
49725 "SDN.Allocate" : {
49726 "optional" : 1,
49727 "type" : "boolean"
49728 },
49729 "SDN.Audit" : {
49730 "optional" : 1,
159464a9
TL
49731 "type" : "boolean"
49732 },
49733 "SDN.Use" : {
49734 "optional" : 1,
5c1699e5
TL
49735 "type" : "boolean"
49736 },
e2d681b3
TL
49737 "Sys.Audit" : {
49738 "optional" : 1,
49739 "type" : "boolean"
49740 },
49741 "Sys.Console" : {
49742 "optional" : 1,
49743 "type" : "boolean"
49744 },
81a3384d
TL
49745 "Sys.Incoming" : {
49746 "optional" : 1,
49747 "type" : "boolean"
49748 },
e2d681b3
TL
49749 "Sys.Modify" : {
49750 "optional" : 1,
49751 "type" : "boolean"
49752 },
49753 "Sys.PowerMgmt" : {
49754 "optional" : 1,
49755 "type" : "boolean"
49756 },
49757 "Sys.Syslog" : {
49758 "optional" : 1,
49759 "type" : "boolean"
49760 },
49761 "User.Modify" : {
49762 "optional" : 1,
49763 "type" : "boolean"
49764 },
49765 "VM.Allocate" : {
49766 "optional" : 1,
49767 "type" : "boolean"
49768 },
49769 "VM.Audit" : {
49770 "optional" : 1,
49771 "type" : "boolean"
49772 },
49773 "VM.Backup" : {
49774 "optional" : 1,
49775 "type" : "boolean"
49776 },
49777 "VM.Clone" : {
49778 "optional" : 1,
49779 "type" : "boolean"
49780 },
49781 "VM.Config.CDROM" : {
49782 "optional" : 1,
49783 "type" : "boolean"
49784 },
49785 "VM.Config.CPU" : {
49786 "optional" : 1,
49787 "type" : "boolean"
49788 },
ac70d7d1
TL
49789 "VM.Config.Cloudinit" : {
49790 "optional" : 1,
49791 "type" : "boolean"
49792 },
e2d681b3
TL
49793 "VM.Config.Disk" : {
49794 "optional" : 1,
49795 "type" : "boolean"
49796 },
49797 "VM.Config.HWType" : {
49798 "optional" : 1,
49799 "type" : "boolean"
49800 },
49801 "VM.Config.Memory" : {
49802 "optional" : 1,
49803 "type" : "boolean"
49804 },
49805 "VM.Config.Network" : {
49806 "optional" : 1,
49807 "type" : "boolean"
49808 },
49809 "VM.Config.Options" : {
49810 "optional" : 1,
49811 "type" : "boolean"
49812 },
49813 "VM.Console" : {
49814 "optional" : 1,
49815 "type" : "boolean"
49816 },
49817 "VM.Migrate" : {
49818 "optional" : 1,
49819 "type" : "boolean"
49820 },
49821 "VM.Monitor" : {
49822 "optional" : 1,
49823 "type" : "boolean"
49824 },
49825 "VM.PowerMgmt" : {
49826 "optional" : 1,
49827 "type" : "boolean"
49828 },
49829 "VM.Snapshot" : {
49830 "optional" : 1,
49831 "type" : "boolean"
49832 },
49833 "VM.Snapshot.Rollback" : {
49834 "optional" : 1,
49835 "type" : "boolean"
49836 }
49837 },
49838 "type" : "object"
49839 }
44660702
DM
49840 },
49841 "PUT" : {
e9cd3bd4 49842 "allowtoken" : 1,
e2d681b3 49843 "description" : "Update an existing role.",
44660702
DM
49844 "method" : "PUT",
49845 "name" : "update_role",
56122987
DM
49846 "parameters" : {
49847 "additionalProperties" : 0,
49848 "properties" : {
7aacca6f 49849 "append" : {
44660702 49850 "optional" : 1,
7aacca6f 49851 "requires" : "privs",
013dc89f
DM
49852 "type" : "boolean",
49853 "typetext" : "<boolean>"
7aacca6f
DM
49854 },
49855 "privs" : {
49856 "format" : "pve-priv-list",
e2d681b3 49857 "optional" : 1,
013dc89f
DM
49858 "type" : "string",
49859 "typetext" : "<string>"
44660702
DM
49860 },
49861 "roleid" : {
49862 "format" : "pve-roleid",
013dc89f
DM
49863 "type" : "string",
49864 "typetext" : "<string>"
56122987
DM
49865 }
49866 }
49867 },
44660702
DM
49868 "permissions" : {
49869 "check" : [
49870 "perm",
49871 "/access",
49872 [
49873 "Sys.Modify"
49874 ]
49875 ]
49876 },
56122987 49877 "protected" : 1,
7aacca6f
DM
49878 "returns" : {
49879 "type" : "null"
56122987
DM
49880 }
49881 }
49882 },
44660702 49883 "leaf" : 1,
7aacca6f 49884 "path" : "/access/roles/{roleid}",
44660702 49885 "text" : "{roleid}"
56122987
DM
49886 }
49887 ],
56122987 49888 "info" : {
7aacca6f 49889 "GET" : {
e9cd3bd4 49890 "allowtoken" : 1,
7aacca6f 49891 "description" : "Role index.",
44660702 49892 "method" : "GET",
7aacca6f 49893 "name" : "index",
56122987 49894 "parameters" : {
56122987
DM
49895 "additionalProperties" : 0
49896 },
7aacca6f
DM
49897 "permissions" : {
49898 "user" : "all"
49899 },
56122987 49900 "returns" : {
7aacca6f 49901 "items" : {
7aacca6f 49902 "properties" : {
e2d681b3
TL
49903 "privs" : {
49904 "format" : "pve-priv-list",
49905 "optional" : 1,
49906 "type" : "string"
49907 },
7aacca6f 49908 "roleid" : {
e2d681b3 49909 "format" : "pve-roleid",
7aacca6f 49910 "type" : "string"
e2d681b3
TL
49911 },
49912 "special" : {
49913 "default" : 0,
49914 "optional" : 1,
49915 "type" : "boolean"
7aacca6f 49916 }
44660702
DM
49917 },
49918 "type" : "object"
49919 },
49920 "links" : [
49921 {
49922 "href" : "{roleid}",
49923 "rel" : "child"
7aacca6f 49924 }
44660702
DM
49925 ],
49926 "type" : "array"
49927 }
7aacca6f
DM
49928 },
49929 "POST" : {
e9cd3bd4 49930 "allowtoken" : 1,
7aacca6f 49931 "description" : "Create new role.",
44660702
DM
49932 "method" : "POST",
49933 "name" : "create_role",
7aacca6f
DM
49934 "parameters" : {
49935 "additionalProperties" : 0,
49936 "properties" : {
7aacca6f
DM
49937 "privs" : {
49938 "format" : "pve-priv-list",
49939 "optional" : 1,
013dc89f
DM
49940 "type" : "string",
49941 "typetext" : "<string>"
44660702
DM
49942 },
49943 "roleid" : {
49944 "format" : "pve-roleid",
013dc89f
DM
49945 "type" : "string",
49946 "typetext" : "<string>"
7aacca6f
DM
49947 }
49948 }
49949 },
44660702
DM
49950 "permissions" : {
49951 "check" : [
49952 "perm",
49953 "/access",
49954 [
49955 "Sys.Modify"
49956 ]
49957 ]
49958 },
49959 "protected" : 1,
7aacca6f
DM
49960 "returns" : {
49961 "type" : "null"
49962 }
49963 }
49964 },
44660702 49965 "leaf" : 0,
7aacca6f 49966 "path" : "/access/roles",
44660702 49967 "text" : "roles"
7aacca6f
DM
49968 },
49969 {
49970 "info" : {
56122987 49971 "GET" : {
e9cd3bd4 49972 "allowtoken" : 1,
44660702
DM
49973 "description" : "Get Access Control List (ACLs).",
49974 "method" : "GET",
49975 "name" : "read_acl",
7aacca6f
DM
49976 "parameters" : {
49977 "additionalProperties" : 0
49978 },
44660702
DM
49979 "permissions" : {
49980 "description" : "The returned list is restricted to objects where you have rights to modify permissions.",
49981 "user" : "all"
49982 },
56122987 49983 "returns" : {
56122987 49984 "items" : {
44660702 49985 "additionalProperties" : 0,
56122987 49986 "properties" : {
7aacca6f 49987 "path" : {
e2d681b3 49988 "description" : "Access control path",
7aacca6f
DM
49989 "type" : "string"
49990 },
44660702 49991 "propagate" : {
e2d681b3
TL
49992 "default" : 1,
49993 "description" : "Allow to propagate (inherit) permissions.",
49994 "optional" : 1,
44660702
DM
49995 "type" : "boolean"
49996 },
49997 "roleid" : {
49998 "type" : "string"
49999 },
7aacca6f
DM
50000 "type" : {
50001 "enum" : [
50002 "user",
e9cd3bd4
TL
50003 "group",
50004 "token"
7aacca6f
DM
50005 ],
50006 "type" : "string"
50007 },
7aacca6f
DM
50008 "ugid" : {
50009 "type" : "string"
56122987 50010 }
7aacca6f 50011 },
44660702 50012 "type" : "object"
7aacca6f
DM
50013 },
50014 "type" : "array"
44660702 50015 }
7aacca6f
DM
50016 },
50017 "PUT" : {
e9cd3bd4 50018 "allowtoken" : 1,
44660702
DM
50019 "description" : "Update Access Control List (add or remove permissions).",
50020 "method" : "PUT",
7aacca6f
DM
50021 "name" : "update_acl",
50022 "parameters" : {
50023 "additionalProperties" : 0,
50024 "properties" : {
50025 "delete" : {
44660702 50026 "description" : "Remove permissions (instead of adding it).",
7aacca6f 50027 "optional" : 1,
013dc89f
DM
50028 "type" : "boolean",
50029 "typetext" : "<boolean>"
7aacca6f 50030 },
44660702
DM
50031 "groups" : {
50032 "description" : "List of groups.",
50033 "format" : "pve-groupid-list",
7aacca6f 50034 "optional" : 1,
013dc89f
DM
50035 "type" : "string",
50036 "typetext" : "<string>"
7aacca6f
DM
50037 },
50038 "path" : {
50039 "description" : "Access control path",
013dc89f
DM
50040 "type" : "string",
50041 "typetext" : "<string>"
7aacca6f 50042 },
7aacca6f 50043 "propagate" : {
44660702 50044 "default" : 1,
7aacca6f 50045 "description" : "Allow to propagate (inherit) permissions.",
7aacca6f 50046 "optional" : 1,
013dc89f
DM
50047 "type" : "boolean",
50048 "typetext" : "<boolean>"
7aacca6f 50049 },
44660702
DM
50050 "roles" : {
50051 "description" : "List of roles.",
50052 "format" : "pve-roleid-list",
013dc89f
DM
50053 "type" : "string",
50054 "typetext" : "<string>"
44660702 50055 },
e9cd3bd4
TL
50056 "tokens" : {
50057 "description" : "List of API tokens.",
50058 "format" : "pve-tokenid-list",
50059 "optional" : 1,
50060 "type" : "string",
50061 "typetext" : "<string>"
50062 },
44660702
DM
50063 "users" : {
50064 "description" : "List of users.",
50065 "format" : "pve-userid-list",
7aacca6f 50066 "optional" : 1,
013dc89f
DM
50067 "type" : "string",
50068 "typetext" : "<string>"
56122987
DM
50069 }
50070 }
50071 },
56122987 50072 "permissions" : {
7aacca6f
DM
50073 "check" : [
50074 "perm-modify",
50075 "{path}"
50076 ]
50077 },
7aacca6f
DM
50078 "protected" : 1,
50079 "returns" : {
50080 "type" : "null"
44660702 50081 }
56122987
DM
50082 }
50083 },
7aacca6f 50084 "leaf" : 1,
44660702
DM
50085 "path" : "/access/acl",
50086 "text" : "acl"
7aacca6f
DM
50087 },
50088 {
56122987
DM
50089 "children" : [
50090 {
c5aa7e14
TL
50091 "children" : [
50092 {
50093 "info" : {
50094 "POST" : {
50095 "allowtoken" : 1,
50096 "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.",
50097 "method" : "POST",
50098 "name" : "sync",
50099 "parameters" : {
50100 "additionalProperties" : 0,
50101 "properties" : {
50102 "dry-run" : {
50103 "default" : 0,
50104 "description" : "If set, does not write anything.",
50105 "optional" : 1,
50106 "type" : "boolean",
50107 "typetext" : "<boolean>"
50108 },
50109 "enable-new" : {
50110 "default" : "1",
50111 "description" : "Enable newly synced users immediately.",
50112 "optional" : "1",
50113 "type" : "boolean",
50114 "typetext" : "<boolean>"
50115 },
50116 "full" : {
7af2edf9 50117 "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
50118 "optional" : "1",
50119 "type" : "boolean",
50120 "typetext" : "<boolean>"
50121 },
50122 "purge" : {
7af2edf9 50123 "description" : "DEPRECATED: use 'remove-vanished' instead. Remove ACLs for users or groups which were removed from the config during a sync.",
c5aa7e14
TL
50124 "optional" : "1",
50125 "type" : "boolean",
50126 "typetext" : "<boolean>"
50127 },
50128 "realm" : {
50129 "description" : "Authentication domain ID",
50130 "format" : "pve-realm",
50131 "maxLength" : 32,
50132 "type" : "string",
50133 "typetext" : "<string>"
50134 },
7af2edf9 50135 "remove-vanished" : {
9d2e98ed
TL
50136 "default" : "none",
50137 "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync. Instead of a list it also can be 'none' (the default).",
7af2edf9 50138 "optional" : "1",
9d2e98ed 50139 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
7af2edf9 50140 "type" : "string",
9d2e98ed 50141 "typetext" : "([acl];[properties];[entry])|none"
7af2edf9 50142 },
c5aa7e14
TL
50143 "scope" : {
50144 "description" : "Select what to sync.",
50145 "enum" : [
50146 "users",
50147 "groups",
50148 "both"
50149 ],
50150 "optional" : "1",
50151 "type" : "string"
50152 }
50153 }
50154 },
50155 "permissions" : {
50156 "check" : [
50157 "and",
50158 [
c30bb419
TL
50159 "perm",
50160 "/access/realm/{realm}",
50161 [
50162 "Realm.AllocateUser"
50163 ]
c5aa7e14
TL
50164 ],
50165 [
c30bb419
TL
50166 "perm",
50167 "/access/groups",
c5aa7e14
TL
50168 [
50169 "User.Modify"
50170 ]
50171 ]
50172 ],
50173 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
50174 },
50175 "protected" : 1,
50176 "returns" : {
50177 "description" : "Worker Task-UPID",
50178 "type" : "string"
50179 }
50180 }
50181 },
50182 "leaf" : 1,
50183 "path" : "/access/domains/{realm}/sync",
50184 "text" : "sync"
50185 }
50186 ],
56122987 50187 "info" : {
44660702 50188 "DELETE" : {
e9cd3bd4 50189 "allowtoken" : 1,
44660702
DM
50190 "description" : "Delete an authentication server.",
50191 "method" : "DELETE",
50192 "name" : "delete",
50193 "parameters" : {
50194 "additionalProperties" : 0,
50195 "properties" : {
50196 "realm" : {
50197 "description" : "Authentication domain ID",
50198 "format" : "pve-realm",
50199 "maxLength" : 32,
013dc89f
DM
50200 "type" : "string",
50201 "typetext" : "<string>"
56122987 50202 }
44660702 50203 }
56122987 50204 },
56122987
DM
50205 "permissions" : {
50206 "check" : [
50207 "perm",
7aacca6f 50208 "/access/realm",
56122987 50209 [
7aacca6f 50210 "Realm.Allocate"
56122987
DM
50211 ]
50212 ]
50213 },
7aacca6f 50214 "protected" : 1,
7aacca6f
DM
50215 "returns" : {
50216 "type" : "null"
44660702 50217 }
7aacca6f 50218 },
44660702 50219 "GET" : {
e9cd3bd4 50220 "allowtoken" : 1,
44660702
DM
50221 "description" : "Get auth server configuration.",
50222 "method" : "GET",
50223 "name" : "read",
56122987 50224 "parameters" : {
44660702 50225 "additionalProperties" : 0,
56122987 50226 "properties" : {
7aacca6f 50227 "realm" : {
44660702 50228 "description" : "Authentication domain ID",
7aacca6f
DM
50229 "format" : "pve-realm",
50230 "maxLength" : 32,
013dc89f
DM
50231 "type" : "string",
50232 "typetext" : "<string>"
56122987 50233 }
44660702 50234 }
7aacca6f 50235 },
7aacca6f
DM
50236 "permissions" : {
50237 "check" : [
50238 "perm",
50239 "/access/realm",
50240 [
44660702
DM
50241 "Realm.Allocate",
50242 "Sys.Audit"
50243 ],
50244 "any",
50245 1
7aacca6f 50246 ]
44660702
DM
50247 },
50248 "returns" : {}
7aacca6f 50249 },
44660702 50250 "PUT" : {
e9cd3bd4 50251 "allowtoken" : 1,
44660702
DM
50252 "description" : "Update authentication server settings.",
50253 "method" : "PUT",
50254 "name" : "update",
7aacca6f 50255 "parameters" : {
44660702 50256 "additionalProperties" : 0,
7aacca6f 50257 "properties" : {
c30bb419
TL
50258 "acr-values" : {
50259 "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
50260 "optional" : 1,
50261 "type" : "string",
50262 "typetext" : "<string>"
50263 },
34f3e481
TL
50264 "autocreate" : {
50265 "default" : 0,
50266 "description" : "Automatically create users if they do not exist.",
50267 "optional" : 1,
50268 "type" : "boolean",
50269 "typetext" : "<boolean>"
50270 },
44660702
DM
50271 "base_dn" : {
50272 "description" : "LDAP base domain name",
50273 "maxLength" : 256,
50274 "optional" : 1,
287a95cf 50275 "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
44660702
DM
50276 "type" : "string"
50277 },
4bd7df8b
DM
50278 "bind_dn" : {
50279 "description" : "LDAP bind domain name",
50280 "maxLength" : 256,
50281 "optional" : 1,
287a95cf 50282 "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
4bd7df8b
DM
50283 "type" : "string"
50284 },
2489d6df
WB
50285 "capath" : {
50286 "default" : "/etc/ssl/certs",
50287 "description" : "Path to the CA certificate store",
50288 "optional" : 1,
50289 "type" : "string",
50290 "typetext" : "<string>"
50291 },
4772952b
TL
50292 "case-sensitive" : {
50293 "default" : 1,
50294 "description" : "username is case-sensitive",
50295 "optional" : 1,
50296 "type" : "boolean",
50297 "typetext" : "<boolean>"
50298 },
2489d6df
WB
50299 "cert" : {
50300 "description" : "Path to the client certificate",
50301 "optional" : 1,
50302 "type" : "string",
50303 "typetext" : "<string>"
50304 },
50305 "certkey" : {
50306 "description" : "Path to the client certificate key",
50307 "optional" : 1,
50308 "type" : "string",
50309 "typetext" : "<string>"
50310 },
34f3e481
TL
50311 "client-id" : {
50312 "description" : "OpenID Client ID",
50313 "maxLength" : 256,
50314 "optional" : 1,
50315 "type" : "string",
50316 "typetext" : "<string>"
50317 },
50318 "client-key" : {
50319 "description" : "OpenID Client Key",
50320 "maxLength" : 256,
50321 "optional" : 1,
50322 "type" : "string",
50323 "typetext" : "<string>"
50324 },
44660702
DM
50325 "comment" : {
50326 "description" : "Description.",
50327 "maxLength" : 4096,
50328 "optional" : 1,
013dc89f
DM
50329 "type" : "string",
50330 "typetext" : "<string>"
44660702
DM
50331 },
50332 "default" : {
50333 "description" : "Use this as default realm",
50334 "optional" : 1,
013dc89f
DM
50335 "type" : "boolean",
50336 "typetext" : "<boolean>"
44660702
DM
50337 },
50338 "delete" : {
50339 "description" : "A list of settings you want to delete.",
50340 "format" : "pve-configid-list",
50341 "maxLength" : 4096,
50342 "optional" : 1,
013dc89f
DM
50343 "type" : "string",
50344 "typetext" : "<string>"
44660702
DM
50345 },
50346 "digest" : {
50347 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
50348 "maxLength" : 40,
50349 "optional" : 1,
013dc89f
DM
50350 "type" : "string",
50351 "typetext" : "<string>"
44660702
DM
50352 },
50353 "domain" : {
50354 "description" : "AD domain name",
50355 "maxLength" : 256,
50356 "optional" : 1,
50357 "pattern" : "\\S+",
50358 "type" : "string"
50359 },
c5aa7e14
TL
50360 "filter" : {
50361 "description" : "LDAP filter for user sync.",
50362 "maxLength" : 2048,
50363 "optional" : 1,
50364 "type" : "string",
50365 "typetext" : "<string>"
50366 },
50367 "group_classes" : {
50368 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
50369 "description" : "The objectclasses for groups.",
50370 "format" : "ldap-simple-attr-list",
50371 "optional" : 1,
50372 "type" : "string",
50373 "typetext" : "<string>"
50374 },
50375 "group_dn" : {
50376 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
50377 "maxLength" : 256,
50378 "optional" : 1,
287a95cf 50379 "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
c5aa7e14
TL
50380 "type" : "string"
50381 },
50382 "group_filter" : {
50383 "description" : "LDAP filter for group sync.",
50384 "maxLength" : 2048,
50385 "optional" : 1,
50386 "type" : "string",
50387 "typetext" : "<string>"
50388 },
50389 "group_name_attr" : {
50390 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
50391 "format" : "ldap-simple-attr",
50392 "maxLength" : 256,
50393 "optional" : 1,
50394 "type" : "string",
50395 "typetext" : "<string>"
50396 },
34f3e481
TL
50397 "issuer-url" : {
50398 "description" : "OpenID Issuer Url",
50399 "maxLength" : 256,
50400 "optional" : 1,
50401 "type" : "string",
50402 "typetext" : "<string>"
50403 },
c5aa7e14
TL
50404 "mode" : {
50405 "default" : "ldap",
50406 "description" : "LDAP protocol mode.",
50407 "enum" : [
50408 "ldap",
50409 "ldaps",
50410 "ldap+starttls"
50411 ],
50412 "optional" : 1,
50413 "type" : "string"
50414 },
50415 "password" : {
50416 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
50417 "optional" : 1,
50418 "type" : "string",
50419 "typetext" : "<string>"
50420 },
44660702
DM
50421 "port" : {
50422 "description" : "Server port.",
50423 "maximum" : 65535,
50424 "minimum" : 1,
50425 "optional" : 1,
4bd7df8b 50426 "type" : "integer",
013dc89f 50427 "typetext" : "<integer> (1 - 65535)"
44660702 50428 },
c30bb419
TL
50429 "prompt" : {
50430 "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
50431 "optional" : 1,
50432 "pattern" : "(?:none|login|consent|select_account|\\S+)",
50433 "type" : "string"
50434 },
7aacca6f 50435 "realm" : {
7aacca6f
DM
50436 "description" : "Authentication domain ID",
50437 "format" : "pve-realm",
44660702 50438 "maxLength" : 32,
013dc89f
DM
50439 "type" : "string",
50440 "typetext" : "<string>"
44660702 50441 },
c30bb419
TL
50442 "scopes" : {
50443 "default" : "email profile",
50444 "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
50445 "optional" : 1,
50446 "type" : "string",
50447 "typetext" : "<string>"
50448 },
44660702 50449 "secure" : {
c5aa7e14 50450 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
44660702 50451 "optional" : 1,
013dc89f
DM
50452 "type" : "boolean",
50453 "typetext" : "<boolean>"
44660702
DM
50454 },
50455 "server1" : {
50456 "description" : "Server IP address (or DNS name)",
50457 "format" : "address",
50458 "maxLength" : 256,
50459 "optional" : 1,
013dc89f
DM
50460 "type" : "string",
50461 "typetext" : "<string>"
44660702
DM
50462 },
50463 "server2" : {
50464 "description" : "Fallback Server IP address (or DNS name)",
50465 "format" : "address",
50466 "maxLength" : 256,
50467 "optional" : 1,
013dc89f
DM
50468 "type" : "string",
50469 "typetext" : "<string>"
44660702 50470 },
1c532546
TL
50471 "sslversion" : {
50472 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
50473 "enum" : [
50474 "tlsv1",
50475 "tlsv1_1",
50476 "tlsv1_2",
50477 "tlsv1_3"
50478 ],
50479 "optional" : 1,
50480 "type" : "string"
50481 },
c5aa7e14
TL
50482 "sync-defaults-options" : {
50483 "description" : "The default options for behavior of synchronizations.",
50484 "format" : "realm-sync-options",
50485 "optional" : 1,
50486 "type" : "string",
9d2e98ed 50487 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=([acl];[properties];[entry])|none] [,scope=<users|groups|both>]"
c5aa7e14
TL
50488 },
50489 "sync_attributes" : {
50490 "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.",
50491 "optional" : 1,
50492 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
50493 "type" : "string"
50494 },
44660702
DM
50495 "tfa" : {
50496 "description" : "Use Two-factor authentication.",
50497 "format" : "pve-tfa-config",
50498 "maxLength" : 128,
50499 "optional" : 1,
013dc89f 50500 "type" : "string",
95895385 50501 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
44660702
DM
50502 },
50503 "user_attr" : {
50504 "description" : "LDAP user attribute name",
50505 "maxLength" : 256,
50506 "optional" : 1,
50507 "pattern" : "\\S{2,}",
50508 "type" : "string"
2489d6df 50509 },
c5aa7e14
TL
50510 "user_classes" : {
50511 "default" : "inetorgperson, posixaccount, person, user",
50512 "description" : "The objectclasses for users.",
50513 "format" : "ldap-simple-attr-list",
50514 "optional" : 1,
50515 "type" : "string",
50516 "typetext" : "<string>"
50517 },
2489d6df
WB
50518 "verify" : {
50519 "default" : 0,
50520 "description" : "Verify the server's SSL certificate",
50521 "optional" : 1,
50522 "type" : "boolean",
50523 "typetext" : "<boolean>"
7aacca6f 50524 }
56122987 50525 },
44660702 50526 "type" : "object"
56122987 50527 },
7aacca6f
DM
50528 "permissions" : {
50529 "check" : [
50530 "perm",
50531 "/access/realm",
50532 [
44660702
DM
50533 "Realm.Allocate"
50534 ]
7aacca6f
DM
50535 ]
50536 },
44660702
DM
50537 "protected" : 1,
50538 "returns" : {
50539 "type" : "null"
50540 }
56122987 50541 }
44660702 50542 },
c5aa7e14 50543 "leaf" : 0,
44660702
DM
50544 "path" : "/access/domains/{realm}",
50545 "text" : "{realm}"
56122987 50546 }
7aacca6f 50547 ],
56122987
DM
50548 "info" : {
50549 "GET" : {
e9cd3bd4 50550 "allowtoken" : 1,
44660702
DM
50551 "description" : "Authentication domain index.",
50552 "method" : "GET",
50553 "name" : "index",
50554 "parameters" : {
50555 "additionalProperties" : 0
50556 },
50557 "permissions" : {
50558 "description" : "Anyone can access that, because we need that list for the login box (before the user is authenticated).",
50559 "user" : "world"
50560 },
56122987 50561 "returns" : {
56122987
DM
50562 "items" : {
50563 "properties" : {
7aacca6f 50564 "comment" : {
52e44c50 50565 "description" : "A comment. The GUI use this text when you select a domain (Realm) on the login window.",
7aacca6f
DM
50566 "optional" : 1,
50567 "type" : "string"
50568 },
56122987
DM
50569 "realm" : {
50570 "type" : "string"
50571 },
50572 "tfa" : {
7aacca6f 50573 "description" : "Two-factor authentication provider.",
56122987
DM
50574 "enum" : [
50575 "yubico",
50576 "oath"
50577 ],
44660702
DM
50578 "optional" : 1,
50579 "type" : "string"
c5aa7e14
TL
50580 },
50581 "type" : {
50582 "type" : "string"
56122987
DM
50583 }
50584 },
50585 "type" : "object"
44660702
DM
50586 },
50587 "links" : [
50588 {
50589 "href" : "{realm}",
50590 "rel" : "child"
50591 }
50592 ],
50593 "type" : "array"
50594 }
56122987
DM
50595 },
50596 "POST" : {
e9cd3bd4 50597 "allowtoken" : 1,
7aacca6f 50598 "description" : "Add an authentication server.",
44660702 50599 "method" : "POST",
7aacca6f 50600 "name" : "create",
56122987 50601 "parameters" : {
44660702 50602 "additionalProperties" : 0,
56122987 50603 "properties" : {
c30bb419
TL
50604 "acr-values" : {
50605 "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
50606 "optional" : 1,
50607 "type" : "string",
50608 "typetext" : "<string>"
50609 },
34f3e481
TL
50610 "autocreate" : {
50611 "default" : 0,
50612 "description" : "Automatically create users if they do not exist.",
50613 "optional" : 1,
50614 "type" : "boolean",
50615 "typetext" : "<boolean>"
50616 },
44660702
DM
50617 "base_dn" : {
50618 "description" : "LDAP base domain name",
56122987 50619 "maxLength" : 256,
44660702 50620 "optional" : 1,
287a95cf 50621 "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
7aacca6f 50622 "type" : "string"
56122987 50623 },
4bd7df8b
DM
50624 "bind_dn" : {
50625 "description" : "LDAP bind domain name",
50626 "maxLength" : 256,
50627 "optional" : 1,
287a95cf 50628 "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
4bd7df8b
DM
50629 "type" : "string"
50630 },
2489d6df
WB
50631 "capath" : {
50632 "default" : "/etc/ssl/certs",
50633 "description" : "Path to the CA certificate store",
50634 "optional" : 1,
50635 "type" : "string",
50636 "typetext" : "<string>"
50637 },
4772952b
TL
50638 "case-sensitive" : {
50639 "default" : 1,
50640 "description" : "username is case-sensitive",
50641 "optional" : 1,
50642 "type" : "boolean",
50643 "typetext" : "<boolean>"
50644 },
2489d6df
WB
50645 "cert" : {
50646 "description" : "Path to the client certificate",
50647 "optional" : 1,
50648 "type" : "string",
50649 "typetext" : "<string>"
50650 },
50651 "certkey" : {
50652 "description" : "Path to the client certificate key",
50653 "optional" : 1,
50654 "type" : "string",
50655 "typetext" : "<string>"
50656 },
34f3e481
TL
50657 "client-id" : {
50658 "description" : "OpenID Client ID",
50659 "maxLength" : 256,
50660 "optional" : 1,
50661 "type" : "string",
50662 "typetext" : "<string>"
50663 },
50664 "client-key" : {
50665 "description" : "OpenID Client Key",
50666 "maxLength" : 256,
50667 "optional" : 1,
50668 "type" : "string",
50669 "typetext" : "<string>"
50670 },
44660702
DM
50671 "comment" : {
50672 "description" : "Description.",
50673 "maxLength" : 4096,
56122987 50674 "optional" : 1,
013dc89f
DM
50675 "type" : "string",
50676 "typetext" : "<string>"
56122987 50677 },
44660702
DM
50678 "default" : {
50679 "description" : "Use this as default realm",
7aacca6f 50680 "optional" : 1,
013dc89f
DM
50681 "type" : "boolean",
50682 "typetext" : "<boolean>"
56122987 50683 },
44660702
DM
50684 "domain" : {
50685 "description" : "AD domain name",
50686 "maxLength" : 256,
7aacca6f 50687 "optional" : 1,
44660702
DM
50688 "pattern" : "\\S+",
50689 "type" : "string"
56122987 50690 },
c5aa7e14
TL
50691 "filter" : {
50692 "description" : "LDAP filter for user sync.",
50693 "maxLength" : 2048,
50694 "optional" : 1,
50695 "type" : "string",
50696 "typetext" : "<string>"
50697 },
50698 "group_classes" : {
50699 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
50700 "description" : "The objectclasses for groups.",
50701 "format" : "ldap-simple-attr-list",
50702 "optional" : 1,
50703 "type" : "string",
50704 "typetext" : "<string>"
50705 },
50706 "group_dn" : {
50707 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
50708 "maxLength" : 256,
50709 "optional" : 1,
287a95cf 50710 "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
c5aa7e14
TL
50711 "type" : "string"
50712 },
50713 "group_filter" : {
50714 "description" : "LDAP filter for group sync.",
50715 "maxLength" : 2048,
50716 "optional" : 1,
50717 "type" : "string",
50718 "typetext" : "<string>"
50719 },
50720 "group_name_attr" : {
50721 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
50722 "format" : "ldap-simple-attr",
50723 "maxLength" : 256,
50724 "optional" : 1,
50725 "type" : "string",
50726 "typetext" : "<string>"
50727 },
34f3e481
TL
50728 "issuer-url" : {
50729 "description" : "OpenID Issuer Url",
50730 "maxLength" : 256,
50731 "optional" : 1,
50732 "type" : "string",
50733 "typetext" : "<string>"
50734 },
c5aa7e14
TL
50735 "mode" : {
50736 "default" : "ldap",
50737 "description" : "LDAP protocol mode.",
50738 "enum" : [
50739 "ldap",
50740 "ldaps",
50741 "ldap+starttls"
50742 ],
50743 "optional" : 1,
50744 "type" : "string"
50745 },
50746 "password" : {
50747 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
50748 "optional" : 1,
50749 "type" : "string",
50750 "typetext" : "<string>"
50751 },
7aacca6f 50752 "port" : {
44660702 50753 "description" : "Server port.",
7aacca6f 50754 "maximum" : 65535,
44660702 50755 "minimum" : 1,
7aacca6f 50756 "optional" : 1,
4bd7df8b 50757 "type" : "integer",
013dc89f 50758 "typetext" : "<integer> (1 - 65535)"
56122987 50759 },
c30bb419
TL
50760 "prompt" : {
50761 "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
50762 "optional" : 1,
50763 "pattern" : "(?:none|login|consent|select_account|\\S+)",
50764 "type" : "string"
50765 },
44660702
DM
50766 "realm" : {
50767 "description" : "Authentication domain ID",
50768 "format" : "pve-realm",
50769 "maxLength" : 32,
013dc89f
DM
50770 "type" : "string",
50771 "typetext" : "<string>"
44660702 50772 },
c30bb419
TL
50773 "scopes" : {
50774 "default" : "email profile",
50775 "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
50776 "optional" : 1,
50777 "type" : "string",
50778 "typetext" : "<string>"
50779 },
44660702 50780 "secure" : {
c5aa7e14 50781 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
7aacca6f 50782 "optional" : 1,
013dc89f
DM
50783 "type" : "boolean",
50784 "typetext" : "<boolean>"
56122987 50785 },
44660702
DM
50786 "server1" : {
50787 "description" : "Server IP address (or DNS name)",
50788 "format" : "address",
50789 "maxLength" : 256,
50790 "optional" : 1,
013dc89f
DM
50791 "type" : "string",
50792 "typetext" : "<string>"
56122987 50793 },
44660702
DM
50794 "server2" : {
50795 "description" : "Fallback Server IP address (or DNS name)",
50796 "format" : "address",
7aacca6f 50797 "maxLength" : 256,
7aacca6f 50798 "optional" : 1,
013dc89f
DM
50799 "type" : "string",
50800 "typetext" : "<string>"
7aacca6f 50801 },
1c532546
TL
50802 "sslversion" : {
50803 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
50804 "enum" : [
50805 "tlsv1",
50806 "tlsv1_1",
50807 "tlsv1_2",
50808 "tlsv1_3"
50809 ],
50810 "optional" : 1,
50811 "type" : "string"
50812 },
c5aa7e14
TL
50813 "sync-defaults-options" : {
50814 "description" : "The default options for behavior of synchronizations.",
50815 "format" : "realm-sync-options",
50816 "optional" : 1,
50817 "type" : "string",
9d2e98ed 50818 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=([acl];[properties];[entry])|none] [,scope=<users|groups|both>]"
c5aa7e14
TL
50819 },
50820 "sync_attributes" : {
50821 "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.",
50822 "optional" : 1,
50823 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
50824 "type" : "string"
50825 },
44660702
DM
50826 "tfa" : {
50827 "description" : "Use Two-factor authentication.",
50828 "format" : "pve-tfa-config",
50829 "maxLength" : 128,
50830 "optional" : 1,
013dc89f 50831 "type" : "string",
95895385 50832 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
44660702
DM
50833 },
50834 "type" : {
50835 "description" : "Realm type.",
50836 "enum" : [
50837 "ad",
50838 "ldap",
34f3e481 50839 "openid",
44660702
DM
50840 "pam",
50841 "pve"
50842 ],
50843 "type" : "string"
50844 },
50845 "user_attr" : {
50846 "description" : "LDAP user attribute name",
7aacca6f 50847 "maxLength" : 256,
7aacca6f 50848 "optional" : 1,
44660702
DM
50849 "pattern" : "\\S{2,}",
50850 "type" : "string"
2489d6df 50851 },
c5aa7e14
TL
50852 "user_classes" : {
50853 "default" : "inetorgperson, posixaccount, person, user",
50854 "description" : "The objectclasses for users.",
50855 "format" : "ldap-simple-attr-list",
50856 "optional" : 1,
50857 "type" : "string",
50858 "typetext" : "<string>"
50859 },
34f3e481
TL
50860 "username-claim" : {
50861 "description" : "OpenID claim used to generate the unique username.",
34f3e481 50862 "optional" : 1,
c30bb419
TL
50863 "type" : "string",
50864 "typetext" : "<string>"
34f3e481 50865 },
2489d6df
WB
50866 "verify" : {
50867 "default" : 0,
50868 "description" : "Verify the server's SSL certificate",
50869 "optional" : 1,
50870 "type" : "boolean",
50871 "typetext" : "<boolean>"
7aacca6f
DM
50872 }
50873 },
7aacca6f 50874 "type" : "object"
56122987 50875 },
7aacca6f
DM
50876 "permissions" : {
50877 "check" : [
50878 "perm",
50879 "/access/realm",
50880 [
50881 "Realm.Allocate"
50882 ]
50883 ]
44660702
DM
50884 },
50885 "protected" : 1,
50886 "returns" : {
50887 "type" : "null"
7aacca6f 50888 }
56122987 50889 }
7aacca6f 50890 },
44660702 50891 "leaf" : 0,
56122987 50892 "path" : "/access/domains",
44660702 50893 "text" : "domains"
56122987 50894 },
34f3e481
TL
50895 {
50896 "children" : [
50897 {
50898 "info" : {
50899 "POST" : {
50900 "allowtoken" : 1,
50901 "description" : "Get the OpenId Authorization Url for the specified realm.",
50902 "method" : "POST",
50903 "name" : "auth_url",
50904 "parameters" : {
50905 "additionalProperties" : 0,
50906 "properties" : {
50907 "realm" : {
50908 "description" : "Authentication domain ID",
50909 "format" : "pve-realm",
50910 "maxLength" : 32,
50911 "type" : "string",
50912 "typetext" : "<string>"
50913 },
50914 "redirect-url" : {
50915 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
50916 "maxLength" : 255,
50917 "type" : "string",
50918 "typetext" : "<string>"
50919 }
50920 }
50921 },
50922 "permissions" : {
50923 "user" : "world"
50924 },
50925 "protected" : 1,
50926 "returns" : {
50927 "description" : "Redirection URL.",
50928 "type" : "string"
50929 }
50930 }
50931 },
50932 "leaf" : 1,
50933 "path" : "/access/openid/auth-url",
50934 "text" : "auth-url"
50935 },
50936 {
50937 "info" : {
50938 "POST" : {
50939 "allowtoken" : 1,
50940 "description" : " Verify OpenID authorization code and create a ticket.",
50941 "method" : "POST",
50942 "name" : "login",
50943 "parameters" : {
50944 "additionalProperties" : 0,
50945 "properties" : {
50946 "code" : {
50947 "description" : "OpenId authorization code.",
de786b48 50948 "maxLength" : 4096,
34f3e481
TL
50949 "type" : "string",
50950 "typetext" : "<string>"
50951 },
50952 "redirect-url" : {
50953 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
50954 "maxLength" : 255,
50955 "type" : "string",
50956 "typetext" : "<string>"
50957 },
50958 "state" : {
50959 "description" : "OpenId state.",
50960 "maxLength" : 1024,
50961 "type" : "string",
50962 "typetext" : "<string>"
50963 }
50964 }
50965 },
50966 "permissions" : {
50967 "user" : "world"
50968 },
50969 "protected" : 1,
50970 "returns" : {
50971 "properties" : {
50972 "CSRFPreventionToken" : {
50973 "type" : "string"
50974 },
50975 "cap" : {
50976 "type" : "object"
50977 },
50978 "clustername" : {
50979 "optional" : 1,
50980 "type" : "string"
50981 },
50982 "ticket" : {
50983 "type" : "string"
50984 },
50985 "username" : {
50986 "type" : "string"
50987 }
50988 }
50989 }
50990 }
50991 },
50992 "leaf" : 1,
50993 "path" : "/access/openid/login",
50994 "text" : "login"
50995 }
50996 ],
50997 "info" : {
50998 "GET" : {
50999 "allowtoken" : 1,
51000 "description" : "Directory index.",
51001 "method" : "GET",
51002 "name" : "index",
51003 "parameters" : {
51004 "additionalProperties" : 0
51005 },
51006 "permissions" : {
51007 "user" : "all"
51008 },
51009 "returns" : {
51010 "items" : {
51011 "properties" : {
51012 "subdir" : {
51013 "type" : "string"
51014 }
51015 },
51016 "type" : "object"
51017 },
51018 "links" : [
51019 {
51020 "href" : "{subdir}",
51021 "rel" : "child"
51022 }
51023 ],
51024 "type" : "array"
51025 }
51026 }
51027 },
51028 "leaf" : 0,
51029 "path" : "/access/openid",
51030 "text" : "openid"
51031 },
5370fa8c
TL
51032 {
51033 "children" : [
51034 {
51035 "children" : [
51036 {
51037 "info" : {
51038 "DELETE" : {
51039 "allowtoken" : 0,
51040 "description" : "Delete a TFA entry by ID.",
51041 "method" : "DELETE",
51042 "name" : "delete_tfa",
51043 "parameters" : {
51044 "additionalProperties" : 0,
51045 "properties" : {
51046 "id" : {
51047 "description" : "A TFA entry id.",
51048 "type" : "string",
51049 "typetext" : "<string>"
51050 },
51051 "password" : {
51052 "description" : "The current password.",
51053 "maxLength" : 64,
51054 "minLength" : 5,
51055 "optional" : 1,
51056 "type" : "string",
51057 "typetext" : "<string>"
51058 },
51059 "userid" : {
9d2e98ed 51060 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
51061 "format" : "pve-userid",
51062 "maxLength" : 64,
51063 "type" : "string",
51064 "typetext" : "<string>"
51065 }
51066 }
51067 },
51068 "permissions" : {
51069 "check" : [
51070 "or",
51071 [
51072 "userid-param",
51073 "self"
51074 ],
51075 [
51076 "userid-group",
51077 [
51078 "User.Modify"
51079 ]
51080 ]
51081 ]
51082 },
51083 "protected" : 1,
51084 "returns" : {
51085 "type" : "null"
51086 }
51087 },
51088 "GET" : {
51089 "allowtoken" : 0,
51090 "description" : "Fetch a requested TFA entry if present.",
51091 "method" : "GET",
51092 "name" : "get_tfa_entry",
51093 "parameters" : {
51094 "additionalProperties" : 0,
51095 "properties" : {
51096 "id" : {
51097 "description" : "A TFA entry id.",
51098 "type" : "string",
51099 "typetext" : "<string>"
51100 },
51101 "userid" : {
9d2e98ed 51102 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
51103 "format" : "pve-userid",
51104 "maxLength" : 64,
51105 "type" : "string",
51106 "typetext" : "<string>"
51107 }
51108 }
51109 },
51110 "permissions" : {
51111 "check" : [
51112 "or",
51113 [
51114 "userid-param",
51115 "self"
51116 ],
51117 [
51118 "userid-group",
51119 [
51120 "User.Modify",
51121 "Sys.Audit"
51122 ]
51123 ]
51124 ]
51125 },
51126 "protected" : 1,
51127 "returns" : {
51128 "description" : "TFA Entry.",
51129 "properties" : {
51130 "created" : {
51131 "description" : "Creation time of this entry as unix epoch.",
51132 "type" : "integer"
51133 },
51134 "description" : {
51135 "description" : "User chosen description for this entry.",
51136 "type" : "string"
51137 },
51138 "enable" : {
51139 "default" : 1,
51140 "description" : "Whether this TFA entry is currently enabled.",
51141 "optional" : 1,
51142 "type" : "boolean"
51143 },
51144 "id" : {
51145 "description" : "The id used to reference this entry.",
51146 "type" : "string"
51147 },
51148 "type" : {
51149 "description" : "TFA Entry Type.",
51150 "enum" : [
51151 "totp",
51152 "u2f",
51153 "webauthn",
51154 "recovery",
51155 "yubico"
51156 ],
51157 "type" : "string"
51158 }
51159 },
51160 "type" : "object"
51161 }
51162 },
51163 "PUT" : {
51164 "allowtoken" : 0,
51165 "description" : "Add a TFA entry for a user.",
51166 "method" : "PUT",
51167 "name" : "update_tfa_entry",
51168 "parameters" : {
51169 "additionalProperties" : 0,
51170 "properties" : {
51171 "description" : {
51172 "description" : "A description to distinguish multiple entries from one another",
51173 "maxLength" : 255,
51174 "optional" : 1,
51175 "type" : "string",
51176 "typetext" : "<string>"
51177 },
51178 "enable" : {
51179 "description" : "Whether the entry should be enabled for login.",
51180 "optional" : 1,
51181 "type" : "boolean",
51182 "typetext" : "<boolean>"
51183 },
51184 "id" : {
51185 "description" : "A TFA entry id.",
51186 "type" : "string",
51187 "typetext" : "<string>"
51188 },
51189 "password" : {
51190 "description" : "The current password.",
51191 "maxLength" : 64,
51192 "minLength" : 5,
51193 "optional" : 1,
51194 "type" : "string",
51195 "typetext" : "<string>"
51196 },
51197 "userid" : {
9d2e98ed 51198 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
51199 "format" : "pve-userid",
51200 "maxLength" : 64,
51201 "type" : "string",
51202 "typetext" : "<string>"
51203 }
51204 }
51205 },
51206 "permissions" : {
51207 "check" : [
51208 "or",
51209 [
51210 "userid-param",
51211 "self"
51212 ],
51213 [
51214 "userid-group",
51215 [
51216 "User.Modify"
51217 ]
51218 ]
51219 ]
51220 },
51221 "protected" : 1,
51222 "returns" : {
51223 "type" : "null"
51224 }
51225 }
51226 },
51227 "leaf" : 1,
51228 "path" : "/access/tfa/{userid}/{id}",
51229 "text" : "{id}"
51230 }
51231 ],
51232 "info" : {
51233 "GET" : {
51234 "allowtoken" : 0,
51235 "description" : "List TFA configurations of users.",
51236 "method" : "GET",
51237 "name" : "list_user_tfa",
51238 "parameters" : {
51239 "additionalProperties" : 0,
51240 "properties" : {
51241 "userid" : {
9d2e98ed 51242 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
51243 "format" : "pve-userid",
51244 "maxLength" : 64,
51245 "type" : "string",
51246 "typetext" : "<string>"
51247 }
51248 }
51249 },
51250 "permissions" : {
51251 "check" : [
51252 "or",
51253 [
51254 "userid-param",
51255 "self"
51256 ],
51257 [
51258 "userid-group",
51259 [
51260 "User.Modify",
51261 "Sys.Audit"
51262 ]
51263 ]
51264 ]
51265 },
51266 "protected" : 1,
51267 "returns" : {
51268 "description" : "A list of the user's TFA entries.",
51269 "items" : {
51270 "description" : "TFA Entry.",
51271 "properties" : {
51272 "created" : {
51273 "description" : "Creation time of this entry as unix epoch.",
51274 "type" : "integer"
51275 },
51276 "description" : {
51277 "description" : "User chosen description for this entry.",
51278 "type" : "string"
51279 },
51280 "enable" : {
51281 "default" : 1,
51282 "description" : "Whether this TFA entry is currently enabled.",
51283 "optional" : 1,
51284 "type" : "boolean"
51285 },
51286 "id" : {
51287 "description" : "The id used to reference this entry.",
51288 "type" : "string"
51289 },
51290 "type" : {
51291 "description" : "TFA Entry Type.",
51292 "enum" : [
51293 "totp",
51294 "u2f",
51295 "webauthn",
51296 "recovery",
51297 "yubico"
51298 ],
51299 "type" : "string"
51300 }
51301 },
51302 "type" : "object"
51303 },
51304 "type" : "array"
51305 }
51306 },
51307 "POST" : {
51308 "allowtoken" : 0,
51309 "description" : "Add a TFA entry for a user.",
51310 "method" : "POST",
51311 "name" : "add_tfa_entry",
51312 "parameters" : {
51313 "additionalProperties" : 0,
51314 "properties" : {
51315 "challenge" : {
51316 "description" : "When responding to a u2f challenge: the original challenge string",
51317 "optional" : 1,
51318 "type" : "string",
51319 "typetext" : "<string>"
51320 },
51321 "description" : {
51322 "description" : "A description to distinguish multiple entries from one another",
51323 "maxLength" : 255,
51324 "optional" : 1,
51325 "type" : "string",
51326 "typetext" : "<string>"
51327 },
51328 "password" : {
51329 "description" : "The current password.",
51330 "maxLength" : 64,
51331 "minLength" : 5,
51332 "optional" : 1,
51333 "type" : "string",
51334 "typetext" : "<string>"
51335 },
51336 "totp" : {
51337 "description" : "A totp URI.",
51338 "optional" : 1,
51339 "type" : "string",
51340 "typetext" : "<string>"
51341 },
51342 "type" : {
51343 "description" : "TFA Entry Type.",
51344 "enum" : [
51345 "totp",
51346 "u2f",
51347 "webauthn",
51348 "recovery",
51349 "yubico"
51350 ],
51351 "type" : "string"
51352 },
51353 "userid" : {
9d2e98ed 51354 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
51355 "format" : "pve-userid",
51356 "maxLength" : 64,
51357 "type" : "string",
51358 "typetext" : "<string>"
51359 },
51360 "value" : {
51361 "description" : "The current value for the provided totp URI, or a Webauthn/U2F challenge response",
51362 "optional" : 1,
51363 "type" : "string",
51364 "typetext" : "<string>"
51365 }
51366 }
51367 },
51368 "permissions" : {
51369 "check" : [
51370 "or",
51371 [
51372 "userid-param",
51373 "self"
51374 ],
51375 [
51376 "userid-group",
51377 [
51378 "User.Modify"
51379 ]
51380 ]
51381 ]
51382 },
51383 "protected" : 1,
51384 "returns" : {
51385 "properties" : {
51386 "challenge" : {
51387 "description" : "When adding u2f entries, this contains a challenge the user must respond to in order to finish the registration.",
51388 "optional" : 1,
51389 "type" : "string"
51390 },
51391 "id" : {
51392 "description" : "The id of a newly added TFA entry.",
51393 "type" : "string"
51394 },
51395 "recovery" : {
51396 "description" : "When adding recovery codes, this contains the list of codes to be displayed to the user",
51397 "items" : {
51398 "description" : "A recovery entry.",
51399 "type" : "string"
51400 },
51401 "optional" : 1,
51402 "type" : "array"
51403 }
51404 },
51405 "type" : "object"
51406 }
51407 }
51408 },
51409 "leaf" : 0,
51410 "path" : "/access/tfa/{userid}",
51411 "text" : "{userid}"
51412 }
51413 ],
51414 "info" : {
51415 "GET" : {
51416 "allowtoken" : 0,
51417 "description" : "List TFA configurations of users.",
51418 "method" : "GET",
51419 "name" : "list_tfa",
51420 "parameters" : {
51421 "additionalProperties" : 0
51422 },
51423 "permissions" : {
51424 "description" : "Returns all or just the logged-in user, depending on privileges.",
51425 "user" : "all"
51426 },
51427 "protected" : 1,
51428 "returns" : {
51429 "description" : "The list tuples of user and TFA entries.",
51430 "items" : {
51431 "properties" : {
51432 "entries" : {
51433 "items" : {
51434 "description" : "TFA Entry.",
51435 "properties" : {
51436 "created" : {
51437 "description" : "Creation time of this entry as unix epoch.",
51438 "type" : "integer"
51439 },
51440 "description" : {
51441 "description" : "User chosen description for this entry.",
51442 "type" : "string"
51443 },
51444 "enable" : {
51445 "default" : 1,
51446 "description" : "Whether this TFA entry is currently enabled.",
51447 "optional" : 1,
51448 "type" : "boolean"
51449 },
51450 "id" : {
51451 "description" : "The id used to reference this entry.",
51452 "type" : "string"
51453 },
51454 "type" : {
51455 "description" : "TFA Entry Type.",
51456 "enum" : [
51457 "totp",
51458 "u2f",
51459 "webauthn",
51460 "recovery",
51461 "yubico"
51462 ],
51463 "type" : "string"
51464 }
51465 },
51466 "type" : "object"
51467 },
51468 "type" : "array"
51469 },
4a407cfd
TL
51470 "tfa-locked-until" : {
51471 "description" : "Contains a timestamp until when a user is locked out of 2nd factors.",
51472 "optional" : 1,
51473 "type" : "integer"
51474 },
51475 "totp-locked" : {
51476 "description" : "True if the user is currently locked out of TOTP factors.",
51477 "optional" : 1,
51478 "type" : "boolean"
51479 },
5370fa8c
TL
51480 "userid" : {
51481 "description" : "User this entry belongs to.",
51482 "type" : "string"
51483 }
51484 },
51485 "type" : "object"
51486 },
51487 "type" : "array"
51488 }
5370fa8c
TL
51489 }
51490 },
51491 "leaf" : 0,
51492 "path" : "/access/tfa",
51493 "text" : "tfa"
51494 },
56122987 51495 {
56122987 51496 "info" : {
44660702 51497 "GET" : {
e9cd3bd4 51498 "allowtoken" : 1,
2489d6df 51499 "description" : "Dummy. Useful for formatters which want to provide a login page.",
44660702
DM
51500 "method" : "GET",
51501 "name" : "get_ticket",
51502 "parameters" : {
51503 "additionalProperties" : 0
51504 },
51505 "permissions" : {
51506 "user" : "world"
51507 },
51508 "returns" : {
51509 "type" : "null"
51510 }
51511 },
56122987 51512 "POST" : {
e9cd3bd4 51513 "allowtoken" : 0,
44660702 51514 "description" : "Create or verify authentication ticket.",
56122987 51515 "method" : "POST",
44660702
DM
51516 "name" : "create_ticket",
51517 "parameters" : {
51518 "additionalProperties" : 0,
56122987 51519 "properties" : {
5370fa8c 51520 "new-format" : {
4a407cfd
TL
51521 "default" : 1,
51522 "description" : "This parameter is now ignored and assumed to be 1.",
5370fa8c
TL
51523 "optional" : 1,
51524 "type" : "boolean",
51525 "typetext" : "<boolean>"
51526 },
44660702
DM
51527 "otp" : {
51528 "description" : "One-time password for Two-factor authentication.",
7aacca6f 51529 "optional" : 1,
013dc89f
DM
51530 "type" : "string",
51531 "typetext" : "<string>"
56122987 51532 },
7aacca6f
DM
51533 "password" : {
51534 "description" : "The secret password. This can also be a valid ticket.",
013dc89f
DM
51535 "type" : "string",
51536 "typetext" : "<string>"
7aacca6f 51537 },
44660702
DM
51538 "path" : {
51539 "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
7aacca6f 51540 "maxLength" : 64,
56122987 51541 "optional" : 1,
56122987 51542 "requires" : "privs",
013dc89f
DM
51543 "type" : "string",
51544 "typetext" : "<string>"
44660702
DM
51545 },
51546 "privs" : {
7aacca6f 51547 "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
44660702
DM
51548 "format" : "pve-priv-list",
51549 "maxLength" : 64,
56122987 51550 "optional" : 1,
44660702 51551 "requires" : "path",
013dc89f
DM
51552 "type" : "string",
51553 "typetext" : "<string>"
56122987
DM
51554 },
51555 "realm" : {
56122987 51556 "description" : "You can optionally pass the realm using this parameter. Normally the realm is simply added to the username <username>@<relam>.",
44660702 51557 "format" : "pve-realm",
7aacca6f 51558 "maxLength" : 32,
44660702 51559 "optional" : 1,
013dc89f
DM
51560 "type" : "string",
51561 "typetext" : "<string>"
56122987 51562 },
5370fa8c
TL
51563 "tfa-challenge" : {
51564 "description" : "The signed TFA challenge string the user wants to respond to.",
51565 "optional" : 1,
51566 "type" : "string",
51567 "typetext" : "<string>"
51568 },
56122987
DM
51569 "username" : {
51570 "description" : "User name",
44660702 51571 "maxLength" : 64,
013dc89f
DM
51572 "type" : "string",
51573 "typetext" : "<string>"
56122987 51574 }
44660702 51575 }
7aacca6f 51576 },
56122987 51577 "permissions" : {
44660702 51578 "description" : "You need to pass valid credientials.",
56122987
DM
51579 "user" : "world"
51580 },
44660702 51581 "protected" : 1,
7aacca6f 51582 "returns" : {
56122987 51583 "properties" : {
44660702
DM
51584 "CSRFPreventionToken" : {
51585 "optional" : 1,
51586 "type" : "string"
56122987 51587 },
e2d681b3
TL
51588 "clustername" : {
51589 "optional" : 1,
51590 "type" : "string"
51591 },
44660702
DM
51592 "ticket" : {
51593 "optional" : 1,
51594 "type" : "string"
51595 },
51596 "username" : {
56122987
DM
51597 "type" : "string"
51598 }
51599 },
44660702 51600 "type" : "object"
7aacca6f 51601 }
7aacca6f
DM
51602 }
51603 },
44660702
DM
51604 "leaf" : 1,
51605 "path" : "/access/ticket",
51606 "text" : "ticket"
7aacca6f 51607 },
56122987 51608 {
56122987 51609 "info" : {
7aacca6f 51610 "PUT" : {
e9cd3bd4 51611 "allowtoken" : 0,
44660702 51612 "description" : "Change user password.",
7aacca6f 51613 "method" : "PUT",
e2d681b3 51614 "name" : "change_password",
56122987
DM
51615 "parameters" : {
51616 "additionalProperties" : 0,
51617 "properties" : {
44660702
DM
51618 "password" : {
51619 "description" : "The new password.",
51620 "maxLength" : 64,
51621 "minLength" : 5,
013dc89f
DM
51622 "type" : "string",
51623 "typetext" : "<string>"
7aacca6f 51624 },
44660702 51625 "userid" : {
9d2e98ed 51626 "description" : "Full User ID, in the `name@realm` format.",
44660702
DM
51627 "format" : "pve-userid",
51628 "maxLength" : 64,
013dc89f
DM
51629 "type" : "string",
51630 "typetext" : "<string>"
56122987 51631 }
7aacca6f 51632 }
56122987
DM
51633 },
51634 "permissions" : {
51635 "check" : [
44660702 51636 "or",
56122987 51637 [
44660702
DM
51638 "userid-param",
51639 "self"
51640 ],
51641 [
51642 "and",
51643 [
51644 "userid-param",
51645 "Realm.AllocateUser"
51646 ],
51647 [
51648 "userid-group",
51649 [
51650 "User.Modify"
51651 ]
51652 ]
56122987 51653 ]
7aacca6f 51654 ],
44660702 51655 "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 51656 },
44660702 51657 "protected" : 1,
7aacca6f
DM
51658 "returns" : {
51659 "type" : "null"
44660702
DM
51660 }
51661 }
51662 },
51663 "leaf" : 1,
51664 "path" : "/access/password",
51665 "text" : "password"
95895385 51666 },
e9cd3bd4
TL
51667 {
51668 "info" : {
51669 "GET" : {
51670 "allowtoken" : 1,
51671 "description" : "Retrieve effective permissions of given user/token.",
51672 "method" : "GET",
51673 "name" : "permissions",
51674 "parameters" : {
51675 "additionalProperties" : 0,
51676 "properties" : {
51677 "path" : {
51678 "description" : "Only dump this specific path, not the whole tree.",
51679 "optional" : 1,
51680 "type" : "string",
51681 "typetext" : "<string>"
51682 },
51683 "userid" : {
51684 "description" : "User ID or full API token ID",
51685 "optional" : 1,
51686 "pattern" : "(?^:^(?^:[^\\s:/]+)\\@(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)(?:!(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+))?$)",
51687 "type" : "string"
51688 }
51689 }
51690 },
51691 "permissions" : {
51692 "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.",
51693 "user" : "all"
51694 },
51695 "returns" : {
51696 "description" : "Map of \"path\" => (Map of \"privilege\" => \"propagate boolean\").",
51697 "type" : "object"
51698 }
51699 }
51700 },
51701 "leaf" : 1,
51702 "path" : "/access/permissions",
51703 "text" : "permissions"
44660702
DM
51704 }
51705 ],
51706 "info" : {
51707 "GET" : {
e9cd3bd4 51708 "allowtoken" : 1,
44660702
DM
51709 "description" : "Directory index.",
51710 "method" : "GET",
51711 "name" : "index",
51712 "parameters" : {
51713 "additionalProperties" : 0
51714 },
51715 "permissions" : {
51716 "user" : "all"
51717 },
51718 "returns" : {
51719 "items" : {
51720 "properties" : {
51721 "subdir" : {
51722 "type" : "string"
51723 }
7aacca6f 51724 },
44660702
DM
51725 "type" : "object"
51726 },
51727 "links" : [
51728 {
51729 "href" : "{subdir}",
51730 "rel" : "child"
51731 }
51732 ],
51733 "type" : "array"
51734 }
51735 }
51736 },
51737 "leaf" : 0,
51738 "path" : "/access",
51739 "text" : "access"
51740 },
51741 {
51742 "children" : [
51743 {
51744 "info" : {
51745 "DELETE" : {
e9cd3bd4 51746 "allowtoken" : 1,
7aacca6f 51747 "description" : "Delete pool.",
44660702
DM
51748 "method" : "DELETE",
51749 "name" : "delete_pool",
7aacca6f
DM
51750 "parameters" : {
51751 "additionalProperties" : 0,
51752 "properties" : {
51753 "poolid" : {
51754 "format" : "pve-poolid",
013dc89f
DM
51755 "type" : "string",
51756 "typetext" : "<string>"
7aacca6f
DM
51757 }
51758 }
51759 },
56122987
DM
51760 "permissions" : {
51761 "check" : [
51762 "perm",
51763 "/pool/{poolid}",
51764 [
51765 "Pool.Allocate"
51766 ]
44660702
DM
51767 ],
51768 "description" : "You can only delete empty pools (no members)."
51769 },
51770 "protected" : 1,
51771 "returns" : {
51772 "type" : "null"
7aacca6f
DM
51773 }
51774 },
51775 "GET" : {
e9cd3bd4 51776 "allowtoken" : 1,
7aacca6f 51777 "description" : "Get pool configuration.",
44660702 51778 "method" : "GET",
7aacca6f 51779 "name" : "read_pool",
56122987 51780 "parameters" : {
44660702 51781 "additionalProperties" : 0,
56122987
DM
51782 "properties" : {
51783 "poolid" : {
44660702 51784 "format" : "pve-poolid",
013dc89f
DM
51785 "type" : "string",
51786 "typetext" : "<string>"
c30bb419
TL
51787 },
51788 "type" : {
51789 "enum" : [
51790 "qemu",
51791 "lxc",
51792 "storage"
51793 ],
51794 "optional" : 1,
51795 "type" : "string"
56122987 51796 }
44660702 51797 }
56122987 51798 },
56122987 51799 "permissions" : {
56122987
DM
51800 "check" : [
51801 "perm",
51802 "/pool/{poolid}",
51803 [
0695fdaf 51804 "Pool.Audit"
56122987
DM
51805 ]
51806 ]
51807 },
7aacca6f 51808 "returns" : {
44660702 51809 "additionalProperties" : 0,
56122987 51810 "properties" : {
44660702
DM
51811 "comment" : {
51812 "optional" : 1,
51813 "type" : "string"
51814 },
7aacca6f 51815 "members" : {
7aacca6f
DM
51816 "items" : {
51817 "additionalProperties" : 1,
7aacca6f 51818 "properties" : {
7aacca6f
DM
51819 "id" : {
51820 "type" : "string"
51821 },
51822 "node" : {
51823 "type" : "string"
51824 },
44660702
DM
51825 "storage" : {
51826 "optional" : 1,
51827 "type" : "string"
51828 },
7aacca6f 51829 "type" : {
7aacca6f
DM
51830 "enum" : [
51831 "qemu",
51832 "lxc",
51833 "openvz",
51834 "storage"
44660702
DM
51835 ],
51836 "type" : "string"
51837 },
51838 "vmid" : {
51839 "optional" : 1,
51840 "type" : "integer"
7aacca6f 51841 }
44660702
DM
51842 },
51843 "type" : "object"
51844 },
51845 "type" : "array"
51846 }
51847 },
51848 "type" : "object"
51849 }
51850 },
51851 "PUT" : {
e9cd3bd4 51852 "allowtoken" : 1,
44660702
DM
51853 "description" : "Update pool data.",
51854 "method" : "PUT",
51855 "name" : "update_pool",
51856 "parameters" : {
51857 "additionalProperties" : 0,
51858 "properties" : {
56122987
DM
51859 "comment" : {
51860 "optional" : 1,
013dc89f
DM
51861 "type" : "string",
51862 "typetext" : "<string>"
44660702
DM
51863 },
51864 "delete" : {
51865 "description" : "Remove vms/storage (instead of adding it).",
51866 "optional" : 1,
013dc89f
DM
51867 "type" : "boolean",
51868 "typetext" : "<boolean>"
44660702
DM
51869 },
51870 "poolid" : {
51871 "format" : "pve-poolid",
013dc89f
DM
51872 "type" : "string",
51873 "typetext" : "<string>"
44660702
DM
51874 },
51875 "storage" : {
51876 "description" : "List of storage IDs.",
51877 "format" : "pve-storage-id-list",
51878 "optional" : 1,
013dc89f
DM
51879 "type" : "string",
51880 "typetext" : "<string>"
44660702
DM
51881 },
51882 "vms" : {
51883 "description" : "List of virtual machines.",
51884 "format" : "pve-vmid-list",
51885 "optional" : 1,
013dc89f
DM
51886 "type" : "string",
51887 "typetext" : "<string>"
56122987 51888 }
44660702
DM
51889 }
51890 },
51891 "permissions" : {
51892 "check" : [
51893 "perm",
51894 "/pool/{poolid}",
51895 [
51896 "Pool.Allocate"
51897 ]
51898 ],
51899 "description" : "You also need the right to modify permissions on any object you add/delete."
51900 },
51901 "protected" : 1,
51902 "returns" : {
51903 "type" : "null"
56122987
DM
51904 }
51905 }
51906 },
44660702
DM
51907 "leaf" : 1,
51908 "path" : "/pools/{poolid}",
7aacca6f 51909 "text" : "{poolid}"
56122987 51910 }
7aacca6f 51911 ],
56122987
DM
51912 "info" : {
51913 "GET" : {
e9cd3bd4 51914 "allowtoken" : 1,
44660702
DM
51915 "description" : "Pool index.",
51916 "method" : "GET",
51917 "name" : "index",
51918 "parameters" : {
51919 "additionalProperties" : 0
51920 },
51921 "permissions" : {
0695fdaf 51922 "description" : "List all pools where you have Pool.Audit permissions on /pool/<pool>.",
44660702
DM
51923 "user" : "all"
51924 },
56122987 51925 "returns" : {
44660702
DM
51926 "items" : {
51927 "properties" : {
51928 "poolid" : {
51929 "type" : "string"
51930 }
56122987 51931 },
44660702
DM
51932 "type" : "object"
51933 },
51934 "links" : [
51935 {
51936 "href" : "{poolid}",
51937 "rel" : "child"
51938 }
51939 ],
51940 "type" : "array"
51941 }
51942 },
51943 "POST" : {
e9cd3bd4 51944 "allowtoken" : 1,
44660702
DM
51945 "description" : "Create new pool.",
51946 "method" : "POST",
51947 "name" : "create_pool",
51948 "parameters" : {
51949 "additionalProperties" : 0,
51950 "properties" : {
51951 "comment" : {
51952 "optional" : 1,
013dc89f
DM
51953 "type" : "string",
51954 "typetext" : "<string>"
7aacca6f 51955 },
44660702
DM
51956 "poolid" : {
51957 "format" : "pve-poolid",
013dc89f
DM
51958 "type" : "string",
51959 "typetext" : "<string>"
56122987
DM
51960 }
51961 }
51962 },
56122987 51963 "permissions" : {
44660702
DM
51964 "check" : [
51965 "perm",
51966 "/pool/{poolid}",
51967 [
51968 "Pool.Allocate"
51969 ]
51970 ]
56122987 51971 },
44660702
DM
51972 "protected" : 1,
51973 "returns" : {
51974 "type" : "null"
51975 }
51976 }
51977 },
51978 "leaf" : 0,
51979 "path" : "/pools",
51980 "text" : "pools"
51981 },
51982 {
51983 "info" : {
51984 "GET" : {
e9cd3bd4 51985 "allowtoken" : 1,
5370fa8c 51986 "description" : "API version details, including some parts of the global datacenter config.",
44660702
DM
51987 "method" : "GET",
51988 "name" : "version",
7aacca6f
DM
51989 "parameters" : {
51990 "additionalProperties" : 0
51991 },
44660702
DM
51992 "permissions" : {
51993 "user" : "all"
51994 },
51995 "returns" : {
51996 "properties" : {
5370fa8c
TL
51997 "console" : {
51998 "description" : "The default console viewer to use.",
51999 "enum" : [
52000 "applet",
52001 "vv",
52002 "html5",
52003 "xtermjs"
52004 ],
52005 "optional" : 1,
52006 "type" : "string"
52007 },
44660702 52008 "release" : {
5370fa8c 52009 "description" : "The current Proxmox VE point release in `x.y` format.",
44660702
DM
52010 "type" : "string"
52011 },
52012 "repoid" : {
5370fa8c 52013 "description" : "The short git revision from which this version was build.",
4a407cfd 52014 "pattern" : "[0-9a-fA-F]{8,64}",
44660702
DM
52015 "type" : "string"
52016 },
52017 "version" : {
5370fa8c 52018 "description" : "The full pve-manager package version of this node.",
44660702
DM
52019 "type" : "string"
52020 }
52021 },
52022 "type" : "object"
52023 }
56122987
DM
52024 }
52025 },
44660702
DM
52026 "leaf" : 1,
52027 "path" : "/version",
56122987
DM
52028 "text" : "version"
52029 }
52030]
52031;
52032