]> git.proxmox.com Git - pve-docs.git/blame - api-viewer/apidata.js
update static/schema information
[pve-docs.git] / api-viewer / apidata.js
CommitLineData
0695fdaf 1const apiSchema = [
56122987 2 {
56122987 3 "children" : [
5d9c884c
DM
4 {
5 "children" : [
6 {
7 "info" : {
8 "DELETE" : {
e9cd3bd4 9 "allowtoken" : 1,
5d9c884c
DM
10 "description" : "Mark replication job for removal.",
11 "method" : "DELETE",
12 "name" : "delete",
13 "parameters" : {
14 "additionalProperties" : 0,
15 "properties" : {
16 "force" : {
17 "default" : 0,
18 "description" : "Will remove the jobconfig entry, but will not cleanup.",
19 "optional" : 1,
20 "type" : "boolean",
21 "typetext" : "<boolean>"
22 },
23 "id" : {
24 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
25 "format" : "pve-replication-job-id",
26 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
27 "type" : "string"
28 },
29 "keep" : {
30 "default" : 0,
31 "description" : "Keep replicated data at target (do not remove).",
32 "optional" : 1,
33 "type" : "boolean",
34 "typetext" : "<boolean>"
35 }
36 }
37 },
38 "permissions" : {
39 "check" : [
40 "perm",
41 "/storage",
42 [
43 "Datastore.Allocate"
44 ]
45 ]
46 },
47 "protected" : 1,
48 "returns" : {
49 "type" : "null"
50 }
51 },
52 "GET" : {
e9cd3bd4 53 "allowtoken" : 1,
5d9c884c
DM
54 "description" : "Read replication job configuration.",
55 "method" : "GET",
56 "name" : "read",
57 "parameters" : {
58 "additionalProperties" : 0,
59 "properties" : {
60 "id" : {
61 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
62 "format" : "pve-replication-job-id",
63 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
64 "type" : "string"
65 }
66 }
67 },
68 "permissions" : {
69 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
70 "user" : "all"
71 },
72 "returns" : {
73 "type" : "object"
74 }
75 },
76 "PUT" : {
e9cd3bd4 77 "allowtoken" : 1,
5d9c884c
DM
78 "description" : "Update replication job configuration.",
79 "method" : "PUT",
80 "name" : "update",
81 "parameters" : {
82 "additionalProperties" : 0,
83 "properties" : {
84 "comment" : {
85 "description" : "Description.",
86 "maxLength" : 4096,
87 "optional" : 1,
88 "type" : "string",
89 "typetext" : "<string>"
90 },
91 "delete" : {
92 "description" : "A list of settings you want to delete.",
93 "format" : "pve-configid-list",
94 "maxLength" : 4096,
95 "optional" : 1,
96 "type" : "string",
97 "typetext" : "<string>"
98 },
99 "digest" : {
100 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
101 "maxLength" : 40,
102 "optional" : 1,
103 "type" : "string",
104 "typetext" : "<string>"
105 },
106 "disable" : {
107 "description" : "Flag to disable/deactivate the entry.",
108 "optional" : 1,
109 "type" : "boolean",
110 "typetext" : "<boolean>"
111 },
112 "id" : {
113 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
114 "format" : "pve-replication-job-id",
115 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
116 "type" : "string"
117 },
118 "rate" : {
119 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
120 "minimum" : 1,
121 "optional" : 1,
122 "type" : "number",
123 "typetext" : "<number> (1 - N)"
124 },
125 "remove_job" : {
126 "description" : "Mark the replication job for removal. The job will remove all local replication snapshots. When set to 'full', it also tries to remove replicated volumes on the target. The job then removes itself from the configuration file.",
127 "enum" : [
128 "local",
129 "full"
130 ],
131 "optional" : 1,
132 "type" : "string"
133 },
134 "schedule" : {
135 "default" : "*/15",
c5aa7e14 136 "description" : "Storage replication schedule. The format is a subset of `systemd` calendar events.",
5d9c884c
DM
137 "format" : "pve-calendar-event",
138 "maxLength" : 128,
139 "optional" : 1,
140 "type" : "string",
141 "typetext" : "<string>"
a9a8e3d1
DM
142 },
143 "source" : {
d2656385 144 "description" : "For internal use, to detect if the guest was stolen.",
a9a8e3d1
DM
145 "format" : "pve-node",
146 "optional" : 1,
147 "type" : "string",
148 "typetext" : "<string>"
5d9c884c
DM
149 }
150 },
151 "type" : "object"
152 },
153 "permissions" : {
154 "check" : [
155 "perm",
156 "/storage",
157 [
158 "Datastore.Allocate"
159 ]
160 ]
161 },
162 "protected" : 1,
163 "returns" : {
164 "type" : "null"
165 }
166 }
167 },
168 "leaf" : 1,
169 "path" : "/cluster/replication/{id}",
170 "text" : "{id}"
171 }
172 ],
173 "info" : {
174 "GET" : {
e9cd3bd4 175 "allowtoken" : 1,
5d9c884c
DM
176 "description" : "List replication jobs.",
177 "method" : "GET",
178 "name" : "index",
179 "parameters" : {
180 "additionalProperties" : 0
181 },
182 "permissions" : {
183 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
184 "user" : "all"
185 },
186 "returns" : {
187 "items" : {
188 "properties" : {},
189 "type" : "object"
190 },
191 "links" : [
192 {
193 "href" : "{id}",
194 "rel" : "child"
195 }
196 ],
197 "type" : "array"
198 }
199 },
200 "POST" : {
e9cd3bd4 201 "allowtoken" : 1,
5d9c884c
DM
202 "description" : "Create a new replication job",
203 "method" : "POST",
204 "name" : "create",
205 "parameters" : {
206 "additionalProperties" : 0,
207 "properties" : {
208 "comment" : {
209 "description" : "Description.",
210 "maxLength" : 4096,
211 "optional" : 1,
212 "type" : "string",
213 "typetext" : "<string>"
214 },
215 "disable" : {
216 "description" : "Flag to disable/deactivate the entry.",
217 "optional" : 1,
218 "type" : "boolean",
219 "typetext" : "<boolean>"
220 },
221 "id" : {
222 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
223 "format" : "pve-replication-job-id",
224 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
225 "type" : "string"
226 },
227 "rate" : {
228 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
229 "minimum" : 1,
230 "optional" : 1,
231 "type" : "number",
232 "typetext" : "<number> (1 - N)"
233 },
234 "remove_job" : {
235 "description" : "Mark the replication job for removal. The job will remove all local replication snapshots. When set to 'full', it also tries to remove replicated volumes on the target. The job then removes itself from the configuration file.",
236 "enum" : [
237 "local",
238 "full"
239 ],
240 "optional" : 1,
241 "type" : "string"
242 },
243 "schedule" : {
244 "default" : "*/15",
c5aa7e14 245 "description" : "Storage replication schedule. The format is a subset of `systemd` calendar events.",
5d9c884c
DM
246 "format" : "pve-calendar-event",
247 "maxLength" : 128,
248 "optional" : 1,
249 "type" : "string",
250 "typetext" : "<string>"
251 },
a9a8e3d1 252 "source" : {
d2656385 253 "description" : "For internal use, to detect if the guest was stolen.",
a9a8e3d1
DM
254 "format" : "pve-node",
255 "optional" : 1,
256 "type" : "string",
257 "typetext" : "<string>"
258 },
5d9c884c
DM
259 "target" : {
260 "description" : "Target node.",
261 "format" : "pve-node",
262 "optional" : 0,
263 "type" : "string",
264 "typetext" : "<string>"
265 },
266 "type" : {
267 "description" : "Section type.",
268 "enum" : [
269 "local"
270 ],
271 "type" : "string"
272 }
273 },
274 "type" : "object"
275 },
276 "permissions" : {
277 "check" : [
278 "perm",
279 "/storage",
280 [
281 "Datastore.Allocate"
282 ]
283 ]
284 },
285 "protected" : 1,
286 "returns" : {
287 "type" : "null"
288 }
289 }
290 },
291 "leaf" : 0,
292 "path" : "/cluster/replication",
293 "text" : "replication"
294 },
4772952b
TL
295 {
296 "children" : [
297 {
298 "children" : [
299 {
300 "info" : {
301 "DELETE" : {
302 "allowtoken" : 1,
303 "description" : "Remove Metric server.",
304 "method" : "DELETE",
305 "name" : "delete",
306 "parameters" : {
307 "additionalProperties" : 0,
308 "properties" : {
309 "id" : {
310 "format" : "pve-configid",
311 "type" : "string",
312 "typetext" : "<string>"
313 }
314 }
315 },
316 "permissions" : {
317 "check" : [
318 "perm",
319 "/",
320 [
321 "Sys.Modify"
322 ]
323 ]
324 },
325 "protected" : 1,
326 "returns" : {
327 "type" : "null"
328 }
329 },
330 "GET" : {
331 "allowtoken" : 1,
332 "description" : "Read metric server configuration.",
333 "method" : "GET",
334 "name" : "read",
335 "parameters" : {
336 "additionalProperties" : 0,
337 "properties" : {
338 "id" : {
339 "format" : "pve-configid",
340 "type" : "string",
341 "typetext" : "<string>"
342 }
343 }
344 },
345 "permissions" : {
346 "check" : [
347 "perm",
348 "/",
349 [
350 "Sys.Audit"
351 ]
352 ]
353 },
354 "returns" : {
355 "type" : "object"
356 }
357 },
358 "POST" : {
359 "allowtoken" : 1,
360 "description" : "Create a new external metric server config",
361 "method" : "POST",
362 "name" : "create",
363 "parameters" : {
364 "additionalProperties" : 0,
365 "properties" : {
d2656385
TL
366 "api-path-prefix" : {
367 "description" : "An API path prefix inserted between '<host>:<port>/' and '/api2/'. Can be useful if the InfluxDB service runs behind a reverse proxy.",
368 "optional" : 1,
369 "type" : "string",
370 "typetext" : "<string>"
371 },
372 "bucket" : {
373 "description" : "The InfluxDB bucket/db. Only necessary when using the http v2 api.",
374 "optional" : 1,
375 "type" : "string",
376 "typetext" : "<string>"
377 },
4772952b
TL
378 "disable" : {
379 "description" : "Flag to disable the plugin.",
380 "optional" : 1,
381 "type" : "boolean",
382 "typetext" : "<boolean>"
383 },
384 "id" : {
385 "description" : "The ID of the entry.",
386 "format" : "pve-configid",
387 "type" : "string",
388 "typetext" : "<string>"
389 },
d2656385
TL
390 "influxdbproto" : {
391 "default" : "udp",
392 "enum" : [
393 "udp",
394 "http",
395 "https"
396 ],
397 "optional" : 1,
398 "type" : "string"
399 },
400 "max-body-size" : {
401 "default" : 25000000,
402 "description" : "InfluxDB max-body-size in bytes. Requests are batched up to this size.",
403 "minimum" : 1,
404 "optional" : 1,
405 "type" : "integer",
406 "typetext" : "<integer> (1 - N)"
407 },
4772952b
TL
408 "mtu" : {
409 "default" : 1500,
410 "description" : "MTU for metrics transmission over UDP",
411 "maximum" : 65536,
412 "minimum" : 512,
413 "optional" : 1,
414 "type" : "integer",
415 "typetext" : "<integer> (512 - 65536)"
416 },
d2656385
TL
417 "organization" : {
418 "description" : "The InfluxDB organization. Only necessary when using the http v2 api. Has no meaning when using v2 compatibility api.",
419 "optional" : 1,
420 "type" : "string",
421 "typetext" : "<string>"
422 },
4772952b
TL
423 "path" : {
424 "description" : "root graphite path (ex: proxmox.mycluster.mykey)",
425 "format" : "graphite-path",
426 "optional" : 1,
427 "type" : "string",
428 "typetext" : "<string>"
429 },
430 "port" : {
431 "description" : "server network port",
d2656385
TL
432 "maximum" : 65536,
433 "minimum" : 1,
4772952b 434 "type" : "integer",
d2656385 435 "typetext" : "<integer> (1 - 65536)"
4772952b
TL
436 },
437 "proto" : {
438 "description" : "Protocol to send graphite data. TCP or UDP (default)",
439 "enum" : [
440 "udp",
441 "tcp"
442 ],
443 "optional" : 1,
444 "type" : "string"
445 },
446 "server" : {
447 "description" : "server dns name or IP address",
448 "format" : "address",
449 "type" : "string",
450 "typetext" : "<string>"
451 },
452 "timeout" : {
453 "default" : 1,
454 "description" : "graphite TCP socket timeout (default=1)",
455 "minimum" : 0,
456 "optional" : 1,
457 "type" : "integer",
458 "typetext" : "<integer> (0 - N)"
459 },
d2656385
TL
460 "token" : {
461 "description" : "The InfluxDB access token. Only necessary when using the http v2 api. If the v2 compatibility api is used, use 'user:password' instead.",
462 "optional" : 1,
463 "type" : "string",
464 "typetext" : "<string>"
465 },
4772952b
TL
466 "type" : {
467 "description" : "Plugin type.",
468 "enum" : [
469 "graphite",
470 "influxdb"
471 ],
472 "format" : "pve-configid",
473 "type" : "string"
5370fa8c
TL
474 },
475 "verify-certificate" : {
476 "default" : 1,
477 "description" : "Set to 0 to disable certificate verification for https endpoints.",
478 "optional" : 1,
479 "type" : "boolean",
480 "typetext" : "<boolean>"
4772952b
TL
481 }
482 },
483 "type" : "object"
484 },
485 "permissions" : {
486 "check" : [
487 "perm",
488 "/",
489 [
490 "Sys.Modify"
491 ]
492 ]
493 },
494 "protected" : 1,
495 "returns" : {
496 "type" : "null"
497 }
498 },
499 "PUT" : {
500 "allowtoken" : 1,
501 "description" : "Update metric server configuration.",
502 "method" : "PUT",
503 "name" : "update",
504 "parameters" : {
505 "additionalProperties" : 0,
506 "properties" : {
d2656385
TL
507 "api-path-prefix" : {
508 "description" : "An API path prefix inserted between '<host>:<port>/' and '/api2/'. Can be useful if the InfluxDB service runs behind a reverse proxy.",
509 "optional" : 1,
510 "type" : "string",
511 "typetext" : "<string>"
512 },
513 "bucket" : {
514 "description" : "The InfluxDB bucket/db. Only necessary when using the http v2 api.",
515 "optional" : 1,
516 "type" : "string",
517 "typetext" : "<string>"
518 },
4772952b
TL
519 "delete" : {
520 "description" : "A list of settings you want to delete.",
521 "format" : "pve-configid-list",
522 "maxLength" : 4096,
523 "optional" : 1,
524 "type" : "string",
525 "typetext" : "<string>"
526 },
527 "digest" : {
528 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
529 "maxLength" : 40,
530 "optional" : 1,
531 "type" : "string",
532 "typetext" : "<string>"
533 },
534 "disable" : {
535 "description" : "Flag to disable the plugin.",
536 "optional" : 1,
537 "type" : "boolean",
538 "typetext" : "<boolean>"
539 },
540 "id" : {
541 "description" : "The ID of the entry.",
542 "format" : "pve-configid",
543 "type" : "string",
544 "typetext" : "<string>"
545 },
d2656385
TL
546 "influxdbproto" : {
547 "default" : "udp",
548 "enum" : [
549 "udp",
550 "http",
551 "https"
552 ],
553 "optional" : 1,
554 "type" : "string"
555 },
556 "max-body-size" : {
557 "default" : 25000000,
558 "description" : "InfluxDB max-body-size in bytes. Requests are batched up to this size.",
559 "minimum" : 1,
560 "optional" : 1,
561 "type" : "integer",
562 "typetext" : "<integer> (1 - N)"
563 },
4772952b
TL
564 "mtu" : {
565 "default" : 1500,
566 "description" : "MTU for metrics transmission over UDP",
567 "maximum" : 65536,
568 "minimum" : 512,
569 "optional" : 1,
570 "type" : "integer",
571 "typetext" : "<integer> (512 - 65536)"
572 },
d2656385
TL
573 "organization" : {
574 "description" : "The InfluxDB organization. Only necessary when using the http v2 api. Has no meaning when using v2 compatibility api.",
575 "optional" : 1,
576 "type" : "string",
577 "typetext" : "<string>"
578 },
4772952b
TL
579 "path" : {
580 "description" : "root graphite path (ex: proxmox.mycluster.mykey)",
581 "format" : "graphite-path",
582 "optional" : 1,
583 "type" : "string",
584 "typetext" : "<string>"
585 },
586 "port" : {
587 "description" : "server network port",
d2656385
TL
588 "maximum" : 65536,
589 "minimum" : 1,
4772952b 590 "type" : "integer",
d2656385 591 "typetext" : "<integer> (1 - 65536)"
4772952b
TL
592 },
593 "proto" : {
594 "description" : "Protocol to send graphite data. TCP or UDP (default)",
595 "enum" : [
596 "udp",
597 "tcp"
598 ],
599 "optional" : 1,
600 "type" : "string"
601 },
602 "server" : {
603 "description" : "server dns name or IP address",
604 "format" : "address",
605 "type" : "string",
606 "typetext" : "<string>"
607 },
608 "timeout" : {
609 "default" : 1,
610 "description" : "graphite TCP socket timeout (default=1)",
611 "minimum" : 0,
612 "optional" : 1,
613 "type" : "integer",
614 "typetext" : "<integer> (0 - N)"
d2656385
TL
615 },
616 "token" : {
617 "description" : "The InfluxDB access token. Only necessary when using the http v2 api. If the v2 compatibility api is used, use 'user:password' instead.",
618 "optional" : 1,
619 "type" : "string",
620 "typetext" : "<string>"
5370fa8c
TL
621 },
622 "verify-certificate" : {
623 "default" : 1,
624 "description" : "Set to 0 to disable certificate verification for https endpoints.",
625 "optional" : 1,
626 "type" : "boolean",
627 "typetext" : "<boolean>"
4772952b
TL
628 }
629 },
630 "type" : "object"
631 },
632 "permissions" : {
633 "check" : [
634 "perm",
635 "/",
636 [
637 "Sys.Modify"
638 ]
639 ]
640 },
641 "protected" : 1,
642 "returns" : {
643 "type" : "null"
644 }
645 }
646 },
647 "leaf" : 1,
648 "path" : "/cluster/metrics/server/{id}",
649 "text" : "{id}"
650 }
651 ],
652 "info" : {
653 "GET" : {
654 "allowtoken" : 1,
655 "description" : "List configured metric servers.",
656 "method" : "GET",
657 "name" : "server_index",
658 "parameters" : {
659 "additionalProperties" : 0
660 },
661 "permissions" : {
662 "check" : [
663 "perm",
664 "/",
665 [
666 "Sys.Audit"
667 ]
668 ]
669 },
670 "returns" : {
671 "items" : {
672 "properties" : {
673 "disable" : {
674 "description" : "Flag to disable the plugin.",
675 "type" : "boolean"
676 },
677 "id" : {
678 "description" : "The ID of the entry.",
679 "type" : "string"
680 },
681 "port" : {
682 "description" : "Server network port",
683 "type" : "integer"
684 },
685 "server" : {
686 "description" : "Server dns name or IP address",
687 "type" : "string"
688 },
689 "type" : {
690 "description" : "Plugin type.",
691 "type" : "string"
692 }
693 },
694 "type" : "object"
695 },
696 "links" : [
697 {
698 "href" : "{id}",
699 "rel" : "child"
700 }
701 ],
702 "type" : "array"
703 }
704 }
705 },
706 "leaf" : 0,
707 "path" : "/cluster/metrics/server",
708 "text" : "server"
709 }
710 ],
711 "info" : {
712 "GET" : {
713 "allowtoken" : 1,
714 "description" : "Metrics index.",
715 "method" : "GET",
716 "name" : "index",
717 "parameters" : {
718 "additionalProperties" : 0
719 },
720 "permissions" : {
721 "user" : "all"
722 },
723 "returns" : {
724 "items" : {
725 "properties" : {},
726 "type" : "object"
727 },
728 "links" : [
729 {
730 "href" : "{name}",
731 "rel" : "child"
732 }
733 ],
734 "type" : "array"
735 }
736 }
737 },
738 "leaf" : 0,
739 "path" : "/cluster/metrics",
740 "text" : "metrics"
741 },
32d876b5
DM
742 {
743 "children" : [
c5aa7e14
TL
744 {
745 "info" : {
746 "GET" : {
747 "allowtoken" : 1,
748 "description" : "Return the version of the cluster join API available on this node.",
749 "method" : "GET",
750 "name" : "join_api_version",
751 "parameters" : {
752 "additionalProperties" : 0
753 },
754 "permissions" : {
755 "check" : [
756 "perm",
757 "/",
758 [
759 "Sys.Audit"
760 ]
761 ]
762 },
763 "returns" : {
764 "description" : "Cluster Join API version, currently 1",
765 "minimum" : 0,
766 "type" : "integer"
767 }
768 }
769 },
770 "leaf" : 1,
771 "path" : "/cluster/config/apiversion",
772 "text" : "apiversion"
773 },
32d876b5 774 {
27a7acb2
DM
775 "children" : [
776 {
777 "info" : {
778 "DELETE" : {
e9cd3bd4 779 "allowtoken" : 1,
27a7acb2
DM
780 "description" : "Removes a node from the cluster configuration.",
781 "method" : "DELETE",
782 "name" : "delnode",
783 "parameters" : {
784 "additionalProperties" : 0,
785 "properties" : {
786 "node" : {
787 "description" : "The cluster node name.",
788 "format" : "pve-node",
789 "type" : "string",
790 "typetext" : "<string>"
791 }
792 }
793 },
794 "protected" : 1,
795 "returns" : {
796 "type" : "null"
797 }
798 },
799 "POST" : {
e9cd3bd4 800 "allowtoken" : 1,
e2d681b3 801 "description" : "Adds a node to the cluster configuration. This call is for internal use.",
27a7acb2
DM
802 "method" : "POST",
803 "name" : "addnode",
804 "parameters" : {
805 "additionalProperties" : 0,
806 "properties" : {
c5aa7e14
TL
807 "apiversion" : {
808 "description" : "The JOIN_API_VERSION of the new node.",
809 "optional" : 1,
810 "type" : "integer",
811 "typetext" : "<integer>"
812 },
27a7acb2
DM
813 "force" : {
814 "description" : "Do not throw error if node already exists.",
815 "optional" : 1,
816 "type" : "boolean",
817 "typetext" : "<boolean>"
818 },
1e3f8156 819 "link[n]" : {
c5aa7e14 820 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
821 "format" : {
822 "address" : {
823 "default_key" : 1,
824 "description" : "Hostname (or IP) of this corosync link address.",
825 "format" : "address",
826 "format_description" : "IP",
827 "type" : "string"
828 },
829 "priority" : {
830 "default" : 0,
c5aa7e14 831 "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
1e3f8156
TL
832 "maximum" : 255,
833 "minimum" : 0,
834 "optional" : 1,
835 "type" : "integer"
836 }
837 },
838 "optional" : 1,
839 "type" : "string",
840 "typetext" : "[address=]<IP> [,priority=<integer>]"
841 },
c5aa7e14
TL
842 "new_node_ip" : {
843 "description" : "IP Address of node to add. Used as fallback if no links are given.",
844 "format" : "ip",
845 "optional" : 1,
846 "type" : "string",
847 "typetext" : "<string>"
848 },
27a7acb2
DM
849 "node" : {
850 "description" : "The cluster node name.",
851 "format" : "pve-node",
852 "type" : "string",
853 "typetext" : "<string>"
854 },
855 "nodeid" : {
856 "description" : "Node id for this node.",
857 "minimum" : 1,
858 "optional" : 1,
859 "type" : "integer",
860 "typetext" : "<integer> (1 - N)"
861 },
27a7acb2
DM
862 "votes" : {
863 "description" : "Number of votes for this node",
864 "minimum" : 0,
865 "optional" : 1,
866 "type" : "integer",
867 "typetext" : "<integer> (0 - N)"
868 }
869 }
870 },
871 "protected" : 1,
872 "returns" : {
873 "properties" : {
874 "corosync_authkey" : {
875 "type" : "string"
876 },
877 "corosync_conf" : {
878 "type" : "string"
c5aa7e14
TL
879 },
880 "warnings" : {
881 "items" : {
882 "type" : "string"
883 },
884 "type" : "array"
27a7acb2
DM
885 }
886 },
887 "type" : "object"
888 }
889 }
890 },
891 "leaf" : 1,
892 "path" : "/cluster/config/nodes/{node}",
893 "text" : "{node}"
894 }
895 ],
32d876b5
DM
896 "info" : {
897 "GET" : {
e9cd3bd4 898 "allowtoken" : 1,
32d876b5
DM
899 "description" : "Corosync node list.",
900 "method" : "GET",
901 "name" : "nodes",
902 "parameters" : {
903 "additionalProperties" : 0
904 },
5d9c884c
DM
905 "permissions" : {
906 "check" : [
907 "perm",
908 "/",
909 [
910 "Sys.Audit"
911 ]
912 ]
913 },
32d876b5
DM
914 "returns" : {
915 "items" : {
916 "properties" : {
917 "node" : {
918 "type" : "string"
919 }
920 },
921 "type" : "object"
922 },
923 "links" : [
924 {
925 "href" : "{node}",
926 "rel" : "child"
927 }
928 ],
929 "type" : "array"
930 }
931 }
932 },
27a7acb2 933 "leaf" : 0,
32d876b5
DM
934 "path" : "/cluster/config/nodes",
935 "text" : "nodes"
936 },
27a7acb2
DM
937 {
938 "info" : {
939 "GET" : {
e9cd3bd4 940 "allowtoken" : 1,
27a7acb2
DM
941 "description" : "Get information needed to join this cluster over the connected node.",
942 "method" : "GET",
943 "name" : "join_info",
944 "parameters" : {
945 "additionalProperties" : 0,
946 "properties" : {
947 "node" : {
948 "default" : "current connected node",
949 "description" : "The node for which the joinee gets the nodeinfo. ",
950 "format" : "pve-node",
951 "optional" : 1,
952 "type" : "string",
953 "typetext" : "<string>"
954 }
955 }
956 },
a9a8e3d1
DM
957 "permissions" : {
958 "check" : [
959 "perm",
960 "/",
961 [
962 "Sys.Audit"
963 ]
964 ]
965 },
27a7acb2
DM
966 "returns" : {
967 "additionalProperties" : 0,
968 "properties" : {
969 "config_digest" : {
970 "type" : "string"
971 },
972 "nodelist" : {
973 "items" : {
974 "additionalProperties" : 1,
975 "properties" : {
976 "name" : {
977 "description" : "The cluster node name.",
978 "format" : "pve-node",
979 "type" : "string"
980 },
981 "nodeid" : {
982 "description" : "Node id for this node.",
983 "minimum" : 1,
984 "optional" : 1,
985 "type" : "integer"
986 },
987 "pve_addr" : {
988 "format" : "ip",
989 "type" : "string"
990 },
991 "pve_fp" : {
992 "description" : "Certificate SHA 256 fingerprint.",
993 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
994 "type" : "string"
995 },
996 "quorum_votes" : {
997 "minimum" : 0,
998 "type" : "integer"
999 },
1000 "ring0_addr" : {
c5aa7e14 1001 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
1002 "format" : {
1003 "address" : {
1004 "default_key" : 1,
1005 "description" : "Hostname (or IP) of this corosync link address.",
1006 "format" : "address",
1007 "format_description" : "IP",
1008 "type" : "string"
1009 },
1010 "priority" : {
1011 "default" : 0,
c5aa7e14 1012 "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
1e3f8156
TL
1013 "maximum" : 255,
1014 "minimum" : 0,
1015 "optional" : 1,
1016 "type" : "integer"
1017 }
1018 },
27a7acb2
DM
1019 "optional" : 1,
1020 "type" : "string"
1021 }
1022 },
1023 "type" : "object"
1024 },
1025 "type" : "array"
1026 },
1027 "preferred_node" : {
1028 "description" : "The cluster node name.",
1029 "format" : "pve-node",
1030 "type" : "string"
1031 },
1032 "totem" : {
1033 "type" : "object"
1034 }
1035 },
1036 "type" : "object"
1037 }
1038 },
1039 "POST" : {
e9cd3bd4 1040 "allowtoken" : 1,
c5aa7e14 1041 "description" : "Joins this node into an existing cluster. If no links are given, default to IP resolved by node's hostname on single link (fallback fails for clusters with multiple links).",
27a7acb2
DM
1042 "method" : "POST",
1043 "name" : "join",
1044 "parameters" : {
1045 "additionalProperties" : 0,
1046 "properties" : {
1047 "fingerprint" : {
1048 "description" : "Certificate SHA 256 fingerprint.",
1049 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
1050 "type" : "string"
1051 },
1052 "force" : {
1053 "description" : "Do not throw error if node already exists.",
1054 "optional" : 1,
1055 "type" : "boolean",
1056 "typetext" : "<boolean>"
1057 },
1058 "hostname" : {
1059 "description" : "Hostname (or IP) of an existing cluster member.",
1060 "type" : "string",
1061 "typetext" : "<string>"
1062 },
1e3f8156 1063 "link[n]" : {
c5aa7e14 1064 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
1065 "format" : {
1066 "address" : {
1067 "default_key" : 1,
1068 "description" : "Hostname (or IP) of this corosync link address.",
1069 "format" : "address",
1070 "format_description" : "IP",
1071 "type" : "string"
1072 },
1073 "priority" : {
1074 "default" : 0,
c5aa7e14 1075 "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
1e3f8156
TL
1076 "maximum" : 255,
1077 "minimum" : 0,
1078 "optional" : 1,
1079 "type" : "integer"
1080 }
1081 },
1082 "optional" : 1,
1083 "type" : "string",
1084 "typetext" : "[address=]<IP> [,priority=<integer>]"
1085 },
27a7acb2
DM
1086 "nodeid" : {
1087 "description" : "Node id for this node.",
1088 "minimum" : 1,
1089 "optional" : 1,
1090 "type" : "integer",
1091 "typetext" : "<integer> (1 - N)"
1092 },
1093 "password" : {
1094 "description" : "Superuser (root) password of peer node.",
1095 "maxLength" : 128,
1096 "type" : "string",
1097 "typetext" : "<string>"
1098 },
27a7acb2
DM
1099 "votes" : {
1100 "description" : "Number of votes for this node",
1101 "minimum" : 0,
1102 "optional" : 1,
1103 "type" : "integer",
1104 "typetext" : "<integer> (0 - N)"
1105 }
1106 }
1107 },
1108 "protected" : 1,
1109 "returns" : {
1110 "type" : "string"
1111 }
1112 }
1113 },
1114 "leaf" : 1,
1115 "path" : "/cluster/config/join",
1116 "text" : "join"
1117 },
32d876b5
DM
1118 {
1119 "info" : {
1120 "GET" : {
e9cd3bd4 1121 "allowtoken" : 1,
32d876b5
DM
1122 "description" : "Get corosync totem protocol settings.",
1123 "method" : "GET",
1124 "name" : "totem",
1125 "parameters" : {
1126 "additionalProperties" : 0
1127 },
5d9c884c
DM
1128 "permissions" : {
1129 "check" : [
1130 "perm",
1131 "/",
1132 [
1133 "Sys.Audit"
1134 ]
1135 ]
1136 },
32d876b5 1137 "returns" : {
32d876b5
DM
1138 "type" : "object"
1139 }
1140 }
1141 },
1142 "leaf" : 1,
1143 "path" : "/cluster/config/totem",
1144 "text" : "totem"
9226ccbc
TL
1145 },
1146 {
1147 "info" : {
1148 "GET" : {
e9cd3bd4 1149 "allowtoken" : 1,
9226ccbc
TL
1150 "description" : "Get QDevice status",
1151 "method" : "GET",
1152 "name" : "status",
1153 "parameters" : {
1154 "additionalProperties" : 0
1155 },
1156 "permissions" : {
1157 "check" : [
1158 "perm",
1159 "/",
1160 [
1161 "Sys.Audit"
1162 ]
1163 ]
1164 },
de786b48 1165 "protected" : 1,
9226ccbc
TL
1166 "returns" : {
1167 "type" : "object"
1168 }
1169 }
1170 },
1171 "leaf" : 1,
1172 "path" : "/cluster/config/qdevice",
1173 "text" : "qdevice"
32d876b5
DM
1174 }
1175 ],
1176 "info" : {
1177 "GET" : {
e9cd3bd4 1178 "allowtoken" : 1,
32d876b5
DM
1179 "description" : "Directory index.",
1180 "method" : "GET",
1181 "name" : "index",
1182 "parameters" : {
1183 "additionalProperties" : 0
1184 },
5d9c884c
DM
1185 "permissions" : {
1186 "check" : [
1187 "perm",
1188 "/",
1189 [
1190 "Sys.Audit"
1191 ]
1192 ]
1193 },
32d876b5
DM
1194 "returns" : {
1195 "items" : {
1196 "properties" : {},
1197 "type" : "object"
1198 },
1199 "links" : [
1200 {
1201 "href" : "{name}",
1202 "rel" : "child"
1203 }
1204 ],
1205 "type" : "array"
1206 }
27a7acb2
DM
1207 },
1208 "POST" : {
e9cd3bd4 1209 "allowtoken" : 1,
c5aa7e14 1210 "description" : "Generate new cluster configuration. If no links given, default to local IP address as link0.",
27a7acb2
DM
1211 "method" : "POST",
1212 "name" : "create",
1213 "parameters" : {
1214 "additionalProperties" : 0,
1215 "properties" : {
27a7acb2
DM
1216 "clustername" : {
1217 "description" : "The name of the cluster.",
1218 "format" : "pve-node",
1219 "maxLength" : 15,
1220 "type" : "string",
1221 "typetext" : "<string>"
1222 },
1e3f8156 1223 "link[n]" : {
c5aa7e14 1224 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
1225 "format" : {
1226 "address" : {
1227 "default_key" : 1,
1228 "description" : "Hostname (or IP) of this corosync link address.",
1229 "format" : "address",
1230 "format_description" : "IP",
1231 "type" : "string"
1232 },
1233 "priority" : {
1234 "default" : 0,
c5aa7e14 1235 "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
1e3f8156
TL
1236 "maximum" : 255,
1237 "minimum" : 0,
1238 "optional" : 1,
1239 "type" : "integer"
1240 }
1241 },
1242 "optional" : 1,
1243 "type" : "string",
1244 "typetext" : "[address=]<IP> [,priority=<integer>]"
1245 },
27a7acb2
DM
1246 "nodeid" : {
1247 "description" : "Node id for this node.",
1248 "minimum" : 1,
1249 "optional" : 1,
1250 "type" : "integer",
1251 "typetext" : "<integer> (1 - N)"
1252 },
27a7acb2
DM
1253 "votes" : {
1254 "description" : "Number of votes for this node.",
1255 "minimum" : 1,
1256 "optional" : 1,
1257 "type" : "integer",
1258 "typetext" : "<integer> (1 - N)"
1259 }
1260 }
1261 },
1262 "protected" : 1,
1263 "returns" : {
1264 "type" : "string"
1265 }
32d876b5
DM
1266 }
1267 },
1268 "leaf" : 0,
1269 "path" : "/cluster/config",
1270 "text" : "config"
1271 },
56122987 1272 {
56122987
DM
1273 "children" : [
1274 {
56122987
DM
1275 "children" : [
1276 {
44660702
DM
1277 "children" : [
1278 {
1279 "info" : {
1280 "DELETE" : {
e9cd3bd4 1281 "allowtoken" : 1,
44660702
DM
1282 "description" : "Delete rule.",
1283 "method" : "DELETE",
1284 "name" : "delete_rule",
1285 "parameters" : {
1286 "additionalProperties" : 0,
1287 "properties" : {
1288 "digest" : {
1289 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1290 "maxLength" : 40,
1291 "optional" : 1,
013dc89f
DM
1292 "type" : "string",
1293 "typetext" : "<string>"
44660702
DM
1294 },
1295 "group" : {
1296 "description" : "Security Group name.",
4bd7df8b 1297 "maxLength" : 18,
44660702
DM
1298 "minLength" : 2,
1299 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1300 "type" : "string"
1301 },
1302 "pos" : {
1303 "description" : "Update rule at position <pos>.",
1304 "minimum" : 0,
1305 "optional" : 1,
4bd7df8b 1306 "type" : "integer",
013dc89f 1307 "typetext" : "<integer> (0 - N)"
44660702
DM
1308 }
1309 }
1310 },
1311 "permissions" : {
1312 "check" : [
1313 "perm",
1314 "/",
1315 [
1316 "Sys.Modify"
1317 ]
1318 ]
1319 },
1320 "protected" : 1,
1321 "proxyto" : null,
1322 "returns" : {
1323 "type" : "null"
7aacca6f
DM
1324 }
1325 },
44660702 1326 "GET" : {
e9cd3bd4 1327 "allowtoken" : 1,
44660702
DM
1328 "description" : "Get single rule data.",
1329 "method" : "GET",
1330 "name" : "get_rule",
1331 "parameters" : {
1332 "additionalProperties" : 0,
1333 "properties" : {
1334 "group" : {
1335 "description" : "Security Group name.",
4bd7df8b 1336 "maxLength" : 18,
44660702
DM
1337 "minLength" : 2,
1338 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1339 "type" : "string"
1340 },
1341 "pos" : {
1342 "description" : "Update rule at position <pos>.",
1343 "minimum" : 0,
1344 "optional" : 1,
4bd7df8b 1345 "type" : "integer",
013dc89f 1346 "typetext" : "<integer> (0 - N)"
44660702 1347 }
7aacca6f 1348 }
56122987 1349 },
44660702
DM
1350 "permissions" : {
1351 "check" : [
1352 "perm",
1353 "/",
1354 [
1355 "Sys.Audit"
1356 ]
1357 ]
1358 },
1359 "proxyto" : null,
1360 "returns" : {
1361 "properties" : {
e2d681b3
TL
1362 "action" : {
1363 "type" : "string"
1364 },
1365 "comment" : {
1366 "optional" : 1,
1367 "type" : "string"
1368 },
1369 "dest" : {
1370 "optional" : 1,
1371 "type" : "string"
1372 },
1373 "dport" : {
1374 "optional" : 1,
1375 "type" : "string"
1376 },
1377 "enable" : {
1378 "optional" : 1,
1379 "type" : "integer"
1380 },
4772952b
TL
1381 "icmp-type" : {
1382 "optional" : 1,
1383 "type" : "string"
1384 },
e2d681b3
TL
1385 "iface" : {
1386 "optional" : 1,
1387 "type" : "string"
1388 },
1389 "ipversion" : {
1390 "optional" : 1,
1391 "type" : "integer"
1392 },
95895385
TL
1393 "log" : {
1394 "description" : "Log level for firewall rule",
1395 "enum" : [
1396 "emerg",
1397 "alert",
1398 "crit",
1399 "err",
1400 "warning",
1401 "notice",
1402 "info",
1403 "debug",
1404 "nolog"
1405 ],
1406 "optional" : 1,
1407 "type" : "string"
1408 },
e2d681b3
TL
1409 "macro" : {
1410 "optional" : 1,
5f26e15b 1411 "type" : "string"
e2d681b3 1412 },
44660702
DM
1413 "pos" : {
1414 "type" : "integer"
e2d681b3
TL
1415 },
1416 "proto" : {
1417 "optional" : 1,
1418 "type" : "string"
1419 },
1420 "source" : {
1421 "optional" : 1,
1422 "type" : "string"
1423 },
1424 "sport" : {
1425 "optional" : 1,
1426 "type" : "string"
1427 },
1428 "type" : {
1429 "type" : "string"
44660702
DM
1430 }
1431 },
1432 "type" : "object"
56122987 1433 }
44660702 1434 },
7aacca6f 1435 "PUT" : {
e9cd3bd4 1436 "allowtoken" : 1,
44660702
DM
1437 "description" : "Modify rule data.",
1438 "method" : "PUT",
1439 "name" : "update_rule",
7aacca6f
DM
1440 "parameters" : {
1441 "additionalProperties" : 0,
1442 "properties" : {
44660702
DM
1443 "action" : {
1444 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
7aacca6f 1445 "maxLength" : 20,
44660702 1446 "minLength" : 2,
7aacca6f 1447 "optional" : 1,
44660702 1448 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f
DM
1449 "type" : "string"
1450 },
44660702 1451 "comment" : {
e94f0d56 1452 "description" : "Descriptive comment.",
7aacca6f 1453 "optional" : 1,
013dc89f
DM
1454 "type" : "string",
1455 "typetext" : "<string>"
7aacca6f 1456 },
44660702
DM
1457 "delete" : {
1458 "description" : "A list of settings you want to delete.",
1459 "format" : "pve-configid-list",
7aacca6f 1460 "optional" : 1,
013dc89f
DM
1461 "type" : "string",
1462 "typetext" : "<string>"
7aacca6f 1463 },
44660702
DM
1464 "dest" : {
1465 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
1466 "format" : "pve-fw-addr-spec",
0695fdaf 1467 "maxLength" : 512,
7aacca6f 1468 "optional" : 1,
013dc89f
DM
1469 "type" : "string",
1470 "typetext" : "<string>"
7aacca6f
DM
1471 },
1472 "digest" : {
1473 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 1474 "maxLength" : 40,
7aacca6f 1475 "optional" : 1,
013dc89f
DM
1476 "type" : "string",
1477 "typetext" : "<string>"
7aacca6f 1478 },
44660702
DM
1479 "dport" : {
1480 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
1481 "format" : "pve-fw-dport-spec",
7aacca6f 1482 "optional" : 1,
013dc89f
DM
1483 "type" : "string",
1484 "typetext" : "<string>"
7aacca6f 1485 },
44660702 1486 "enable" : {
e94f0d56 1487 "description" : "Flag to enable/disable a rule.",
44660702 1488 "minimum" : 0,
7aacca6f 1489 "optional" : 1,
4bd7df8b 1490 "type" : "integer",
013dc89f 1491 "typetext" : "<integer> (0 - N)"
7aacca6f 1492 },
44660702
DM
1493 "group" : {
1494 "description" : "Security Group name.",
4bd7df8b 1495 "maxLength" : 18,
44660702
DM
1496 "minLength" : 2,
1497 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1498 "type" : "string"
1499 },
4772952b
TL
1500 "icmp-type" : {
1501 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
1502 "format" : "pve-fw-icmp-type-spec",
1503 "optional" : 1,
1504 "type" : "string",
1505 "typetext" : "<string>"
1506 },
44660702
DM
1507 "iface" : {
1508 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
1509 "format" : "pve-iface",
1510 "maxLength" : 20,
1511 "minLength" : 2,
7aacca6f 1512 "optional" : 1,
013dc89f
DM
1513 "type" : "string",
1514 "typetext" : "<string>"
7aacca6f 1515 },
95895385
TL
1516 "log" : {
1517 "description" : "Log level for firewall rule.",
1518 "enum" : [
1519 "emerg",
1520 "alert",
1521 "crit",
1522 "err",
1523 "warning",
1524 "notice",
1525 "info",
1526 "debug",
1527 "nolog"
1528 ],
1529 "optional" : 1,
1530 "type" : "string"
1531 },
44660702 1532 "macro" : {
e94f0d56 1533 "description" : "Use predefined standard macro.",
44660702
DM
1534 "maxLength" : 128,
1535 "optional" : 1,
013dc89f
DM
1536 "type" : "string",
1537 "typetext" : "<string>"
7aacca6f
DM
1538 },
1539 "moveto" : {
1540 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
44660702 1541 "minimum" : 0,
7aacca6f 1542 "optional" : 1,
4bd7df8b 1543 "type" : "integer",
013dc89f 1544 "typetext" : "<integer> (0 - N)"
7aacca6f 1545 },
44660702
DM
1546 "pos" : {
1547 "description" : "Update rule at position <pos>.",
1548 "minimum" : 0,
1549 "optional" : 1,
4bd7df8b 1550 "type" : "integer",
013dc89f 1551 "typetext" : "<integer> (0 - N)"
7aacca6f 1552 },
44660702
DM
1553 "proto" : {
1554 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
1555 "format" : "pve-fw-protocol-spec",
7aacca6f 1556 "optional" : 1,
013dc89f
DM
1557 "type" : "string",
1558 "typetext" : "<string>"
44660702
DM
1559 },
1560 "source" : {
1561 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
1562 "format" : "pve-fw-addr-spec",
0695fdaf 1563 "maxLength" : 512,
44660702 1564 "optional" : 1,
013dc89f
DM
1565 "type" : "string",
1566 "typetext" : "<string>"
44660702
DM
1567 },
1568 "sport" : {
1569 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
1570 "format" : "pve-fw-sport-spec",
1571 "optional" : 1,
013dc89f
DM
1572 "type" : "string",
1573 "typetext" : "<string>"
7aacca6f
DM
1574 },
1575 "type" : {
e94f0d56 1576 "description" : "Rule type.",
7aacca6f
DM
1577 "enum" : [
1578 "in",
1579 "out",
1580 "group"
1581 ],
1582 "optional" : 1,
1583 "type" : "string"
1584 }
1585 }
1586 },
7aacca6f
DM
1587 "permissions" : {
1588 "check" : [
1589 "perm",
1590 "/",
1591 [
1592 "Sys.Modify"
1593 ]
1594 ]
1595 },
44660702 1596 "protected" : 1,
7aacca6f
DM
1597 "proxyto" : null,
1598 "returns" : {
1599 "type" : "null"
1600 }
7aacca6f
DM
1601 }
1602 },
44660702 1603 "leaf" : 1,
7aacca6f 1604 "path" : "/cluster/firewall/groups/{group}/{pos}",
44660702 1605 "text" : "{pos}"
7aacca6f
DM
1606 }
1607 ],
44660702
DM
1608 "info" : {
1609 "DELETE" : {
e9cd3bd4 1610 "allowtoken" : 1,
44660702
DM
1611 "description" : "Delete security group.",
1612 "method" : "DELETE",
1613 "name" : "delete_security_group",
1614 "parameters" : {
1615 "additionalProperties" : 0,
1616 "properties" : {
1617 "group" : {
1618 "description" : "Security Group name.",
4bd7df8b 1619 "maxLength" : 18,
44660702
DM
1620 "minLength" : 2,
1621 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1622 "type" : "string"
1623 }
56122987 1624 }
7aacca6f 1625 },
44660702
DM
1626 "permissions" : {
1627 "check" : [
1628 "perm",
1629 "/",
1630 [
1631 "Sys.Modify"
1632 ]
7aacca6f 1633 ]
56122987 1634 },
44660702
DM
1635 "protected" : 1,
1636 "returns" : {
1637 "type" : "null"
56122987 1638 }
7aacca6f 1639 },
7aacca6f 1640 "GET" : {
e9cd3bd4 1641 "allowtoken" : 1,
44660702 1642 "description" : "List rules.",
7aacca6f 1643 "method" : "GET",
44660702
DM
1644 "name" : "get_rules",
1645 "parameters" : {
1646 "additionalProperties" : 0,
7aacca6f 1647 "properties" : {
44660702
DM
1648 "group" : {
1649 "description" : "Security Group name.",
4bd7df8b 1650 "maxLength" : 18,
44660702
DM
1651 "minLength" : 2,
1652 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1653 "type" : "string"
7aacca6f 1654 }
44660702 1655 }
7aacca6f
DM
1656 },
1657 "permissions" : {
1658 "check" : [
1659 "perm",
1660 "/",
1661 [
1662 "Sys.Audit"
1663 ]
1664 ]
1665 },
44660702
DM
1666 "proxyto" : null,
1667 "returns" : {
1668 "items" : {
1669 "properties" : {
1670 "pos" : {
1671 "type" : "integer"
1672 }
1673 },
1674 "type" : "object"
1675 },
1676 "links" : [
1677 {
1678 "href" : "{pos}",
1679 "rel" : "child"
1680 }
1681 ],
1682 "type" : "array"
1683 }
1684 },
1685 "POST" : {
e9cd3bd4 1686 "allowtoken" : 1,
44660702
DM
1687 "description" : "Create new rule.",
1688 "method" : "POST",
1689 "name" : "create_rule",
7aacca6f
DM
1690 "parameters" : {
1691 "additionalProperties" : 0,
1692 "properties" : {
44660702
DM
1693 "action" : {
1694 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
1695 "maxLength" : 20,
56122987 1696 "minLength" : 2,
44660702
DM
1697 "optional" : 0,
1698 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f 1699 "type" : "string"
56122987 1700 },
44660702 1701 "comment" : {
e94f0d56 1702 "description" : "Descriptive comment.",
56122987 1703 "optional" : 1,
013dc89f
DM
1704 "type" : "string",
1705 "typetext" : "<string>"
56122987 1706 },
44660702
DM
1707 "dest" : {
1708 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
56122987 1709 "format" : "pve-fw-addr-spec",
0695fdaf 1710 "maxLength" : 512,
56122987 1711 "optional" : 1,
013dc89f
DM
1712 "type" : "string",
1713 "typetext" : "<string>"
56122987 1714 },
44660702
DM
1715 "digest" : {
1716 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1717 "maxLength" : 40,
7aacca6f 1718 "optional" : 1,
013dc89f
DM
1719 "type" : "string",
1720 "typetext" : "<string>"
56122987 1721 },
44660702
DM
1722 "dport" : {
1723 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
1724 "format" : "pve-fw-dport-spec",
56122987 1725 "optional" : 1,
013dc89f
DM
1726 "type" : "string",
1727 "typetext" : "<string>"
56122987 1728 },
7aacca6f 1729 "enable" : {
e94f0d56 1730 "description" : "Flag to enable/disable a rule.",
44660702 1731 "minimum" : 0,
7aacca6f 1732 "optional" : 1,
4bd7df8b 1733 "type" : "integer",
013dc89f 1734 "typetext" : "<integer> (0 - N)"
56122987 1735 },
44660702
DM
1736 "group" : {
1737 "description" : "Security Group name.",
4bd7df8b 1738 "maxLength" : 18,
44660702 1739 "minLength" : 2,
7aacca6f 1740 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
1741 "type" : "string"
1742 },
4772952b
TL
1743 "icmp-type" : {
1744 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
1745 "format" : "pve-fw-icmp-type-spec",
1746 "optional" : 1,
1747 "type" : "string",
1748 "typetext" : "<string>"
1749 },
44660702
DM
1750 "iface" : {
1751 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
1752 "format" : "pve-iface",
1753 "maxLength" : 20,
7aacca6f 1754 "minLength" : 2,
44660702 1755 "optional" : 1,
013dc89f
DM
1756 "type" : "string",
1757 "typetext" : "<string>"
56122987 1758 },
95895385
TL
1759 "log" : {
1760 "description" : "Log level for firewall rule.",
1761 "enum" : [
1762 "emerg",
1763 "alert",
1764 "crit",
1765 "err",
1766 "warning",
1767 "notice",
1768 "info",
1769 "debug",
1770 "nolog"
1771 ],
1772 "optional" : 1,
1773 "type" : "string"
1774 },
7aacca6f 1775 "macro" : {
e94f0d56 1776 "description" : "Use predefined standard macro.",
44660702 1777 "maxLength" : 128,
7aacca6f 1778 "optional" : 1,
013dc89f
DM
1779 "type" : "string",
1780 "typetext" : "<string>"
7aacca6f
DM
1781 },
1782 "pos" : {
1783 "description" : "Update rule at position <pos>.",
44660702 1784 "minimum" : 0,
56122987 1785 "optional" : 1,
4bd7df8b 1786 "type" : "integer",
013dc89f 1787 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
1788 },
1789 "proto" : {
1790 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
44660702 1791 "format" : "pve-fw-protocol-spec",
7aacca6f 1792 "optional" : 1,
013dc89f
DM
1793 "type" : "string",
1794 "typetext" : "<string>"
44660702
DM
1795 },
1796 "source" : {
1797 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
1798 "format" : "pve-fw-addr-spec",
0695fdaf 1799 "maxLength" : 512,
44660702 1800 "optional" : 1,
013dc89f
DM
1801 "type" : "string",
1802 "typetext" : "<string>"
44660702
DM
1803 },
1804 "sport" : {
1805 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
1806 "format" : "pve-fw-sport-spec",
1807 "optional" : 1,
013dc89f
DM
1808 "type" : "string",
1809 "typetext" : "<string>"
44660702
DM
1810 },
1811 "type" : {
e94f0d56 1812 "description" : "Rule type.",
44660702
DM
1813 "enum" : [
1814 "in",
1815 "out",
1816 "group"
1817 ],
1818 "optional" : 0,
1819 "type" : "string"
56122987 1820 }
44660702 1821 }
56122987 1822 },
56122987
DM
1823 "permissions" : {
1824 "check" : [
1825 "perm",
1826 "/",
1827 [
1828 "Sys.Modify"
1829 ]
1830 ]
1831 },
44660702
DM
1832 "protected" : 1,
1833 "proxyto" : null,
56122987
DM
1834 "returns" : {
1835 "type" : "null"
7aacca6f 1836 }
44660702
DM
1837 }
1838 },
1839 "leaf" : 0,
1840 "path" : "/cluster/firewall/groups/{group}",
1841 "text" : "{group}"
1842 }
1843 ],
1844 "info" : {
1845 "GET" : {
e9cd3bd4 1846 "allowtoken" : 1,
44660702
DM
1847 "description" : "List security groups.",
1848 "method" : "GET",
1849 "name" : "list_security_groups",
1850 "parameters" : {
1851 "additionalProperties" : 0
1852 },
1853 "permissions" : {
1854 "user" : "all"
1855 },
1856 "returns" : {
1857 "items" : {
1858 "properties" : {
1859 "comment" : {
1860 "optional" : 1,
1861 "type" : "string"
1862 },
1863 "digest" : {
1864 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1865 "maxLength" : 40,
1866 "optional" : 0,
1867 "type" : "string"
1868 },
1869 "group" : {
1870 "description" : "Security Group name.",
4bd7df8b 1871 "maxLength" : 18,
44660702
DM
1872 "minLength" : 2,
1873 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1874 "type" : "string"
1875 }
1876 },
1877 "type" : "object"
56122987 1878 },
44660702
DM
1879 "links" : [
1880 {
1881 "href" : "{group}",
1882 "rel" : "child"
1883 }
1884 ],
1885 "type" : "array"
1886 }
1887 },
1888 "POST" : {
e9cd3bd4 1889 "allowtoken" : 1,
44660702
DM
1890 "description" : "Create new security group.",
1891 "method" : "POST",
1892 "name" : "create_security_group",
1893 "parameters" : {
1894 "additionalProperties" : 0,
1895 "properties" : {
1896 "comment" : {
1897 "optional" : 1,
013dc89f
DM
1898 "type" : "string",
1899 "typetext" : "<string>"
44660702
DM
1900 },
1901 "digest" : {
1902 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1903 "maxLength" : 40,
1904 "optional" : 1,
013dc89f
DM
1905 "type" : "string",
1906 "typetext" : "<string>"
44660702
DM
1907 },
1908 "group" : {
1909 "description" : "Security Group name.",
4bd7df8b 1910 "maxLength" : 18,
44660702
DM
1911 "minLength" : 2,
1912 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1913 "type" : "string"
1914 },
1915 "rename" : {
1916 "description" : "Rename/update an existing security group. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing group.",
4bd7df8b 1917 "maxLength" : 18,
44660702
DM
1918 "minLength" : 2,
1919 "optional" : 1,
1920 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1921 "type" : "string"
1922 }
1923 }
1924 },
1925 "permissions" : {
1926 "check" : [
1927 "perm",
1928 "/",
1929 [
1930 "Sys.Modify"
1931 ]
1932 ]
1933 },
1934 "protected" : 1,
1935 "returns" : {
1936 "type" : "null"
1937 }
1938 }
1939 },
1940 "leaf" : 0,
1941 "path" : "/cluster/firewall/groups",
1942 "text" : "groups"
1943 },
1944 {
1945 "children" : [
1946 {
1947 "info" : {
7aacca6f 1948 "DELETE" : {
e9cd3bd4 1949 "allowtoken" : 1,
44660702
DM
1950 "description" : "Delete rule.",
1951 "method" : "DELETE",
1952 "name" : "delete_rule",
1953 "parameters" : {
1954 "additionalProperties" : 0,
1955 "properties" : {
1956 "digest" : {
1957 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1958 "maxLength" : 40,
1959 "optional" : 1,
013dc89f
DM
1960 "type" : "string",
1961 "typetext" : "<string>"
44660702
DM
1962 },
1963 "pos" : {
1964 "description" : "Update rule at position <pos>.",
1965 "minimum" : 0,
1966 "optional" : 1,
4bd7df8b 1967 "type" : "integer",
013dc89f 1968 "typetext" : "<integer> (0 - N)"
44660702
DM
1969 }
1970 }
1971 },
56122987
DM
1972 "permissions" : {
1973 "check" : [
1974 "perm",
1975 "/",
1976 [
7aacca6f 1977 "Sys.Modify"
56122987
DM
1978 ]
1979 ]
1980 },
44660702 1981 "protected" : 1,
56122987
DM
1982 "proxyto" : null,
1983 "returns" : {
7aacca6f 1984 "type" : "null"
44660702
DM
1985 }
1986 },
1987 "GET" : {
e9cd3bd4 1988 "allowtoken" : 1,
44660702
DM
1989 "description" : "Get single rule data.",
1990 "method" : "GET",
1991 "name" : "get_rule",
56122987
DM
1992 "parameters" : {
1993 "additionalProperties" : 0,
1994 "properties" : {
1995 "pos" : {
7aacca6f 1996 "description" : "Update rule at position <pos>.",
44660702 1997 "minimum" : 0,
56122987 1998 "optional" : 1,
4bd7df8b 1999 "type" : "integer",
013dc89f 2000 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
2001 }
2002 }
2003 },
7aacca6f
DM
2004 "permissions" : {
2005 "check" : [
2006 "perm",
2007 "/",
2008 [
2009 "Sys.Audit"
2010 ]
2011 ]
56122987 2012 },
44660702
DM
2013 "proxyto" : null,
2014 "returns" : {
7aacca6f 2015 "properties" : {
e2d681b3
TL
2016 "action" : {
2017 "type" : "string"
2018 },
2019 "comment" : {
2020 "optional" : 1,
2021 "type" : "string"
2022 },
2023 "dest" : {
2024 "optional" : 1,
2025 "type" : "string"
2026 },
2027 "dport" : {
2028 "optional" : 1,
2029 "type" : "string"
2030 },
2031 "enable" : {
2032 "optional" : 1,
2033 "type" : "integer"
2034 },
4772952b
TL
2035 "icmp-type" : {
2036 "optional" : 1,
2037 "type" : "string"
2038 },
e2d681b3
TL
2039 "iface" : {
2040 "optional" : 1,
2041 "type" : "string"
2042 },
2043 "ipversion" : {
2044 "optional" : 1,
2045 "type" : "integer"
2046 },
95895385
TL
2047 "log" : {
2048 "description" : "Log level for firewall rule",
2049 "enum" : [
2050 "emerg",
2051 "alert",
2052 "crit",
2053 "err",
2054 "warning",
2055 "notice",
2056 "info",
2057 "debug",
2058 "nolog"
2059 ],
2060 "optional" : 1,
2061 "type" : "string"
2062 },
e2d681b3
TL
2063 "macro" : {
2064 "optional" : 1,
5f26e15b 2065 "type" : "string"
e2d681b3 2066 },
44660702
DM
2067 "pos" : {
2068 "type" : "integer"
e2d681b3
TL
2069 },
2070 "proto" : {
2071 "optional" : 1,
2072 "type" : "string"
2073 },
2074 "source" : {
2075 "optional" : 1,
2076 "type" : "string"
2077 },
2078 "sport" : {
2079 "optional" : 1,
2080 "type" : "string"
2081 },
2082 "type" : {
2083 "type" : "string"
7aacca6f 2084 }
44660702
DM
2085 },
2086 "type" : "object"
2087 }
56122987 2088 },
44660702 2089 "PUT" : {
e9cd3bd4 2090 "allowtoken" : 1,
44660702
DM
2091 "description" : "Modify rule data.",
2092 "method" : "PUT",
2093 "name" : "update_rule",
7aacca6f
DM
2094 "parameters" : {
2095 "additionalProperties" : 0,
2096 "properties" : {
44660702
DM
2097 "action" : {
2098 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
2099 "maxLength" : 20,
2100 "minLength" : 2,
2101 "optional" : 1,
2102 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2103 "type" : "string"
7aacca6f 2104 },
44660702 2105 "comment" : {
e94f0d56 2106 "description" : "Descriptive comment.",
44660702 2107 "optional" : 1,
013dc89f
DM
2108 "type" : "string",
2109 "typetext" : "<string>"
7aacca6f 2110 },
44660702
DM
2111 "delete" : {
2112 "description" : "A list of settings you want to delete.",
2113 "format" : "pve-configid-list",
2114 "optional" : 1,
013dc89f
DM
2115 "type" : "string",
2116 "typetext" : "<string>"
44660702
DM
2117 },
2118 "dest" : {
2119 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
2120 "format" : "pve-fw-addr-spec",
0695fdaf 2121 "maxLength" : 512,
44660702 2122 "optional" : 1,
013dc89f
DM
2123 "type" : "string",
2124 "typetext" : "<string>"
44660702
DM
2125 },
2126 "digest" : {
2127 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2128 "maxLength" : 40,
2129 "optional" : 1,
013dc89f
DM
2130 "type" : "string",
2131 "typetext" : "<string>"
44660702
DM
2132 },
2133 "dport" : {
2134 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
2135 "format" : "pve-fw-dport-spec",
2136 "optional" : 1,
013dc89f
DM
2137 "type" : "string",
2138 "typetext" : "<string>"
44660702
DM
2139 },
2140 "enable" : {
e94f0d56 2141 "description" : "Flag to enable/disable a rule.",
44660702
DM
2142 "minimum" : 0,
2143 "optional" : 1,
4bd7df8b 2144 "type" : "integer",
013dc89f 2145 "typetext" : "<integer> (0 - N)"
44660702 2146 },
4772952b
TL
2147 "icmp-type" : {
2148 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
2149 "format" : "pve-fw-icmp-type-spec",
2150 "optional" : 1,
2151 "type" : "string",
2152 "typetext" : "<string>"
2153 },
44660702
DM
2154 "iface" : {
2155 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
2156 "format" : "pve-iface",
2157 "maxLength" : 20,
7aacca6f 2158 "minLength" : 2,
44660702 2159 "optional" : 1,
013dc89f
DM
2160 "type" : "string",
2161 "typetext" : "<string>"
7aacca6f 2162 },
95895385
TL
2163 "log" : {
2164 "description" : "Log level for firewall rule.",
2165 "enum" : [
2166 "emerg",
2167 "alert",
2168 "crit",
2169 "err",
2170 "warning",
2171 "notice",
2172 "info",
2173 "debug",
2174 "nolog"
2175 ],
2176 "optional" : 1,
2177 "type" : "string"
2178 },
44660702 2179 "macro" : {
e94f0d56 2180 "description" : "Use predefined standard macro.",
44660702
DM
2181 "maxLength" : 128,
2182 "optional" : 1,
013dc89f
DM
2183 "type" : "string",
2184 "typetext" : "<string>"
44660702
DM
2185 },
2186 "moveto" : {
2187 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
2188 "minimum" : 0,
2189 "optional" : 1,
4bd7df8b 2190 "type" : "integer",
013dc89f 2191 "typetext" : "<integer> (0 - N)"
44660702
DM
2192 },
2193 "pos" : {
2194 "description" : "Update rule at position <pos>.",
2195 "minimum" : 0,
2196 "optional" : 1,
4bd7df8b 2197 "type" : "integer",
013dc89f 2198 "typetext" : "<integer> (0 - N)"
44660702
DM
2199 },
2200 "proto" : {
2201 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
2202 "format" : "pve-fw-protocol-spec",
2203 "optional" : 1,
013dc89f
DM
2204 "type" : "string",
2205 "typetext" : "<string>"
44660702
DM
2206 },
2207 "source" : {
2208 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
2209 "format" : "pve-fw-addr-spec",
0695fdaf 2210 "maxLength" : 512,
44660702 2211 "optional" : 1,
013dc89f
DM
2212 "type" : "string",
2213 "typetext" : "<string>"
44660702
DM
2214 },
2215 "sport" : {
2216 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
2217 "format" : "pve-fw-sport-spec",
2218 "optional" : 1,
013dc89f
DM
2219 "type" : "string",
2220 "typetext" : "<string>"
44660702
DM
2221 },
2222 "type" : {
e94f0d56 2223 "description" : "Rule type.",
44660702
DM
2224 "enum" : [
2225 "in",
2226 "out",
2227 "group"
2228 ],
2229 "optional" : 1,
2230 "type" : "string"
7aacca6f 2231 }
56122987
DM
2232 }
2233 },
7aacca6f
DM
2234 "permissions" : {
2235 "check" : [
2236 "perm",
2237 "/",
2238 [
2239 "Sys.Modify"
2240 ]
2241 ]
2242 },
44660702
DM
2243 "protected" : 1,
2244 "proxyto" : null,
2245 "returns" : {
2246 "type" : "null"
2247 }
7aacca6f 2248 }
56122987 2249 },
44660702
DM
2250 "leaf" : 1,
2251 "path" : "/cluster/firewall/rules/{pos}",
2252 "text" : "{pos}"
7aacca6f
DM
2253 }
2254 ],
7aacca6f 2255 "info" : {
44660702 2256 "GET" : {
e9cd3bd4 2257 "allowtoken" : 1,
44660702
DM
2258 "description" : "List rules.",
2259 "method" : "GET",
2260 "name" : "get_rules",
7aacca6f 2261 "parameters" : {
44660702 2262 "additionalProperties" : 0
7aacca6f
DM
2263 },
2264 "permissions" : {
2265 "check" : [
2266 "perm",
2267 "/",
2268 [
44660702 2269 "Sys.Audit"
7aacca6f
DM
2270 ]
2271 ]
2272 },
44660702 2273 "proxyto" : null,
7aacca6f 2274 "returns" : {
7aacca6f
DM
2275 "items" : {
2276 "properties" : {
44660702
DM
2277 "pos" : {
2278 "type" : "integer"
7aacca6f
DM
2279 }
2280 },
2281 "type" : "object"
56122987 2282 },
7aacca6f
DM
2283 "links" : [
2284 {
44660702 2285 "href" : "{pos}",
7aacca6f
DM
2286 "rel" : "child"
2287 }
44660702
DM
2288 ],
2289 "type" : "array"
7aacca6f 2290 }
44660702 2291 },
7aacca6f 2292 "POST" : {
e9cd3bd4 2293 "allowtoken" : 1,
44660702 2294 "description" : "Create new rule.",
7aacca6f 2295 "method" : "POST",
44660702 2296 "name" : "create_rule",
7aacca6f
DM
2297 "parameters" : {
2298 "additionalProperties" : 0,
2299 "properties" : {
44660702
DM
2300 "action" : {
2301 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
2302 "maxLength" : 20,
7aacca6f 2303 "minLength" : 2,
44660702
DM
2304 "optional" : 0,
2305 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2306 "type" : "string"
7aacca6f
DM
2307 },
2308 "comment" : {
e94f0d56 2309 "description" : "Descriptive comment.",
7aacca6f 2310 "optional" : 1,
013dc89f
DM
2311 "type" : "string",
2312 "typetext" : "<string>"
44660702
DM
2313 },
2314 "dest" : {
2315 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
2316 "format" : "pve-fw-addr-spec",
0695fdaf 2317 "maxLength" : 512,
44660702 2318 "optional" : 1,
013dc89f
DM
2319 "type" : "string",
2320 "typetext" : "<string>"
44660702
DM
2321 },
2322 "digest" : {
2323 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2324 "maxLength" : 40,
2325 "optional" : 1,
013dc89f
DM
2326 "type" : "string",
2327 "typetext" : "<string>"
44660702
DM
2328 },
2329 "dport" : {
2330 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
2331 "format" : "pve-fw-dport-spec",
2332 "optional" : 1,
013dc89f
DM
2333 "type" : "string",
2334 "typetext" : "<string>"
44660702
DM
2335 },
2336 "enable" : {
e94f0d56 2337 "description" : "Flag to enable/disable a rule.",
44660702
DM
2338 "minimum" : 0,
2339 "optional" : 1,
4bd7df8b 2340 "type" : "integer",
013dc89f 2341 "typetext" : "<integer> (0 - N)"
44660702 2342 },
4772952b
TL
2343 "icmp-type" : {
2344 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
2345 "format" : "pve-fw-icmp-type-spec",
2346 "optional" : 1,
2347 "type" : "string",
2348 "typetext" : "<string>"
2349 },
44660702
DM
2350 "iface" : {
2351 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
2352 "format" : "pve-iface",
2353 "maxLength" : 20,
2354 "minLength" : 2,
2355 "optional" : 1,
013dc89f
DM
2356 "type" : "string",
2357 "typetext" : "<string>"
44660702 2358 },
95895385
TL
2359 "log" : {
2360 "description" : "Log level for firewall rule.",
2361 "enum" : [
2362 "emerg",
2363 "alert",
2364 "crit",
2365 "err",
2366 "warning",
2367 "notice",
2368 "info",
2369 "debug",
2370 "nolog"
2371 ],
2372 "optional" : 1,
2373 "type" : "string"
2374 },
44660702 2375 "macro" : {
e94f0d56 2376 "description" : "Use predefined standard macro.",
44660702
DM
2377 "maxLength" : 128,
2378 "optional" : 1,
013dc89f
DM
2379 "type" : "string",
2380 "typetext" : "<string>"
44660702
DM
2381 },
2382 "pos" : {
2383 "description" : "Update rule at position <pos>.",
2384 "minimum" : 0,
2385 "optional" : 1,
4bd7df8b 2386 "type" : "integer",
013dc89f 2387 "typetext" : "<integer> (0 - N)"
44660702
DM
2388 },
2389 "proto" : {
2390 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
2391 "format" : "pve-fw-protocol-spec",
2392 "optional" : 1,
013dc89f
DM
2393 "type" : "string",
2394 "typetext" : "<string>"
44660702
DM
2395 },
2396 "source" : {
2397 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
2398 "format" : "pve-fw-addr-spec",
0695fdaf 2399 "maxLength" : 512,
44660702 2400 "optional" : 1,
013dc89f
DM
2401 "type" : "string",
2402 "typetext" : "<string>"
44660702
DM
2403 },
2404 "sport" : {
2405 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
2406 "format" : "pve-fw-sport-spec",
2407 "optional" : 1,
013dc89f
DM
2408 "type" : "string",
2409 "typetext" : "<string>"
44660702
DM
2410 },
2411 "type" : {
e94f0d56 2412 "description" : "Rule type.",
44660702
DM
2413 "enum" : [
2414 "in",
2415 "out",
2416 "group"
2417 ],
2418 "optional" : 0,
2419 "type" : "string"
7aacca6f
DM
2420 }
2421 }
2422 },
2423 "permissions" : {
2424 "check" : [
2425 "perm",
2426 "/",
2427 [
2428 "Sys.Modify"
2429 ]
2430 ]
2431 },
44660702
DM
2432 "protected" : 1,
2433 "proxyto" : null,
7aacca6f 2434 "returns" : {
44660702
DM
2435 "type" : "null"
2436 }
2437 }
2438 },
2439 "leaf" : 0,
2440 "path" : "/cluster/firewall/rules",
2441 "text" : "rules"
2442 },
2443 {
2444 "children" : [
2445 {
2446 "children" : [
2447 {
2448 "info" : {
2449 "DELETE" : {
e9cd3bd4 2450 "allowtoken" : 1,
44660702
DM
2451 "description" : "Remove IP or Network from IPSet.",
2452 "method" : "DELETE",
2453 "name" : "remove_ip",
2454 "parameters" : {
2455 "additionalProperties" : 0,
2456 "properties" : {
2457 "cidr" : {
2458 "description" : "Network/IP specification in CIDR format.",
2459 "format" : "IPorCIDRorAlias",
013dc89f
DM
2460 "type" : "string",
2461 "typetext" : "<string>"
44660702
DM
2462 },
2463 "digest" : {
2464 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2465 "maxLength" : 40,
2466 "optional" : 1,
013dc89f
DM
2467 "type" : "string",
2468 "typetext" : "<string>"
44660702
DM
2469 },
2470 "name" : {
2471 "description" : "IP set name.",
2472 "maxLength" : 64,
2473 "minLength" : 2,
2474 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2475 "type" : "string"
2476 }
2477 }
2478 },
2479 "permissions" : {
2480 "check" : [
2481 "perm",
2482 "/",
2483 [
2484 "Sys.Modify"
2485 ]
2486 ]
2487 },
2488 "protected" : 1,
2489 "returns" : {
2490 "type" : "null"
2491 }
7aacca6f 2492 },
44660702 2493 "GET" : {
e9cd3bd4 2494 "allowtoken" : 1,
44660702
DM
2495 "description" : "Read IP or Network settings from IPSet.",
2496 "method" : "GET",
2497 "name" : "read_ip",
2498 "parameters" : {
2499 "additionalProperties" : 0,
2500 "properties" : {
2501 "cidr" : {
2502 "description" : "Network/IP specification in CIDR format.",
2503 "format" : "IPorCIDRorAlias",
013dc89f
DM
2504 "type" : "string",
2505 "typetext" : "<string>"
44660702
DM
2506 },
2507 "name" : {
2508 "description" : "IP set name.",
2509 "maxLength" : 64,
2510 "minLength" : 2,
2511 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2512 "type" : "string"
2513 }
2514 }
2515 },
2516 "permissions" : {
2517 "check" : [
2518 "perm",
2519 "/",
2520 [
2521 "Sys.Audit"
2522 ]
2523 ]
2524 },
2525 "protected" : 1,
2526 "returns" : {
2527 "type" : "object"
2528 }
7aacca6f 2529 },
44660702 2530 "PUT" : {
e9cd3bd4 2531 "allowtoken" : 1,
44660702
DM
2532 "description" : "Update IP or Network settings",
2533 "method" : "PUT",
2534 "name" : "update_ip",
2535 "parameters" : {
2536 "additionalProperties" : 0,
2537 "properties" : {
2538 "cidr" : {
2539 "description" : "Network/IP specification in CIDR format.",
2540 "format" : "IPorCIDRorAlias",
013dc89f
DM
2541 "type" : "string",
2542 "typetext" : "<string>"
44660702
DM
2543 },
2544 "comment" : {
2545 "optional" : 1,
013dc89f
DM
2546 "type" : "string",
2547 "typetext" : "<string>"
44660702
DM
2548 },
2549 "digest" : {
2550 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2551 "maxLength" : 40,
2552 "optional" : 1,
013dc89f
DM
2553 "type" : "string",
2554 "typetext" : "<string>"
44660702
DM
2555 },
2556 "name" : {
2557 "description" : "IP set name.",
2558 "maxLength" : 64,
2559 "minLength" : 2,
2560 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2561 "type" : "string"
2562 },
2563 "nomatch" : {
2564 "optional" : 1,
013dc89f
DM
2565 "type" : "boolean",
2566 "typetext" : "<boolean>"
44660702
DM
2567 }
2568 }
2569 },
2570 "permissions" : {
2571 "check" : [
2572 "perm",
2573 "/",
2574 [
2575 "Sys.Modify"
2576 ]
2577 ]
2578 },
2579 "protected" : 1,
2580 "returns" : {
2581 "type" : "null"
2582 }
7aacca6f
DM
2583 }
2584 },
44660702
DM
2585 "leaf" : 1,
2586 "path" : "/cluster/firewall/ipset/{name}/{cidr}",
2587 "text" : "{cidr}"
7aacca6f 2588 }
44660702 2589 ],
7aacca6f
DM
2590 "info" : {
2591 "DELETE" : {
e9cd3bd4 2592 "allowtoken" : 1,
44660702
DM
2593 "description" : "Delete IPSet",
2594 "method" : "DELETE",
2595 "name" : "delete_ipset",
56122987 2596 "parameters" : {
44660702 2597 "additionalProperties" : 0,
56122987 2598 "properties" : {
81a3384d
TL
2599 "force" : {
2600 "description" : "Delete all members of the IPSet, if there are any.",
2601 "optional" : 1,
2602 "type" : "boolean",
2603 "typetext" : "<boolean>"
2604 },
56122987 2605 "name" : {
44660702 2606 "description" : "IP set name.",
56122987 2607 "maxLength" : 64,
44660702 2608 "minLength" : 2,
56122987 2609 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 2610 "type" : "string"
56122987 2611 }
44660702 2612 }
7aacca6f 2613 },
56122987
DM
2614 "permissions" : {
2615 "check" : [
2616 "perm",
2617 "/",
2618 [
2619 "Sys.Modify"
2620 ]
2621 ]
2622 },
7aacca6f
DM
2623 "protected" : 1,
2624 "returns" : {
2625 "type" : "null"
44660702 2626 }
7aacca6f 2627 },
44660702 2628 "GET" : {
e9cd3bd4 2629 "allowtoken" : 1,
44660702
DM
2630 "description" : "List IPSet content",
2631 "method" : "GET",
2632 "name" : "get_ipset",
56122987
DM
2633 "parameters" : {
2634 "additionalProperties" : 0,
2635 "properties" : {
7aacca6f 2636 "name" : {
44660702 2637 "description" : "IP set name.",
7aacca6f 2638 "maxLength" : 64,
7aacca6f 2639 "minLength" : 2,
44660702 2640 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987 2641 "type" : "string"
56122987 2642 }
7aacca6f 2643 }
56122987 2644 },
56122987
DM
2645 "permissions" : {
2646 "check" : [
2647 "perm",
2648 "/",
2649 [
44660702 2650 "Sys.Audit"
56122987
DM
2651 ]
2652 ]
44660702
DM
2653 },
2654 "returns" : {
2655 "items" : {
2656 "properties" : {
2657 "cidr" : {
2658 "type" : "string"
2659 },
2660 "comment" : {
2661 "optional" : 1,
2662 "type" : "string"
2663 },
2664 "digest" : {
2665 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2666 "maxLength" : 40,
2667 "optional" : 0,
2668 "type" : "string"
2669 },
2670 "nomatch" : {
2671 "optional" : 1,
2672 "type" : "boolean"
2673 }
2674 },
2675 "type" : "object"
2676 },
2677 "links" : [
2678 {
2679 "href" : "{cidr}",
2680 "rel" : "child"
2681 }
2682 ],
2683 "type" : "array"
7aacca6f
DM
2684 }
2685 },
44660702 2686 "POST" : {
e9cd3bd4 2687 "allowtoken" : 1,
44660702
DM
2688 "description" : "Add IP or Network to IPSet.",
2689 "method" : "POST",
2690 "name" : "create_ip",
56122987
DM
2691 "parameters" : {
2692 "additionalProperties" : 0,
2693 "properties" : {
44660702
DM
2694 "cidr" : {
2695 "description" : "Network/IP specification in CIDR format.",
2696 "format" : "IPorCIDRorAlias",
013dc89f
DM
2697 "type" : "string",
2698 "typetext" : "<string>"
44660702
DM
2699 },
2700 "comment" : {
2701 "optional" : 1,
013dc89f
DM
2702 "type" : "string",
2703 "typetext" : "<string>"
44660702
DM
2704 },
2705 "name" : {
2706 "description" : "IP set name.",
2707 "maxLength" : 64,
2708 "minLength" : 2,
2709 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2710 "type" : "string"
2711 },
2712 "nomatch" : {
2713 "optional" : 1,
013dc89f
DM
2714 "type" : "boolean",
2715 "typetext" : "<boolean>"
56122987
DM
2716 }
2717 }
2718 },
56122987
DM
2719 "permissions" : {
2720 "check" : [
2721 "perm",
2722 "/",
2723 [
44660702 2724 "Sys.Modify"
56122987
DM
2725 ]
2726 ]
2727 },
44660702 2728 "protected" : 1,
56122987 2729 "returns" : {
44660702
DM
2730 "type" : "null"
2731 }
56122987
DM
2732 }
2733 },
44660702
DM
2734 "leaf" : 0,
2735 "path" : "/cluster/firewall/ipset/{name}",
2736 "text" : "{name}"
56122987
DM
2737 }
2738 ],
56122987 2739 "info" : {
44660702 2740 "GET" : {
e9cd3bd4 2741 "allowtoken" : 1,
44660702
DM
2742 "description" : "List IPSets",
2743 "method" : "GET",
2744 "name" : "ipset_index",
56122987 2745 "parameters" : {
7aacca6f 2746 "additionalProperties" : 0
56122987 2747 },
56122987
DM
2748 "permissions" : {
2749 "check" : [
2750 "perm",
2751 "/",
2752 [
7aacca6f 2753 "Sys.Audit"
56122987
DM
2754 ]
2755 ]
2756 },
56122987
DM
2757 "returns" : {
2758 "items" : {
2759 "properties" : {
44660702
DM
2760 "comment" : {
2761 "optional" : 1,
2762 "type" : "string"
56122987 2763 },
44660702
DM
2764 "digest" : {
2765 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2766 "maxLength" : 40,
2767 "optional" : 0,
2768 "type" : "string"
2769 },
2770 "name" : {
2771 "description" : "IP set name.",
2772 "maxLength" : 64,
2773 "minLength" : 2,
2774 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f 2775 "type" : "string"
56122987
DM
2776 }
2777 },
2778 "type" : "object"
44660702
DM
2779 },
2780 "links" : [
2781 {
2782 "href" : "{name}",
2783 "rel" : "child"
2784 }
2785 ],
2786 "type" : "array"
56122987 2787 }
44660702
DM
2788 },
2789 "POST" : {
e9cd3bd4 2790 "allowtoken" : 1,
44660702
DM
2791 "description" : "Create new IPSet",
2792 "method" : "POST",
2793 "name" : "create_ipset",
7aacca6f
DM
2794 "parameters" : {
2795 "additionalProperties" : 0,
2796 "properties" : {
44660702
DM
2797 "comment" : {
2798 "optional" : 1,
013dc89f
DM
2799 "type" : "string",
2800 "typetext" : "<string>"
44660702
DM
2801 },
2802 "digest" : {
2803 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2804 "maxLength" : 40,
2805 "optional" : 1,
013dc89f
DM
2806 "type" : "string",
2807 "typetext" : "<string>"
44660702
DM
2808 },
2809 "name" : {
2810 "description" : "IP set name.",
2811 "maxLength" : 64,
2812 "minLength" : 2,
2813 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2814 "type" : "string"
2815 },
2816 "rename" : {
2817 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
2818 "maxLength" : 64,
2819 "minLength" : 2,
2820 "optional" : 1,
2821 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2822 "type" : "string"
7aacca6f
DM
2823 }
2824 }
2825 },
56122987
DM
2826 "permissions" : {
2827 "check" : [
2828 "perm",
2829 "/",
2830 [
44660702 2831 "Sys.Modify"
56122987
DM
2832 ]
2833 ]
2834 },
44660702 2835 "protected" : 1,
56122987 2836 "returns" : {
44660702
DM
2837 "type" : "null"
2838 }
56122987 2839 }
7aacca6f 2840 },
44660702
DM
2841 "leaf" : 0,
2842 "path" : "/cluster/firewall/ipset",
2843 "text" : "ipset"
2844 },
56122987 2845 {
44660702
DM
2846 "children" : [
2847 {
2848 "info" : {
2849 "DELETE" : {
e9cd3bd4 2850 "allowtoken" : 1,
44660702
DM
2851 "description" : "Remove IP or Network alias.",
2852 "method" : "DELETE",
2853 "name" : "remove_alias",
2854 "parameters" : {
2855 "additionalProperties" : 0,
2856 "properties" : {
2857 "digest" : {
2858 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2859 "maxLength" : 40,
2860 "optional" : 1,
013dc89f
DM
2861 "type" : "string",
2862 "typetext" : "<string>"
44660702
DM
2863 },
2864 "name" : {
2865 "description" : "Alias name.",
2866 "maxLength" : 64,
2867 "minLength" : 2,
2868 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2869 "type" : "string"
2870 }
2871 }
2872 },
2873 "permissions" : {
2874 "check" : [
2875 "perm",
2876 "/",
2877 [
2878 "Sys.Modify"
2879 ]
2880 ]
2881 },
2882 "protected" : 1,
2883 "returns" : {
2884 "type" : "null"
2885 }
2886 },
2887 "GET" : {
e9cd3bd4 2888 "allowtoken" : 1,
44660702
DM
2889 "description" : "Read alias.",
2890 "method" : "GET",
2891 "name" : "read_alias",
2892 "parameters" : {
2893 "additionalProperties" : 0,
2894 "properties" : {
2895 "name" : {
2896 "description" : "Alias name.",
2897 "maxLength" : 64,
2898 "minLength" : 2,
2899 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2900 "type" : "string"
2901 }
2902 }
2903 },
2904 "permissions" : {
2905 "check" : [
2906 "perm",
2907 "/",
2908 [
2909 "Sys.Audit"
2910 ]
2911 ]
2912 },
2913 "returns" : {
2914 "type" : "object"
2915 }
2916 },
2917 "PUT" : {
e9cd3bd4 2918 "allowtoken" : 1,
44660702
DM
2919 "description" : "Update IP or Network alias.",
2920 "method" : "PUT",
2921 "name" : "update_alias",
2922 "parameters" : {
2923 "additionalProperties" : 0,
2924 "properties" : {
2925 "cidr" : {
2926 "description" : "Network/IP specification in CIDR format.",
2927 "format" : "IPorCIDR",
013dc89f
DM
2928 "type" : "string",
2929 "typetext" : "<string>"
44660702
DM
2930 },
2931 "comment" : {
2932 "optional" : 1,
013dc89f
DM
2933 "type" : "string",
2934 "typetext" : "<string>"
44660702
DM
2935 },
2936 "digest" : {
2937 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2938 "maxLength" : 40,
2939 "optional" : 1,
013dc89f
DM
2940 "type" : "string",
2941 "typetext" : "<string>"
44660702
DM
2942 },
2943 "name" : {
2944 "description" : "Alias name.",
2945 "maxLength" : 64,
2946 "minLength" : 2,
2947 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2948 "type" : "string"
2949 },
2950 "rename" : {
2951 "description" : "Rename an existing alias.",
2952 "maxLength" : 64,
2953 "minLength" : 2,
2954 "optional" : 1,
2955 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2956 "type" : "string"
2957 }
2958 }
2959 },
2960 "permissions" : {
2961 "check" : [
2962 "perm",
2963 "/",
2964 [
2965 "Sys.Modify"
2966 ]
2967 ]
2968 },
2969 "protected" : 1,
2970 "returns" : {
2971 "type" : "null"
2972 }
2973 }
2974 },
2975 "leaf" : 1,
2976 "path" : "/cluster/firewall/aliases/{name}",
2977 "text" : "{name}"
2978 }
2979 ],
2980 "info" : {
2981 "GET" : {
e9cd3bd4 2982 "allowtoken" : 1,
44660702
DM
2983 "description" : "List aliases",
2984 "method" : "GET",
2985 "name" : "get_aliases",
2986 "parameters" : {
2987 "additionalProperties" : 0
2988 },
2989 "permissions" : {
2990 "check" : [
2991 "perm",
2992 "/",
2993 [
2994 "Sys.Audit"
2995 ]
2996 ]
2997 },
2998 "returns" : {
2999 "items" : {
3000 "properties" : {
3001 "cidr" : {
3002 "type" : "string"
3003 },
3004 "comment" : {
3005 "optional" : 1,
3006 "type" : "string"
3007 },
3008 "digest" : {
3009 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
3010 "maxLength" : 40,
3011 "optional" : 0,
3012 "type" : "string"
3013 },
3014 "name" : {
3015 "type" : "string"
3016 }
3017 },
3018 "type" : "object"
3019 },
3020 "links" : [
3021 {
3022 "href" : "{name}",
3023 "rel" : "child"
3024 }
3025 ],
3026 "type" : "array"
3027 }
3028 },
3029 "POST" : {
e9cd3bd4 3030 "allowtoken" : 1,
44660702
DM
3031 "description" : "Create IP or Network Alias.",
3032 "method" : "POST",
3033 "name" : "create_alias",
56122987
DM
3034 "parameters" : {
3035 "additionalProperties" : 0,
3036 "properties" : {
44660702
DM
3037 "cidr" : {
3038 "description" : "Network/IP specification in CIDR format.",
3039 "format" : "IPorCIDR",
013dc89f
DM
3040 "type" : "string",
3041 "typetext" : "<string>"
44660702
DM
3042 },
3043 "comment" : {
3044 "optional" : 1,
013dc89f
DM
3045 "type" : "string",
3046 "typetext" : "<string>"
44660702
DM
3047 },
3048 "name" : {
3049 "description" : "Alias name.",
3050 "maxLength" : 64,
3051 "minLength" : 2,
3052 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3053 "type" : "string"
56122987
DM
3054 }
3055 }
3056 },
56122987
DM
3057 "permissions" : {
3058 "check" : [
3059 "perm",
3060 "/",
3061 [
3062 "Sys.Modify"
3063 ]
3064 ]
3065 },
44660702 3066 "protected" : 1,
56122987
DM
3067 "returns" : {
3068 "type" : "null"
3069 }
44660702
DM
3070 }
3071 },
3072 "leaf" : 0,
3073 "path" : "/cluster/firewall/aliases",
3074 "text" : "aliases"
3075 },
3076 {
3077 "info" : {
3078 "GET" : {
e9cd3bd4 3079 "allowtoken" : 1,
44660702
DM
3080 "description" : "Get Firewall options.",
3081 "method" : "GET",
3082 "name" : "get_options",
3083 "parameters" : {
3084 "additionalProperties" : 0
7aacca6f 3085 },
56122987
DM
3086 "permissions" : {
3087 "check" : [
3088 "perm",
3089 "/",
3090 [
44660702 3091 "Sys.Audit"
56122987
DM
3092 ]
3093 ]
3094 },
44660702 3095 "returns" : {
56122987 3096 "properties" : {
5da3d723
TL
3097 "ebtables" : {
3098 "default" : 1,
3099 "description" : "Enable ebtables rules cluster wide.",
3100 "optional" : 1,
3101 "type" : "boolean"
3102 },
44660702
DM
3103 "enable" : {
3104 "description" : "Enable or disable the firewall cluster wide.",
3105 "minimum" : 0,
56122987 3106 "optional" : 1,
7aacca6f 3107 "type" : "integer"
56122987 3108 },
95895385
TL
3109 "log_ratelimit" : {
3110 "description" : "Log ratelimiting settings",
3111 "format" : {
3112 "burst" : {
3113 "default" : 5,
4772952b 3114 "description" : "Initial burst of packages which will always get logged before the rate is applied",
95895385
TL
3115 "minimum" : 0,
3116 "optional" : 1,
3117 "type" : "integer"
3118 },
3119 "enable" : {
3120 "default" : "1",
3121 "default_key" : 1,
3122 "description" : "Enable or disable log rate limiting",
3123 "type" : "boolean"
3124 },
3125 "rate" : {
3126 "default" : "1/second",
3127 "description" : "Frequency with which the burst bucket gets refilled",
3128 "format_description" : "rate",
3129 "optional" : 1,
3130 "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
3131 "type" : "string"
3132 }
3133 },
3134 "optional" : 1,
3135 "type" : "string"
3136 },
44660702
DM
3137 "policy_in" : {
3138 "description" : "Input policy.",
3139 "enum" : [
3140 "ACCEPT",
3141 "REJECT",
3142 "DROP"
3143 ],
56122987 3144 "optional" : 1,
44660702 3145 "type" : "string"
7aacca6f 3146 },
44660702
DM
3147 "policy_out" : {
3148 "description" : "Output policy.",
3149 "enum" : [
3150 "ACCEPT",
3151 "REJECT",
3152 "DROP"
3153 ],
7aacca6f 3154 "optional" : 1,
44660702
DM
3155 "type" : "string"
3156 }
3157 },
3158 "type" : "object"
3159 }
3160 },
3161 "PUT" : {
e9cd3bd4 3162 "allowtoken" : 1,
44660702
DM
3163 "description" : "Set Firewall options.",
3164 "method" : "PUT",
3165 "name" : "set_options",
3166 "parameters" : {
3167 "additionalProperties" : 0,
3168 "properties" : {
3169 "delete" : {
3170 "description" : "A list of settings you want to delete.",
3171 "format" : "pve-configid-list",
56122987 3172 "optional" : 1,
013dc89f
DM
3173 "type" : "string",
3174 "typetext" : "<string>"
56122987 3175 },
44660702
DM
3176 "digest" : {
3177 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
3178 "maxLength" : 40,
56122987 3179 "optional" : 1,
013dc89f
DM
3180 "type" : "string",
3181 "typetext" : "<string>"
56122987 3182 },
5da3d723
TL
3183 "ebtables" : {
3184 "default" : 1,
3185 "description" : "Enable ebtables rules cluster wide.",
3186 "optional" : 1,
3187 "type" : "boolean",
3188 "typetext" : "<boolean>"
3189 },
44660702
DM
3190 "enable" : {
3191 "description" : "Enable or disable the firewall cluster wide.",
7aacca6f 3192 "minimum" : 0,
56122987 3193 "optional" : 1,
4bd7df8b 3194 "type" : "integer",
013dc89f 3195 "typetext" : "<integer> (0 - N)"
56122987 3196 },
95895385
TL
3197 "log_ratelimit" : {
3198 "description" : "Log ratelimiting settings",
3199 "format" : {
3200 "burst" : {
3201 "default" : 5,
4772952b 3202 "description" : "Initial burst of packages which will always get logged before the rate is applied",
95895385
TL
3203 "minimum" : 0,
3204 "optional" : 1,
3205 "type" : "integer"
3206 },
3207 "enable" : {
3208 "default" : "1",
3209 "default_key" : 1,
3210 "description" : "Enable or disable log rate limiting",
3211 "type" : "boolean"
3212 },
3213 "rate" : {
3214 "default" : "1/second",
3215 "description" : "Frequency with which the burst bucket gets refilled",
3216 "format_description" : "rate",
3217 "optional" : 1,
3218 "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
3219 "type" : "string"
3220 }
3221 },
3222 "optional" : 1,
3223 "type" : "string",
3224 "typetext" : "[enable=]<1|0> [,burst=<integer>] [,rate=<rate>]"
3225 },
44660702
DM
3226 "policy_in" : {
3227 "description" : "Input policy.",
56122987 3228 "enum" : [
44660702
DM
3229 "ACCEPT",
3230 "REJECT",
3231 "DROP"
56122987 3232 ],
56122987 3233 "optional" : 1,
44660702 3234 "type" : "string"
56122987 3235 },
44660702
DM
3236 "policy_out" : {
3237 "description" : "Output policy.",
56122987 3238 "enum" : [
44660702
DM
3239 "ACCEPT",
3240 "REJECT",
3241 "DROP"
56122987 3242 ],
7aacca6f 3243 "optional" : 1,
44660702 3244 "type" : "string"
56122987 3245 }
44660702
DM
3246 }
3247 },
3248 "permissions" : {
3249 "check" : [
3250 "perm",
3251 "/",
3252 [
3253 "Sys.Modify"
3254 ]
3255 ]
7aacca6f
DM
3256 },
3257 "protected" : 1,
44660702
DM
3258 "returns" : {
3259 "type" : "null"
3260 }
3261 }
3262 },
3263 "leaf" : 1,
3264 "path" : "/cluster/firewall/options",
3265 "text" : "options"
3266 },
3267 {
3268 "info" : {
7aacca6f 3269 "GET" : {
e9cd3bd4 3270 "allowtoken" : 1,
44660702 3271 "description" : "List available macros",
7aacca6f 3272 "method" : "GET",
44660702
DM
3273 "name" : "get_macros",
3274 "parameters" : {
3275 "additionalProperties" : 0
7aacca6f 3276 },
44660702
DM
3277 "permissions" : {
3278 "user" : "all"
3279 },
3280 "returns" : {
3281 "items" : {
3282 "properties" : {
3283 "descr" : {
3284 "description" : "More verbose description (if available).",
3285 "type" : "string"
3286 },
3287 "macro" : {
3288 "description" : "Macro name.",
3289 "type" : "string"
3290 }
3291 },
3292 "type" : "object"
3293 },
3294 "type" : "array"
3295 }
3296 }
3297 },
3298 "leaf" : 1,
3299 "path" : "/cluster/firewall/macros",
3300 "text" : "macros"
3301 },
3302 {
3303 "info" : {
3304 "GET" : {
e9cd3bd4 3305 "allowtoken" : 1,
44660702
DM
3306 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
3307 "method" : "GET",
3308 "name" : "refs",
7aacca6f 3309 "parameters" : {
44660702 3310 "additionalProperties" : 0,
7aacca6f 3311 "properties" : {
44660702
DM
3312 "type" : {
3313 "description" : "Only list references of specified type.",
3314 "enum" : [
3315 "alias",
3316 "ipset"
3317 ],
3318 "optional" : 1,
3319 "type" : "string"
7aacca6f 3320 }
44660702 3321 }
7aacca6f
DM
3322 },
3323 "permissions" : {
3324 "check" : [
3325 "perm",
3326 "/",
3327 [
3328 "Sys.Audit"
3329 ]
3330 ]
3331 },
44660702
DM
3332 "returns" : {
3333 "items" : {
3334 "properties" : {
3335 "comment" : {
3336 "optional" : 1,
3337 "type" : "string"
3338 },
3339 "name" : {
3340 "type" : "string"
3341 },
3342 "ref" : {
3343 "type" : "string"
3344 },
3345 "type" : {
3346 "enum" : [
3347 "alias",
3348 "ipset"
3349 ],
3350 "type" : "string"
3351 }
3352 },
3353 "type" : "object"
3354 },
3355 "type" : "array"
3356 }
56122987
DM
3357 }
3358 },
7aacca6f 3359 "leaf" : 1,
44660702
DM
3360 "path" : "/cluster/firewall/refs",
3361 "text" : "refs"
56122987
DM
3362 }
3363 ],
56122987 3364 "info" : {
44660702 3365 "GET" : {
e9cd3bd4 3366 "allowtoken" : 1,
44660702
DM
3367 "description" : "Directory index.",
3368 "method" : "GET",
3369 "name" : "index",
56122987 3370 "parameters" : {
56122987
DM
3371 "additionalProperties" : 0
3372 },
44660702
DM
3373 "permissions" : {
3374 "user" : "all"
3375 },
56122987 3376 "returns" : {
44660702
DM
3377 "items" : {
3378 "properties" : {},
3379 "type" : "object"
3380 },
7aacca6f
DM
3381 "links" : [
3382 {
44660702
DM
3383 "href" : "{name}",
3384 "rel" : "child"
7aacca6f
DM
3385 }
3386 ],
7aacca6f 3387 "type" : "array"
7aacca6f 3388 }
56122987
DM
3389 }
3390 },
44660702
DM
3391 "leaf" : 0,
3392 "path" : "/cluster/firewall",
3393 "text" : "firewall"
7aacca6f
DM
3394 },
3395 {
56122987
DM
3396 "children" : [
3397 {
04d22a9f
TL
3398 "children" : [
3399 {
3400 "info" : {
3401 "GET" : {
3402 "allowtoken" : 1,
3403 "description" : "Returns included guests and the backup status of their disks. Optimized to be used in ExtJS tree views.",
3404 "method" : "GET",
3405 "name" : "get_volume_backup_included",
3406 "parameters" : {
3407 "additionalProperties" : 0,
3408 "properties" : {
3409 "id" : {
3410 "description" : "The job ID.",
3411 "maxLength" : 50,
3412 "type" : "string",
3413 "typetext" : "<string>"
3414 }
3415 }
3416 },
3417 "permissions" : {
3418 "check" : [
3419 "perm",
3420 "/",
3421 [
3422 "Sys.Audit"
3423 ]
3424 ]
3425 },
3426 "protected" : 1,
3427 "returns" : {
3428 "description" : "Root node of the tree object. Children represent guests, grandchildren represent volumes of that guest.",
3429 "properties" : {
3430 "children" : {
3431 "items" : {
3432 "properties" : {
3433 "children" : {
3434 "description" : "The volumes of the guest with the information if they will be included in backups.",
3435 "items" : {
3436 "properties" : {
3437 "id" : {
3438 "description" : "Configuration key of the volume.",
3439 "type" : "string"
3440 },
3441 "included" : {
3442 "description" : "Whether the volume is included in the backup or not.",
3443 "type" : "boolean"
3444 },
3445 "name" : {
3446 "description" : "Name of the volume.",
3447 "type" : "string"
3448 },
3449 "reason" : {
3450 "description" : "The reason why the volume is included (or excluded).",
3451 "type" : "string"
3452 }
3453 },
3454 "type" : "object"
3455 },
3456 "optional" : 1,
3457 "type" : "array"
3458 },
3459 "id" : {
3460 "description" : "VMID of the guest.",
3461 "type" : "integer"
3462 },
3463 "name" : {
3464 "description" : "Name of the guest",
3465 "optional" : 1,
3466 "type" : "string"
3467 },
3468 "type" : {
3469 "description" : "Type of the guest, VM, CT or unknown for removed but not purged guests.",
3470 "enum" : [
3471 "qemu",
3472 "lxc",
3473 "unknown"
3474 ],
3475 "type" : "string"
3476 }
3477 },
3478 "type" : "object"
3479 },
3480 "type" : "array"
3481 }
3482 },
3483 "type" : "object"
3484 }
3485 }
3486 },
3487 "leaf" : 1,
3488 "path" : "/cluster/backup/{id}/included_volumes",
3489 "text" : "included_volumes"
3490 }
3491 ],
56122987 3492 "info" : {
44660702 3493 "DELETE" : {
e9cd3bd4 3494 "allowtoken" : 1,
44660702
DM
3495 "description" : "Delete vzdump backup job definition.",
3496 "method" : "DELETE",
3497 "name" : "delete_job",
3498 "parameters" : {
3499 "additionalProperties" : 0,
3500 "properties" : {
3501 "id" : {
3502 "description" : "The job ID.",
3503 "maxLength" : 50,
013dc89f
DM
3504 "type" : "string",
3505 "typetext" : "<string>"
44660702
DM
3506 }
3507 }
3508 },
3509 "permissions" : {
3510 "check" : [
3511 "perm",
3512 "/",
3513 [
3514 "Sys.Modify"
3515 ]
3516 ]
3517 },
3518 "protected" : 1,
56122987
DM
3519 "returns" : {
3520 "type" : "null"
44660702
DM
3521 }
3522 },
3523 "GET" : {
e9cd3bd4 3524 "allowtoken" : 1,
44660702
DM
3525 "description" : "Read vzdump backup job definition.",
3526 "method" : "GET",
3527 "name" : "read_job",
3528 "parameters" : {
3529 "additionalProperties" : 0,
3530 "properties" : {
3531 "id" : {
3532 "description" : "The job ID.",
3533 "maxLength" : 50,
013dc89f
DM
3534 "type" : "string",
3535 "typetext" : "<string>"
44660702
DM
3536 }
3537 }
56122987 3538 },
7aacca6f
DM
3539 "permissions" : {
3540 "check" : [
3541 "perm",
3542 "/",
3543 [
44660702 3544 "Sys.Audit"
7aacca6f
DM
3545 ]
3546 ]
3547 },
44660702
DM
3548 "returns" : {
3549 "type" : "object"
3550 }
3551 },
3552 "PUT" : {
e9cd3bd4 3553 "allowtoken" : 1,
44660702
DM
3554 "description" : "Update vzdump backup job definition.",
3555 "method" : "PUT",
3556 "name" : "update_job",
56122987 3557 "parameters" : {
44660702 3558 "additionalProperties" : 0,
56122987 3559 "properties" : {
44660702
DM
3560 "all" : {
3561 "default" : 0,
3562 "description" : "Backup all known guest systems on this host.",
7aacca6f 3563 "optional" : 1,
013dc89f
DM
3564 "type" : "boolean",
3565 "typetext" : "<boolean>"
7aacca6f 3566 },
44660702
DM
3567 "bwlimit" : {
3568 "default" : 0,
3569 "description" : "Limit I/O bandwidth (KBytes per second).",
3570 "minimum" : 0,
3571 "optional" : 1,
4bd7df8b 3572 "type" : "integer",
013dc89f 3573 "typetext" : "<integer> (0 - N)"
44660702 3574 },
5370fa8c
TL
3575 "comment" : {
3576 "description" : "Description for the Job.",
3577 "maxLength" : 512,
3578 "optional" : 1,
3579 "type" : "string",
3580 "typetext" : "<string>"
3581 },
44660702
DM
3582 "compress" : {
3583 "default" : "0",
3584 "description" : "Compress dump file.",
7aacca6f 3585 "enum" : [
44660702
DM
3586 "0",
3587 "1",
3588 "gzip",
c5aa7e14
TL
3589 "lzo",
3590 "zstd"
7aacca6f 3591 ],
44660702
DM
3592 "optional" : 1,
3593 "type" : "string"
7aacca6f 3594 },
44660702
DM
3595 "delete" : {
3596 "description" : "A list of settings you want to delete.",
3597 "format" : "pve-configid-list",
7aacca6f 3598 "optional" : 1,
013dc89f
DM
3599 "type" : "string",
3600 "typetext" : "<string>"
56122987 3601 },
44660702
DM
3602 "dow" : {
3603 "description" : "Day of week selection.",
3604 "format" : "pve-day-of-week-list",
7aacca6f 3605 "optional" : 1,
5370fa8c 3606 "requires" : "starttime",
013dc89f
DM
3607 "type" : "string",
3608 "typetext" : "<string>"
56122987 3609 },
44660702
DM
3610 "dumpdir" : {
3611 "description" : "Store resulting files to specified directory.",
56122987 3612 "optional" : 1,
013dc89f
DM
3613 "type" : "string",
3614 "typetext" : "<string>"
56122987 3615 },
44660702
DM
3616 "enabled" : {
3617 "default" : "1",
3618 "description" : "Enable or disable the job.",
3619 "optional" : 1,
013dc89f
DM
3620 "type" : "boolean",
3621 "typetext" : "<boolean>"
44660702
DM
3622 },
3623 "exclude" : {
3624 "description" : "Exclude specified guest systems (assumes --all)",
3625 "format" : "pve-vmid-list",
3626 "optional" : 1,
013dc89f
DM
3627 "type" : "string",
3628 "typetext" : "<string>"
44660702
DM
3629 },
3630 "exclude-path" : {
d2656385 3631 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
44660702
DM
3632 "format" : "string-alist",
3633 "optional" : 1,
013dc89f
DM
3634 "type" : "string",
3635 "typetext" : "<string>"
44660702
DM
3636 },
3637 "id" : {
3638 "description" : "The job ID.",
3639 "maxLength" : 50,
013dc89f
DM
3640 "type" : "string",
3641 "typetext" : "<string>"
44660702
DM
3642 },
3643 "ionice" : {
3644 "default" : 7,
3645 "description" : "Set CFQ ionice priority.",
3646 "maximum" : 8,
3647 "minimum" : 0,
3648 "optional" : 1,
4bd7df8b 3649 "type" : "integer",
013dc89f 3650 "typetext" : "<integer> (0 - 8)"
44660702
DM
3651 },
3652 "lockwait" : {
3653 "default" : 180,
3654 "description" : "Maximal time to wait for the global lock (minutes).",
3655 "minimum" : 0,
3656 "optional" : 1,
4bd7df8b 3657 "type" : "integer",
013dc89f 3658 "typetext" : "<integer> (0 - N)"
44660702
DM
3659 },
3660 "mailnotification" : {
3661 "default" : "always",
3662 "description" : "Specify when to send an email",
56122987 3663 "enum" : [
44660702
DM
3664 "always",
3665 "failure"
56122987 3666 ],
44660702
DM
3667 "optional" : 1,
3668 "type" : "string"
3669 },
3670 "mailto" : {
d2656385
TL
3671 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
3672 "format" : "email-or-username-list",
44660702 3673 "optional" : 1,
013dc89f
DM
3674 "type" : "string",
3675 "typetext" : "<string>"
44660702
DM
3676 },
3677 "maxfiles" : {
0695fdaf 3678 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
44660702
DM
3679 "minimum" : 1,
3680 "optional" : 1,
4bd7df8b 3681 "type" : "integer",
013dc89f 3682 "typetext" : "<integer> (1 - N)"
44660702
DM
3683 },
3684 "mode" : {
3685 "default" : "snapshot",
3686 "description" : "Backup mode.",
3687 "enum" : [
3688 "snapshot",
3689 "suspend",
3690 "stop"
3691 ],
3692 "optional" : 1,
3693 "type" : "string"
3694 },
3695 "node" : {
3696 "description" : "Only run if executed on this node.",
3697 "format" : "pve-node",
3698 "optional" : 1,
013dc89f
DM
3699 "type" : "string",
3700 "typetext" : "<string>"
44660702 3701 },
7af2edf9 3702 "notes-template" : {
4e7f60c2
TL
3703 "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future. Needs to be a single line, newline and backslash need to be escaped as '\\n' and '\\\\' respectively.",
3704 "maxLength" : 1024,
7af2edf9
TL
3705 "optional" : 1,
3706 "requires" : "storage",
3707 "type" : "string",
3708 "typetext" : "<string>"
3709 },
4e7f60c2
TL
3710 "performance" : {
3711 "description" : "Other performance-related settings.",
3712 "format" : "backup-performance",
3713 "optional" : 1,
3714 "type" : "string",
3715 "typetext" : "[max-workers=<integer>]"
3716 },
44660702
DM
3717 "pigz" : {
3718 "default" : 0,
3719 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
3720 "optional" : 1,
013dc89f
DM
3721 "type" : "integer",
3722 "typetext" : "<integer>"
44660702 3723 },
9226ccbc
TL
3724 "pool" : {
3725 "description" : "Backup all known guest systems included in the specified pool.",
3726 "optional" : 1,
3727 "type" : "string",
3728 "typetext" : "<string>"
3729 },
7af2edf9
TL
3730 "protected" : {
3731 "description" : "If true, mark backup(s) as protected.",
3732 "optional" : 1,
3733 "requires" : "storage",
3734 "type" : "boolean",
3735 "typetext" : "<boolean>"
3736 },
739d4d64 3737 "prune-backups" : {
0695fdaf 3738 "default" : "keep-all=1",
739d4d64
TL
3739 "description" : "Use these retention options instead of those from the storage configuration.",
3740 "format" : "prune-backups",
3741 "optional" : 1,
3742 "type" : "string",
4772952b 3743 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 3744 },
44660702
DM
3745 "quiet" : {
3746 "default" : 0,
3747 "description" : "Be quiet.",
3748 "optional" : 1,
013dc89f
DM
3749 "type" : "boolean",
3750 "typetext" : "<boolean>"
44660702
DM
3751 },
3752 "remove" : {
3753 "default" : 1,
0695fdaf 3754 "description" : "Prune older backups according to 'prune-backups'.",
44660702 3755 "optional" : 1,
013dc89f
DM
3756 "type" : "boolean",
3757 "typetext" : "<boolean>"
44660702 3758 },
de786b48
TL
3759 "repeat-missed" : {
3760 "default" : 0,
3761 "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
3762 "optional" : 1,
3763 "type" : "boolean",
3764 "typetext" : "<boolean>"
3765 },
5370fa8c
TL
3766 "schedule" : {
3767 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
3768 "format" : "pve-calendar-event",
3769 "maxLength" : 128,
3770 "optional" : 1,
3771 "type" : "string",
3772 "typetext" : "<string>"
3773 },
44660702
DM
3774 "script" : {
3775 "description" : "Use specified hook script.",
3776 "optional" : 1,
013dc89f
DM
3777 "type" : "string",
3778 "typetext" : "<string>"
44660702 3779 },
44660702
DM
3780 "starttime" : {
3781 "description" : "Job Start time.",
5370fa8c 3782 "optional" : 1,
44660702 3783 "pattern" : "\\d{1,2}:\\d{1,2}",
56122987 3784 "type" : "string",
44660702 3785 "typetext" : "HH:MM"
7aacca6f 3786 },
44660702
DM
3787 "stdexcludes" : {
3788 "default" : 1,
3789 "description" : "Exclude temporary files and logs.",
3790 "optional" : 1,
013dc89f
DM
3791 "type" : "boolean",
3792 "typetext" : "<boolean>"
44660702
DM
3793 },
3794 "stop" : {
3795 "default" : 0,
1e3f8156 3796 "description" : "Stop running backup jobs on this host.",
44660702 3797 "optional" : 1,
013dc89f
DM
3798 "type" : "boolean",
3799 "typetext" : "<boolean>"
44660702
DM
3800 },
3801 "stopwait" : {
3802 "default" : 10,
3803 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
3804 "minimum" : 0,
3805 "optional" : 1,
4bd7df8b 3806 "type" : "integer",
013dc89f 3807 "typetext" : "<integer> (0 - N)"
44660702
DM
3808 },
3809 "storage" : {
3810 "description" : "Store resulting file to this storage.",
3811 "format" : "pve-storage-id",
3812 "optional" : 1,
013dc89f
DM
3813 "type" : "string",
3814 "typetext" : "<string>"
56122987 3815 },
44660702
DM
3816 "tmpdir" : {
3817 "description" : "Store temporary files to specified directory.",
3818 "optional" : 1,
013dc89f
DM
3819 "type" : "string",
3820 "typetext" : "<string>"
44660702
DM
3821 },
3822 "vmid" : {
3823 "description" : "The ID of the guest system you want to backup.",
3824 "format" : "pve-vmid-list",
3825 "optional" : 1,
013dc89f
DM
3826 "type" : "string",
3827 "typetext" : "<string>"
c5aa7e14
TL
3828 },
3829 "zstd" : {
3830 "default" : 1,
3831 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
3832 "optional" : 1,
3833 "type" : "integer",
3834 "typetext" : "<integer>"
56122987 3835 }
44660702 3836 }
56122987
DM
3837 },
3838 "permissions" : {
3839 "check" : [
3840 "perm",
3841 "/",
3842 [
44660702 3843 "Sys.Modify"
56122987 3844 ]
04d22a9f
TL
3845 ],
3846 "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
56122987 3847 },
44660702
DM
3848 "protected" : 1,
3849 "returns" : {
3850 "type" : "null"
7aacca6f 3851 }
56122987
DM
3852 }
3853 },
04d22a9f 3854 "leaf" : 0,
44660702
DM
3855 "path" : "/cluster/backup/{id}",
3856 "text" : "{id}"
3857 }
3858 ],
3859 "info" : {
3860 "GET" : {
e9cd3bd4 3861 "allowtoken" : 1,
44660702
DM
3862 "description" : "List vzdump backup schedule.",
3863 "method" : "GET",
3864 "name" : "index",
3865 "parameters" : {
3866 "additionalProperties" : 0
3867 },
3868 "permissions" : {
3869 "check" : [
3870 "perm",
3871 "/",
3872 [
3873 "Sys.Audit"
3874 ]
3875 ]
3876 },
3877 "returns" : {
3878 "items" : {
3879 "properties" : {
3880 "id" : {
1c532546
TL
3881 "description" : "The job ID.",
3882 "maxLength" : 50,
44660702
DM
3883 "type" : "string"
3884 }
3885 },
3886 "type" : "object"
3887 },
3888 "links" : [
3889 {
3890 "href" : "{id}",
3891 "rel" : "child"
3892 }
3893 ],
3894 "type" : "array"
3895 }
3896 },
3897 "POST" : {
e9cd3bd4 3898 "allowtoken" : 1,
44660702
DM
3899 "description" : "Create new vzdump backup job.",
3900 "method" : "POST",
3901 "name" : "create_job",
3902 "parameters" : {
3903 "additionalProperties" : 0,
3904 "properties" : {
3905 "all" : {
3906 "default" : 0,
3907 "description" : "Backup all known guest systems on this host.",
3908 "optional" : 1,
013dc89f
DM
3909 "type" : "boolean",
3910 "typetext" : "<boolean>"
44660702
DM
3911 },
3912 "bwlimit" : {
3913 "default" : 0,
3914 "description" : "Limit I/O bandwidth (KBytes per second).",
3915 "minimum" : 0,
3916 "optional" : 1,
4bd7df8b 3917 "type" : "integer",
013dc89f 3918 "typetext" : "<integer> (0 - N)"
44660702 3919 },
5370fa8c
TL
3920 "comment" : {
3921 "description" : "Description for the Job.",
3922 "maxLength" : 512,
3923 "optional" : 1,
3924 "type" : "string",
3925 "typetext" : "<string>"
3926 },
44660702
DM
3927 "compress" : {
3928 "default" : "0",
3929 "description" : "Compress dump file.",
3930 "enum" : [
3931 "0",
3932 "1",
3933 "gzip",
c5aa7e14
TL
3934 "lzo",
3935 "zstd"
44660702
DM
3936 ],
3937 "optional" : 1,
3938 "type" : "string"
3939 },
3940 "dow" : {
3941 "default" : "mon,tue,wed,thu,fri,sat,sun",
3942 "description" : "Day of week selection.",
3943 "format" : "pve-day-of-week-list",
3944 "optional" : 1,
5370fa8c 3945 "requires" : "starttime",
013dc89f
DM
3946 "type" : "string",
3947 "typetext" : "<string>"
44660702
DM
3948 },
3949 "dumpdir" : {
3950 "description" : "Store resulting files to specified directory.",
3951 "optional" : 1,
013dc89f
DM
3952 "type" : "string",
3953 "typetext" : "<string>"
44660702
DM
3954 },
3955 "enabled" : {
3956 "default" : "1",
3957 "description" : "Enable or disable the job.",
3958 "optional" : 1,
013dc89f
DM
3959 "type" : "boolean",
3960 "typetext" : "<boolean>"
44660702
DM
3961 },
3962 "exclude" : {
3963 "description" : "Exclude specified guest systems (assumes --all)",
3964 "format" : "pve-vmid-list",
3965 "optional" : 1,
013dc89f
DM
3966 "type" : "string",
3967 "typetext" : "<string>"
44660702
DM
3968 },
3969 "exclude-path" : {
d2656385 3970 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
44660702
DM
3971 "format" : "string-alist",
3972 "optional" : 1,
013dc89f
DM
3973 "type" : "string",
3974 "typetext" : "<string>"
44660702 3975 },
5370fa8c
TL
3976 "id" : {
3977 "description" : "Job ID (will be autogenerated).",
3978 "format" : "pve-configid",
3979 "optional" : 1,
3980 "type" : "string",
3981 "typetext" : "<string>"
3982 },
44660702
DM
3983 "ionice" : {
3984 "default" : 7,
3985 "description" : "Set CFQ ionice priority.",
3986 "maximum" : 8,
3987 "minimum" : 0,
3988 "optional" : 1,
4bd7df8b 3989 "type" : "integer",
013dc89f 3990 "typetext" : "<integer> (0 - 8)"
44660702
DM
3991 },
3992 "lockwait" : {
3993 "default" : 180,
3994 "description" : "Maximal time to wait for the global lock (minutes).",
3995 "minimum" : 0,
3996 "optional" : 1,
4bd7df8b 3997 "type" : "integer",
013dc89f 3998 "typetext" : "<integer> (0 - N)"
44660702
DM
3999 },
4000 "mailnotification" : {
4001 "default" : "always",
4002 "description" : "Specify when to send an email",
4003 "enum" : [
4004 "always",
4005 "failure"
4006 ],
4007 "optional" : 1,
4008 "type" : "string"
4009 },
4010 "mailto" : {
d2656385
TL
4011 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
4012 "format" : "email-or-username-list",
44660702 4013 "optional" : 1,
013dc89f
DM
4014 "type" : "string",
4015 "typetext" : "<string>"
44660702
DM
4016 },
4017 "maxfiles" : {
0695fdaf 4018 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
44660702
DM
4019 "minimum" : 1,
4020 "optional" : 1,
4bd7df8b 4021 "type" : "integer",
013dc89f 4022 "typetext" : "<integer> (1 - N)"
44660702
DM
4023 },
4024 "mode" : {
4025 "default" : "snapshot",
4026 "description" : "Backup mode.",
4027 "enum" : [
4028 "snapshot",
4029 "suspend",
4030 "stop"
4031 ],
4032 "optional" : 1,
4033 "type" : "string"
4034 },
4035 "node" : {
4036 "description" : "Only run if executed on this node.",
4037 "format" : "pve-node",
4038 "optional" : 1,
013dc89f
DM
4039 "type" : "string",
4040 "typetext" : "<string>"
44660702 4041 },
7af2edf9 4042 "notes-template" : {
4e7f60c2
TL
4043 "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future. Needs to be a single line, newline and backslash need to be escaped as '\\n' and '\\\\' respectively.",
4044 "maxLength" : 1024,
7af2edf9
TL
4045 "optional" : 1,
4046 "requires" : "storage",
4047 "type" : "string",
4048 "typetext" : "<string>"
4049 },
4e7f60c2
TL
4050 "performance" : {
4051 "description" : "Other performance-related settings.",
4052 "format" : "backup-performance",
4053 "optional" : 1,
4054 "type" : "string",
4055 "typetext" : "[max-workers=<integer>]"
4056 },
44660702
DM
4057 "pigz" : {
4058 "default" : 0,
4059 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
4060 "optional" : 1,
013dc89f
DM
4061 "type" : "integer",
4062 "typetext" : "<integer>"
44660702 4063 },
9226ccbc
TL
4064 "pool" : {
4065 "description" : "Backup all known guest systems included in the specified pool.",
4066 "optional" : 1,
4067 "type" : "string",
4068 "typetext" : "<string>"
4069 },
7af2edf9
TL
4070 "protected" : {
4071 "description" : "If true, mark backup(s) as protected.",
4072 "optional" : 1,
4073 "requires" : "storage",
4074 "type" : "boolean",
4075 "typetext" : "<boolean>"
4076 },
739d4d64 4077 "prune-backups" : {
0695fdaf 4078 "default" : "keep-all=1",
739d4d64
TL
4079 "description" : "Use these retention options instead of those from the storage configuration.",
4080 "format" : "prune-backups",
4081 "optional" : 1,
4082 "type" : "string",
4772952b 4083 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 4084 },
44660702
DM
4085 "quiet" : {
4086 "default" : 0,
4087 "description" : "Be quiet.",
4088 "optional" : 1,
013dc89f
DM
4089 "type" : "boolean",
4090 "typetext" : "<boolean>"
44660702
DM
4091 },
4092 "remove" : {
4093 "default" : 1,
0695fdaf 4094 "description" : "Prune older backups according to 'prune-backups'.",
44660702 4095 "optional" : 1,
013dc89f
DM
4096 "type" : "boolean",
4097 "typetext" : "<boolean>"
44660702 4098 },
de786b48
TL
4099 "repeat-missed" : {
4100 "default" : 0,
4101 "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
4102 "optional" : 1,
4103 "type" : "boolean",
4104 "typetext" : "<boolean>"
4105 },
5370fa8c
TL
4106 "schedule" : {
4107 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
4108 "format" : "pve-calendar-event",
4109 "maxLength" : 128,
4110 "optional" : 1,
4111 "type" : "string",
4112 "typetext" : "<string>"
4113 },
44660702
DM
4114 "script" : {
4115 "description" : "Use specified hook script.",
4116 "optional" : 1,
013dc89f
DM
4117 "type" : "string",
4118 "typetext" : "<string>"
44660702 4119 },
44660702
DM
4120 "starttime" : {
4121 "description" : "Job Start time.",
5370fa8c 4122 "optional" : 1,
44660702
DM
4123 "pattern" : "\\d{1,2}:\\d{1,2}",
4124 "type" : "string",
4125 "typetext" : "HH:MM"
4126 },
4127 "stdexcludes" : {
4128 "default" : 1,
4129 "description" : "Exclude temporary files and logs.",
4130 "optional" : 1,
013dc89f
DM
4131 "type" : "boolean",
4132 "typetext" : "<boolean>"
44660702
DM
4133 },
4134 "stop" : {
4135 "default" : 0,
1e3f8156 4136 "description" : "Stop running backup jobs on this host.",
44660702 4137 "optional" : 1,
013dc89f
DM
4138 "type" : "boolean",
4139 "typetext" : "<boolean>"
44660702
DM
4140 },
4141 "stopwait" : {
4142 "default" : 10,
4143 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
4144 "minimum" : 0,
4145 "optional" : 1,
4bd7df8b 4146 "type" : "integer",
013dc89f 4147 "typetext" : "<integer> (0 - N)"
44660702
DM
4148 },
4149 "storage" : {
4150 "description" : "Store resulting file to this storage.",
4151 "format" : "pve-storage-id",
4152 "optional" : 1,
013dc89f
DM
4153 "type" : "string",
4154 "typetext" : "<string>"
44660702
DM
4155 },
4156 "tmpdir" : {
4157 "description" : "Store temporary files to specified directory.",
4158 "optional" : 1,
013dc89f
DM
4159 "type" : "string",
4160 "typetext" : "<string>"
44660702
DM
4161 },
4162 "vmid" : {
4163 "description" : "The ID of the guest system you want to backup.",
4164 "format" : "pve-vmid-list",
4165 "optional" : 1,
013dc89f
DM
4166 "type" : "string",
4167 "typetext" : "<string>"
c5aa7e14
TL
4168 },
4169 "zstd" : {
4170 "default" : 1,
4171 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
4172 "optional" : 1,
4173 "type" : "integer",
4174 "typetext" : "<integer>"
44660702
DM
4175 }
4176 }
4177 },
4178 "permissions" : {
4179 "check" : [
4180 "perm",
4181 "/",
4182 [
4183 "Sys.Modify"
4184 ]
de0983cb
DM
4185 ],
4186 "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
44660702
DM
4187 },
4188 "protected" : 1,
4189 "returns" : {
4190 "type" : "null"
4191 }
4192 }
4193 },
4194 "leaf" : 0,
4195 "path" : "/cluster/backup",
4196 "text" : "backup"
4197 },
04d22a9f
TL
4198 {
4199 "children" : [
4200 {
4201 "info" : {
4202 "GET" : {
4203 "allowtoken" : 1,
4204 "description" : "Shows all guests which are not covered by any backup job.",
4205 "method" : "GET",
4206 "name" : "get_guests_not_in_backup",
4207 "parameters" : {
4208 "additionalProperties" : 0
4209 },
4210 "permissions" : {
4211 "check" : [
4212 "perm",
4213 "/",
4214 [
4215 "Sys.Audit"
4216 ]
4217 ]
4218 },
4219 "protected" : 1,
4220 "returns" : {
4221 "description" : "Contains the guest objects.",
4222 "items" : {
4223 "properties" : {
4224 "name" : {
4225 "description" : "Name of the guest",
4226 "optional" : 1,
4227 "type" : "string"
4228 },
4229 "type" : {
4230 "description" : "Type of the guest.",
4231 "enum" : [
4232 "qemu",
4233 "lxc"
4234 ],
4235 "type" : "string"
4236 },
4237 "vmid" : {
4238 "description" : "VMID of the guest.",
4239 "type" : "integer"
4240 }
4241 },
4242 "type" : "object"
4243 },
4244 "type" : "array"
4245 }
4246 }
4247 },
4248 "leaf" : 1,
34f3e481
TL
4249 "path" : "/cluster/backup-info/not-backed-up",
4250 "text" : "not-backed-up"
04d22a9f
TL
4251 }
4252 ],
4253 "info" : {
4254 "GET" : {
4255 "allowtoken" : 1,
34f3e481 4256 "description" : "Index for backup info related endpoints",
04d22a9f 4257 "method" : "GET",
34f3e481 4258 "name" : "index",
04d22a9f
TL
4259 "parameters" : {
4260 "additionalProperties" : 0
4261 },
04d22a9f 4262 "returns" : {
34f3e481
TL
4263 "description" : "Directory index.",
4264 "items" : {
4265 "properties" : {
4266 "subdir" : {
4267 "description" : "API sub-directory endpoint",
4268 "type" : "string"
4269 }
4270 },
4271 "type" : "object"
4272 },
4273 "links" : [
4274 {
4275 "href" : "{subdir}",
4276 "rel" : "child"
4277 }
4278 ],
4279 "type" : "array"
04d22a9f
TL
4280 }
4281 }
4282 },
4283 "leaf" : 0,
34f3e481
TL
4284 "path" : "/cluster/backup-info",
4285 "text" : "backup-info"
04d22a9f 4286 },
44660702
DM
4287 {
4288 "children" : [
4289 {
4290 "children" : [
4291 {
4292 "children" : [
56122987 4293 {
56122987
DM
4294 "info" : {
4295 "POST" : {
e9cd3bd4 4296 "allowtoken" : 1,
44660702
DM
4297 "description" : "Request resource migration (online) to another node.",
4298 "method" : "POST",
4299 "name" : "migrate",
56122987 4300 "parameters" : {
7aacca6f 4301 "additionalProperties" : 0,
56122987
DM
4302 "properties" : {
4303 "node" : {
95895385 4304 "description" : "Target node.",
44660702 4305 "format" : "pve-node",
013dc89f
DM
4306 "type" : "string",
4307 "typetext" : "<string>"
56122987
DM
4308 },
4309 "sid" : {
44660702 4310 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
56122987 4311 "format" : "pve-ha-resource-or-vm-id",
7aacca6f 4312 "type" : "string",
44660702 4313 "typetext" : "<type>:<name>"
56122987 4314 }
7aacca6f 4315 }
56122987 4316 },
56122987
DM
4317 "permissions" : {
4318 "check" : [
4319 "perm",
4320 "/",
4321 [
4322 "Sys.Console"
4323 ]
4324 ]
4325 },
7aacca6f 4326 "protected" : 1,
7aacca6f
DM
4327 "returns" : {
4328 "type" : "null"
44660702 4329 }
56122987 4330 }
44660702
DM
4331 },
4332 "leaf" : 1,
4333 "path" : "/cluster/ha/resources/{sid}/migrate",
4334 "text" : "migrate"
4335 },
4336 {
4337 "info" : {
4338 "POST" : {
e9cd3bd4 4339 "allowtoken" : 1,
44660702
DM
4340 "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.",
4341 "method" : "POST",
4342 "name" : "relocate",
4343 "parameters" : {
4344 "additionalProperties" : 0,
4345 "properties" : {
4346 "node" : {
95895385 4347 "description" : "Target node.",
44660702 4348 "format" : "pve-node",
013dc89f
DM
4349 "type" : "string",
4350 "typetext" : "<string>"
44660702
DM
4351 },
4352 "sid" : {
4353 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
4354 "format" : "pve-ha-resource-or-vm-id",
4355 "type" : "string",
4356 "typetext" : "<type>:<name>"
4357 }
4358 }
4359 },
4360 "permissions" : {
4361 "check" : [
4362 "perm",
4363 "/",
4364 [
4365 "Sys.Console"
4366 ]
4367 ]
4368 },
4369 "protected" : 1,
4370 "returns" : {
4371 "type" : "null"
4372 }
4373 }
4374 },
4375 "leaf" : 1,
4376 "path" : "/cluster/ha/resources/{sid}/relocate",
4377 "text" : "relocate"
4378 }
4379 ],
4380 "info" : {
4381 "DELETE" : {
e9cd3bd4 4382 "allowtoken" : 1,
44660702
DM
4383 "description" : "Delete resource configuration.",
4384 "method" : "DELETE",
4385 "name" : "delete",
7aacca6f 4386 "parameters" : {
44660702 4387 "additionalProperties" : 0,
7aacca6f
DM
4388 "properties" : {
4389 "sid" : {
4390 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
44660702 4391 "format" : "pve-ha-resource-or-vm-id",
7aacca6f 4392 "type" : "string",
44660702
DM
4393 "typetext" : "<type>:<name>"
4394 }
4395 }
4396 },
4397 "permissions" : {
4398 "check" : [
4399 "perm",
4400 "/",
4401 [
4402 "Sys.Console"
4403 ]
4404 ]
4405 },
4406 "protected" : 1,
4407 "returns" : {
4408 "type" : "null"
4409 }
4410 },
4411 "GET" : {
e9cd3bd4 4412 "allowtoken" : 1,
44660702
DM
4413 "description" : "Read resource configuration.",
4414 "method" : "GET",
4415 "name" : "read",
4416 "parameters" : {
4417 "additionalProperties" : 0,
4418 "properties" : {
4419 "sid" : {
4420 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
7aacca6f 4421 "format" : "pve-ha-resource-or-vm-id",
44660702 4422 "type" : "string",
7aacca6f
DM
4423 "typetext" : "<type>:<name>"
4424 }
44660702 4425 }
7aacca6f
DM
4426 },
4427 "permissions" : {
4428 "check" : [
4429 "perm",
4430 "/",
4431 [
4432 "Sys.Audit"
4433 ]
4434 ]
4435 },
5f26e15b
TL
4436 "returns" : {
4437 "properties" : {
4438 "comment" : {
4439 "description" : "Description.",
4440 "optional" : 1,
4441 "type" : "string"
4442 },
4443 "digest" : {
4444 "description" : "Can be used to prevent concurrent modifications.",
4445 "type" : "string"
4446 },
4447 "group" : {
4448 "description" : "The HA group identifier.",
4449 "format" : "pve-configid",
4450 "optional" : 1,
4451 "type" : "string"
4452 },
4453 "max_relocate" : {
4454 "description" : "Maximal number of service relocate tries when a service failes to start.",
4455 "optional" : 1,
4456 "type" : "integer"
4457 },
4458 "max_restart" : {
4459 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4460 "optional" : 1,
4461 "type" : "integer"
4462 },
4463 "sid" : {
4464 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
4465 "format" : "pve-ha-resource-or-vm-id",
4466 "type" : "string",
4467 "typetext" : "<type>:<name>"
4468 },
4469 "state" : {
4470 "description" : "Requested resource state.",
4471 "enum" : [
4472 "started",
4473 "stopped",
4474 "enabled",
4475 "disabled",
4476 "ignored"
4477 ],
4478 "optional" : 1,
4479 "type" : "string"
4480 },
4481 "type" : {
4482 "description" : "The type of the resources.",
4483 "type" : "string"
4484 }
4485 },
4486 "type" : "object"
4487 }
7aacca6f 4488 },
56122987 4489 "PUT" : {
e9cd3bd4 4490 "allowtoken" : 1,
44660702 4491 "description" : "Update resource configuration.",
7aacca6f 4492 "method" : "PUT",
44660702 4493 "name" : "update",
56122987
DM
4494 "parameters" : {
4495 "additionalProperties" : 0,
4496 "properties" : {
44660702
DM
4497 "comment" : {
4498 "description" : "Description.",
4499 "maxLength" : 4096,
56122987 4500 "optional" : 1,
013dc89f
DM
4501 "type" : "string",
4502 "typetext" : "<string>"
56122987 4503 },
7aacca6f
DM
4504 "delete" : {
4505 "description" : "A list of settings you want to delete.",
7aacca6f 4506 "format" : "pve-configid-list",
44660702
DM
4507 "maxLength" : 4096,
4508 "optional" : 1,
013dc89f
DM
4509 "type" : "string",
4510 "typetext" : "<string>"
56122987 4511 },
44660702
DM
4512 "digest" : {
4513 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
4514 "maxLength" : 40,
4515 "optional" : 1,
013dc89f
DM
4516 "type" : "string",
4517 "typetext" : "<string>"
56122987 4518 },
44660702
DM
4519 "group" : {
4520 "description" : "The HA group identifier.",
4521 "format" : "pve-configid",
7aacca6f 4522 "optional" : 1,
013dc89f
DM
4523 "type" : "string",
4524 "typetext" : "<string>"
56122987
DM
4525 },
4526 "max_relocate" : {
7aacca6f 4527 "default" : 1,
56122987 4528 "description" : "Maximal number of service relocate tries when a service failes to start.",
44660702
DM
4529 "minimum" : 0,
4530 "optional" : 1,
4bd7df8b 4531 "type" : "integer",
013dc89f 4532 "typetext" : "<integer> (0 - N)"
7aacca6f 4533 },
44660702
DM
4534 "max_restart" : {
4535 "default" : 1,
4536 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4537 "minimum" : 0,
7aacca6f 4538 "optional" : 1,
4bd7df8b 4539 "type" : "integer",
013dc89f 4540 "typetext" : "<integer> (0 - N)"
44660702
DM
4541 },
4542 "sid" : {
4543 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
4544 "format" : "pve-ha-resource-or-vm-id",
4545 "type" : "string",
4546 "typetext" : "<type>:<name>"
7aacca6f
DM
4547 },
4548 "state" : {
f13c1238
DM
4549 "default" : "started",
4550 "description" : "Requested resource state.",
7aacca6f 4551 "enum" : [
f13c1238
DM
4552 "started",
4553 "stopped",
7aacca6f 4554 "enabled",
2489d6df
WB
4555 "disabled",
4556 "ignored"
7aacca6f 4557 ],
7aacca6f 4558 "optional" : 1,
f13c1238 4559 "type" : "string",
2489d6df 4560 "verbose_description" : "Requested resource state. The CRM reads this state and acts accordingly.\nPlease note that `enabled` is just an alias for `started`.\n\n`started`;;\n\nThe CRM tries to start the resource. Service state is\nset to `started` after successful start. On node failures, or when start\nfails, it tries to recover the resource. If everything fails, service\nstate it set to `error`.\n\n`stopped`;;\n\nThe CRM tries to keep the resource in `stopped` state, but it\nstill tries to relocate the resources on node failures.\n\n`disabled`;;\n\nThe CRM tries to put the resource in `stopped` state, but does not try\nto relocate the resources on node failures. The main purpose of this\nstate is error recovery, because it is the only way to move a resource out\nof the `error` state.\n\n`ignored`;;\n\nThe resource gets removed from the manager status and so the CRM and the LRM do\nnot touch the resource anymore. All {pve} API calls affecting this resource\nwill be executed, directly bypassing the HA stack. CRM commands will be thrown\naway while there source is in this state. The resource will not get relocated\non node failures.\n\n"
56122987 4561 }
44660702
DM
4562 },
4563 "type" : "object"
56122987 4564 },
56122987
DM
4565 "permissions" : {
4566 "check" : [
4567 "perm",
4568 "/",
4569 [
4570 "Sys.Console"
4571 ]
4572 ]
4573 },
7aacca6f 4574 "protected" : 1,
56122987
DM
4575 "returns" : {
4576 "type" : "null"
4577 }
4578 }
4579 },
44660702 4580 "leaf" : 0,
7aacca6f 4581 "path" : "/cluster/ha/resources/{sid}",
44660702 4582 "text" : "{sid}"
56122987
DM
4583 }
4584 ],
7aacca6f
DM
4585 "info" : {
4586 "GET" : {
e9cd3bd4 4587 "allowtoken" : 1,
44660702
DM
4588 "description" : "List HA resources.",
4589 "method" : "GET",
4590 "name" : "index",
7aacca6f 4591 "parameters" : {
44660702
DM
4592 "additionalProperties" : 0,
4593 "properties" : {
4594 "type" : {
4595 "description" : "Only list resources of specific type",
4596 "enum" : [
4597 "ct",
4598 "vm"
4599 ],
4600 "optional" : 1,
4601 "type" : "string"
4602 }
4603 }
7aacca6f 4604 },
7aacca6f
DM
4605 "permissions" : {
4606 "check" : [
4607 "perm",
4608 "/",
4609 [
4610 "Sys.Audit"
4611 ]
4612 ]
4613 },
7aacca6f 4614 "returns" : {
7aacca6f 4615 "items" : {
7aacca6f 4616 "properties" : {
44660702 4617 "sid" : {
7aacca6f
DM
4618 "type" : "string"
4619 }
44660702
DM
4620 },
4621 "type" : "object"
7aacca6f
DM
4622 },
4623 "links" : [
4624 {
44660702 4625 "href" : "{sid}",
7aacca6f
DM
4626 "rel" : "child"
4627 }
44660702
DM
4628 ],
4629 "type" : "array"
7aacca6f
DM
4630 }
4631 },
4632 "POST" : {
e9cd3bd4 4633 "allowtoken" : 1,
44660702 4634 "description" : "Create a new HA resource.",
7aacca6f 4635 "method" : "POST",
44660702 4636 "name" : "create",
7aacca6f 4637 "parameters" : {
44660702 4638 "additionalProperties" : 0,
7aacca6f
DM
4639 "properties" : {
4640 "comment" : {
7aacca6f 4641 "description" : "Description.",
44660702 4642 "maxLength" : 4096,
7aacca6f 4643 "optional" : 1,
013dc89f
DM
4644 "type" : "string",
4645 "typetext" : "<string>"
7aacca6f 4646 },
44660702
DM
4647 "group" : {
4648 "description" : "The HA group identifier.",
4649 "format" : "pve-configid",
7aacca6f 4650 "optional" : 1,
013dc89f
DM
4651 "type" : "string",
4652 "typetext" : "<string>"
7aacca6f 4653 },
44660702
DM
4654 "max_relocate" : {
4655 "default" : 1,
4656 "description" : "Maximal number of service relocate tries when a service failes to start.",
4657 "minimum" : 0,
7aacca6f 4658 "optional" : 1,
4bd7df8b 4659 "type" : "integer",
013dc89f 4660 "typetext" : "<integer> (0 - N)"
7aacca6f 4661 },
44660702
DM
4662 "max_restart" : {
4663 "default" : 1,
4664 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4665 "minimum" : 0,
4666 "optional" : 1,
4bd7df8b 4667 "type" : "integer",
013dc89f 4668 "typetext" : "<integer> (0 - N)"
44660702
DM
4669 },
4670 "sid" : {
4671 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
4672 "format" : "pve-ha-resource-or-vm-id",
4673 "type" : "string",
4674 "typetext" : "<type>:<name>"
4675 },
4676 "state" : {
f13c1238
DM
4677 "default" : "started",
4678 "description" : "Requested resource state.",
7aacca6f 4679 "enum" : [
f13c1238
DM
4680 "started",
4681 "stopped",
44660702 4682 "enabled",
2489d6df
WB
4683 "disabled",
4684 "ignored"
7aacca6f 4685 ],
7aacca6f 4686 "optional" : 1,
f13c1238 4687 "type" : "string",
2489d6df 4688 "verbose_description" : "Requested resource state. The CRM reads this state and acts accordingly.\nPlease note that `enabled` is just an alias for `started`.\n\n`started`;;\n\nThe CRM tries to start the resource. Service state is\nset to `started` after successful start. On node failures, or when start\nfails, it tries to recover the resource. If everything fails, service\nstate it set to `error`.\n\n`stopped`;;\n\nThe CRM tries to keep the resource in `stopped` state, but it\nstill tries to relocate the resources on node failures.\n\n`disabled`;;\n\nThe CRM tries to put the resource in `stopped` state, but does not try\nto relocate the resources on node failures. The main purpose of this\nstate is error recovery, because it is the only way to move a resource out\nof the `error` state.\n\n`ignored`;;\n\nThe resource gets removed from the manager status and so the CRM and the LRM do\nnot touch the resource anymore. All {pve} API calls affecting this resource\nwill be executed, directly bypassing the HA stack. CRM commands will be thrown\naway while there source is in this state. The resource will not get relocated\non node failures.\n\n"
7aacca6f 4689 },
44660702
DM
4690 "type" : {
4691 "description" : "Resource type.",
4692 "enum" : [
4693 "ct",
4694 "vm"
4695 ],
4696 "optional" : 1,
4697 "type" : "string"
4698 }
7aacca6f 4699 },
44660702 4700 "type" : "object"
7aacca6f
DM
4701 },
4702 "permissions" : {
4703 "check" : [
4704 "perm",
4705 "/",
4706 [
4707 "Sys.Console"
4708 ]
4709 ]
4710 },
44660702
DM
4711 "protected" : 1,
4712 "returns" : {
4713 "type" : "null"
4714 }
7aacca6f
DM
4715 }
4716 },
44660702
DM
4717 "leaf" : 0,
4718 "path" : "/cluster/ha/resources",
4719 "text" : "resources"
4720 },
4721 {
56122987
DM
4722 "children" : [
4723 {
56122987 4724 "info" : {
44660702 4725 "DELETE" : {
e9cd3bd4 4726 "allowtoken" : 1,
44660702
DM
4727 "description" : "Delete ha group configuration.",
4728 "method" : "DELETE",
4729 "name" : "delete",
56122987 4730 "parameters" : {
7aacca6f 4731 "additionalProperties" : 0,
56122987 4732 "properties" : {
7aacca6f
DM
4733 "group" : {
4734 "description" : "The HA group identifier.",
44660702 4735 "format" : "pve-configid",
013dc89f
DM
4736 "type" : "string",
4737 "typetext" : "<string>"
56122987 4738 }
7aacca6f 4739 }
56122987 4740 },
56122987
DM
4741 "permissions" : {
4742 "check" : [
4743 "perm",
4744 "/",
4745 [
7aacca6f 4746 "Sys.Console"
56122987
DM
4747 ]
4748 ]
4749 },
44660702 4750 "protected" : 1,
7aacca6f
DM
4751 "returns" : {
4752 "type" : "null"
56122987
DM
4753 }
4754 },
44660702 4755 "GET" : {
e9cd3bd4 4756 "allowtoken" : 1,
44660702
DM
4757 "description" : "Read ha group configuration.",
4758 "method" : "GET",
4759 "name" : "read",
56122987 4760 "parameters" : {
44660702 4761 "additionalProperties" : 0,
56122987
DM
4762 "properties" : {
4763 "group" : {
4764 "description" : "The HA group identifier.",
44660702 4765 "format" : "pve-configid",
013dc89f
DM
4766 "type" : "string",
4767 "typetext" : "<string>"
56122987 4768 }
44660702 4769 }
56122987 4770 },
56122987
DM
4771 "permissions" : {
4772 "check" : [
4773 "perm",
4774 "/",
4775 [
44660702 4776 "Sys.Audit"
56122987
DM
4777 ]
4778 ]
4779 },
44660702 4780 "returns" : {}
7aacca6f 4781 },
44660702 4782 "PUT" : {
e9cd3bd4 4783 "allowtoken" : 1,
44660702
DM
4784 "description" : "Update ha group configuration.",
4785 "method" : "PUT",
4786 "name" : "update",
7aacca6f 4787 "parameters" : {
44660702 4788 "additionalProperties" : 0,
7aacca6f 4789 "properties" : {
44660702
DM
4790 "comment" : {
4791 "description" : "Description.",
4792 "maxLength" : 4096,
4793 "optional" : 1,
013dc89f
DM
4794 "type" : "string",
4795 "typetext" : "<string>"
44660702
DM
4796 },
4797 "delete" : {
4798 "description" : "A list of settings you want to delete.",
4799 "format" : "pve-configid-list",
4800 "maxLength" : 4096,
4801 "optional" : 1,
013dc89f
DM
4802 "type" : "string",
4803 "typetext" : "<string>"
44660702
DM
4804 },
4805 "digest" : {
4806 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
4807 "maxLength" : 40,
4808 "optional" : 1,
013dc89f
DM
4809 "type" : "string",
4810 "typetext" : "<string>"
44660702 4811 },
7aacca6f
DM
4812 "group" : {
4813 "description" : "The HA group identifier.",
44660702 4814 "format" : "pve-configid",
013dc89f
DM
4815 "type" : "string",
4816 "typetext" : "<string>"
44660702
DM
4817 },
4818 "nodes" : {
f13c1238 4819 "description" : "List of cluster node names with optional priority.",
44660702
DM
4820 "format" : "pve-ha-group-node-list",
4821 "optional" : 1,
7aacca6f 4822 "type" : "string",
f13c1238
DM
4823 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
4824 "verbose_description" : "List of cluster node members, where a priority can be given to each node. A resource bound to a group will run on the available nodes with the highest priority. If there are more nodes in the highest priority class, the services will get distributed to those nodes. The priorities have a relative meaning only."
44660702
DM
4825 },
4826 "nofailback" : {
4827 "default" : 0,
4828 "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
4829 "optional" : 1,
013dc89f
DM
4830 "type" : "boolean",
4831 "typetext" : "<boolean>"
44660702
DM
4832 },
4833 "restricted" : {
4834 "default" : 0,
c4808e75 4835 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
44660702 4836 "optional" : 1,
013dc89f 4837 "type" : "boolean",
c4808e75
DM
4838 "typetext" : "<boolean>",
4839 "verbose_description" : "Resources bound to restricted groups may only run on nodes defined by the group. The resource will be placed in the stopped state if no group node member is online. Resources on unrestricted groups may run on any cluster node if all group members are offline, but they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with only one member."
7aacca6f
DM
4840 }
4841 },
44660702 4842 "type" : "object"
7aacca6f 4843 },
7aacca6f
DM
4844 "permissions" : {
4845 "check" : [
4846 "perm",
4847 "/",
4848 [
44660702 4849 "Sys.Console"
7aacca6f
DM
4850 ]
4851 ]
4852 },
44660702
DM
4853 "protected" : 1,
4854 "returns" : {
4855 "type" : "null"
4856 }
56122987
DM
4857 }
4858 },
4859 "leaf" : 1,
44660702
DM
4860 "path" : "/cluster/ha/groups/{group}",
4861 "text" : "{group}"
56122987 4862 }
44660702
DM
4863 ],
4864 "info" : {
4865 "GET" : {
e9cd3bd4 4866 "allowtoken" : 1,
44660702
DM
4867 "description" : "Get HA groups.",
4868 "method" : "GET",
4869 "name" : "index",
4870 "parameters" : {
4871 "additionalProperties" : 0
4872 },
4873 "permissions" : {
4874 "check" : [
4875 "perm",
4876 "/",
4877 [
4878 "Sys.Audit"
4879 ]
4880 ]
4881 },
4882 "returns" : {
4883 "items" : {
4884 "properties" : {
4885 "group" : {
4886 "type" : "string"
4887 }
4888 },
4889 "type" : "object"
4890 },
4891 "links" : [
4892 {
4893 "href" : "{group}",
4894 "rel" : "child"
4895 }
4896 ],
4897 "type" : "array"
4898 }
4899 },
4900 "POST" : {
e9cd3bd4 4901 "allowtoken" : 1,
44660702
DM
4902 "description" : "Create a new HA group.",
4903 "method" : "POST",
4904 "name" : "create",
4905 "parameters" : {
4906 "additionalProperties" : 0,
4907 "properties" : {
4908 "comment" : {
4909 "description" : "Description.",
4910 "maxLength" : 4096,
4911 "optional" : 1,
013dc89f
DM
4912 "type" : "string",
4913 "typetext" : "<string>"
44660702
DM
4914 },
4915 "group" : {
4916 "description" : "The HA group identifier.",
4917 "format" : "pve-configid",
013dc89f
DM
4918 "type" : "string",
4919 "typetext" : "<string>"
44660702
DM
4920 },
4921 "nodes" : {
f13c1238 4922 "description" : "List of cluster node names with optional priority.",
44660702
DM
4923 "format" : "pve-ha-group-node-list",
4924 "optional" : 0,
4925 "type" : "string",
f13c1238
DM
4926 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
4927 "verbose_description" : "List of cluster node members, where a priority can be given to each node. A resource bound to a group will run on the available nodes with the highest priority. If there are more nodes in the highest priority class, the services will get distributed to those nodes. The priorities have a relative meaning only."
44660702
DM
4928 },
4929 "nofailback" : {
4930 "default" : 0,
4931 "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
4932 "optional" : 1,
013dc89f
DM
4933 "type" : "boolean",
4934 "typetext" : "<boolean>"
44660702
DM
4935 },
4936 "restricted" : {
4937 "default" : 0,
c4808e75 4938 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
44660702 4939 "optional" : 1,
013dc89f 4940 "type" : "boolean",
c4808e75
DM
4941 "typetext" : "<boolean>",
4942 "verbose_description" : "Resources bound to restricted groups may only run on nodes defined by the group. The resource will be placed in the stopped state if no group node member is online. Resources on unrestricted groups may run on any cluster node if all group members are offline, but they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with only one member."
44660702
DM
4943 },
4944 "type" : {
4945 "description" : "Group type.",
4946 "enum" : [
4947 "group"
4948 ],
4949 "optional" : 1,
4950 "type" : "string"
4951 }
4952 },
4953 "type" : "object"
4954 },
4955 "permissions" : {
4956 "check" : [
4957 "perm",
4958 "/",
4959 [
4960 "Sys.Console"
4961 ]
4962 ]
4963 },
4964 "protected" : 1,
4965 "returns" : {
4966 "type" : "null"
4967 }
4968 }
4969 },
4970 "leaf" : 0,
4971 "path" : "/cluster/ha/groups",
4972 "text" : "groups"
7aacca6f
DM
4973 },
4974 {
7aacca6f
DM
4975 "children" : [
4976 {
4977 "info" : {
4978 "GET" : {
e9cd3bd4 4979 "allowtoken" : 1,
56122987 4980 "description" : "Get HA manger status.",
44660702 4981 "method" : "GET",
7aacca6f 4982 "name" : "status",
44660702
DM
4983 "parameters" : {
4984 "additionalProperties" : 0
4985 },
56122987
DM
4986 "permissions" : {
4987 "check" : [
4988 "perm",
4989 "/",
4990 [
4991 "Sys.Audit"
4992 ]
4993 ]
7aacca6f 4994 },
44660702
DM
4995 "returns" : {
4996 "type" : "array"
56122987
DM
4997 }
4998 }
7aacca6f 4999 },
7aacca6f 5000 "leaf" : 1,
44660702
DM
5001 "path" : "/cluster/ha/status/current",
5002 "text" : "current"
56122987
DM
5003 },
5004 {
5005 "info" : {
5006 "GET" : {
e9cd3bd4 5007 "allowtoken" : 1,
7aacca6f 5008 "description" : "Get full HA manger status, including LRM status.",
44660702
DM
5009 "method" : "GET",
5010 "name" : "manager_status",
7aacca6f
DM
5011 "parameters" : {
5012 "additionalProperties" : 0
5013 },
56122987
DM
5014 "permissions" : {
5015 "check" : [
5016 "perm",
5017 "/",
5018 [
5019 "Sys.Audit"
5020 ]
5021 ]
44660702
DM
5022 },
5023 "returns" : {
5024 "type" : "object"
7aacca6f 5025 }
56122987
DM
5026 }
5027 },
56122987 5028 "leaf" : 1,
44660702
DM
5029 "path" : "/cluster/ha/status/manager_status",
5030 "text" : "manager_status"
56122987
DM
5031 }
5032 ],
56122987
DM
5033 "info" : {
5034 "GET" : {
e9cd3bd4 5035 "allowtoken" : 1,
44660702 5036 "description" : "Directory index.",
7aacca6f 5037 "method" : "GET",
44660702
DM
5038 "name" : "index",
5039 "parameters" : {
5040 "additionalProperties" : 0
5041 },
5042 "permissions" : {
5043 "user" : "all"
5044 },
56122987 5045 "returns" : {
56122987
DM
5046 "items" : {
5047 "properties" : {},
5048 "type" : "object"
5049 },
5050 "links" : [
5051 {
44660702
DM
5052 "href" : "{name}",
5053 "rel" : "child"
56122987 5054 }
7aacca6f
DM
5055 ],
5056 "type" : "array"
44660702 5057 }
56122987 5058 }
7aacca6f 5059 },
44660702 5060 "leaf" : 0,
7aacca6f 5061 "path" : "/cluster/ha/status",
44660702 5062 "text" : "status"
56122987
DM
5063 }
5064 ],
56122987
DM
5065 "info" : {
5066 "GET" : {
e9cd3bd4 5067 "allowtoken" : 1,
7aacca6f 5068 "description" : "Directory index.",
44660702
DM
5069 "method" : "GET",
5070 "name" : "index",
5071 "parameters" : {
5072 "additionalProperties" : 0
5073 },
7aacca6f
DM
5074 "permissions" : {
5075 "check" : [
5076 "perm",
5077 "/",
5078 [
5079 "Sys.Audit"
5080 ]
5081 ]
5082 },
56122987 5083 "returns" : {
56122987 5084 "items" : {
7aacca6f
DM
5085 "properties" : {
5086 "id" : {
5087 "type" : "string"
5088 }
44660702
DM
5089 },
5090 "type" : "object"
7aacca6f
DM
5091 },
5092 "links" : [
5093 {
5094 "href" : "{id}",
5095 "rel" : "child"
5096 }
44660702
DM
5097 ],
5098 "type" : "array"
7aacca6f
DM
5099 }
5100 }
44660702
DM
5101 },
5102 "leaf" : 0,
5103 "path" : "/cluster/ha",
5104 "text" : "ha"
7aacca6f 5105 },
a9a8e3d1
DM
5106 {
5107 "children" : [
c5aa7e14
TL
5108 {
5109 "children" : [
5110 {
5111 "info" : {
5112 "DELETE" : {
5113 "allowtoken" : 1,
5114 "description" : "Delete ACME plugin configuration.",
5115 "method" : "DELETE",
5116 "name" : "delete_plugin",
5117 "parameters" : {
5118 "additionalProperties" : 0,
5119 "properties" : {
5120 "id" : {
5121 "description" : "Unique identifier for ACME plugin instance.",
5122 "format" : "pve-configid",
5123 "type" : "string",
5124 "typetext" : "<string>"
5125 }
5126 }
5127 },
5128 "permissions" : {
5129 "check" : [
5130 "perm",
5131 "/",
5132 [
5133 "Sys.Modify"
5134 ]
5135 ]
5136 },
5137 "protected" : 1,
5138 "returns" : {
5139 "type" : "null"
5140 }
5141 },
5142 "GET" : {
5143 "allowtoken" : 1,
5144 "description" : "Get ACME plugin configuration.",
5145 "method" : "GET",
5146 "name" : "get_plugin_config",
5147 "parameters" : {
5148 "additionalProperties" : 0,
5149 "properties" : {
5150 "id" : {
5151 "description" : "Unique identifier for ACME plugin instance.",
5152 "format" : "pve-configid",
5153 "type" : "string",
5154 "typetext" : "<string>"
5155 }
5156 }
5157 },
5158 "permissions" : {
5159 "check" : [
5160 "perm",
5161 "/",
5162 [
5163 "Sys.Modify"
5164 ]
5165 ]
5166 },
5167 "protected" : 1,
5168 "returns" : {
5169 "type" : "object"
5170 }
5171 },
5172 "PUT" : {
5173 "allowtoken" : 1,
5174 "description" : "Update ACME plugin configuration.",
5175 "method" : "PUT",
5176 "name" : "update_plugin",
5177 "parameters" : {
5178 "additionalProperties" : 0,
5179 "properties" : {
5180 "api" : {
5181 "description" : "API plugin name",
5182 "enum" : [
d2656385 5183 "1984hosting",
c5aa7e14
TL
5184 "acmedns",
5185 "acmeproxy",
5186 "active24",
5187 "ad",
5188 "ali",
d2656385
TL
5189 "anx",
5190 "arvan",
e7084ef7 5191 "aurora",
c5aa7e14
TL
5192 "autodns",
5193 "aws",
5370fa8c 5194 "azion",
c5aa7e14
TL
5195 "azure",
5196 "cf",
5197 "clouddns",
5198 "cloudns",
5199 "cn",
5200 "conoha",
5201 "constellix",
5202 "cx",
5203 "cyon",
5204 "da",
5205 "ddnss",
5206 "desec",
ac70d7d1 5207 "df",
c5aa7e14
TL
5208 "dgon",
5209 "dnsimple",
5210 "do",
5211 "doapi",
5212 "domeneshop",
5213 "dp",
5214 "dpi",
5215 "dreamhost",
5216 "duckdns",
5217 "durabledns",
5218 "dyn",
5219 "dynu",
5220 "dynv6",
5221 "easydns",
d2656385 5222 "edgedns",
c5aa7e14
TL
5223 "euserv",
5224 "exoscale",
5225 "freedns",
5226 "gandi_livedns",
5227 "gcloud",
5228 "gd",
5229 "gdnsdk",
5230 "he",
d2656385 5231 "hetzner",
c5aa7e14
TL
5232 "hexonet",
5233 "hostingde",
d2656385 5234 "huaweicloud",
c5aa7e14 5235 "infoblox",
d2656385 5236 "infomaniak",
c5aa7e14
TL
5237 "internetbs",
5238 "inwx",
d2656385 5239 "ionos",
c5aa7e14
TL
5240 "ispconfig",
5241 "jd",
d2656385
TL
5242 "joker",
5243 "kappernet",
c5aa7e14
TL
5244 "kas",
5245 "kinghost",
5246 "knot",
5247 "leaseweb",
5248 "lexicon",
5249 "linode",
5250 "linode_v4",
5251 "loopia",
5252 "lua",
5253 "maradns",
5254 "me",
5255 "miab",
5256 "misaka",
5257 "myapi",
5258 "mydevil",
5259 "mydnsjp",
5260 "namecheap",
5261 "namecom",
5262 "namesilo",
5263 "nederhost",
5264 "neodigit",
5265 "netcup",
d2656385 5266 "netlify",
c5aa7e14 5267 "nic",
d2656385
TL
5268 "njalla",
5269 "nm",
c5aa7e14
TL
5270 "nsd",
5271 "nsone",
5272 "nsupdate",
5273 "nw",
5370fa8c 5274 "oci",
c5aa7e14
TL
5275 "one",
5276 "online",
5277 "openprovider",
d2656385 5278 "openstack",
c5aa7e14
TL
5279 "opnsense",
5280 "ovh",
5281 "pdns",
5282 "pleskxml",
5283 "pointhq",
e7084ef7 5284 "porkbun",
d2656385 5285 "rackcorp",
c5aa7e14
TL
5286 "rackspace",
5287 "rcode0",
5288 "regru",
d2656385 5289 "scaleway",
c5aa7e14
TL
5290 "schlundtech",
5291 "selectel",
5292 "servercow",
d2656385 5293 "simply",
c5aa7e14 5294 "tele3",
d2656385 5295 "transip",
c5aa7e14
TL
5296 "ultra",
5297 "unoeuro",
5298 "variomedia",
5370fa8c 5299 "veesp",
c5aa7e14
TL
5300 "vscale",
5301 "vultr",
e7084ef7 5302 "websupport",
d2656385 5303 "world4you",
c5aa7e14
TL
5304 "yandex",
5305 "zilore",
5306 "zone",
5307 "zonomi"
5308 ],
5309 "optional" : 1,
5310 "type" : "string"
5311 },
5312 "data" : {
5313 "description" : "DNS plugin data. (base64 encoded)",
5314 "optional" : 1,
5315 "type" : "string",
5316 "typetext" : "<string>"
5317 },
5318 "delete" : {
5319 "description" : "A list of settings you want to delete.",
5320 "format" : "pve-configid-list",
5321 "maxLength" : 4096,
5322 "optional" : 1,
5323 "type" : "string",
5324 "typetext" : "<string>"
5325 },
5326 "digest" : {
5327 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
5328 "maxLength" : 40,
5329 "optional" : 1,
5330 "type" : "string",
5331 "typetext" : "<string>"
5332 },
5333 "disable" : {
5334 "description" : "Flag to disable the config.",
5335 "optional" : 1,
5336 "type" : "boolean",
5337 "typetext" : "<boolean>"
5338 },
5339 "id" : {
5340 "description" : "ACME Plugin ID name",
5341 "format" : "pve-configid",
5342 "type" : "string",
5343 "typetext" : "<string>"
5344 },
5345 "nodes" : {
5346 "description" : "List of cluster node names.",
5347 "format" : "pve-node-list",
5348 "optional" : 1,
5349 "type" : "string",
5350 "typetext" : "<string>"
5351 },
5352 "validation-delay" : {
5353 "default" : 30,
5354 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
5355 "maximum" : 172800,
5356 "minimum" : 0,
5357 "optional" : 1,
5358 "type" : "integer",
5359 "typetext" : "<integer> (0 - 172800)"
5360 }
5361 },
5362 "type" : "object"
5363 },
5364 "permissions" : {
5365 "check" : [
5366 "perm",
5367 "/",
5368 [
5369 "Sys.Modify"
5370 ]
5371 ]
5372 },
5373 "protected" : 1,
5374 "returns" : {
5375 "type" : "null"
5376 }
5377 }
5378 },
5379 "leaf" : 1,
5380 "path" : "/cluster/acme/plugins/{id}",
5381 "text" : "{id}"
5382 }
5383 ],
5384 "info" : {
5385 "GET" : {
5386 "allowtoken" : 1,
5387 "description" : "ACME plugin index.",
5388 "method" : "GET",
5389 "name" : "index",
5390 "parameters" : {
5391 "additionalProperties" : 0,
5392 "properties" : {
5393 "type" : {
5394 "description" : "Only list ACME plugins of a specific type",
5395 "enum" : [
5396 "dns",
5397 "standalone"
5398 ],
5399 "optional" : 1,
5400 "type" : "string"
5401 }
5402 }
5403 },
5404 "permissions" : {
5405 "check" : [
5406 "perm",
5407 "/",
5408 [
5409 "Sys.Modify"
5410 ]
5411 ]
5412 },
5413 "protected" : 1,
5414 "returns" : {
5415 "items" : {
5416 "properties" : {
5417 "plugin" : {
5418 "description" : "Unique identifier for ACME plugin instance.",
5419 "format" : "pve-configid",
5420 "type" : "string"
5421 }
5422 },
5423 "type" : "object"
5424 },
5425 "links" : [
5426 {
5427 "href" : "{plugin}",
5428 "rel" : "child"
5429 }
5430 ],
5431 "type" : "array"
5432 }
5433 },
5434 "POST" : {
5435 "allowtoken" : 1,
5436 "description" : "Add ACME plugin configuration.",
5437 "method" : "POST",
5438 "name" : "add_plugin",
5439 "parameters" : {
5440 "additionalProperties" : 0,
5441 "properties" : {
5442 "api" : {
5443 "description" : "API plugin name",
5444 "enum" : [
d2656385 5445 "1984hosting",
c5aa7e14
TL
5446 "acmedns",
5447 "acmeproxy",
5448 "active24",
5449 "ad",
5450 "ali",
d2656385
TL
5451 "anx",
5452 "arvan",
e7084ef7 5453 "aurora",
c5aa7e14
TL
5454 "autodns",
5455 "aws",
5370fa8c 5456 "azion",
c5aa7e14
TL
5457 "azure",
5458 "cf",
5459 "clouddns",
5460 "cloudns",
5461 "cn",
5462 "conoha",
5463 "constellix",
5464 "cx",
5465 "cyon",
5466 "da",
5467 "ddnss",
5468 "desec",
ac70d7d1 5469 "df",
c5aa7e14
TL
5470 "dgon",
5471 "dnsimple",
5472 "do",
5473 "doapi",
5474 "domeneshop",
5475 "dp",
5476 "dpi",
5477 "dreamhost",
5478 "duckdns",
5479 "durabledns",
5480 "dyn",
5481 "dynu",
5482 "dynv6",
5483 "easydns",
d2656385 5484 "edgedns",
c5aa7e14
TL
5485 "euserv",
5486 "exoscale",
5487 "freedns",
5488 "gandi_livedns",
5489 "gcloud",
5490 "gd",
5491 "gdnsdk",
5492 "he",
d2656385 5493 "hetzner",
c5aa7e14
TL
5494 "hexonet",
5495 "hostingde",
d2656385 5496 "huaweicloud",
c5aa7e14 5497 "infoblox",
d2656385 5498 "infomaniak",
c5aa7e14
TL
5499 "internetbs",
5500 "inwx",
d2656385 5501 "ionos",
c5aa7e14
TL
5502 "ispconfig",
5503 "jd",
d2656385
TL
5504 "joker",
5505 "kappernet",
c5aa7e14
TL
5506 "kas",
5507 "kinghost",
5508 "knot",
5509 "leaseweb",
5510 "lexicon",
5511 "linode",
5512 "linode_v4",
5513 "loopia",
5514 "lua",
5515 "maradns",
5516 "me",
5517 "miab",
5518 "misaka",
5519 "myapi",
5520 "mydevil",
5521 "mydnsjp",
5522 "namecheap",
5523 "namecom",
5524 "namesilo",
5525 "nederhost",
5526 "neodigit",
5527 "netcup",
d2656385 5528 "netlify",
c5aa7e14 5529 "nic",
d2656385
TL
5530 "njalla",
5531 "nm",
c5aa7e14
TL
5532 "nsd",
5533 "nsone",
5534 "nsupdate",
5535 "nw",
5370fa8c 5536 "oci",
c5aa7e14
TL
5537 "one",
5538 "online",
5539 "openprovider",
d2656385 5540 "openstack",
c5aa7e14
TL
5541 "opnsense",
5542 "ovh",
5543 "pdns",
5544 "pleskxml",
5545 "pointhq",
e7084ef7 5546 "porkbun",
d2656385 5547 "rackcorp",
c5aa7e14
TL
5548 "rackspace",
5549 "rcode0",
5550 "regru",
d2656385 5551 "scaleway",
c5aa7e14
TL
5552 "schlundtech",
5553 "selectel",
5554 "servercow",
d2656385 5555 "simply",
c5aa7e14 5556 "tele3",
d2656385 5557 "transip",
c5aa7e14
TL
5558 "ultra",
5559 "unoeuro",
5560 "variomedia",
5370fa8c 5561 "veesp",
c5aa7e14
TL
5562 "vscale",
5563 "vultr",
e7084ef7 5564 "websupport",
d2656385 5565 "world4you",
c5aa7e14
TL
5566 "yandex",
5567 "zilore",
5568 "zone",
5569 "zonomi"
5570 ],
5571 "optional" : 1,
5572 "type" : "string"
5573 },
5574 "data" : {
5575 "description" : "DNS plugin data. (base64 encoded)",
5576 "optional" : 1,
5577 "type" : "string",
5578 "typetext" : "<string>"
5579 },
5580 "disable" : {
5581 "description" : "Flag to disable the config.",
5582 "optional" : 1,
5583 "type" : "boolean",
5584 "typetext" : "<boolean>"
5585 },
5586 "id" : {
5587 "description" : "ACME Plugin ID name",
5588 "format" : "pve-configid",
5589 "type" : "string",
5590 "typetext" : "<string>"
5591 },
5592 "nodes" : {
5593 "description" : "List of cluster node names.",
5594 "format" : "pve-node-list",
5595 "optional" : 1,
5596 "type" : "string",
5597 "typetext" : "<string>"
5598 },
5599 "type" : {
5600 "description" : "ACME challenge type.",
5601 "enum" : [
5602 "dns",
5603 "standalone"
5604 ],
5605 "type" : "string"
5606 },
5607 "validation-delay" : {
5608 "default" : 30,
5609 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
5610 "maximum" : 172800,
5611 "minimum" : 0,
5612 "optional" : 1,
5613 "type" : "integer",
5614 "typetext" : "<integer> (0 - 172800)"
5615 }
5616 },
5617 "type" : "object"
5618 },
5619 "permissions" : {
5620 "check" : [
5621 "perm",
5622 "/",
5623 [
5624 "Sys.Modify"
5625 ]
5626 ]
5627 },
5628 "protected" : 1,
5629 "returns" : {
5630 "type" : "null"
5631 }
5632 }
5633 },
5634 "leaf" : 0,
5635 "path" : "/cluster/acme/plugins",
5636 "text" : "plugins"
5637 },
a9a8e3d1
DM
5638 {
5639 "children" : [
5640 {
5641 "info" : {
5642 "DELETE" : {
e9cd3bd4 5643 "allowtoken" : 1,
a9a8e3d1
DM
5644 "description" : "Deactivate existing ACME account at CA.",
5645 "method" : "DELETE",
5646 "name" : "deactivate_account",
5647 "parameters" : {
5648 "additionalProperties" : 0,
5649 "properties" : {
5650 "name" : {
5651 "default" : "default",
5652 "description" : "ACME account config file name.",
5653 "format" : "pve-configid",
5654 "format_description" : "name",
5655 "optional" : 1,
5656 "type" : "string",
5657 "typetext" : "<name>"
5658 }
5659 }
5660 },
5661 "protected" : 1,
5662 "returns" : {
5663 "type" : "string"
5664 }
5665 },
5666 "GET" : {
e9cd3bd4 5667 "allowtoken" : 1,
a9a8e3d1
DM
5668 "description" : "Return existing ACME account information.",
5669 "method" : "GET",
5670 "name" : "get_account",
5671 "parameters" : {
5672 "additionalProperties" : 0,
5673 "properties" : {
5674 "name" : {
5675 "default" : "default",
5676 "description" : "ACME account config file name.",
5677 "format" : "pve-configid",
5678 "format_description" : "name",
5679 "optional" : 1,
5680 "type" : "string",
5681 "typetext" : "<name>"
5682 }
5683 }
5684 },
5685 "protected" : 1,
5686 "returns" : {
5687 "additionalProperties" : 0,
5688 "properties" : {
5689 "account" : {
5690 "optional" : 1,
4d47f125 5691 "renderer" : "yaml",
a9a8e3d1
DM
5692 "type" : "object"
5693 },
5694 "directory" : {
5695 "description" : "URL of ACME CA directory endpoint.",
5696 "optional" : 1,
5697 "pattern" : "^https?://.*",
5698 "type" : "string"
5699 },
5700 "location" : {
5701 "optional" : 1,
5702 "type" : "string"
5703 },
5704 "tos" : {
5705 "optional" : 1,
5706 "type" : "string"
5707 }
5708 },
5709 "type" : "object"
5710 }
5711 },
5712 "PUT" : {
e9cd3bd4 5713 "allowtoken" : 1,
a9a8e3d1
DM
5714 "description" : "Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.",
5715 "method" : "PUT",
5716 "name" : "update_account",
5717 "parameters" : {
5718 "additionalProperties" : 0,
5719 "properties" : {
5720 "contact" : {
5721 "description" : "Contact email addresses.",
5722 "format" : "email-list",
5723 "optional" : 1,
5724 "type" : "string",
5725 "typetext" : "<string>"
5726 },
5727 "name" : {
5728 "default" : "default",
5729 "description" : "ACME account config file name.",
5730 "format" : "pve-configid",
5731 "format_description" : "name",
5732 "optional" : 1,
5733 "type" : "string",
5734 "typetext" : "<name>"
5735 }
5736 }
5737 },
5738 "protected" : 1,
5739 "returns" : {
5740 "type" : "string"
5741 }
5742 }
5743 },
5744 "leaf" : 1,
5745 "path" : "/cluster/acme/account/{name}",
5746 "text" : "{name}"
5747 }
5748 ],
5749 "info" : {
5750 "GET" : {
e9cd3bd4 5751 "allowtoken" : 1,
a9a8e3d1
DM
5752 "description" : "ACMEAccount index.",
5753 "method" : "GET",
5754 "name" : "account_index",
5755 "parameters" : {
5756 "additionalProperties" : 0
5757 },
5758 "permissions" : {
5759 "user" : "all"
5760 },
5761 "protected" : 1,
5762 "returns" : {
5763 "items" : {
5764 "properties" : {},
5765 "type" : "object"
5766 },
5767 "links" : [
5768 {
5769 "href" : "{name}",
5770 "rel" : "child"
5771 }
5772 ],
5773 "type" : "array"
5774 }
5775 },
5776 "POST" : {
e9cd3bd4 5777 "allowtoken" : 1,
a9a8e3d1
DM
5778 "description" : "Register a new ACME account with CA.",
5779 "method" : "POST",
5780 "name" : "register_account",
5781 "parameters" : {
5782 "additionalProperties" : 0,
5783 "properties" : {
5784 "contact" : {
5785 "description" : "Contact email addresses.",
5786 "format" : "email-list",
5787 "type" : "string",
5788 "typetext" : "<string>"
5789 },
5790 "directory" : {
5791 "default" : "https://acme-v02.api.letsencrypt.org/directory",
5792 "description" : "URL of ACME CA directory endpoint.",
5793 "optional" : 1,
5794 "pattern" : "^https?://.*",
5795 "type" : "string"
5796 },
5797 "name" : {
5798 "default" : "default",
5799 "description" : "ACME account config file name.",
5800 "format" : "pve-configid",
5801 "format_description" : "name",
5802 "optional" : 1,
5803 "type" : "string",
5804 "typetext" : "<name>"
5805 },
5806 "tos_url" : {
5807 "description" : "URL of CA TermsOfService - setting this indicates agreement.",
5808 "optional" : 1,
5809 "type" : "string",
5810 "typetext" : "<string>"
5811 }
5812 }
5813 },
5814 "protected" : 1,
5815 "returns" : {
5816 "type" : "string"
5817 }
5818 }
5819 },
5820 "leaf" : 0,
5821 "path" : "/cluster/acme/account",
5822 "text" : "account"
5823 },
5824 {
5825 "info" : {
5826 "GET" : {
e9cd3bd4 5827 "allowtoken" : 1,
a9a8e3d1
DM
5828 "description" : "Retrieve ACME TermsOfService URL from CA.",
5829 "method" : "GET",
5830 "name" : "get_tos",
5831 "parameters" : {
5832 "additionalProperties" : 0,
5833 "properties" : {
5834 "directory" : {
5835 "default" : "https://acme-v02.api.letsencrypt.org/directory",
5836 "description" : "URL of ACME CA directory endpoint.",
5837 "optional" : 1,
5838 "pattern" : "^https?://.*",
5839 "type" : "string"
5840 }
5841 }
5842 },
5da3d723
TL
5843 "permissions" : {
5844 "user" : "all"
5845 },
a9a8e3d1
DM
5846 "returns" : {
5847 "description" : "ACME TermsOfService URL.",
5c1699e5 5848 "optional" : 1,
a9a8e3d1
DM
5849 "type" : "string"
5850 }
5851 }
5852 },
5853 "leaf" : 1,
5854 "path" : "/cluster/acme/tos",
5855 "text" : "tos"
5856 },
5857 {
5858 "info" : {
5859 "GET" : {
e9cd3bd4 5860 "allowtoken" : 1,
a9a8e3d1
DM
5861 "description" : "Get named known ACME directory endpoints.",
5862 "method" : "GET",
5863 "name" : "get_directories",
5864 "parameters" : {
5865 "additionalProperties" : 0
5866 },
5da3d723
TL
5867 "permissions" : {
5868 "user" : "all"
5869 },
a9a8e3d1
DM
5870 "returns" : {
5871 "items" : {
5872 "additionalProperties" : 0,
5873 "properties" : {
5874 "name" : {
5875 "type" : "string"
5876 },
5877 "url" : {
5878 "description" : "URL of ACME CA directory endpoint.",
5879 "pattern" : "^https?://.*",
5880 "type" : "string"
5881 }
5882 },
5883 "type" : "object"
5884 },
5885 "type" : "array"
5886 }
5887 }
5888 },
5889 "leaf" : 1,
5890 "path" : "/cluster/acme/directories",
5891 "text" : "directories"
ac70d7d1
TL
5892 },
5893 {
5894 "info" : {
5895 "GET" : {
5896 "allowtoken" : 1,
5897 "description" : "Get schema of ACME challenge types.",
5898 "method" : "GET",
5899 "name" : "challengeschema",
5900 "parameters" : {
5901 "additionalProperties" : 0
5902 },
5903 "permissions" : {
5904 "user" : "all"
5905 },
5906 "returns" : {
5907 "items" : {
5908 "additionalProperties" : 0,
5909 "properties" : {
5910 "id" : {
5911 "type" : "string"
5912 },
5913 "name" : {
5914 "description" : "Human readable name, falls back to id",
5915 "type" : "string"
5916 },
5917 "schema" : {
5918 "type" : "object"
5919 },
5920 "type" : {
5921 "type" : "string"
5922 }
5923 },
5924 "type" : "object"
5925 },
5926 "type" : "array"
5927 }
5928 }
5929 },
5930 "leaf" : 1,
5931 "path" : "/cluster/acme/challenge-schema",
5932 "text" : "challenge-schema"
a9a8e3d1
DM
5933 }
5934 ],
5935 "info" : {
5936 "GET" : {
e9cd3bd4 5937 "allowtoken" : 1,
a9a8e3d1
DM
5938 "description" : "ACMEAccount index.",
5939 "method" : "GET",
5940 "name" : "index",
5941 "parameters" : {
5942 "additionalProperties" : 0
5943 },
5944 "permissions" : {
5945 "user" : "all"
5946 },
5947 "returns" : {
5948 "items" : {
5949 "properties" : {},
5950 "type" : "object"
5951 },
5952 "links" : [
5953 {
5954 "href" : "{name}",
5955 "rel" : "child"
5956 }
5957 ],
5958 "type" : "array"
5959 }
5960 }
5961 },
5962 "leaf" : 0,
5963 "path" : "/cluster/acme",
5964 "text" : "acme"
5965 },
1c532546
TL
5966 {
5967 "children" : [
5968 {
5969 "info" : {
5970 "GET" : {
e9cd3bd4 5971 "allowtoken" : 1,
1c532546
TL
5972 "description" : "Get ceph metadata.",
5973 "method" : "GET",
5974 "name" : "metadata",
5975 "parameters" : {
c5aa7e14
TL
5976 "additionalProperties" : 0,
5977 "properties" : {
5978 "scope" : {
5979 "default" : "all",
5980 "enum" : [
5981 "all",
5982 "versions"
5983 ],
5984 "optional" : 1,
5985 "type" : "string"
5986 }
5987 }
1c532546
TL
5988 },
5989 "permissions" : {
5990 "check" : [
5991 "perm",
5992 "/",
5993 [
5994 "Sys.Audit",
5995 "Datastore.Audit"
5996 ],
5997 "any",
5998 1
5999 ]
6000 },
6001 "protected" : 1,
6002 "returns" : {
6003 "type" : "object"
6004 }
6005 }
6006 },
6007 "leaf" : 1,
6008 "path" : "/cluster/ceph/metadata",
6009 "text" : "metadata"
6010 },
6011 {
6012 "info" : {
6013 "GET" : {
e9cd3bd4 6014 "allowtoken" : 1,
1c532546
TL
6015 "description" : "Get ceph status.",
6016 "method" : "GET",
6017 "name" : "status",
6018 "parameters" : {
6019 "additionalProperties" : 0
6020 },
6021 "permissions" : {
6022 "check" : [
6023 "perm",
6024 "/",
6025 [
6026 "Sys.Audit",
6027 "Datastore.Audit"
6028 ],
6029 "any",
6030 1
6031 ]
6032 },
6033 "protected" : 1,
6034 "returns" : {
6035 "type" : "object"
6036 }
6037 }
6038 },
6039 "leaf" : 1,
6040 "path" : "/cluster/ceph/status",
6041 "text" : "status"
6042 },
6043 {
6044 "children" : [
6045 {
6046 "info" : {
6047 "GET" : {
e9cd3bd4 6048 "allowtoken" : 1,
1c532546
TL
6049 "description" : "Get the status of a specific ceph flag.",
6050 "method" : "GET",
6051 "name" : "get_flag",
6052 "parameters" : {
6053 "additionalProperties" : 0,
6054 "properties" : {
6055 "flag" : {
6056 "description" : "The name of the flag name to get.",
6057 "enum" : [
6058 "nobackfill",
6059 "nodeep-scrub",
6060 "nodown",
6061 "noin",
6062 "noout",
6063 "norebalance",
6064 "norecover",
6065 "noscrub",
6066 "notieragent",
6067 "noup",
6068 "pause"
6069 ],
6070 "type" : "string"
6071 }
6072 }
6073 },
6074 "permissions" : {
6075 "check" : [
6076 "perm",
6077 "/",
6078 [
6079 "Sys.Audit"
6080 ]
6081 ]
6082 },
6083 "protected" : 1,
6084 "returns" : {
6085 "type" : "boolean"
6086 }
6087 },
6088 "PUT" : {
e9cd3bd4 6089 "allowtoken" : 1,
1c532546
TL
6090 "description" : "Set or clear (unset) a specific ceph flag",
6091 "method" : "PUT",
6092 "name" : "update_flag",
6093 "parameters" : {
6094 "additionalProperties" : 0,
6095 "properties" : {
6096 "flag" : {
6097 "description" : "The ceph flag to update",
6098 "enum" : [
6099 "nobackfill",
6100 "nodeep-scrub",
6101 "nodown",
6102 "noin",
6103 "noout",
6104 "norebalance",
6105 "norecover",
6106 "noscrub",
6107 "notieragent",
6108 "noup",
6109 "pause"
6110 ],
6111 "type" : "string"
6112 },
6113 "value" : {
6114 "description" : "The new value of the flag",
6115 "type" : "boolean",
6116 "typetext" : "<boolean>"
6117 }
6118 }
6119 },
6120 "permissions" : {
6121 "check" : [
6122 "perm",
6123 "/",
6124 [
6125 "Sys.Modify"
6126 ]
6127 ]
6128 },
6129 "protected" : 1,
6130 "returns" : {
6131 "type" : "null"
6132 }
6133 }
6134 },
6135 "leaf" : 1,
6136 "path" : "/cluster/ceph/flags/{flag}",
6137 "text" : "{flag}"
6138 }
6139 ],
6140 "info" : {
6141 "GET" : {
e9cd3bd4 6142 "allowtoken" : 1,
1c532546
TL
6143 "description" : "get the status of all ceph flags",
6144 "method" : "GET",
6145 "name" : "get_all_flags",
6146 "parameters" : {
6147 "additionalProperties" : 0
6148 },
6149 "permissions" : {
6150 "check" : [
6151 "perm",
6152 "/",
6153 [
6154 "Sys.Audit"
6155 ]
6156 ]
6157 },
6158 "protected" : 1,
6159 "returns" : {
6160 "items" : {
6161 "additionalProperties" : 1,
6162 "properties" : {
6163 "name" : {
6164 "description" : "Flag name.",
6165 "enum" : [
6166 "nobackfill",
6167 "nodeep-scrub",
6168 "nodown",
6169 "noin",
6170 "noout",
6171 "norebalance",
6172 "norecover",
6173 "noscrub",
6174 "notieragent",
6175 "noup",
6176 "pause"
6177 ],
6178 "type" : "string"
6179 }
6180 },
6181 "type" : "object"
6182 },
6183 "links" : [
6184 {
6185 "href" : "{name}",
6186 "rel" : "child"
6187 }
6188 ],
6189 "type" : "array"
6190 }
6191 },
6192 "PUT" : {
e9cd3bd4 6193 "allowtoken" : 1,
1c532546
TL
6194 "description" : "Set/Unset multiple ceph flags at once.",
6195 "method" : "PUT",
6196 "name" : "set_flags",
6197 "parameters" : {
6198 "additionalProperties" : 0,
6199 "properties" : {
6200 "nobackfill" : {
6201 "description" : "Backfilling of PGs is suspended.",
6202 "optional" : 1,
6203 "type" : "boolean",
6204 "typetext" : "<boolean>"
6205 },
6206 "nodeep-scrub" : {
6207 "description" : "Deep Scrubbing is disabled.",
6208 "optional" : 1,
6209 "type" : "boolean",
6210 "typetext" : "<boolean>"
6211 },
6212 "nodown" : {
6213 "description" : "OSD failure reports are being ignored, such that the monitors will not mark OSDs down.",
6214 "optional" : 1,
6215 "type" : "boolean",
6216 "typetext" : "<boolean>"
6217 },
6218 "noin" : {
6219 "description" : "OSDs that were previously marked out will not be marked back in when they start.",
6220 "optional" : 1,
6221 "type" : "boolean",
6222 "typetext" : "<boolean>"
6223 },
6224 "noout" : {
6225 "description" : "OSDs will not automatically be marked out after the configured interval.",
6226 "optional" : 1,
6227 "type" : "boolean",
6228 "typetext" : "<boolean>"
6229 },
6230 "norebalance" : {
6231 "description" : "Rebalancing of PGs is suspended.",
6232 "optional" : 1,
6233 "type" : "boolean",
6234 "typetext" : "<boolean>"
6235 },
6236 "norecover" : {
6237 "description" : "Recovery of PGs is suspended.",
6238 "optional" : 1,
6239 "type" : "boolean",
6240 "typetext" : "<boolean>"
6241 },
6242 "noscrub" : {
6243 "description" : "Scrubbing is disabled.",
6244 "optional" : 1,
6245 "type" : "boolean",
6246 "typetext" : "<boolean>"
6247 },
6248 "notieragent" : {
6249 "description" : "Cache tiering activity is suspended.",
6250 "optional" : 1,
6251 "type" : "boolean",
6252 "typetext" : "<boolean>"
6253 },
6254 "noup" : {
6255 "description" : "OSDs are not allowed to start.",
6256 "optional" : 1,
6257 "type" : "boolean",
6258 "typetext" : "<boolean>"
6259 },
6260 "pause" : {
6261 "description" : "Pauses read and writes.",
6262 "optional" : 1,
6263 "type" : "boolean",
6264 "typetext" : "<boolean>"
6265 }
6266 }
6267 },
6268 "permissions" : {
6269 "check" : [
6270 "perm",
6271 "/",
6272 [
6273 "Sys.Modify"
6274 ]
6275 ]
6276 },
6277 "protected" : 1,
6278 "returns" : {
6279 "type" : "string"
6280 }
6281 }
6282 },
6283 "leaf" : 0,
6284 "path" : "/cluster/ceph/flags",
6285 "text" : "flags"
6286 }
6287 ],
6288 "info" : {
6289 "GET" : {
e9cd3bd4 6290 "allowtoken" : 1,
1c532546
TL
6291 "description" : "Cluster ceph index.",
6292 "method" : "GET",
6293 "name" : "cephindex",
6294 "parameters" : {
6295 "additionalProperties" : 0
6296 },
6297 "permissions" : {
6298 "user" : "all"
6299 },
6300 "returns" : {
6301 "items" : {
6302 "properties" : {},
6303 "type" : "object"
6304 },
6305 "links" : [
6306 {
6307 "href" : "{name}",
6308 "rel" : "child"
6309 }
6310 ],
6311 "type" : "array"
6312 }
6313 }
6314 },
6315 "leaf" : 0,
6316 "path" : "/cluster/ceph",
6317 "text" : "ceph"
6318 },
5370fa8c
TL
6319 {
6320 "children" : [
6321 {
6322 "info" : {
6323 "GET" : {
6324 "allowtoken" : 1,
6325 "description" : "Returns a list of future schedule runtimes.",
6326 "method" : "GET",
6327 "name" : "schedule-analyze",
6328 "parameters" : {
6329 "additionalProperties" : 0,
6330 "properties" : {
6331 "iterations" : {
6332 "default" : 10,
6333 "description" : "Number of event-iteration to simulate and return.",
6334 "maximum" : 100,
6335 "minimum" : 1,
6336 "optional" : 1,
6337 "type" : "integer",
6338 "typetext" : "<integer> (1 - 100)"
6339 },
6340 "schedule" : {
6341 "description" : "Job schedule. The format is a subset of `systemd` calendar events.",
6342 "format" : "pve-calendar-event",
6343 "maxLength" : 128,
6344 "type" : "string",
6345 "typetext" : "<string>"
6346 },
6347 "starttime" : {
6348 "description" : "UNIX timestamp to start the calculation from. Defaults to the current time.",
6349 "optional" : 1,
6350 "type" : "integer",
6351 "typetext" : "<integer>"
6352 }
6353 }
6354 },
6355 "permissions" : {
6356 "user" : "all"
6357 },
6358 "returns" : {
6359 "description" : "An array of the next <iterations> events since <starttime>.",
6360 "items" : {
6361 "properties" : {
6362 "timestamp" : {
6363 "description" : "UNIX timestamp for the run.",
6364 "type" : "integer"
6365 },
6366 "utc" : {
6367 "description" : "UTC timestamp for the run.",
6368 "type" : "string"
6369 }
6370 },
6371 "type" : "object"
6372 },
6373 "type" : "array"
6374 }
6375 }
6376 },
6377 "leaf" : 1,
6378 "path" : "/cluster/jobs/schedule-analyze",
6379 "text" : "schedule-analyze"
6380 }
6381 ],
6382 "info" : {
6383 "GET" : {
6384 "allowtoken" : 1,
6385 "description" : "Index for jobs related endpoints.",
6386 "method" : "GET",
6387 "name" : "index",
6388 "parameters" : {
6389 "additionalProperties" : 0
6390 },
6391 "permissions" : {
6392 "user" : "all"
6393 },
6394 "returns" : {
6395 "description" : "Directory index.",
6396 "items" : {
6397 "properties" : {
6398 "subdir" : {
6399 "description" : "API sub-directory endpoint",
6400 "type" : "string"
6401 }
6402 },
6403 "type" : "object"
6404 },
6405 "links" : [
6406 {
6407 "href" : "{subdir}",
6408 "rel" : "child"
6409 }
6410 ],
6411 "type" : "array"
6412 }
6413 }
6414 },
6415 "leaf" : 0,
6416 "path" : "/cluster/jobs",
6417 "text" : "jobs"
6418 },
c5aa7e14
TL
6419 {
6420 "children" : [
6421 {
6422 "children" : [
6423 {
d2656385
TL
6424 "children" : [
6425 {
6426 "children" : [
6427 {
6428 "info" : {
6429 "DELETE" : {
6430 "allowtoken" : 1,
6431 "description" : "Delete sdn subnet object configuration.",
6432 "method" : "DELETE",
6433 "name" : "delete",
6434 "parameters" : {
6435 "additionalProperties" : 0,
6436 "properties" : {
6437 "subnet" : {
6438 "description" : "The SDN subnet object identifier.",
6439 "format" : "pve-sdn-subnet-id",
6440 "type" : "string",
6441 "typetext" : "<string>"
6442 },
6443 "vnet" : {
6444 "description" : "The SDN vnet object identifier.",
6445 "format" : "pve-sdn-vnet-id",
6446 "type" : "string",
6447 "typetext" : "<string>"
6448 }
6449 }
6450 },
6451 "permissions" : {
6452 "check" : [
6453 "perm",
6454 "/sdn/vnets/{vnet}/subnets",
6455 [
6456 "SDN.Allocate"
6457 ]
6458 ]
6459 },
6460 "protected" : 1,
6461 "returns" : {
6462 "type" : "null"
6463 }
6464 },
6465 "GET" : {
6466 "allowtoken" : 1,
6467 "description" : "Read sdn subnet configuration.",
6468 "method" : "GET",
6469 "name" : "read",
6470 "parameters" : {
6471 "additionalProperties" : 0,
6472 "properties" : {
6473 "pending" : {
6474 "description" : "Display pending config.",
6475 "optional" : 1,
6476 "type" : "boolean",
6477 "typetext" : "<boolean>"
6478 },
6479 "running" : {
6480 "description" : "Display running config.",
6481 "optional" : 1,
6482 "type" : "boolean",
6483 "typetext" : "<boolean>"
6484 },
6485 "subnet" : {
6486 "description" : "The SDN subnet object identifier.",
6487 "format" : "pve-sdn-subnet-id",
6488 "type" : "string",
6489 "typetext" : "<string>"
6490 },
6491 "vnet" : {
6492 "description" : "The SDN vnet object identifier.",
6493 "format" : "pve-sdn-vnet-id",
6494 "type" : "string",
6495 "typetext" : "<string>"
6496 }
6497 }
6498 },
6499 "permissions" : {
6500 "check" : [
6501 "perm",
6502 "/sdn/vnets/{vnet}/subnets/{subnet}",
6503 [
6504 "SDN.Allocate"
6505 ]
6506 ]
6507 },
6508 "returns" : {
6509 "type" : "object"
6510 }
6511 },
6512 "PUT" : {
6513 "allowtoken" : 1,
6514 "description" : "Update sdn subnet object configuration.",
6515 "method" : "PUT",
6516 "name" : "update",
6517 "parameters" : {
6518 "additionalProperties" : 0,
6519 "properties" : {
6520 "delete" : {
6521 "description" : "A list of settings you want to delete.",
6522 "format" : "pve-configid-list",
6523 "maxLength" : 4096,
6524 "optional" : 1,
6525 "type" : "string",
6526 "typetext" : "<string>"
6527 },
6528 "digest" : {
6529 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
6530 "maxLength" : 40,
6531 "optional" : 1,
6532 "type" : "string",
6533 "typetext" : "<string>"
6534 },
6535 "dnszoneprefix" : {
6536 "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
6537 "format" : "dns-name",
6538 "optional" : 1,
6539 "type" : "string",
6540 "typetext" : "<string>"
6541 },
6542 "gateway" : {
6543 "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
6544 "format" : "ip",
6545 "optional" : 1,
6546 "type" : "string",
6547 "typetext" : "<string>"
6548 },
6549 "snat" : {
6550 "description" : "enable masquerade for this subnet if pve-firewall",
6551 "optional" : 1,
6552 "type" : "boolean",
6553 "typetext" : "<boolean>"
6554 },
6555 "subnet" : {
6556 "description" : "The SDN subnet object identifier.",
6557 "format" : "pve-sdn-subnet-id",
6558 "type" : "string",
6559 "typetext" : "<string>"
6560 },
6561 "vnet" : {
6562 "description" : "associated vnet",
6563 "optional" : 1,
6564 "type" : "string",
6565 "typetext" : "<string>"
6566 }
6567 },
6568 "type" : "object"
6569 },
6570 "permissions" : {
6571 "check" : [
6572 "perm",
6573 "/sdn/vnets/{vnet}/subnets",
6574 [
6575 "SDN.Allocate"
6576 ]
6577 ]
6578 },
6579 "protected" : 1,
6580 "returns" : {
6581 "type" : "null"
6582 }
6583 }
6584 },
6585 "leaf" : 1,
6586 "path" : "/cluster/sdn/vnets/{vnet}/subnets/{subnet}",
6587 "text" : "{subnet}"
6588 }
6589 ],
6590 "info" : {
6591 "GET" : {
6592 "allowtoken" : 1,
6593 "description" : "SDN subnets index.",
6594 "method" : "GET",
6595 "name" : "index",
6596 "parameters" : {
6597 "additionalProperties" : 0,
6598 "properties" : {
6599 "pending" : {
6600 "description" : "Display pending config.",
6601 "optional" : 1,
6602 "type" : "boolean",
6603 "typetext" : "<boolean>"
6604 },
6605 "running" : {
6606 "description" : "Display running config.",
6607 "optional" : 1,
6608 "type" : "boolean",
6609 "typetext" : "<boolean>"
6610 },
6611 "vnet" : {
6612 "description" : "The SDN vnet object identifier.",
6613 "format" : "pve-sdn-vnet-id",
6614 "type" : "string",
6615 "typetext" : "<string>"
6616 }
6617 }
6618 },
6619 "permissions" : {
6620 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/subnets/<subnet>'",
6621 "user" : "all"
6622 },
6623 "returns" : {
6624 "items" : {
6625 "properties" : {},
6626 "type" : "object"
6627 },
6628 "links" : [
6629 {
6630 "href" : "{subnet}",
6631 "rel" : "child"
6632 }
6633 ],
6634 "type" : "array"
6635 }
6636 },
6637 "POST" : {
6638 "allowtoken" : 1,
6639 "description" : "Create a new sdn subnet object.",
6640 "method" : "POST",
6641 "name" : "create",
6642 "parameters" : {
6643 "additionalProperties" : 0,
6644 "properties" : {
6645 "dnszoneprefix" : {
6646 "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
6647 "format" : "dns-name",
6648 "optional" : 1,
6649 "type" : "string",
6650 "typetext" : "<string>"
6651 },
6652 "gateway" : {
6653 "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
6654 "format" : "ip",
6655 "optional" : 1,
6656 "type" : "string",
6657 "typetext" : "<string>"
6658 },
6659 "snat" : {
6660 "description" : "enable masquerade for this subnet if pve-firewall",
6661 "optional" : 1,
6662 "type" : "boolean",
6663 "typetext" : "<boolean>"
6664 },
6665 "subnet" : {
6666 "description" : "The SDN subnet object identifier.",
6667 "format" : "pve-sdn-subnet-id",
6668 "type" : "string",
6669 "typetext" : "<string>"
6670 },
6671 "type" : {
6672 "enum" : [
6673 "subnet"
6674 ],
6675 "type" : "string"
6676 },
6677 "vnet" : {
6678 "description" : "associated vnet",
6679 "optional" : 0,
6680 "type" : "string",
6681 "typetext" : "<string>"
6682 }
6683 },
6684 "type" : "object"
6685 },
6686 "permissions" : {
6687 "check" : [
6688 "perm",
6689 "/sdn/vnets/{vnet}/subnets",
6690 [
6691 "SDN.Allocate"
6692 ]
6693 ]
6694 },
6695 "protected" : 1,
6696 "returns" : {
6697 "type" : "null"
6698 }
6699 }
6700 },
6701 "leaf" : 0,
6702 "path" : "/cluster/sdn/vnets/{vnet}/subnets",
6703 "text" : "subnets"
6704 }
6705 ],
c5aa7e14
TL
6706 "info" : {
6707 "DELETE" : {
6708 "allowtoken" : 1,
6709 "description" : "Delete sdn vnet object configuration.",
6710 "method" : "DELETE",
6711 "name" : "delete",
6712 "parameters" : {
6713 "additionalProperties" : 0,
6714 "properties" : {
6715 "vnet" : {
6716 "description" : "The SDN vnet object identifier.",
6717 "format" : "pve-sdn-vnet-id",
6718 "type" : "string",
6719 "typetext" : "<string>"
6720 }
6721 }
6722 },
6723 "permissions" : {
6724 "check" : [
6725 "perm",
6726 "/sdn/vnets",
6727 [
6728 "SDN.Allocate"
6729 ]
6730 ]
6731 },
6732 "protected" : 1,
6733 "returns" : {
6734 "type" : "null"
6735 }
6736 },
6737 "GET" : {
6738 "allowtoken" : 1,
6739 "description" : "Read sdn vnet configuration.",
6740 "method" : "GET",
6741 "name" : "read",
6742 "parameters" : {
6743 "additionalProperties" : 0,
6744 "properties" : {
d2656385
TL
6745 "pending" : {
6746 "description" : "Display pending config.",
6747 "optional" : 1,
6748 "type" : "boolean",
6749 "typetext" : "<boolean>"
6750 },
6751 "running" : {
6752 "description" : "Display running config.",
6753 "optional" : 1,
6754 "type" : "boolean",
6755 "typetext" : "<boolean>"
6756 },
c5aa7e14
TL
6757 "vnet" : {
6758 "description" : "The SDN vnet object identifier.",
6759 "format" : "pve-sdn-vnet-id",
6760 "type" : "string",
6761 "typetext" : "<string>"
6762 }
6763 }
6764 },
6765 "permissions" : {
6766 "check" : [
6767 "perm",
6768 "/sdn/vnets/{vnet}",
6769 [
6770 "SDN.Allocate"
6771 ]
6772 ]
6773 },
6774 "returns" : {
6775 "type" : "object"
6776 }
6777 },
6778 "PUT" : {
6779 "allowtoken" : 1,
6780 "description" : "Update sdn vnet object configuration.",
6781 "method" : "PUT",
6782 "name" : "update",
6783 "parameters" : {
6784 "additionalProperties" : 0,
6785 "properties" : {
6786 "alias" : {
6787 "description" : "alias name of the vnet",
5370fa8c 6788 "maxLength" : 256,
c5aa7e14 6789 "optional" : 1,
5370fa8c
TL
6790 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
6791 "type" : "string"
c5aa7e14
TL
6792 },
6793 "delete" : {
6794 "description" : "A list of settings you want to delete.",
6795 "format" : "pve-configid-list",
6796 "maxLength" : 4096,
6797 "optional" : 1,
6798 "type" : "string",
6799 "typetext" : "<string>"
6800 },
6801 "digest" : {
6802 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
6803 "maxLength" : 40,
6804 "optional" : 1,
6805 "type" : "string",
6806 "typetext" : "<string>"
6807 },
c5aa7e14
TL
6808 "tag" : {
6809 "description" : "vlan or vxlan id",
6810 "optional" : 1,
6811 "type" : "integer",
6812 "typetext" : "<integer>"
6813 },
ac70d7d1
TL
6814 "vlanaware" : {
6815 "description" : "Allow vm VLANs to pass through this vnet.",
6816 "optional" : 1,
6817 "type" : "boolean",
6818 "typetext" : "<boolean>"
6819 },
c5aa7e14
TL
6820 "vnet" : {
6821 "description" : "The SDN vnet object identifier.",
6822 "format" : "pve-sdn-vnet-id",
6823 "type" : "string",
6824 "typetext" : "<string>"
6825 },
6826 "zone" : {
6827 "description" : "zone id",
6828 "optional" : 1,
6829 "type" : "string",
6830 "typetext" : "<string>"
6831 }
6832 },
6833 "type" : "object"
6834 },
6835 "permissions" : {
6836 "check" : [
6837 "perm",
6838 "/sdn/vnets",
6839 [
6840 "SDN.Allocate"
6841 ]
6842 ]
6843 },
6844 "protected" : 1,
6845 "returns" : {
6846 "type" : "null"
6847 }
6848 }
6849 },
d2656385 6850 "leaf" : 0,
c5aa7e14
TL
6851 "path" : "/cluster/sdn/vnets/{vnet}",
6852 "text" : "{vnet}"
6853 }
6854 ],
6855 "info" : {
6856 "GET" : {
6857 "allowtoken" : 1,
6858 "description" : "SDN vnets index.",
6859 "method" : "GET",
6860 "name" : "index",
6861 "parameters" : {
d2656385
TL
6862 "additionalProperties" : 0,
6863 "properties" : {
6864 "pending" : {
6865 "description" : "Display pending config.",
6866 "optional" : 1,
6867 "type" : "boolean",
6868 "typetext" : "<boolean>"
6869 },
6870 "running" : {
6871 "description" : "Display running config.",
6872 "optional" : 1,
6873 "type" : "boolean",
6874 "typetext" : "<boolean>"
6875 }
6876 }
c5aa7e14
TL
6877 },
6878 "permissions" : {
6879 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/vnets/<vnet>'",
6880 "user" : "all"
6881 },
6882 "returns" : {
6883 "items" : {
6884 "properties" : {},
6885 "type" : "object"
6886 },
6887 "links" : [
6888 {
6889 "href" : "{vnet}",
6890 "rel" : "child"
6891 }
6892 ],
6893 "type" : "array"
6894 }
6895 },
6896 "POST" : {
6897 "allowtoken" : 1,
6898 "description" : "Create a new sdn vnet object.",
6899 "method" : "POST",
6900 "name" : "create",
6901 "parameters" : {
6902 "additionalProperties" : 0,
6903 "properties" : {
6904 "alias" : {
6905 "description" : "alias name of the vnet",
5370fa8c 6906 "maxLength" : 256,
c5aa7e14 6907 "optional" : 1,
5370fa8c
TL
6908 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
6909 "type" : "string"
c5aa7e14 6910 },
c5aa7e14
TL
6911 "tag" : {
6912 "description" : "vlan or vxlan id",
ac70d7d1 6913 "optional" : 1,
c5aa7e14
TL
6914 "type" : "integer",
6915 "typetext" : "<integer>"
6916 },
6917 "type" : {
6918 "description" : "Type",
6919 "enum" : [
6920 "vnet"
6921 ],
6922 "optional" : 1,
6923 "type" : "string"
6924 },
ac70d7d1
TL
6925 "vlanaware" : {
6926 "description" : "Allow vm VLANs to pass through this vnet.",
6927 "optional" : 1,
6928 "type" : "boolean",
6929 "typetext" : "<boolean>"
6930 },
c5aa7e14
TL
6931 "vnet" : {
6932 "description" : "The SDN vnet object identifier.",
6933 "format" : "pve-sdn-vnet-id",
6934 "type" : "string",
6935 "typetext" : "<string>"
6936 },
6937 "zone" : {
6938 "description" : "zone id",
6939 "optional" : 0,
6940 "type" : "string",
6941 "typetext" : "<string>"
6942 }
6943 },
6944 "type" : "object"
6945 },
6946 "permissions" : {
6947 "check" : [
6948 "perm",
6949 "/sdn/vnets",
6950 [
6951 "SDN.Allocate"
6952 ]
6953 ]
6954 },
6955 "protected" : 1,
6956 "returns" : {
6957 "type" : "null"
6958 }
6959 }
6960 },
6961 "leaf" : 0,
6962 "path" : "/cluster/sdn/vnets",
6963 "text" : "vnets"
6964 },
6965 {
6966 "children" : [
6967 {
6968 "info" : {
6969 "DELETE" : {
6970 "allowtoken" : 1,
6971 "description" : "Delete sdn zone object configuration.",
6972 "method" : "DELETE",
6973 "name" : "delete",
6974 "parameters" : {
6975 "additionalProperties" : 0,
6976 "properties" : {
6977 "zone" : {
6978 "description" : "The SDN zone object identifier.",
6979 "format" : "pve-sdn-zone-id",
6980 "type" : "string",
6981 "typetext" : "<string>"
6982 }
6983 }
6984 },
6985 "permissions" : {
6986 "check" : [
6987 "perm",
6988 "/sdn/zones",
6989 [
6990 "SDN.Allocate"
6991 ]
6992 ]
6993 },
6994 "protected" : 1,
6995 "returns" : {
6996 "type" : "null"
6997 }
6998 },
6999 "GET" : {
7000 "allowtoken" : 1,
7001 "description" : "Read sdn zone configuration.",
7002 "method" : "GET",
7003 "name" : "read",
7004 "parameters" : {
7005 "additionalProperties" : 0,
7006 "properties" : {
d2656385
TL
7007 "pending" : {
7008 "description" : "Display pending config.",
7009 "optional" : 1,
7010 "type" : "boolean",
7011 "typetext" : "<boolean>"
7012 },
7013 "running" : {
7014 "description" : "Display running config.",
7015 "optional" : 1,
7016 "type" : "boolean",
7017 "typetext" : "<boolean>"
7018 },
c5aa7e14
TL
7019 "zone" : {
7020 "description" : "The SDN zone object identifier.",
7021 "format" : "pve-sdn-zone-id",
7022 "type" : "string",
7023 "typetext" : "<string>"
7024 }
7025 }
7026 },
7027 "permissions" : {
7028 "check" : [
7029 "perm",
7030 "/sdn/zones/{zone}",
7031 [
7032 "SDN.Allocate"
7033 ]
7034 ]
7035 },
7036 "returns" : {
7037 "type" : "object"
7038 }
7039 },
7040 "PUT" : {
7041 "allowtoken" : 1,
7042 "description" : "Update sdn zone object configuration.",
7043 "method" : "PUT",
7044 "name" : "update",
7045 "parameters" : {
7046 "additionalProperties" : 0,
7047 "properties" : {
5370fa8c
TL
7048 "advertise-subnets" : {
7049 "description" : "Advertise evpn subnets if you have silent hosts",
7050 "optional" : 1,
7051 "type" : "boolean",
7052 "typetext" : "<boolean>"
7053 },
c5aa7e14
TL
7054 "bridge" : {
7055 "optional" : 1,
7056 "type" : "string",
7057 "typetext" : "<string>"
7058 },
7af2edf9
TL
7059 "bridge-disable-mac-learning" : {
7060 "description" : "Disable auto mac learning.",
7061 "optional" : 1,
7062 "type" : "boolean",
7063 "typetext" : "<boolean>"
7064 },
c5aa7e14
TL
7065 "controller" : {
7066 "description" : "Frr router name",
7067 "optional" : 1,
7068 "type" : "string",
7069 "typetext" : "<string>"
7070 },
7071 "delete" : {
7072 "description" : "A list of settings you want to delete.",
7073 "format" : "pve-configid-list",
7074 "maxLength" : 4096,
7075 "optional" : 1,
7076 "type" : "string",
7077 "typetext" : "<string>"
7078 },
7079 "digest" : {
7080 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7081 "maxLength" : 40,
7082 "optional" : 1,
7083 "type" : "string",
7084 "typetext" : "<string>"
7085 },
5370fa8c
TL
7086 "disable-arp-nd-suppression" : {
7087 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
7088 "optional" : 1,
7089 "type" : "boolean",
7090 "typetext" : "<boolean>"
7091 },
d2656385
TL
7092 "dns" : {
7093 "description" : "dns api server",
7094 "optional" : 1,
7095 "type" : "string",
7096 "typetext" : "<string>"
7097 },
7098 "dnszone" : {
7099 "description" : "dns domain zone ex: mydomain.com",
7100 "format" : "dns-name",
7101 "optional" : 1,
7102 "type" : "string",
7103 "typetext" : "<string>"
7104 },
c5aa7e14
TL
7105 "dp-id" : {
7106 "description" : "Faucet dataplane id",
7107 "optional" : 1,
7108 "type" : "integer",
7109 "typetext" : "<integer>"
7110 },
d2656385
TL
7111 "exitnodes" : {
7112 "description" : "List of cluster node names.",
7113 "format" : "pve-node-list",
7114 "optional" : 1,
7115 "type" : "string",
7116 "typetext" : "<string>"
7117 },
5370fa8c
TL
7118 "exitnodes-local-routing" : {
7119 "description" : "Allow exitnodes to connect to evpn guests",
7120 "optional" : 1,
7121 "type" : "boolean",
7122 "typetext" : "<boolean>"
7123 },
c30bb419
TL
7124 "exitnodes-primary" : {
7125 "description" : "Force traffic to this exitnode first.",
7126 "format" : "pve-node",
7127 "optional" : 1,
7128 "type" : "string",
7129 "typetext" : "<string>"
7130 },
d2656385
TL
7131 "ipam" : {
7132 "description" : "use a specific ipam",
e7084ef7 7133 "optional" : 1,
d2656385
TL
7134 "type" : "string",
7135 "typetext" : "<string>"
7136 },
7137 "mac" : {
7138 "description" : "Anycast logical router mac address",
7139 "format" : "mac-addr",
7140 "optional" : 1,
7141 "type" : "string",
7142 "typetext" : "<string>"
7143 },
c5aa7e14 7144 "mtu" : {
ac70d7d1 7145 "description" : "MTU",
c5aa7e14
TL
7146 "optional" : 1,
7147 "type" : "integer",
7148 "typetext" : "<integer>"
7149 },
7150 "nodes" : {
7151 "description" : "List of cluster node names.",
7152 "format" : "pve-node-list",
7153 "optional" : 1,
7154 "type" : "string",
7155 "typetext" : "<string>"
7156 },
7157 "peers" : {
7158 "description" : "peers address list.",
7159 "format" : "ip-list",
7160 "optional" : 1,
7161 "type" : "string",
7162 "typetext" : "<string>"
7163 },
d2656385
TL
7164 "reversedns" : {
7165 "description" : "reverse dns api server",
7166 "optional" : 1,
7167 "type" : "string",
7168 "typetext" : "<string>"
7169 },
c30bb419
TL
7170 "rt-import" : {
7171 "description" : "Route-Target import",
7172 "format" : "pve-sdn-bgp-rt-list",
7173 "optional" : 1,
7174 "type" : "string",
7175 "typetext" : "<string>"
7176 },
c5aa7e14 7177 "tag" : {
ac70d7d1
TL
7178 "description" : "Service-VLAN Tag",
7179 "minimum" : 0,
c5aa7e14
TL
7180 "optional" : 1,
7181 "type" : "integer",
ac70d7d1
TL
7182 "typetext" : "<integer> (0 - N)"
7183 },
7184 "vlan-protocol" : {
7185 "default" : "802.1q",
7186 "enum" : [
7187 "802.1q",
7188 "802.1ad"
7189 ],
7190 "optional" : 1,
7191 "type" : "string"
c5aa7e14
TL
7192 },
7193 "vrf-vxlan" : {
7194 "description" : "l3vni.",
7195 "optional" : 1,
7196 "type" : "integer",
7197 "typetext" : "<integer>"
7198 },
7199 "zone" : {
7200 "description" : "The SDN zone object identifier.",
7201 "format" : "pve-sdn-zone-id",
7202 "type" : "string",
7203 "typetext" : "<string>"
7204 }
7205 },
7206 "type" : "object"
7207 },
7208 "permissions" : {
7209 "check" : [
7210 "perm",
7211 "/sdn/zones",
7212 [
7213 "SDN.Allocate"
7214 ]
7215 ]
7216 },
7217 "protected" : 1,
7218 "returns" : {
7219 "type" : "null"
7220 }
7221 }
7222 },
7223 "leaf" : 1,
7224 "path" : "/cluster/sdn/zones/{zone}",
7225 "text" : "{zone}"
7226 }
7227 ],
7228 "info" : {
7229 "GET" : {
7230 "allowtoken" : 1,
7231 "description" : "SDN zones index.",
7232 "method" : "GET",
7233 "name" : "index",
7234 "parameters" : {
7235 "additionalProperties" : 0,
7236 "properties" : {
d2656385
TL
7237 "pending" : {
7238 "description" : "Display pending config.",
7239 "optional" : 1,
7240 "type" : "boolean",
7241 "typetext" : "<boolean>"
7242 },
7243 "running" : {
7244 "description" : "Display running config.",
7245 "optional" : 1,
7246 "type" : "boolean",
7247 "typetext" : "<boolean>"
7248 },
c5aa7e14 7249 "type" : {
e7084ef7 7250 "description" : "Only list SDN zones of specific type",
c5aa7e14
TL
7251 "enum" : [
7252 "evpn",
7253 "faucet",
7254 "qinq",
ac70d7d1 7255 "simple",
c5aa7e14
TL
7256 "vlan",
7257 "vxlan"
7258 ],
7259 "optional" : 1,
7260 "type" : "string"
7261 }
7262 }
7263 },
7264 "permissions" : {
7265 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>'",
7266 "user" : "all"
7267 },
7268 "returns" : {
7269 "items" : {
7270 "properties" : {
d2656385
TL
7271 "dns" : {
7272 "optional" : 1,
7273 "type" : "string"
7274 },
7275 "dnszone" : {
7276 "optional" : 1,
7277 "type" : "string"
7278 },
7279 "ipam" : {
7280 "optional" : 1,
7281 "type" : "string"
7282 },
7283 "mtu" : {
7284 "optional" : 1,
7285 "type" : "integer"
7286 },
7287 "nodes" : {
7288 "optional" : 1,
7289 "type" : "string"
7290 },
7291 "pending" : {
7292 "optional" : 1
7293 },
7294 "reversedns" : {
7295 "optional" : 1,
7296 "type" : "string"
7297 },
7298 "state" : {
7299 "optional" : 1,
7300 "type" : "string"
7301 },
c5aa7e14
TL
7302 "type" : {
7303 "type" : "string"
7304 },
7305 "zone" : {
7306 "type" : "string"
7307 }
7308 },
7309 "type" : "object"
7310 },
7311 "links" : [
7312 {
7313 "href" : "{zone}",
7314 "rel" : "child"
7315 }
7316 ],
7317 "type" : "array"
7318 }
7319 },
7320 "POST" : {
7321 "allowtoken" : 1,
7322 "description" : "Create a new sdn zone object.",
7323 "method" : "POST",
7324 "name" : "create",
7325 "parameters" : {
7326 "additionalProperties" : 0,
7327 "properties" : {
5370fa8c
TL
7328 "advertise-subnets" : {
7329 "description" : "Advertise evpn subnets if you have silent hosts",
7330 "optional" : 1,
7331 "type" : "boolean",
7332 "typetext" : "<boolean>"
7333 },
c5aa7e14
TL
7334 "bridge" : {
7335 "optional" : 1,
7336 "type" : "string",
7337 "typetext" : "<string>"
7338 },
7af2edf9
TL
7339 "bridge-disable-mac-learning" : {
7340 "description" : "Disable auto mac learning.",
7341 "optional" : 1,
7342 "type" : "boolean",
7343 "typetext" : "<boolean>"
7344 },
c5aa7e14
TL
7345 "controller" : {
7346 "description" : "Frr router name",
7347 "optional" : 1,
7348 "type" : "string",
7349 "typetext" : "<string>"
7350 },
5370fa8c
TL
7351 "disable-arp-nd-suppression" : {
7352 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
7353 "optional" : 1,
7354 "type" : "boolean",
7355 "typetext" : "<boolean>"
7356 },
d2656385
TL
7357 "dns" : {
7358 "description" : "dns api server",
7359 "optional" : 1,
7360 "type" : "string",
7361 "typetext" : "<string>"
7362 },
7363 "dnszone" : {
7364 "description" : "dns domain zone ex: mydomain.com",
7365 "format" : "dns-name",
7366 "optional" : 1,
7367 "type" : "string",
7368 "typetext" : "<string>"
7369 },
c5aa7e14
TL
7370 "dp-id" : {
7371 "description" : "Faucet dataplane id",
7372 "optional" : 1,
7373 "type" : "integer",
7374 "typetext" : "<integer>"
7375 },
d2656385
TL
7376 "exitnodes" : {
7377 "description" : "List of cluster node names.",
7378 "format" : "pve-node-list",
7379 "optional" : 1,
7380 "type" : "string",
7381 "typetext" : "<string>"
7382 },
5370fa8c
TL
7383 "exitnodes-local-routing" : {
7384 "description" : "Allow exitnodes to connect to evpn guests",
7385 "optional" : 1,
7386 "type" : "boolean",
7387 "typetext" : "<boolean>"
7388 },
c30bb419
TL
7389 "exitnodes-primary" : {
7390 "description" : "Force traffic to this exitnode first.",
7391 "format" : "pve-node",
7392 "optional" : 1,
7393 "type" : "string",
7394 "typetext" : "<string>"
7395 },
d2656385
TL
7396 "ipam" : {
7397 "description" : "use a specific ipam",
e7084ef7 7398 "optional" : 1,
d2656385
TL
7399 "type" : "string",
7400 "typetext" : "<string>"
7401 },
7402 "mac" : {
7403 "description" : "Anycast logical router mac address",
7404 "format" : "mac-addr",
7405 "optional" : 1,
7406 "type" : "string",
7407 "typetext" : "<string>"
7408 },
c5aa7e14 7409 "mtu" : {
ac70d7d1 7410 "description" : "MTU",
c5aa7e14
TL
7411 "optional" : 1,
7412 "type" : "integer",
7413 "typetext" : "<integer>"
7414 },
7415 "nodes" : {
7416 "description" : "List of cluster node names.",
7417 "format" : "pve-node-list",
7418 "optional" : 1,
7419 "type" : "string",
7420 "typetext" : "<string>"
7421 },
7422 "peers" : {
7423 "description" : "peers address list.",
7424 "format" : "ip-list",
7425 "optional" : 1,
7426 "type" : "string",
7427 "typetext" : "<string>"
7428 },
d2656385
TL
7429 "reversedns" : {
7430 "description" : "reverse dns api server",
7431 "optional" : 1,
7432 "type" : "string",
7433 "typetext" : "<string>"
7434 },
c30bb419
TL
7435 "rt-import" : {
7436 "description" : "Route-Target import",
7437 "format" : "pve-sdn-bgp-rt-list",
7438 "optional" : 1,
7439 "type" : "string",
7440 "typetext" : "<string>"
7441 },
c5aa7e14 7442 "tag" : {
ac70d7d1
TL
7443 "description" : "Service-VLAN Tag",
7444 "minimum" : 0,
c5aa7e14
TL
7445 "optional" : 1,
7446 "type" : "integer",
ac70d7d1 7447 "typetext" : "<integer> (0 - N)"
c5aa7e14
TL
7448 },
7449 "type" : {
7450 "description" : "Plugin type.",
7451 "enum" : [
7452 "evpn",
7453 "faucet",
7454 "qinq",
ac70d7d1 7455 "simple",
c5aa7e14
TL
7456 "vlan",
7457 "vxlan"
7458 ],
7459 "format" : "pve-configid",
7460 "type" : "string"
7461 },
ac70d7d1
TL
7462 "vlan-protocol" : {
7463 "default" : "802.1q",
7464 "enum" : [
7465 "802.1q",
7466 "802.1ad"
7467 ],
7468 "optional" : 1,
7469 "type" : "string"
7470 },
c5aa7e14
TL
7471 "vrf-vxlan" : {
7472 "description" : "l3vni.",
7473 "optional" : 1,
7474 "type" : "integer",
7475 "typetext" : "<integer>"
7476 },
7477 "zone" : {
7478 "description" : "The SDN zone object identifier.",
7479 "format" : "pve-sdn-zone-id",
7480 "type" : "string",
7481 "typetext" : "<string>"
7482 }
7483 },
7484 "type" : "object"
7485 },
7486 "permissions" : {
7487 "check" : [
7488 "perm",
7489 "/sdn/zones",
7490 [
7491 "SDN.Allocate"
7492 ]
7493 ]
7494 },
7495 "protected" : 1,
7496 "returns" : {
7497 "type" : "null"
7498 }
7499 }
7500 },
7501 "leaf" : 0,
7502 "path" : "/cluster/sdn/zones",
7503 "text" : "zones"
7504 },
7505 {
7506 "children" : [
7507 {
7508 "info" : {
7509 "DELETE" : {
7510 "allowtoken" : 1,
7511 "description" : "Delete sdn controller object configuration.",
7512 "method" : "DELETE",
7513 "name" : "delete",
7514 "parameters" : {
7515 "additionalProperties" : 0,
7516 "properties" : {
7517 "controller" : {
7518 "description" : "The SDN controller object identifier.",
7519 "format" : "pve-sdn-controller-id",
7520 "type" : "string",
7521 "typetext" : "<string>"
7522 }
7523 }
7524 },
7525 "permissions" : {
7526 "check" : [
7527 "perm",
7528 "/sdn/controllers",
7529 [
7530 "SDN.Allocate"
7531 ]
7532 ]
7533 },
7534 "protected" : 1,
7535 "returns" : {
7536 "type" : "null"
7537 }
7538 },
7539 "GET" : {
7540 "allowtoken" : 1,
7541 "description" : "Read sdn controller configuration.",
7542 "method" : "GET",
7543 "name" : "read",
7544 "parameters" : {
7545 "additionalProperties" : 0,
7546 "properties" : {
7547 "controller" : {
7548 "description" : "The SDN controller object identifier.",
7549 "format" : "pve-sdn-controller-id",
7550 "type" : "string",
7551 "typetext" : "<string>"
d2656385
TL
7552 },
7553 "pending" : {
7554 "description" : "Display pending config.",
7555 "optional" : 1,
7556 "type" : "boolean",
7557 "typetext" : "<boolean>"
7558 },
7559 "running" : {
7560 "description" : "Display running config.",
7561 "optional" : 1,
7562 "type" : "boolean",
7563 "typetext" : "<boolean>"
c5aa7e14
TL
7564 }
7565 }
7566 },
7567 "permissions" : {
7568 "check" : [
7569 "perm",
7570 "/sdn/controllers/{controller}",
7571 [
7572 "SDN.Allocate"
7573 ]
7574 ]
7575 },
7576 "returns" : {
7577 "type" : "object"
7578 }
7579 },
7580 "PUT" : {
7581 "allowtoken" : 1,
7582 "description" : "Update sdn controller object configuration.",
7583 "method" : "PUT",
7584 "name" : "update",
7585 "parameters" : {
7586 "additionalProperties" : 0,
7587 "properties" : {
7588 "asn" : {
7589 "description" : "autonomous system number",
c30bb419
TL
7590 "maximum" : 4294967296,
7591 "minimum" : 0,
c5aa7e14
TL
7592 "optional" : 1,
7593 "type" : "integer",
c30bb419
TL
7594 "typetext" : "<integer> (0 - 4294967296)"
7595 },
7596 "bgp-multipath-as-path-relax" : {
7597 "optional" : 1,
7598 "type" : "boolean",
7599 "typetext" : "<boolean>"
c5aa7e14
TL
7600 },
7601 "controller" : {
7602 "description" : "The SDN controller object identifier.",
7603 "format" : "pve-sdn-controller-id",
7604 "type" : "string",
7605 "typetext" : "<string>"
7606 },
7607 "delete" : {
7608 "description" : "A list of settings you want to delete.",
7609 "format" : "pve-configid-list",
7610 "maxLength" : 4096,
7611 "optional" : 1,
7612 "type" : "string",
7613 "typetext" : "<string>"
7614 },
7615 "digest" : {
7616 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7617 "maxLength" : 40,
7618 "optional" : 1,
7619 "type" : "string",
7620 "typetext" : "<string>"
7621 },
d2656385
TL
7622 "ebgp" : {
7623 "description" : "Enable ebgp. (remote-as external)",
7624 "optional" : 1,
7625 "type" : "boolean",
7626 "typetext" : "<boolean>"
7627 },
7628 "ebgp-multihop" : {
7629 "optional" : 1,
7630 "type" : "integer",
7631 "typetext" : "<integer>"
7632 },
7633 "loopback" : {
7634 "description" : "source loopback interface.",
c5aa7e14
TL
7635 "optional" : 1,
7636 "type" : "string",
7637 "typetext" : "<string>"
7638 },
d2656385
TL
7639 "node" : {
7640 "description" : "The cluster node name.",
7641 "format" : "pve-node",
c5aa7e14
TL
7642 "optional" : 1,
7643 "type" : "string",
7644 "typetext" : "<string>"
7645 },
7646 "peers" : {
7647 "description" : "peers address list.",
7648 "format" : "ip-list",
7649 "optional" : 1,
7650 "type" : "string",
7651 "typetext" : "<string>"
7652 }
7653 },
7654 "type" : "object"
7655 },
7656 "permissions" : {
7657 "check" : [
7658 "perm",
7659 "/sdn/controllers",
7660 [
7661 "SDN.Allocate"
7662 ]
7663 ]
7664 },
7665 "protected" : 1,
7666 "returns" : {
7667 "type" : "null"
7668 }
7669 }
7670 },
7671 "leaf" : 1,
7672 "path" : "/cluster/sdn/controllers/{controller}",
7673 "text" : "{controller}"
7674 }
7675 ],
7676 "info" : {
7677 "GET" : {
7678 "allowtoken" : 1,
7679 "description" : "SDN controllers index.",
7680 "method" : "GET",
7681 "name" : "index",
7682 "parameters" : {
7683 "additionalProperties" : 0,
7684 "properties" : {
d2656385
TL
7685 "pending" : {
7686 "description" : "Display pending config.",
7687 "optional" : 1,
7688 "type" : "boolean",
7689 "typetext" : "<boolean>"
7690 },
7691 "running" : {
7692 "description" : "Display running config.",
7693 "optional" : 1,
7694 "type" : "boolean",
7695 "typetext" : "<boolean>"
7696 },
c5aa7e14
TL
7697 "type" : {
7698 "description" : "Only list sdn controllers of specific type",
7699 "enum" : [
d2656385 7700 "bgp",
c5aa7e14
TL
7701 "evpn",
7702 "faucet"
7703 ],
7704 "optional" : 1,
7705 "type" : "string"
7706 }
7707 }
7708 },
7709 "permissions" : {
7710 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/controllers/<controller>'",
7711 "user" : "all"
7712 },
7713 "returns" : {
7714 "items" : {
7715 "properties" : {
7716 "controller" : {
7717 "type" : "string"
7718 },
d2656385
TL
7719 "pending" : {
7720 "optional" : 1
7721 },
7722 "state" : {
7723 "optional" : 1,
7724 "type" : "string"
7725 },
c5aa7e14
TL
7726 "type" : {
7727 "type" : "string"
7728 }
7729 },
7730 "type" : "object"
7731 },
7732 "links" : [
7733 {
7734 "href" : "{controller}",
7735 "rel" : "child"
7736 }
7737 ],
7738 "type" : "array"
7739 }
7740 },
7741 "POST" : {
7742 "allowtoken" : 1,
7743 "description" : "Create a new sdn controller object.",
7744 "method" : "POST",
7745 "name" : "create",
7746 "parameters" : {
7747 "additionalProperties" : 0,
7748 "properties" : {
7749 "asn" : {
7750 "description" : "autonomous system number",
c30bb419
TL
7751 "maximum" : 4294967296,
7752 "minimum" : 0,
c5aa7e14
TL
7753 "optional" : 1,
7754 "type" : "integer",
c30bb419
TL
7755 "typetext" : "<integer> (0 - 4294967296)"
7756 },
7757 "bgp-multipath-as-path-relax" : {
7758 "optional" : 1,
7759 "type" : "boolean",
7760 "typetext" : "<boolean>"
c5aa7e14
TL
7761 },
7762 "controller" : {
7763 "description" : "The SDN controller object identifier.",
7764 "format" : "pve-sdn-controller-id",
7765 "type" : "string",
7766 "typetext" : "<string>"
7767 },
d2656385
TL
7768 "ebgp" : {
7769 "description" : "Enable ebgp. (remote-as external)",
7770 "optional" : 1,
7771 "type" : "boolean",
7772 "typetext" : "<boolean>"
7773 },
7774 "ebgp-multihop" : {
7775 "optional" : 1,
7776 "type" : "integer",
7777 "typetext" : "<integer>"
7778 },
7779 "loopback" : {
7780 "description" : "source loopback interface.",
c5aa7e14
TL
7781 "optional" : 1,
7782 "type" : "string",
7783 "typetext" : "<string>"
7784 },
d2656385
TL
7785 "node" : {
7786 "description" : "The cluster node name.",
7787 "format" : "pve-node",
c5aa7e14
TL
7788 "optional" : 1,
7789 "type" : "string",
7790 "typetext" : "<string>"
7791 },
7792 "peers" : {
7793 "description" : "peers address list.",
7794 "format" : "ip-list",
7795 "optional" : 1,
7796 "type" : "string",
7797 "typetext" : "<string>"
7798 },
7799 "type" : {
7800 "description" : "Plugin type.",
7801 "enum" : [
d2656385 7802 "bgp",
c5aa7e14
TL
7803 "evpn",
7804 "faucet"
7805 ],
7806 "format" : "pve-configid",
7807 "type" : "string"
7808 }
7809 },
7810 "type" : "object"
7811 },
7812 "permissions" : {
7813 "check" : [
7814 "perm",
7815 "/sdn/controllers",
7816 [
7817 "SDN.Allocate"
7818 ]
7819 ]
7820 },
7821 "protected" : 1,
7822 "returns" : {
7823 "type" : "null"
7824 }
7825 }
7826 },
7827 "leaf" : 0,
7828 "path" : "/cluster/sdn/controllers",
7829 "text" : "controllers"
d2656385
TL
7830 },
7831 {
7832 "children" : [
7833 {
7834 "info" : {
7835 "DELETE" : {
7836 "allowtoken" : 1,
7837 "description" : "Delete sdn ipam object configuration.",
7838 "method" : "DELETE",
7839 "name" : "delete",
7840 "parameters" : {
7841 "additionalProperties" : 0,
7842 "properties" : {
7843 "ipam" : {
7844 "description" : "The SDN ipam object identifier.",
7845 "format" : "pve-sdn-ipam-id",
7846 "type" : "string",
7847 "typetext" : "<string>"
7848 }
7849 }
7850 },
7851 "permissions" : {
7852 "check" : [
7853 "perm",
7854 "/sdn/ipams",
7855 [
7856 "SDN.Allocate"
7857 ]
7858 ]
7859 },
7860 "protected" : 1,
7861 "returns" : {
7862 "type" : "null"
7863 }
7864 },
7865 "GET" : {
7866 "allowtoken" : 1,
7867 "description" : "Read sdn ipam configuration.",
7868 "method" : "GET",
7869 "name" : "read",
7870 "parameters" : {
7871 "additionalProperties" : 0,
7872 "properties" : {
7873 "ipam" : {
7874 "description" : "The SDN ipam object identifier.",
7875 "format" : "pve-sdn-ipam-id",
7876 "type" : "string",
7877 "typetext" : "<string>"
7878 }
7879 }
7880 },
7881 "permissions" : {
7882 "check" : [
7883 "perm",
7884 "/sdn/ipams/{ipam}",
7885 [
7886 "SDN.Allocate"
7887 ]
7888 ]
7889 },
7890 "returns" : {
7891 "type" : "object"
7892 }
7893 },
7894 "PUT" : {
7895 "allowtoken" : 1,
7896 "description" : "Update sdn ipam object configuration.",
7897 "method" : "PUT",
7898 "name" : "update",
7899 "parameters" : {
7900 "additionalProperties" : 0,
7901 "properties" : {
7902 "delete" : {
7903 "description" : "A list of settings you want to delete.",
7904 "format" : "pve-configid-list",
7905 "maxLength" : 4096,
7906 "optional" : 1,
7907 "type" : "string",
7908 "typetext" : "<string>"
7909 },
7910 "digest" : {
7911 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7912 "maxLength" : 40,
7913 "optional" : 1,
7914 "type" : "string",
7915 "typetext" : "<string>"
7916 },
7917 "ipam" : {
7918 "description" : "The SDN ipam object identifier.",
7919 "format" : "pve-sdn-ipam-id",
7920 "type" : "string",
7921 "typetext" : "<string>"
7922 },
7923 "section" : {
7924 "optional" : 1,
7925 "type" : "integer",
7926 "typetext" : "<integer>"
7927 },
7928 "token" : {
7929 "optional" : 1,
7930 "type" : "string",
7931 "typetext" : "<string>"
7932 },
7933 "url" : {
7934 "optional" : 1,
7935 "type" : "string",
7936 "typetext" : "<string>"
7937 }
7938 },
7939 "type" : "object"
7940 },
7941 "permissions" : {
7942 "check" : [
7943 "perm",
7944 "/sdn/ipams",
7945 [
7946 "SDN.Allocate"
7947 ]
7948 ]
7949 },
7950 "protected" : 1,
7951 "returns" : {
7952 "type" : "null"
7953 }
c5aa7e14
TL
7954 }
7955 },
d2656385
TL
7956 "leaf" : 1,
7957 "path" : "/cluster/sdn/ipams/{ipam}",
7958 "text" : "{ipam}"
7aacca6f 7959 }
d2656385
TL
7960 ],
7961 "info" : {
7962 "GET" : {
7963 "allowtoken" : 1,
7964 "description" : "SDN ipams index.",
7965 "method" : "GET",
7966 "name" : "index",
7967 "parameters" : {
7968 "additionalProperties" : 0,
7969 "properties" : {
7970 "type" : {
7971 "description" : "Only list sdn ipams of specific type",
7972 "enum" : [
7973 "netbox",
7974 "phpipam",
7975 "pve"
7976 ],
7977 "optional" : 1,
7978 "type" : "string"
7979 }
7980 }
7981 },
7982 "permissions" : {
7983 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/ipams/<ipam>'",
7984 "user" : "all"
7985 },
7986 "returns" : {
7987 "items" : {
7988 "properties" : {
7989 "ipam" : {
7990 "type" : "string"
7991 },
7992 "type" : {
7993 "type" : "string"
7994 }
7995 },
7996 "type" : "object"
7997 },
7998 "links" : [
7999 {
8000 "href" : "{ipam}",
8001 "rel" : "child"
8002 }
44660702 8003 ],
d2656385
TL
8004 "type" : "array"
8005 }
8006 },
8007 "POST" : {
8008 "allowtoken" : 1,
8009 "description" : "Create a new sdn ipam object.",
8010 "method" : "POST",
8011 "name" : "create",
8012 "parameters" : {
8013 "additionalProperties" : 0,
8014 "properties" : {
8015 "ipam" : {
8016 "description" : "The SDN ipam object identifier.",
8017 "format" : "pve-sdn-ipam-id",
8018 "type" : "string",
8019 "typetext" : "<string>"
8020 },
8021 "section" : {
8022 "optional" : 1,
8023 "type" : "integer",
8024 "typetext" : "<integer>"
8025 },
8026 "token" : {
8027 "optional" : 1,
8028 "type" : "string",
8029 "typetext" : "<string>"
8030 },
8031 "type" : {
8032 "description" : "Plugin type.",
8033 "enum" : [
8034 "netbox",
8035 "phpipam",
8036 "pve"
8037 ],
8038 "format" : "pve-configid",
8039 "type" : "string"
8040 },
8041 "url" : {
8042 "optional" : 1,
8043 "type" : "string",
8044 "typetext" : "<string>"
8045 }
8046 },
8047 "type" : "object"
8048 },
8049 "permissions" : {
8050 "check" : [
8051 "perm",
8052 "/sdn/ipams",
8053 [
8054 "SDN.Allocate"
8055 ]
8056 ]
8057 },
8058 "protected" : 1,
8059 "returns" : {
8060 "type" : "null"
56122987
DM
8061 }
8062 }
8063 },
d2656385
TL
8064 "leaf" : 0,
8065 "path" : "/cluster/sdn/ipams",
8066 "text" : "ipams"
8067 },
8068 {
8069 "children" : [
8070 {
8071 "info" : {
8072 "DELETE" : {
8073 "allowtoken" : 1,
8074 "description" : "Delete sdn dns object configuration.",
8075 "method" : "DELETE",
8076 "name" : "delete",
8077 "parameters" : {
8078 "additionalProperties" : 0,
8079 "properties" : {
8080 "dns" : {
8081 "description" : "The SDN dns object identifier.",
8082 "format" : "pve-sdn-dns-id",
8083 "type" : "string",
8084 "typetext" : "<string>"
8085 }
8086 }
8087 },
8088 "permissions" : {
8089 "check" : [
8090 "perm",
8091 "/sdn/dns",
8092 [
8093 "SDN.Allocate"
8094 ]
8095 ]
8096 },
8097 "protected" : 1,
8098 "returns" : {
8099 "type" : "null"
8100 }
8101 },
8102 "GET" : {
8103 "allowtoken" : 1,
8104 "description" : "Read sdn dns configuration.",
8105 "method" : "GET",
8106 "name" : "read",
8107 "parameters" : {
8108 "additionalProperties" : 0,
8109 "properties" : {
8110 "dns" : {
8111 "description" : "The SDN dns object identifier.",
8112 "format" : "pve-sdn-dns-id",
8113 "type" : "string",
8114 "typetext" : "<string>"
8115 }
8116 }
8117 },
8118 "permissions" : {
8119 "check" : [
8120 "perm",
8121 "/sdn/dns/{dns}",
8122 [
8123 "SDN.Allocate"
8124 ]
8125 ]
8126 },
8127 "returns" : {
8128 "type" : "object"
8129 }
8130 },
8131 "PUT" : {
8132 "allowtoken" : 1,
8133 "description" : "Update sdn dns object configuration.",
8134 "method" : "PUT",
8135 "name" : "update",
8136 "parameters" : {
8137 "additionalProperties" : 0,
8138 "properties" : {
8139 "delete" : {
8140 "description" : "A list of settings you want to delete.",
8141 "format" : "pve-configid-list",
8142 "maxLength" : 4096,
8143 "optional" : 1,
8144 "type" : "string",
8145 "typetext" : "<string>"
8146 },
8147 "digest" : {
8148 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
8149 "maxLength" : 40,
8150 "optional" : 1,
8151 "type" : "string",
8152 "typetext" : "<string>"
8153 },
8154 "dns" : {
8155 "description" : "The SDN dns object identifier.",
8156 "format" : "pve-sdn-dns-id",
8157 "type" : "string",
8158 "typetext" : "<string>"
8159 },
8160 "key" : {
8161 "optional" : 1,
8162 "type" : "string",
8163 "typetext" : "<string>"
8164 },
8165 "reversemaskv6" : {
8166 "optional" : 1,
8167 "type" : "integer",
8168 "typetext" : "<integer>"
8169 },
8170 "ttl" : {
8171 "optional" : 1,
8172 "type" : "integer",
8173 "typetext" : "<integer>"
8174 },
8175 "url" : {
8176 "optional" : 1,
8177 "type" : "string",
8178 "typetext" : "<string>"
8179 }
8180 },
8181 "type" : "object"
8182 },
8183 "permissions" : {
8184 "check" : [
8185 "perm",
8186 "/sdn/dns",
8187 [
8188 "SDN.Allocate"
8189 ]
8190 ]
8191 },
8192 "protected" : 1,
8193 "returns" : {
8194 "type" : "null"
8195 }
8196 }
8197 },
8198 "leaf" : 1,
8199 "path" : "/cluster/sdn/dns/{dns}",
8200 "text" : "{dns}"
8201 }
8202 ],
8203 "info" : {
8204 "GET" : {
8205 "allowtoken" : 1,
8206 "description" : "SDN dns index.",
8207 "method" : "GET",
8208 "name" : "index",
8209 "parameters" : {
8210 "additionalProperties" : 0,
8211 "properties" : {
8212 "type" : {
8213 "description" : "Only list sdn dns of specific type",
8214 "enum" : [
8215 "powerdns"
8216 ],
8217 "optional" : 1,
8218 "type" : "string"
8219 }
8220 }
8221 },
8222 "permissions" : {
8223 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/dns/<dns>'",
8224 "user" : "all"
8225 },
8226 "returns" : {
8227 "items" : {
8228 "properties" : {
8229 "dns" : {
8230 "type" : "string"
8231 },
8232 "type" : {
8233 "type" : "string"
8234 }
8235 },
8236 "type" : "object"
8237 },
8238 "links" : [
8239 {
8240 "href" : "{dns}",
8241 "rel" : "child"
8242 }
8243 ],
8244 "type" : "array"
8245 }
8246 },
8247 "POST" : {
8248 "allowtoken" : 1,
8249 "description" : "Create a new sdn dns object.",
8250 "method" : "POST",
8251 "name" : "create",
8252 "parameters" : {
8253 "additionalProperties" : 0,
8254 "properties" : {
8255 "dns" : {
8256 "description" : "The SDN dns object identifier.",
8257 "format" : "pve-sdn-dns-id",
8258 "type" : "string",
8259 "typetext" : "<string>"
8260 },
8261 "key" : {
8262 "optional" : 0,
8263 "type" : "string",
8264 "typetext" : "<string>"
8265 },
8266 "reversemaskv6" : {
8267 "optional" : 1,
8268 "type" : "integer",
8269 "typetext" : "<integer>"
8270 },
8271 "reversev6mask" : {
8272 "optional" : 1,
8273 "type" : "integer",
8274 "typetext" : "<integer>"
8275 },
8276 "ttl" : {
8277 "optional" : 1,
8278 "type" : "integer",
8279 "typetext" : "<integer>"
8280 },
8281 "type" : {
8282 "description" : "Plugin type.",
8283 "enum" : [
8284 "powerdns"
8285 ],
8286 "format" : "pve-configid",
8287 "type" : "string"
8288 },
8289 "url" : {
8290 "optional" : 0,
8291 "type" : "string",
8292 "typetext" : "<string>"
8293 }
8294 },
8295 "type" : "object"
8296 },
8297 "permissions" : {
8298 "check" : [
8299 "perm",
8300 "/sdn/dns",
8301 [
8302 "SDN.Allocate"
8303 ]
8304 ]
8305 },
8306 "protected" : 1,
8307 "returns" : {
8308 "type" : "null"
8309 }
8310 }
8311 },
8312 "leaf" : 0,
8313 "path" : "/cluster/sdn/dns",
8314 "text" : "dns"
8315 }
8316 ],
8317 "info" : {
8318 "GET" : {
8319 "allowtoken" : 1,
8320 "description" : "Directory index.",
8321 "method" : "GET",
8322 "name" : "index",
8323 "parameters" : {
8324 "additionalProperties" : 0
8325 },
8326 "permissions" : {
8327 "check" : [
8328 "perm",
8329 "/",
8330 [
8331 "SDN.Audit"
8332 ]
8333 ]
8334 },
8335 "returns" : {
8336 "items" : {
8337 "properties" : {
8338 "id" : {
8339 "type" : "string"
8340 }
8341 },
8342 "type" : "object"
8343 },
8344 "links" : [
8345 {
8346 "href" : "{id}",
8347 "rel" : "child"
8348 }
8349 ],
8350 "type" : "array"
8351 }
8352 },
8353 "PUT" : {
8354 "allowtoken" : 1,
8355 "description" : "Apply sdn controller changes && reload.",
8356 "method" : "PUT",
8357 "name" : "reload",
8358 "parameters" : {
8359 "additionalProperties" : 0
8360 },
8361 "permissions" : {
8362 "check" : [
8363 "perm",
8364 "/sdn",
8365 [
8366 "SDN.Allocate"
8367 ]
8368 ]
8369 },
8370 "protected" : 1,
8371 "returns" : {
8372 "type" : "string"
8373 }
8374 }
8375 },
8376 "leaf" : 0,
8377 "path" : "/cluster/sdn",
8378 "text" : "sdn"
8379 },
8380 {
8381 "info" : {
8382 "GET" : {
8383 "allowtoken" : 1,
8384 "description" : "Read cluster log",
8385 "method" : "GET",
8386 "name" : "log",
8387 "parameters" : {
8388 "additionalProperties" : 0,
8389 "properties" : {
8390 "max" : {
8391 "description" : "Maximum number of entries.",
8392 "minimum" : 1,
8393 "optional" : 1,
8394 "type" : "integer",
8395 "typetext" : "<integer> (1 - N)"
8396 }
8397 }
8398 },
8399 "permissions" : {
8400 "user" : "all"
8401 },
8402 "returns" : {
8403 "items" : {
8404 "properties" : {},
8405 "type" : "object"
8406 },
8407 "type" : "array"
8408 }
8409 }
8410 },
8411 "leaf" : 1,
8412 "path" : "/cluster/log",
8413 "text" : "log"
8414 },
8415 {
8416 "info" : {
8417 "GET" : {
8418 "allowtoken" : 1,
8419 "description" : "Resources index (cluster wide).",
8420 "method" : "GET",
8421 "name" : "resources",
8422 "parameters" : {
8423 "additionalProperties" : 0,
8424 "properties" : {
8425 "type" : {
8426 "enum" : [
8427 "vm",
8428 "storage",
8429 "node",
8430 "sdn"
8431 ],
8432 "optional" : 1,
8433 "type" : "string"
8434 }
8435 }
8436 },
8437 "permissions" : {
8438 "user" : "all"
8439 },
8440 "returns" : {
8441 "items" : {
8442 "properties" : {
81a3384d
TL
8443 "cgroup-mode" : {
8444 "description" : "The cgroup mode the node operates under (when type == node).",
8445 "optional" : 1,
8446 "type" : "integer"
8447 },
d2656385
TL
8448 "content" : {
8449 "description" : "Allowed storage content types (when type == storage).",
8450 "format" : "pve-storage-content-list",
8451 "optional" : 1,
8452 "type" : "string"
8453 },
8454 "cpu" : {
8455 "description" : "CPU utilization (when type in node,qemu,lxc).",
4e7f60c2 8456 "minimum" : 0,
4d47f125
TL
8457 "optional" : 1,
8458 "renderer" : "fraction_as_percentage",
8459 "type" : "number"
8460 },
8461 "disk" : {
8462 "description" : "Used disk space in bytes (when type in storage), used root image spave for VMs (type in qemu,lxc).",
4e7f60c2 8463 "minimum" : 0,
4d47f125
TL
8464 "optional" : 1,
8465 "renderer" : "bytes",
4e7f60c2 8466 "type" : "integer"
4d47f125
TL
8467 },
8468 "hastate" : {
8469 "description" : "HA service status (for HA managed VMs).",
8470 "optional" : 1,
8471 "type" : "string"
8472 },
8473 "id" : {
8474 "type" : "string"
8475 },
8476 "level" : {
8477 "description" : "Support level (when type == node).",
8478 "optional" : 1,
8479 "type" : "string"
8480 },
8481 "maxcpu" : {
8482 "description" : "Number of available CPUs (when type in node,qemu,lxc).",
4e7f60c2 8483 "minimum" : 0,
4d47f125
TL
8484 "optional" : 1,
8485 "type" : "number"
8486 },
8487 "maxdisk" : {
8488 "description" : "Storage size in bytes (when type in storage), root image size for VMs (type in qemu,lxc).",
4e7f60c2 8489 "minimum" : 0,
4d47f125
TL
8490 "optional" : 1,
8491 "renderer" : "bytes",
8492 "type" : "integer"
8493 },
8494 "maxmem" : {
8495 "description" : "Number of available memory in bytes (when type in node,qemu,lxc).",
8496 "optional" : 1,
8497 "renderer" : "bytes",
8498 "type" : "integer"
8499 },
8500 "mem" : {
8501 "description" : "Used memory in bytes (when type in node,qemu,lxc).",
4e7f60c2 8502 "minimum" : 0,
4d47f125
TL
8503 "optional" : 1,
8504 "renderer" : "bytes",
4e7f60c2 8505 "type" : "integer"
4d47f125 8506 },
34f3e481
TL
8507 "name" : {
8508 "description" : "Name of the resource.",
8509 "optional" : 1,
8510 "type" : "string"
8511 },
4d47f125
TL
8512 "node" : {
8513 "description" : "The cluster node name (when type in node,storage,qemu,lxc).",
8514 "format" : "pve-node",
8515 "optional" : 1,
8516 "type" : "string"
8517 },
d2656385
TL
8518 "plugintype" : {
8519 "description" : "More specific type, if available.",
8520 "optional" : 1,
8521 "type" : "string"
8522 },
4d47f125
TL
8523 "pool" : {
8524 "description" : "The pool name (when type in pool,qemu,lxc).",
8525 "optional" : 1,
8526 "type" : "string"
8527 },
8528 "status" : {
8529 "description" : "Resource type dependent status.",
8530 "optional" : 1,
8531 "type" : "string"
8532 },
8533 "storage" : {
8534 "description" : "The storage identifier (when type == storage).",
8535 "format" : "pve-storage-id",
8536 "optional" : 1,
8537 "type" : "string"
8538 },
8539 "type" : {
8540 "description" : "Resource type.",
8541 "enum" : [
8542 "node",
8543 "storage",
8544 "pool",
8545 "qemu",
8546 "lxc",
1c532546
TL
8547 "openvz",
8548 "sdn"
4d47f125
TL
8549 ],
8550 "type" : "string"
8551 },
8552 "uptime" : {
8553 "description" : "Node uptime in seconds (when type in node,qemu,lxc).",
8554 "optional" : 1,
8555 "renderer" : "duration",
8556 "type" : "integer"
4e7f60c2
TL
8557 },
8558 "vmid" : {
8559 "description" : "The numerical vmid (when type in qemu,lxc).",
8560 "minimum" : 1,
8561 "optional" : 1,
8562 "type" : "integer"
4d47f125
TL
8563 }
8564 },
44660702
DM
8565 "type" : "object"
8566 },
8567 "type" : "array"
8568 }
56122987
DM
8569 }
8570 },
7aacca6f 8571 "leaf" : 1,
44660702
DM
8572 "path" : "/cluster/resources",
8573 "text" : "resources"
56122987
DM
8574 },
8575 {
56122987
DM
8576 "info" : {
8577 "GET" : {
e9cd3bd4 8578 "allowtoken" : 1,
7aacca6f 8579 "description" : "List recent tasks (cluster wide).",
44660702 8580 "method" : "GET",
7aacca6f 8581 "name" : "tasks",
56122987
DM
8582 "parameters" : {
8583 "additionalProperties" : 0
8584 },
44660702
DM
8585 "permissions" : {
8586 "user" : "all"
8587 },
56122987
DM
8588 "returns" : {
8589 "items" : {
8590 "properties" : {
8591 "upid" : {
8592 "type" : "string"
8593 }
44660702
DM
8594 },
8595 "type" : "object"
8596 },
8597 "type" : "array"
7aacca6f 8598 }
56122987
DM
8599 }
8600 },
7aacca6f 8601 "leaf" : 1,
44660702
DM
8602 "path" : "/cluster/tasks",
8603 "text" : "tasks"
56122987
DM
8604 },
8605 {
56122987 8606 "info" : {
7aacca6f 8607 "GET" : {
e9cd3bd4 8608 "allowtoken" : 1,
81a3384d 8609 "description" : "Get datacenter options. Without 'Sys.Audit' on '/' not all options are returned.",
44660702
DM
8610 "method" : "GET",
8611 "name" : "get_options",
56122987 8612 "parameters" : {
7aacca6f
DM
8613 "additionalProperties" : 0
8614 },
8615 "permissions" : {
8616 "check" : [
8617 "perm",
8618 "/",
8619 [
8620 "Sys.Audit"
8621 ]
81a3384d
TL
8622 ],
8623 "user" : "all"
7aacca6f 8624 },
7aacca6f 8625 "returns" : {
44660702 8626 "type" : "object"
7aacca6f
DM
8627 }
8628 },
8629 "PUT" : {
e9cd3bd4 8630 "allowtoken" : 1,
44660702
DM
8631 "description" : "Set datacenter options.",
8632 "method" : "PUT",
7aacca6f
DM
8633 "name" : "set_options",
8634 "parameters" : {
8635 "additionalProperties" : 0,
8636 "properties" : {
27a7acb2
DM
8637 "bwlimit" : {
8638 "description" : "Set bandwidth/io limits various operations.",
8639 "format" : {
8640 "clone" : {
95895385 8641 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
8642 "format_description" : "LIMIT",
8643 "minimum" : "0",
8644 "optional" : 1,
8645 "type" : "number"
8646 },
8647 "default" : {
95895385 8648 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
8649 "format_description" : "LIMIT",
8650 "minimum" : "0",
8651 "optional" : 1,
8652 "type" : "number"
8653 },
8654 "migration" : {
95895385 8655 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
8656 "format_description" : "LIMIT",
8657 "minimum" : "0",
8658 "optional" : 1,
8659 "type" : "number"
8660 },
8661 "move" : {
95895385 8662 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
8663 "format_description" : "LIMIT",
8664 "minimum" : "0",
8665 "optional" : 1,
8666 "type" : "number"
8667 },
8668 "restore" : {
95895385 8669 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
8670 "format_description" : "LIMIT",
8671 "minimum" : "0",
8672 "optional" : 1,
8673 "type" : "number"
8674 }
8675 },
8676 "optional" : 1,
8677 "type" : "string",
8678 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
8679 },
56122987 8680 "console" : {
a9a8e3d1 8681 "description" : "Select the default Console viewer. You can either use the builtin java applet (VNC; deprecated and maps to html5), an external virt-viewer comtatible application (SPICE), an HTML5 based vnc viewer (noVNC), or an HTML5 based console client (xtermjs). If the selected viewer is not available (e.g. SPICE not activated for the VM), the fallback is noVNC.",
56122987
DM
8682 "enum" : [
8683 "applet",
8684 "vv",
a9a8e3d1
DM
8685 "html5",
8686 "xtermjs"
44660702
DM
8687 ],
8688 "optional" : 1,
8689 "type" : "string"
56122987 8690 },
81a3384d
TL
8691 "crs" : {
8692 "description" : "Cluster resource scheduling settings.",
8693 "format" : {
8694 "ha" : {
8695 "default" : "basic",
8696 "description" : "Use this resource scheduler mode for HA.",
8697 "enum" : [
8698 "basic",
8699 "static"
8700 ],
8701 "type" : "string",
8702 "verbose_description" : "Configures how the HA manager should select nodes to start or recover services. With 'basic', only the number of services is used, with 'static', static CPU and memory configuration of services is considered."
8703 }
8704 },
8705 "optional" : 1,
8706 "type" : "string",
8707 "typetext" : "ha=<basic|static>"
8708 },
7aacca6f 8709 "delete" : {
7aacca6f 8710 "description" : "A list of settings you want to delete.",
44660702 8711 "format" : "pve-configid-list",
7aacca6f 8712 "optional" : 1,
013dc89f
DM
8713 "type" : "string",
8714 "typetext" : "<string>"
7aacca6f 8715 },
5370fa8c
TL
8716 "description" : {
8717 "description" : "Datacenter description. Shown in the web-interface datacenter notes panel. This is saved as comment inside the configuration file.",
8718 "maxLength" : 65536,
8719 "optional" : 1,
8720 "type" : "string",
8721 "typetext" : "<string>"
8722 },
44660702
DM
8723 "email_from" : {
8724 "description" : "Specify email address to send notification from (default is root@$hostname)",
8725 "format" : "email-opt",
7aacca6f 8726 "optional" : 1,
013dc89f
DM
8727 "type" : "string",
8728 "typetext" : "<string>"
44660702
DM
8729 },
8730 "fencing" : {
8731 "default" : "watchdog",
8732 "description" : "Set the fencing mode of the HA cluster. Hardware mode needs a valid configuration of fence devices in /etc/pve/ha/fence.cfg. With both all two modes are used.\n\nWARNING: 'hardware' and 'both' are EXPERIMENTAL & WIP",
7aacca6f 8733 "enum" : [
44660702
DM
8734 "watchdog",
8735 "hardware",
8736 "both"
7aacca6f 8737 ],
44660702
DM
8738 "optional" : 1,
8739 "type" : "string"
8740 },
5f26e15b
TL
8741 "ha" : {
8742 "description" : "Cluster wide HA settings.",
8743 "format" : {
8744 "shutdown_policy" : {
8745 "default" : "conditional",
5c1699e5 8746 "description" : "The policy for HA services on node shutdown. 'freeze' disables auto-recovery, 'failover' ensures recovery, 'conditional' recovers on poweroff and freezes on reboot. 'migrate' will migrate running services to other nodes, if possible. With 'freeze' or 'failover', HA Services will always get stopped first on shutdown.",
5f26e15b
TL
8747 "enum" : [
8748 "freeze",
8749 "failover",
5c1699e5
TL
8750 "conditional",
8751 "migrate"
5f26e15b
TL
8752 ],
8753 "type" : "string",
e9cd3bd4 8754 "verbose_description" : "Describes the policy for handling HA services on poweroff or reboot of a node. Freeze will always freeze services which are still located on the node on shutdown, those services won't be recovered by the HA manager. Failover will not mark the services as frozen and thus the services will get recovered to other nodes, if the shutdown node does not come up again quickly (< 1min). 'conditional' chooses automatically depending on the type of shutdown, i.e., on a reboot the service will be frozen but on a poweroff the service will stay as is, and thus get recovered after about 2 minutes. Migrate will try to move all running services to another node when a reboot or shutdown was triggered. The poweroff process will only continue once no running services are located on the node anymore. If the node comes up again, the service will be moved back to the previously powered-off node, at least if no other migration, reloaction or recovery took place."
5f26e15b
TL
8755 }
8756 },
8757 "optional" : 1,
8758 "type" : "string",
5c1699e5 8759 "typetext" : "shutdown_policy=<enum>"
5f26e15b 8760 },
44660702
DM
8761 "http_proxy" : {
8762 "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')",
8763 "optional" : 1,
8764 "pattern" : "http://.*",
8765 "type" : "string"
7aacca6f 8766 },
56122987 8767 "keyboard" : {
44660702 8768 "description" : "Default keybord layout for vnc server.",
56122987 8769 "enum" : [
44660702
DM
8770 "de",
8771 "de-ch",
7aacca6f 8772 "da",
56122987 8773 "en-gb",
44660702
DM
8774 "en-us",
8775 "es",
8776 "fi",
8777 "fr",
8778 "fr-be",
8779 "fr-ca",
8780 "fr-ch",
8781 "hu",
7aacca6f 8782 "is",
44660702
DM
8783 "it",
8784 "ja",
8785 "lt",
56122987 8786 "mk",
7aacca6f 8787 "nl",
56122987 8788 "no",
44660702 8789 "pl",
7aacca6f 8790 "pt",
44660702
DM
8791 "pt-br",
8792 "sv",
8793 "sl",
8794 "tr"
56122987 8795 ],
56122987
DM
8796 "optional" : 1,
8797 "type" : "string"
8798 },
44660702
DM
8799 "language" : {
8800 "description" : "Default GUI language.",
8801 "enum" : [
4d47f125 8802 "ca",
1c532546
TL
8803 "da",
8804 "de",
44660702 8805 "en",
1c532546 8806 "es",
4d47f125 8807 "eu",
1c532546 8808 "fa",
4d47f125 8809 "fr",
1c532546 8810 "he",
4d47f125 8811 "it",
4d47f125
TL
8812 "ja",
8813 "nb",
8814 "nn",
4d47f125
TL
8815 "pl",
8816 "pt_BR",
8817 "ru",
8818 "sl",
8819 "sv",
1c532546
TL
8820 "tr",
8821 "zh_CN",
8822 "zh_TW"
44660702 8823 ],
56122987 8824 "optional" : 1,
44660702 8825 "type" : "string"
56122987 8826 },
4bd7df8b
DM
8827 "mac_prefix" : {
8828 "description" : "Prefix for autogenerated MAC addresses.",
95895385 8829 "format" : "mac-prefix",
4bd7df8b 8830 "optional" : 1,
95895385
TL
8831 "type" : "string",
8832 "typetext" : "<string>"
4bd7df8b 8833 },
44660702
DM
8834 "max_workers" : {
8835 "description" : "Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager.",
8836 "minimum" : 1,
56122987 8837 "optional" : 1,
4bd7df8b 8838 "type" : "integer",
013dc89f 8839 "typetext" : "<integer> (1 - N)"
56122987 8840 },
de0983cb
DM
8841 "migration" : {
8842 "description" : "For cluster wide migration settings.",
8843 "format" : {
8844 "network" : {
8845 "description" : "CIDR of the (sub) network that is used for migration.",
8846 "format" : "CIDR",
8847 "format_description" : "CIDR",
8848 "optional" : 1,
8849 "type" : "string"
8850 },
8851 "type" : {
8852 "default" : "secure",
8853 "default_key" : 1,
8854 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
8855 "enum" : [
8856 "secure",
8857 "insecure"
8858 ],
8859 "type" : "string"
8860 }
8861 },
8862 "optional" : 1,
8863 "type" : "string",
8864 "typetext" : "[type=]<secure|insecure> [,network=<CIDR>]"
8865 },
7aacca6f 8866 "migration_unsecure" : {
de0983cb 8867 "description" : "Migration is secure using SSH tunnel by default. For secure private networks you can disable it to speed up migration. Deprecated, use the 'migration' property instead!",
56122987 8868 "optional" : 1,
013dc89f
DM
8869 "type" : "boolean",
8870 "typetext" : "<boolean>"
95895385 8871 },
7af2edf9
TL
8872 "next-id" : {
8873 "description" : "Control the range for the free VMID auto-selection pool.",
8874 "format" : {
8875 "lower" : {
8876 "default" : 100,
8877 "description" : "Lower, inclusive boundary for free next-id API range.",
8878 "max" : 999999999,
8879 "min" : 100,
8880 "optional" : 1,
8881 "type" : "integer"
8882 },
8883 "upper" : {
8884 "default" : 1000000,
460359c5 8885 "description" : "Upper, exclusive boundary for free next-id API range.",
de786b48 8886 "max" : 1000000000,
7af2edf9
TL
8887 "min" : 100,
8888 "optional" : 1,
8889 "type" : "integer"
8890 }
8891 },
8892 "optional" : 1,
8893 "type" : "string",
8894 "typetext" : "[lower=<integer>] [,upper=<integer>]"
8895 },
81a3384d
TL
8896 "registered-tags" : {
8897 "description" : "A list of tags that require a `Sys.Modify` on '/' to set and delete. Tags set here that are also in 'user-tag-access' also require `Sys.Modify`.",
8898 "optional" : 1,
8899 "pattern" : "(?:(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*);)*(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*)",
8900 "type" : "string",
8901 "typetext" : "<tag>[;<tag>...]"
8902 },
8903 "tag-style" : {
8904 "description" : "Tag style options.",
8905 "format" : {
8906 "color-map" : {
8907 "description" : "Manual color mapping for tags (semicolon separated).",
8908 "optional" : 1,
8909 "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})?))*",
8910 "type" : "string",
8911 "typetext" : "<tag>:<hex-color>[:<hex-color-for-text>][;<tag>=...]"
8912 },
8913 "ordering" : {
8914 "default" : "alphabetical",
8915 "description" : "Controls the sorting of the tags in the web ui.",
8916 "enum" : [
8917 "config",
8918 "alphabetical"
8919 ],
8920 "optional" : 1,
8921 "type" : "string"
8922 },
8923 "shape" : {
8924 "default" : "circle",
8925 "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.",
8926 "enum" : [
8927 "full",
8928 "circle",
8929 "dense",
8930 "none"
8931 ],
8932 "optional" : 1,
8933 "type" : "string"
8934 }
8935 },
8936 "optional" : 1,
8937 "type" : "string",
8938 "typetext" : "[color-map=<tag>:<hex-color>[:<hex-color-for-text>][;<tag>=...]] [,ordering=<config|alphabetical>] [,shape=<enum>]"
8939 },
95895385
TL
8940 "u2f" : {
8941 "description" : "u2f",
8942 "format" : {
8943 "appid" : {
8944 "description" : "U2F AppId URL override. Defaults to the origin.",
8945 "format_description" : "APPID",
8946 "optional" : 1,
8947 "type" : "string"
8948 },
8949 "origin" : {
8950 "description" : "U2F Origin override. Mostly useful for single nodes with a single URL.",
8951 "format_description" : "URL",
8952 "optional" : 1,
8953 "type" : "string"
8954 }
8955 },
8956 "optional" : 1,
8957 "type" : "string",
8958 "typetext" : "[appid=<APPID>] [,origin=<URL>]"
5370fa8c 8959 },
81a3384d
TL
8960 "user-tag-access" : {
8961 "description" : "Privilege options for user-settable tags",
8962 "format" : {
8963 "user-allow" : {
8964 "default" : "free",
8965 "description" : "Controls tag usage for users without `Sys.Modify` on `/` by either allowing `none`, a `list`, already `existing` or anything (`free`).",
8966 "enum" : [
8967 "none",
8968 "list",
8969 "existing",
8970 "free"
8971 ],
8972 "optional" : 1,
8973 "type" : "string",
8974 "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' tasg from 'user-allow'list' are usable. 'existing' like list, but already existing tags of resources are also usable.'free' no tag restrictions."
8975 },
8976 "user-allow-list" : {
8977 "description" : "List of tags users are allowed to set and delete (semicolon separated) for 'user-allow' values 'list' and 'existing'.",
8978 "optional" : 1,
8979 "pattern" : "(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*)(?:;(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*))*",
8980 "type" : "string",
8981 "typetext" : "<tag>[;<tag>...]"
8982 }
8983 },
8984 "optional" : 1,
8985 "type" : "string",
8986 "typetext" : "[user-allow=<enum>] [,user-allow-list=<tag>[;<tag>...]]"
8987 },
5370fa8c
TL
8988 "webauthn" : {
8989 "description" : "webauthn configuration",
8990 "format" : {
81a3384d
TL
8991 "allow-subdomains" : {
8992 "default" : 1,
8993 "description" : "Whether to allow the origin to be a subdomain, rather than the exact URL.",
8994 "optional" : 1,
8995 "type" : "boolean"
8996 },
5370fa8c 8997 "id" : {
81a3384d 8998 "description" : "Relying party ID. Must be the domain name without protocol, port or location. Changing this *will* break existing credentials.",
5370fa8c
TL
8999 "format_description" : "DOMAINNAME",
9000 "optional" : 1,
9001 "type" : "string"
9002 },
9003 "origin" : {
9004 "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.",
9005 "format_description" : "URL",
9006 "optional" : 1,
9007 "type" : "string"
9008 },
9009 "rp" : {
9010 "description" : "Relying party name. Any text identifier. Changing this *may* break existing credentials.",
9011 "format_description" : "RELYING_PARTY",
9012 "optional" : 1,
9013 "type" : "string"
9014 }
9015 },
9016 "optional" : 1,
9017 "type" : "string",
81a3384d 9018 "typetext" : "[allow-subdomains=<1|0>] [,id=<DOMAINNAME>] [,origin=<URL>] [,rp=<RELYING_PARTY>]"
56122987
DM
9019 }
9020 }
9021 },
44660702
DM
9022 "permissions" : {
9023 "check" : [
9024 "perm",
9025 "/",
9026 [
9027 "Sys.Modify"
9028 ]
9029 ]
9030 },
56122987 9031 "protected" : 1,
7aacca6f
DM
9032 "returns" : {
9033 "type" : "null"
44660702 9034 }
7aacca6f
DM
9035 }
9036 },
44660702
DM
9037 "leaf" : 1,
9038 "path" : "/cluster/options",
7aacca6f
DM
9039 "text" : "options"
9040 },
9041 {
7aacca6f 9042 "info" : {
56122987 9043 "GET" : {
e9cd3bd4 9044 "allowtoken" : 1,
1e3f8156 9045 "description" : "Get cluster status information.",
44660702
DM
9046 "method" : "GET",
9047 "name" : "get_status",
56122987
DM
9048 "parameters" : {
9049 "additionalProperties" : 0
9050 },
56122987
DM
9051 "permissions" : {
9052 "check" : [
9053 "perm",
9054 "/",
9055 [
9056 "Sys.Audit"
9057 ]
9058 ]
9059 },
7aacca6f 9060 "protected" : 1,
56122987 9061 "returns" : {
56122987 9062 "items" : {
56122987 9063 "properties" : {
e9cd3bd4
TL
9064 "id" : {
9065 "type" : "string"
9066 },
9067 "ip" : {
9068 "description" : "[node] IP of the resolved nodename.",
9069 "optional" : 1,
9070 "type" : "string"
9071 },
9072 "level" : {
9073 "description" : "[node] Proxmox VE Subscription level, indicates if eligible for enterprise support as well as access to the stable Proxmox VE Enterprise Repository.",
9074 "optional" : 1,
9075 "type" : "string"
9076 },
9077 "local" : {
9078 "description" : "[node] Indicates if this is the responding node.",
9079 "optional" : 1,
9080 "type" : "boolean"
9081 },
9082 "name" : {
9083 "type" : "string"
9084 },
9085 "nodeid" : {
9086 "description" : "[node] ID of the node from the corosync configuration.",
9087 "optional" : 1,
9088 "type" : "integer"
9089 },
9090 "nodes" : {
9091 "description" : "[cluster] Nodes count, including offline nodes.",
9092 "optional" : 1,
9093 "type" : "integer"
9094 },
9095 "online" : {
9096 "description" : "[node] Indicates if the node is online or offline.",
9097 "optional" : 1,
9098 "type" : "boolean"
9099 },
9100 "quorate" : {
9101 "description" : "[cluster] Indicates if there is a majority of nodes online to make decisions",
9102 "optional" : 1,
9103 "type" : "boolean"
9104 },
56122987 9105 "type" : {
e9cd3bd4
TL
9106 "description" : "Indicates the type, either cluster or node. The type defines the object properties e.g. quorate available for type cluster.",
9107 "enum" : [
9108 "cluster",
9109 "node"
9110 ],
56122987 9111 "type" : "string"
e9cd3bd4
TL
9112 },
9113 "version" : {
9114 "description" : "[cluster] Current version of the corosync configuration file.",
9115 "optional" : 1,
9116 "type" : "integer"
56122987 9117 }
44660702
DM
9118 },
9119 "type" : "object"
7aacca6f
DM
9120 },
9121 "type" : "array"
56122987
DM
9122 }
9123 }
9124 },
44660702 9125 "leaf" : 1,
7aacca6f 9126 "path" : "/cluster/status",
44660702 9127 "text" : "status"
56122987
DM
9128 },
9129 {
56122987
DM
9130 "info" : {
9131 "GET" : {
e9cd3bd4 9132 "allowtoken" : 1,
c30bb419 9133 "description" : "Get next free VMID. Pass a VMID to assert that its free (at time of check).",
44660702
DM
9134 "method" : "GET",
9135 "name" : "nextid",
56122987 9136 "parameters" : {
44660702 9137 "additionalProperties" : 0,
56122987
DM
9138 "properties" : {
9139 "vmid" : {
44660702 9140 "description" : "The (unique) ID of the VM.",
56122987 9141 "format" : "pve-vmid",
7aacca6f 9142 "minimum" : 1,
7aacca6f 9143 "optional" : 1,
4bd7df8b 9144 "type" : "integer",
013dc89f 9145 "typetext" : "<integer> (1 - N)"
56122987 9146 }
44660702 9147 }
56122987 9148 },
7aacca6f
DM
9149 "permissions" : {
9150 "user" : "all"
44660702
DM
9151 },
9152 "returns" : {
9153 "description" : "The next free VMID.",
9154 "type" : "integer"
7aacca6f 9155 }
56122987
DM
9156 }
9157 },
7aacca6f 9158 "leaf" : 1,
44660702
DM
9159 "path" : "/cluster/nextid",
9160 "text" : "nextid"
56122987
DM
9161 }
9162 ],
44660702
DM
9163 "info" : {
9164 "GET" : {
e9cd3bd4 9165 "allowtoken" : 1,
44660702
DM
9166 "description" : "Cluster index.",
9167 "method" : "GET",
9168 "name" : "index",
9169 "parameters" : {
9170 "additionalProperties" : 0
9171 },
9172 "permissions" : {
9173 "user" : "all"
9174 },
9175 "returns" : {
9176 "items" : {
9177 "properties" : {},
9178 "type" : "object"
9179 },
9180 "links" : [
9181 {
9182 "href" : "{name}",
9183 "rel" : "child"
9184 }
9185 ],
9186 "type" : "array"
9187 }
9188 }
9189 },
9190 "leaf" : 0,
9191 "path" : "/cluster",
7aacca6f 9192 "text" : "cluster"
56122987
DM
9193 },
9194 {
56122987
DM
9195 "children" : [
9196 {
7aacca6f
DM
9197 "children" : [
9198 {
9199 "children" : [
9200 {
56122987
DM
9201 "children" : [
9202 {
56122987
DM
9203 "children" : [
9204 {
9205 "children" : [
9206 {
56122987
DM
9207 "info" : {
9208 "DELETE" : {
e9cd3bd4 9209 "allowtoken" : 1,
44660702 9210 "description" : "Delete rule.",
7aacca6f 9211 "method" : "DELETE",
44660702 9212 "name" : "delete_rule",
56122987 9213 "parameters" : {
44660702 9214 "additionalProperties" : 0,
56122987 9215 "properties" : {
44660702
DM
9216 "digest" : {
9217 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9218 "maxLength" : 40,
9219 "optional" : 1,
013dc89f
DM
9220 "type" : "string",
9221 "typetext" : "<string>"
44660702 9222 },
56122987 9223 "node" : {
7aacca6f 9224 "description" : "The cluster node name.",
44660702 9225 "format" : "pve-node",
013dc89f
DM
9226 "type" : "string",
9227 "typetext" : "<string>"
7aacca6f 9228 },
56122987 9229 "pos" : {
7aacca6f 9230 "description" : "Update rule at position <pos>.",
44660702 9231 "minimum" : 0,
56122987 9232 "optional" : 1,
4bd7df8b 9233 "type" : "integer",
013dc89f 9234 "typetext" : "<integer> (0 - N)"
44660702
DM
9235 },
9236 "vmid" : {
9237 "description" : "The (unique) ID of the VM.",
9238 "format" : "pve-vmid",
9239 "minimum" : 1,
4bd7df8b 9240 "type" : "integer",
013dc89f 9241 "typetext" : "<integer> (1 - N)"
56122987 9242 }
44660702 9243 }
7aacca6f 9244 },
56122987
DM
9245 "permissions" : {
9246 "check" : [
9247 "perm",
9248 "/vms/{vmid}",
9249 [
9250 "VM.Config.Network"
9251 ]
9252 ]
9253 },
44660702
DM
9254 "protected" : 1,
9255 "proxyto" : null,
56122987
DM
9256 "returns" : {
9257 "type" : "null"
44660702
DM
9258 }
9259 },
9260 "GET" : {
e9cd3bd4 9261 "allowtoken" : 1,
44660702
DM
9262 "description" : "Get single rule data.",
9263 "method" : "GET",
9264 "name" : "get_rule",
9265 "parameters" : {
9266 "additionalProperties" : 0,
9267 "properties" : {
9268 "node" : {
9269 "description" : "The cluster node name.",
9270 "format" : "pve-node",
013dc89f
DM
9271 "type" : "string",
9272 "typetext" : "<string>"
44660702
DM
9273 },
9274 "pos" : {
9275 "description" : "Update rule at position <pos>.",
9276 "minimum" : 0,
9277 "optional" : 1,
4bd7df8b 9278 "type" : "integer",
013dc89f 9279 "typetext" : "<integer> (0 - N)"
44660702
DM
9280 },
9281 "vmid" : {
9282 "description" : "The (unique) ID of the VM.",
9283 "format" : "pve-vmid",
9284 "minimum" : 1,
4bd7df8b 9285 "type" : "integer",
013dc89f 9286 "typetext" : "<integer> (1 - N)"
44660702
DM
9287 }
9288 }
56122987 9289 },
56122987
DM
9290 "permissions" : {
9291 "check" : [
9292 "perm",
9293 "/vms/{vmid}",
9294 [
44660702 9295 "VM.Audit"
56122987
DM
9296 ]
9297 ]
9298 },
56122987 9299 "proxyto" : null,
44660702
DM
9300 "returns" : {
9301 "properties" : {
e2d681b3
TL
9302 "action" : {
9303 "type" : "string"
9304 },
9305 "comment" : {
9306 "optional" : 1,
9307 "type" : "string"
9308 },
9309 "dest" : {
9310 "optional" : 1,
9311 "type" : "string"
9312 },
9313 "dport" : {
9314 "optional" : 1,
9315 "type" : "string"
9316 },
9317 "enable" : {
9318 "optional" : 1,
9319 "type" : "integer"
9320 },
4772952b
TL
9321 "icmp-type" : {
9322 "optional" : 1,
9323 "type" : "string"
9324 },
e2d681b3
TL
9325 "iface" : {
9326 "optional" : 1,
9327 "type" : "string"
9328 },
9329 "ipversion" : {
9330 "optional" : 1,
9331 "type" : "integer"
9332 },
95895385
TL
9333 "log" : {
9334 "description" : "Log level for firewall rule",
9335 "enum" : [
9336 "emerg",
9337 "alert",
9338 "crit",
9339 "err",
9340 "warning",
9341 "notice",
9342 "info",
9343 "debug",
9344 "nolog"
9345 ],
9346 "optional" : 1,
9347 "type" : "string"
9348 },
e2d681b3
TL
9349 "macro" : {
9350 "optional" : 1,
5f26e15b 9351 "type" : "string"
e2d681b3 9352 },
44660702
DM
9353 "pos" : {
9354 "type" : "integer"
e2d681b3
TL
9355 },
9356 "proto" : {
9357 "optional" : 1,
9358 "type" : "string"
9359 },
9360 "source" : {
9361 "optional" : 1,
9362 "type" : "string"
9363 },
9364 "sport" : {
9365 "optional" : 1,
9366 "type" : "string"
9367 },
9368 "type" : {
9369 "type" : "string"
44660702
DM
9370 }
9371 },
9372 "type" : "object"
9373 }
9374 },
9375 "PUT" : {
e9cd3bd4 9376 "allowtoken" : 1,
7aacca6f
DM
9377 "description" : "Modify rule data.",
9378 "method" : "PUT",
44660702 9379 "name" : "update_rule",
56122987 9380 "parameters" : {
44660702 9381 "additionalProperties" : 0,
56122987 9382 "properties" : {
44660702
DM
9383 "action" : {
9384 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
9385 "maxLength" : 20,
9386 "minLength" : 2,
56122987 9387 "optional" : 1,
44660702 9388 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f
DM
9389 "type" : "string"
9390 },
7aacca6f 9391 "comment" : {
e94f0d56 9392 "description" : "Descriptive comment.",
7aacca6f 9393 "optional" : 1,
013dc89f
DM
9394 "type" : "string",
9395 "typetext" : "<string>"
7aacca6f
DM
9396 },
9397 "delete" : {
7aacca6f 9398 "description" : "A list of settings you want to delete.",
44660702
DM
9399 "format" : "pve-configid-list",
9400 "optional" : 1,
013dc89f
DM
9401 "type" : "string",
9402 "typetext" : "<string>"
7aacca6f
DM
9403 },
9404 "dest" : {
44660702 9405 "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 9406 "format" : "pve-fw-addr-spec",
0695fdaf 9407 "maxLength" : 512,
56122987 9408 "optional" : 1,
013dc89f
DM
9409 "type" : "string",
9410 "typetext" : "<string>"
56122987 9411 },
7aacca6f 9412 "digest" : {
44660702 9413 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7aacca6f 9414 "maxLength" : 40,
56122987 9415 "optional" : 1,
013dc89f
DM
9416 "type" : "string",
9417 "typetext" : "<string>"
44660702
DM
9418 },
9419 "dport" : {
9420 "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.",
9421 "format" : "pve-fw-dport-spec",
9422 "optional" : 1,
013dc89f
DM
9423 "type" : "string",
9424 "typetext" : "<string>"
56122987 9425 },
7aacca6f 9426 "enable" : {
e94f0d56 9427 "description" : "Flag to enable/disable a rule.",
44660702 9428 "minimum" : 0,
56122987 9429 "optional" : 1,
4bd7df8b 9430 "type" : "integer",
013dc89f 9431 "typetext" : "<integer> (0 - N)"
7aacca6f 9432 },
4772952b
TL
9433 "icmp-type" : {
9434 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
9435 "format" : "pve-fw-icmp-type-spec",
9436 "optional" : 1,
9437 "type" : "string",
9438 "typetext" : "<string>"
9439 },
44660702
DM
9440 "iface" : {
9441 "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.",
9442 "format" : "pve-iface",
9443 "maxLength" : 20,
7aacca6f 9444 "minLength" : 2,
56122987 9445 "optional" : 1,
013dc89f
DM
9446 "type" : "string",
9447 "typetext" : "<string>"
56122987 9448 },
95895385
TL
9449 "log" : {
9450 "description" : "Log level for firewall rule.",
9451 "enum" : [
9452 "emerg",
9453 "alert",
9454 "crit",
9455 "err",
9456 "warning",
9457 "notice",
9458 "info",
9459 "debug",
9460 "nolog"
9461 ],
9462 "optional" : 1,
9463 "type" : "string"
9464 },
44660702 9465 "macro" : {
e94f0d56 9466 "description" : "Use predefined standard macro.",
44660702 9467 "maxLength" : 128,
56122987 9468 "optional" : 1,
013dc89f
DM
9469 "type" : "string",
9470 "typetext" : "<string>"
56122987 9471 },
44660702
DM
9472 "moveto" : {
9473 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
9474 "minimum" : 0,
56122987 9475 "optional" : 1,
4bd7df8b 9476 "type" : "integer",
013dc89f 9477 "typetext" : "<integer> (0 - N)"
56122987 9478 },
44660702
DM
9479 "node" : {
9480 "description" : "The cluster node name.",
9481 "format" : "pve-node",
013dc89f
DM
9482 "type" : "string",
9483 "typetext" : "<string>"
44660702
DM
9484 },
9485 "pos" : {
9486 "description" : "Update rule at position <pos>.",
9487 "minimum" : 0,
9488 "optional" : 1,
4bd7df8b 9489 "type" : "integer",
013dc89f 9490 "typetext" : "<integer> (0 - N)"
56122987 9491 },
44660702
DM
9492 "proto" : {
9493 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
9494 "format" : "pve-fw-protocol-spec",
9495 "optional" : 1,
013dc89f
DM
9496 "type" : "string",
9497 "typetext" : "<string>"
7aacca6f 9498 },
44660702
DM
9499 "source" : {
9500 "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.",
9501 "format" : "pve-fw-addr-spec",
0695fdaf 9502 "maxLength" : 512,
56122987 9503 "optional" : 1,
013dc89f
DM
9504 "type" : "string",
9505 "typetext" : "<string>"
56122987
DM
9506 },
9507 "sport" : {
9508 "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
9509 "format" : "pve-fw-sport-spec",
9510 "optional" : 1,
013dc89f
DM
9511 "type" : "string",
9512 "typetext" : "<string>"
44660702
DM
9513 },
9514 "type" : {
e94f0d56 9515 "description" : "Rule type.",
44660702
DM
9516 "enum" : [
9517 "in",
9518 "out",
9519 "group"
9520 ],
56122987 9521 "optional" : 1,
56122987 9522 "type" : "string"
44660702
DM
9523 },
9524 "vmid" : {
9525 "description" : "The (unique) ID of the VM.",
9526 "format" : "pve-vmid",
9527 "minimum" : 1,
4bd7df8b 9528 "type" : "integer",
013dc89f 9529 "typetext" : "<integer> (1 - N)"
56122987 9530 }
44660702 9531 }
56122987 9532 },
56122987
DM
9533 "permissions" : {
9534 "check" : [
9535 "perm",
9536 "/vms/{vmid}",
9537 [
44660702 9538 "VM.Config.Network"
56122987
DM
9539 ]
9540 ]
7aacca6f 9541 },
44660702 9542 "protected" : 1,
7aacca6f 9543 "proxyto" : null,
7aacca6f 9544 "returns" : {
44660702
DM
9545 "type" : "null"
9546 }
56122987 9547 }
7aacca6f 9548 },
44660702 9549 "leaf" : 1,
7aacca6f 9550 "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}",
44660702 9551 "text" : "{pos}"
56122987
DM
9552 }
9553 ],
56122987 9554 "info" : {
44660702 9555 "GET" : {
e9cd3bd4 9556 "allowtoken" : 1,
44660702
DM
9557 "description" : "List rules.",
9558 "method" : "GET",
9559 "name" : "get_rules",
9560 "parameters" : {
9561 "additionalProperties" : 0,
9562 "properties" : {
9563 "node" : {
9564 "description" : "The cluster node name.",
9565 "format" : "pve-node",
013dc89f
DM
9566 "type" : "string",
9567 "typetext" : "<string>"
44660702
DM
9568 },
9569 "vmid" : {
9570 "description" : "The (unique) ID of the VM.",
9571 "format" : "pve-vmid",
9572 "minimum" : 1,
4bd7df8b 9573 "type" : "integer",
013dc89f 9574 "typetext" : "<integer> (1 - N)"
44660702
DM
9575 }
9576 }
56122987 9577 },
56122987
DM
9578 "permissions" : {
9579 "check" : [
9580 "perm",
9581 "/vms/{vmid}",
9582 [
44660702 9583 "VM.Audit"
56122987
DM
9584 ]
9585 ]
7aacca6f 9586 },
44660702
DM
9587 "proxyto" : null,
9588 "returns" : {
9589 "items" : {
9590 "properties" : {
9591 "pos" : {
9592 "type" : "integer"
9593 }
9594 },
9595 "type" : "object"
9596 },
9597 "links" : [
9598 {
9599 "href" : "{pos}",
9600 "rel" : "child"
9601 }
9602 ],
9603 "type" : "array"
9604 }
9605 },
9606 "POST" : {
e9cd3bd4 9607 "allowtoken" : 1,
44660702 9608 "description" : "Create new rule.",
7aacca6f 9609 "method" : "POST",
44660702 9610 "name" : "create_rule",
56122987 9611 "parameters" : {
44660702 9612 "additionalProperties" : 0,
56122987 9613 "properties" : {
44660702
DM
9614 "action" : {
9615 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
9616 "maxLength" : 20,
9617 "minLength" : 2,
9618 "optional" : 0,
9619 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
9620 "type" : "string"
56122987 9621 },
44660702 9622 "comment" : {
e94f0d56 9623 "description" : "Descriptive comment.",
56122987 9624 "optional" : 1,
013dc89f
DM
9625 "type" : "string",
9626 "typetext" : "<string>"
56122987 9627 },
44660702
DM
9628 "dest" : {
9629 "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.",
9630 "format" : "pve-fw-addr-spec",
0695fdaf 9631 "maxLength" : 512,
44660702 9632 "optional" : 1,
013dc89f
DM
9633 "type" : "string",
9634 "typetext" : "<string>"
56122987 9635 },
44660702
DM
9636 "digest" : {
9637 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9638 "maxLength" : 40,
56122987 9639 "optional" : 1,
013dc89f
DM
9640 "type" : "string",
9641 "typetext" : "<string>"
56122987 9642 },
7aacca6f
DM
9643 "dport" : {
9644 "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 9645 "format" : "pve-fw-dport-spec",
7aacca6f 9646 "optional" : 1,
013dc89f
DM
9647 "type" : "string",
9648 "typetext" : "<string>"
56122987
DM
9649 },
9650 "enable" : {
e94f0d56 9651 "description" : "Flag to enable/disable a rule.",
56122987 9652 "minimum" : 0,
44660702 9653 "optional" : 1,
4bd7df8b 9654 "type" : "integer",
013dc89f 9655 "typetext" : "<integer> (0 - N)"
56122987 9656 },
4772952b
TL
9657 "icmp-type" : {
9658 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
9659 "format" : "pve-fw-icmp-type-spec",
9660 "optional" : 1,
9661 "type" : "string",
9662 "typetext" : "<string>"
9663 },
44660702
DM
9664 "iface" : {
9665 "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.",
9666 "format" : "pve-iface",
9667 "maxLength" : 20,
7aacca6f 9668 "minLength" : 2,
44660702 9669 "optional" : 1,
013dc89f
DM
9670 "type" : "string",
9671 "typetext" : "<string>"
56122987 9672 },
95895385
TL
9673 "log" : {
9674 "description" : "Log level for firewall rule.",
9675 "enum" : [
9676 "emerg",
9677 "alert",
9678 "crit",
9679 "err",
9680 "warning",
9681 "notice",
9682 "info",
9683 "debug",
9684 "nolog"
9685 ],
9686 "optional" : 1,
9687 "type" : "string"
9688 },
44660702 9689 "macro" : {
e94f0d56 9690 "description" : "Use predefined standard macro.",
44660702 9691 "maxLength" : 128,
56122987 9692 "optional" : 1,
013dc89f
DM
9693 "type" : "string",
9694 "typetext" : "<string>"
7aacca6f 9695 },
44660702
DM
9696 "node" : {
9697 "description" : "The cluster node name.",
9698 "format" : "pve-node",
013dc89f
DM
9699 "type" : "string",
9700 "typetext" : "<string>"
44660702
DM
9701 },
9702 "pos" : {
9703 "description" : "Update rule at position <pos>.",
9704 "minimum" : 0,
9705 "optional" : 1,
4bd7df8b 9706 "type" : "integer",
013dc89f 9707 "typetext" : "<integer> (0 - N)"
44660702
DM
9708 },
9709 "proto" : {
9710 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
9711 "format" : "pve-fw-protocol-spec",
7aacca6f 9712 "optional" : 1,
013dc89f
DM
9713 "type" : "string",
9714 "typetext" : "<string>"
7aacca6f
DM
9715 },
9716 "source" : {
9717 "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 9718 "format" : "pve-fw-addr-spec",
0695fdaf 9719 "maxLength" : 512,
7aacca6f 9720 "optional" : 1,
013dc89f
DM
9721 "type" : "string",
9722 "typetext" : "<string>"
7aacca6f 9723 },
44660702
DM
9724 "sport" : {
9725 "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.",
9726 "format" : "pve-fw-sport-spec",
7aacca6f 9727 "optional" : 1,
013dc89f
DM
9728 "type" : "string",
9729 "typetext" : "<string>"
7aacca6f 9730 },
44660702 9731 "type" : {
e94f0d56 9732 "description" : "Rule type.",
44660702
DM
9733 "enum" : [
9734 "in",
9735 "out",
9736 "group"
9737 ],
9738 "optional" : 0,
9739 "type" : "string"
7aacca6f 9740 },
7aacca6f 9741 "vmid" : {
44660702 9742 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
9743 "format" : "pve-vmid",
9744 "minimum" : 1,
4bd7df8b 9745 "type" : "integer",
013dc89f 9746 "typetext" : "<integer> (1 - N)"
7aacca6f
DM
9747 }
9748 }
9749 },
56122987
DM
9750 "permissions" : {
9751 "check" : [
9752 "perm",
9753 "/vms/{vmid}",
9754 [
44660702 9755 "VM.Config.Network"
56122987
DM
9756 ]
9757 ]
9758 },
44660702
DM
9759 "protected" : 1,
9760 "proxyto" : null,
56122987 9761 "returns" : {
44660702
DM
9762 "type" : "null"
9763 }
56122987
DM
9764 }
9765 },
44660702 9766 "leaf" : 0,
7aacca6f 9767 "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules",
44660702 9768 "text" : "rules"
56122987
DM
9769 },
9770 {
9771 "children" : [
9772 {
56122987 9773 "info" : {
44660702 9774 "DELETE" : {
e9cd3bd4 9775 "allowtoken" : 1,
44660702
DM
9776 "description" : "Remove IP or Network alias.",
9777 "method" : "DELETE",
9778 "name" : "remove_alias",
56122987 9779 "parameters" : {
44660702 9780 "additionalProperties" : 0,
56122987 9781 "properties" : {
44660702
DM
9782 "digest" : {
9783 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9784 "maxLength" : 40,
9785 "optional" : 1,
013dc89f
DM
9786 "type" : "string",
9787 "typetext" : "<string>"
56122987
DM
9788 },
9789 "name" : {
56122987 9790 "description" : "Alias name.",
44660702 9791 "maxLength" : 64,
7aacca6f 9792 "minLength" : 2,
44660702 9793 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987
DM
9794 "type" : "string"
9795 },
7aacca6f 9796 "node" : {
44660702 9797 "description" : "The cluster node name.",
7aacca6f 9798 "format" : "pve-node",
013dc89f
DM
9799 "type" : "string",
9800 "typetext" : "<string>"
44660702
DM
9801 },
9802 "vmid" : {
9803 "description" : "The (unique) ID of the VM.",
9804 "format" : "pve-vmid",
9805 "minimum" : 1,
4bd7df8b 9806 "type" : "integer",
013dc89f 9807 "typetext" : "<integer> (1 - N)"
56122987 9808 }
44660702 9809 }
56122987 9810 },
7aacca6f
DM
9811 "permissions" : {
9812 "check" : [
9813 "perm",
9814 "/vms/{vmid}",
9815 [
9816 "VM.Config.Network"
9817 ]
9818 ]
56122987 9819 },
44660702
DM
9820 "protected" : 1,
9821 "returns" : {
9822 "type" : "null"
9823 }
9824 },
9825 "GET" : {
e9cd3bd4 9826 "allowtoken" : 1,
44660702
DM
9827 "description" : "Read alias.",
9828 "method" : "GET",
9829 "name" : "read_alias",
56122987 9830 "parameters" : {
44660702 9831 "additionalProperties" : 0,
56122987 9832 "properties" : {
56122987 9833 "name" : {
7aacca6f 9834 "description" : "Alias name.",
44660702 9835 "maxLength" : 64,
56122987 9836 "minLength" : 2,
44660702 9837 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987 9838 "type" : "string"
7aacca6f
DM
9839 },
9840 "node" : {
9841 "description" : "The cluster node name.",
44660702 9842 "format" : "pve-node",
013dc89f
DM
9843 "type" : "string",
9844 "typetext" : "<string>"
44660702
DM
9845 },
9846 "vmid" : {
9847 "description" : "The (unique) ID of the VM.",
9848 "format" : "pve-vmid",
9849 "minimum" : 1,
4bd7df8b 9850 "type" : "integer",
013dc89f 9851 "typetext" : "<integer> (1 - N)"
56122987 9852 }
44660702 9853 }
56122987 9854 },
44660702
DM
9855 "permissions" : {
9856 "check" : [
9857 "perm",
9858 "/vms/{vmid}",
9859 [
9860 "VM.Audit"
9861 ]
9862 ]
56122987 9863 },
44660702
DM
9864 "returns" : {
9865 "type" : "object"
9866 }
7aacca6f 9867 },
44660702 9868 "PUT" : {
e9cd3bd4 9869 "allowtoken" : 1,
44660702
DM
9870 "description" : "Update IP or Network alias.",
9871 "method" : "PUT",
9872 "name" : "update_alias",
56122987
DM
9873 "parameters" : {
9874 "additionalProperties" : 0,
9875 "properties" : {
44660702
DM
9876 "cidr" : {
9877 "description" : "Network/IP specification in CIDR format.",
9878 "format" : "IPorCIDR",
013dc89f
DM
9879 "type" : "string",
9880 "typetext" : "<string>"
44660702
DM
9881 },
9882 "comment" : {
9883 "optional" : 1,
013dc89f
DM
9884 "type" : "string",
9885 "typetext" : "<string>"
56122987
DM
9886 },
9887 "digest" : {
44660702 9888 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
56122987
DM
9889 "maxLength" : 40,
9890 "optional" : 1,
013dc89f
DM
9891 "type" : "string",
9892 "typetext" : "<string>"
56122987 9893 },
7aacca6f 9894 "name" : {
44660702 9895 "description" : "Alias name.",
56122987
DM
9896 "maxLength" : 64,
9897 "minLength" : 2,
9898 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 9899 "type" : "string"
7aacca6f
DM
9900 },
9901 "node" : {
7aacca6f 9902 "description" : "The cluster node name.",
44660702 9903 "format" : "pve-node",
013dc89f
DM
9904 "type" : "string",
9905 "typetext" : "<string>"
44660702
DM
9906 },
9907 "rename" : {
9908 "description" : "Rename an existing alias.",
9909 "maxLength" : 64,
9910 "minLength" : 2,
9911 "optional" : 1,
9912 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
9913 "type" : "string"
9914 },
9915 "vmid" : {
9916 "description" : "The (unique) ID of the VM.",
9917 "format" : "pve-vmid",
9918 "minimum" : 1,
4bd7df8b 9919 "type" : "integer",
013dc89f 9920 "typetext" : "<integer> (1 - N)"
56122987
DM
9921 }
9922 }
9923 },
7aacca6f
DM
9924 "permissions" : {
9925 "check" : [
9926 "perm",
9927 "/vms/{vmid}",
9928 [
9929 "VM.Config.Network"
9930 ]
9931 ]
9932 },
9933 "protected" : 1,
7aacca6f
DM
9934 "returns" : {
9935 "type" : "null"
44660702 9936 }
56122987
DM
9937 }
9938 },
44660702 9939 "leaf" : 1,
7aacca6f 9940 "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}",
44660702 9941 "text" : "{name}"
56122987
DM
9942 }
9943 ],
9944 "info" : {
44660702 9945 "GET" : {
e9cd3bd4 9946 "allowtoken" : 1,
44660702
DM
9947 "description" : "List aliases",
9948 "method" : "GET",
9949 "name" : "get_aliases",
56122987 9950 "parameters" : {
44660702 9951 "additionalProperties" : 0,
56122987 9952 "properties" : {
7aacca6f 9953 "node" : {
7aacca6f 9954 "description" : "The cluster node name.",
44660702 9955 "format" : "pve-node",
013dc89f
DM
9956 "type" : "string",
9957 "typetext" : "<string>"
56122987 9958 },
44660702
DM
9959 "vmid" : {
9960 "description" : "The (unique) ID of the VM.",
9961 "format" : "pve-vmid",
9962 "minimum" : 1,
4bd7df8b 9963 "type" : "integer",
013dc89f 9964 "typetext" : "<integer> (1 - N)"
56122987 9965 }
44660702 9966 }
56122987 9967 },
56122987
DM
9968 "permissions" : {
9969 "check" : [
9970 "perm",
9971 "/vms/{vmid}",
9972 [
44660702 9973 "VM.Audit"
56122987
DM
9974 ]
9975 ]
9976 },
56122987
DM
9977 "returns" : {
9978 "items" : {
9979 "properties" : {
44660702 9980 "cidr" : {
56122987
DM
9981 "type" : "string"
9982 },
44660702
DM
9983 "comment" : {
9984 "optional" : 1,
7aacca6f 9985 "type" : "string"
56122987
DM
9986 },
9987 "digest" : {
56122987 9988 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 9989 "maxLength" : 40,
56122987
DM
9990 "optional" : 0,
9991 "type" : "string"
9992 },
44660702 9993 "name" : {
56122987
DM
9994 "type" : "string"
9995 }
44660702
DM
9996 },
9997 "type" : "object"
56122987 9998 },
56122987
DM
9999 "links" : [
10000 {
10001 "href" : "{name}",
10002 "rel" : "child"
10003 }
44660702
DM
10004 ],
10005 "type" : "array"
10006 }
10007 },
10008 "POST" : {
e9cd3bd4 10009 "allowtoken" : 1,
44660702
DM
10010 "description" : "Create IP or Network Alias.",
10011 "method" : "POST",
10012 "name" : "create_alias",
56122987 10013 "parameters" : {
7aacca6f 10014 "additionalProperties" : 0,
56122987 10015 "properties" : {
44660702
DM
10016 "cidr" : {
10017 "description" : "Network/IP specification in CIDR format.",
10018 "format" : "IPorCIDR",
013dc89f
DM
10019 "type" : "string",
10020 "typetext" : "<string>"
44660702
DM
10021 },
10022 "comment" : {
10023 "optional" : 1,
013dc89f
DM
10024 "type" : "string",
10025 "typetext" : "<string>"
44660702
DM
10026 },
10027 "name" : {
10028 "description" : "Alias name.",
10029 "maxLength" : 64,
10030 "minLength" : 2,
10031 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10032 "type" : "string"
56122987
DM
10033 },
10034 "node" : {
7aacca6f 10035 "description" : "The cluster node name.",
44660702 10036 "format" : "pve-node",
013dc89f
DM
10037 "type" : "string",
10038 "typetext" : "<string>"
44660702
DM
10039 },
10040 "vmid" : {
10041 "description" : "The (unique) ID of the VM.",
10042 "format" : "pve-vmid",
10043 "minimum" : 1,
4bd7df8b 10044 "type" : "integer",
013dc89f 10045 "typetext" : "<integer> (1 - N)"
56122987 10046 }
7aacca6f 10047 }
56122987 10048 },
44660702
DM
10049 "permissions" : {
10050 "check" : [
10051 "perm",
10052 "/vms/{vmid}",
10053 [
10054 "VM.Config.Network"
10055 ]
10056 ]
10057 },
10058 "protected" : 1,
10059 "returns" : {
10060 "type" : "null"
10061 }
56122987 10062 }
44660702
DM
10063 },
10064 "leaf" : 0,
10065 "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases",
10066 "text" : "aliases"
56122987
DM
10067 },
10068 {
56122987
DM
10069 "children" : [
10070 {
7aacca6f
DM
10071 "children" : [
10072 {
10073 "info" : {
10074 "DELETE" : {
e9cd3bd4 10075 "allowtoken" : 1,
44660702 10076 "description" : "Remove IP or Network from IPSet.",
7aacca6f 10077 "method" : "DELETE",
44660702 10078 "name" : "remove_ip",
7aacca6f 10079 "parameters" : {
44660702 10080 "additionalProperties" : 0,
7aacca6f 10081 "properties" : {
44660702
DM
10082 "cidr" : {
10083 "description" : "Network/IP specification in CIDR format.",
10084 "format" : "IPorCIDRorAlias",
013dc89f
DM
10085 "type" : "string",
10086 "typetext" : "<string>"
44660702
DM
10087 },
10088 "digest" : {
10089 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
10090 "maxLength" : 40,
10091 "optional" : 1,
013dc89f
DM
10092 "type" : "string",
10093 "typetext" : "<string>"
44660702 10094 },
7aacca6f 10095 "name" : {
7aacca6f 10096 "description" : "IP set name.",
44660702
DM
10097 "maxLength" : 64,
10098 "minLength" : 2,
7aacca6f 10099 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 10100 "type" : "string"
7aacca6f
DM
10101 },
10102 "node" : {
10103 "description" : "The cluster node name.",
44660702 10104 "format" : "pve-node",
013dc89f
DM
10105 "type" : "string",
10106 "typetext" : "<string>"
7aacca6f
DM
10107 },
10108 "vmid" : {
44660702 10109 "description" : "The (unique) ID of the VM.",
7aacca6f 10110 "format" : "pve-vmid",
44660702 10111 "minimum" : 1,
4bd7df8b 10112 "type" : "integer",
013dc89f 10113 "typetext" : "<integer> (1 - N)"
7aacca6f 10114 }
44660702 10115 }
7aacca6f 10116 },
7aacca6f
DM
10117 "permissions" : {
10118 "check" : [
10119 "perm",
10120 "/vms/{vmid}",
10121 [
10122 "VM.Config.Network"
10123 ]
10124 ]
10125 },
10126 "protected" : 1,
44660702
DM
10127 "returns" : {
10128 "type" : "null"
10129 }
56122987 10130 },
44660702 10131 "GET" : {
e9cd3bd4 10132 "allowtoken" : 1,
44660702
DM
10133 "description" : "Read IP or Network settings from IPSet.",
10134 "method" : "GET",
10135 "name" : "read_ip",
7aacca6f 10136 "parameters" : {
44660702 10137 "additionalProperties" : 0,
7aacca6f 10138 "properties" : {
7aacca6f 10139 "cidr" : {
44660702 10140 "description" : "Network/IP specification in CIDR format.",
7aacca6f 10141 "format" : "IPorCIDRorAlias",
013dc89f
DM
10142 "type" : "string",
10143 "typetext" : "<string>"
7aacca6f
DM
10144 },
10145 "name" : {
7aacca6f 10146 "description" : "IP set name.",
44660702 10147 "maxLength" : 64,
7aacca6f 10148 "minLength" : 2,
44660702
DM
10149 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10150 "type" : "string"
7aacca6f 10151 },
44660702
DM
10152 "node" : {
10153 "description" : "The cluster node name.",
10154 "format" : "pve-node",
013dc89f
DM
10155 "type" : "string",
10156 "typetext" : "<string>"
7aacca6f 10157 },
44660702
DM
10158 "vmid" : {
10159 "description" : "The (unique) ID of the VM.",
10160 "format" : "pve-vmid",
10161 "minimum" : 1,
4bd7df8b 10162 "type" : "integer",
013dc89f 10163 "typetext" : "<integer> (1 - N)"
7aacca6f 10164 }
44660702 10165 }
7aacca6f 10166 },
44660702
DM
10167 "permissions" : {
10168 "check" : [
10169 "perm",
10170 "/vms/{vmid}",
10171 [
10172 "VM.Audit"
10173 ]
10174 ]
10175 },
10176 "protected" : 1,
7aacca6f 10177 "returns" : {
44660702 10178 "type" : "object"
7aacca6f 10179 }
56122987 10180 },
44660702 10181 "PUT" : {
e9cd3bd4 10182 "allowtoken" : 1,
44660702
DM
10183 "description" : "Update IP or Network settings",
10184 "method" : "PUT",
10185 "name" : "update_ip",
7aacca6f
DM
10186 "parameters" : {
10187 "additionalProperties" : 0,
10188 "properties" : {
44660702
DM
10189 "cidr" : {
10190 "description" : "Network/IP specification in CIDR format.",
10191 "format" : "IPorCIDRorAlias",
013dc89f
DM
10192 "type" : "string",
10193 "typetext" : "<string>"
44660702
DM
10194 },
10195 "comment" : {
10196 "optional" : 1,
013dc89f
DM
10197 "type" : "string",
10198 "typetext" : "<string>"
44660702
DM
10199 },
10200 "digest" : {
10201 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
10202 "maxLength" : 40,
10203 "optional" : 1,
013dc89f
DM
10204 "type" : "string",
10205 "typetext" : "<string>"
44660702 10206 },
7aacca6f 10207 "name" : {
7aacca6f 10208 "description" : "IP set name.",
44660702 10209 "maxLength" : 64,
7aacca6f 10210 "minLength" : 2,
44660702
DM
10211 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10212 "type" : "string"
7aacca6f
DM
10213 },
10214 "node" : {
7aacca6f 10215 "description" : "The cluster node name.",
44660702 10216 "format" : "pve-node",
013dc89f
DM
10217 "type" : "string",
10218 "typetext" : "<string>"
7aacca6f 10219 },
44660702
DM
10220 "nomatch" : {
10221 "optional" : 1,
013dc89f
DM
10222 "type" : "boolean",
10223 "typetext" : "<boolean>"
7aacca6f
DM
10224 },
10225 "vmid" : {
10226 "description" : "The (unique) ID of the VM.",
44660702 10227 "format" : "pve-vmid",
7aacca6f 10228 "minimum" : 1,
4bd7df8b 10229 "type" : "integer",
013dc89f 10230 "typetext" : "<integer> (1 - N)"
7aacca6f
DM
10231 }
10232 }
10233 },
10234 "permissions" : {
10235 "check" : [
10236 "perm",
10237 "/vms/{vmid}",
10238 [
44660702 10239 "VM.Config.Network"
7aacca6f
DM
10240 ]
10241 ]
10242 },
7aacca6f 10243 "protected" : 1,
7aacca6f 10244 "returns" : {
44660702 10245 "type" : "null"
7aacca6f 10246 }
56122987 10247 }
7aacca6f 10248 },
7aacca6f 10249 "leaf" : 1,
44660702
DM
10250 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}",
10251 "text" : "{cidr}"
7aacca6f 10252 }
44660702
DM
10253 ],
10254 "info" : {
10255 "DELETE" : {
e9cd3bd4 10256 "allowtoken" : 1,
44660702
DM
10257 "description" : "Delete IPSet",
10258 "method" : "DELETE",
10259 "name" : "delete_ipset",
10260 "parameters" : {
10261 "additionalProperties" : 0,
10262 "properties" : {
81a3384d
TL
10263 "force" : {
10264 "description" : "Delete all members of the IPSet, if there are any.",
10265 "optional" : 1,
10266 "type" : "boolean",
10267 "typetext" : "<boolean>"
10268 },
44660702
DM
10269 "name" : {
10270 "description" : "IP set name.",
10271 "maxLength" : 64,
10272 "minLength" : 2,
10273 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10274 "type" : "string"
10275 },
10276 "node" : {
10277 "description" : "The cluster node name.",
10278 "format" : "pve-node",
013dc89f
DM
10279 "type" : "string",
10280 "typetext" : "<string>"
44660702
DM
10281 },
10282 "vmid" : {
10283 "description" : "The (unique) ID of the VM.",
10284 "format" : "pve-vmid",
10285 "minimum" : 1,
4bd7df8b 10286 "type" : "integer",
013dc89f 10287 "typetext" : "<integer> (1 - N)"
44660702
DM
10288 }
10289 }
7aacca6f 10290 },
44660702
DM
10291 "permissions" : {
10292 "check" : [
10293 "perm",
10294 "/vms/{vmid}",
10295 [
10296 "VM.Config.Network"
10297 ]
10298 ]
7aacca6f 10299 },
44660702
DM
10300 "protected" : 1,
10301 "returns" : {
10302 "type" : "null"
10303 }
10304 },
10305 "GET" : {
e9cd3bd4 10306 "allowtoken" : 1,
44660702
DM
10307 "description" : "List IPSet content",
10308 "method" : "GET",
10309 "name" : "get_ipset",
10310 "parameters" : {
10311 "additionalProperties" : 0,
10312 "properties" : {
10313 "name" : {
10314 "description" : "IP set name.",
10315 "maxLength" : 64,
10316 "minLength" : 2,
10317 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10318 "type" : "string"
10319 },
10320 "node" : {
10321 "description" : "The cluster node name.",
10322 "format" : "pve-node",
013dc89f
DM
10323 "type" : "string",
10324 "typetext" : "<string>"
44660702
DM
10325 },
10326 "vmid" : {
10327 "description" : "The (unique) ID of the VM.",
10328 "format" : "pve-vmid",
10329 "minimum" : 1,
4bd7df8b 10330 "type" : "integer",
013dc89f 10331 "typetext" : "<integer> (1 - N)"
44660702
DM
10332 }
10333 }
7aacca6f 10334 },
44660702
DM
10335 "permissions" : {
10336 "check" : [
10337 "perm",
10338 "/vms/{vmid}",
10339 [
10340 "VM.Audit"
10341 ]
10342 ]
7aacca6f 10343 },
44660702
DM
10344 "returns" : {
10345 "items" : {
10346 "properties" : {
10347 "cidr" : {
10348 "type" : "string"
10349 },
10350 "comment" : {
10351 "optional" : 1,
10352 "type" : "string"
10353 },
10354 "digest" : {
10355 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
10356 "maxLength" : 40,
10357 "optional" : 0,
10358 "type" : "string"
10359 },
10360 "nomatch" : {
10361 "optional" : 1,
10362 "type" : "boolean"
10363 }
10364 },
10365 "type" : "object"
10366 },
10367 "links" : [
10368 {
10369 "href" : "{cidr}",
10370 "rel" : "child"
10371 }
10372 ],
10373 "type" : "array"
56122987
DM
10374 }
10375 },
44660702 10376 "POST" : {
e9cd3bd4 10377 "allowtoken" : 1,
44660702
DM
10378 "description" : "Add IP or Network to IPSet.",
10379 "method" : "POST",
10380 "name" : "create_ip",
10381 "parameters" : {
10382 "additionalProperties" : 0,
10383 "properties" : {
10384 "cidr" : {
10385 "description" : "Network/IP specification in CIDR format.",
10386 "format" : "IPorCIDRorAlias",
013dc89f
DM
10387 "type" : "string",
10388 "typetext" : "<string>"
44660702
DM
10389 },
10390 "comment" : {
10391 "optional" : 1,
013dc89f
DM
10392 "type" : "string",
10393 "typetext" : "<string>"
44660702
DM
10394 },
10395 "name" : {
10396 "description" : "IP set name.",
10397 "maxLength" : 64,
10398 "minLength" : 2,
10399 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10400 "type" : "string"
10401 },
10402 "node" : {
10403 "description" : "The cluster node name.",
10404 "format" : "pve-node",
013dc89f
DM
10405 "type" : "string",
10406 "typetext" : "<string>"
44660702
DM
10407 },
10408 "nomatch" : {
10409 "optional" : 1,
013dc89f
DM
10410 "type" : "boolean",
10411 "typetext" : "<boolean>"
44660702
DM
10412 },
10413 "vmid" : {
10414 "description" : "The (unique) ID of the VM.",
10415 "format" : "pve-vmid",
10416 "minimum" : 1,
4bd7df8b 10417 "type" : "integer",
013dc89f 10418 "typetext" : "<integer> (1 - N)"
44660702
DM
10419 }
10420 }
10421 },
10422 "permissions" : {
10423 "check" : [
10424 "perm",
10425 "/vms/{vmid}",
10426 [
10427 "VM.Config.Network"
10428 ]
10429 ]
10430 },
10431 "protected" : 1,
10432 "returns" : {
10433 "type" : "null"
10434 }
10435 }
10436 },
10437 "leaf" : 0,
10438 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}",
10439 "text" : "{name}"
10440 }
10441 ],
10442 "info" : {
10443 "GET" : {
e9cd3bd4 10444 "allowtoken" : 1,
44660702
DM
10445 "description" : "List IPSets",
10446 "method" : "GET",
10447 "name" : "ipset_index",
10448 "parameters" : {
10449 "additionalProperties" : 0,
10450 "properties" : {
10451 "node" : {
10452 "description" : "The cluster node name.",
10453 "format" : "pve-node",
013dc89f
DM
10454 "type" : "string",
10455 "typetext" : "<string>"
44660702
DM
10456 },
10457 "vmid" : {
10458 "description" : "The (unique) ID of the VM.",
10459 "format" : "pve-vmid",
10460 "minimum" : 1,
4bd7df8b 10461 "type" : "integer",
013dc89f 10462 "typetext" : "<integer> (1 - N)"
44660702
DM
10463 }
10464 }
56122987
DM
10465 },
10466 "permissions" : {
10467 "check" : [
10468 "perm",
10469 "/vms/{vmid}",
10470 [
44660702 10471 "VM.Audit"
56122987
DM
10472 ]
10473 ]
10474 },
7aacca6f 10475 "returns" : {
7aacca6f
DM
10476 "items" : {
10477 "properties" : {
7aacca6f
DM
10478 "comment" : {
10479 "optional" : 1,
10480 "type" : "string"
10481 },
10482 "digest" : {
7aacca6f 10483 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702
DM
10484 "maxLength" : 40,
10485 "optional" : 0,
10486 "type" : "string"
10487 },
10488 "name" : {
10489 "description" : "IP set name.",
10490 "maxLength" : 64,
10491 "minLength" : 2,
10492 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10493 "type" : "string"
7aacca6f
DM
10494 }
10495 },
10496 "type" : "object"
10497 },
10498 "links" : [
10499 {
44660702
DM
10500 "href" : "{name}",
10501 "rel" : "child"
7aacca6f 10502 }
44660702
DM
10503 ],
10504 "type" : "array"
10505 }
10506 },
10507 "POST" : {
e9cd3bd4 10508 "allowtoken" : 1,
44660702
DM
10509 "description" : "Create new IPSet",
10510 "method" : "POST",
10511 "name" : "create_ipset",
56122987
DM
10512 "parameters" : {
10513 "additionalProperties" : 0,
10514 "properties" : {
44660702
DM
10515 "comment" : {
10516 "optional" : 1,
013dc89f
DM
10517 "type" : "string",
10518 "typetext" : "<string>"
56122987 10519 },
44660702
DM
10520 "digest" : {
10521 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
10522 "maxLength" : 40,
10523 "optional" : 1,
013dc89f
DM
10524 "type" : "string",
10525 "typetext" : "<string>"
44660702
DM
10526 },
10527 "name" : {
10528 "description" : "IP set name.",
10529 "maxLength" : 64,
10530 "minLength" : 2,
10531 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10532 "type" : "string"
10533 },
10534 "node" : {
10535 "description" : "The cluster node name.",
10536 "format" : "pve-node",
013dc89f
DM
10537 "type" : "string",
10538 "typetext" : "<string>"
44660702
DM
10539 },
10540 "rename" : {
10541 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
10542 "maxLength" : 64,
10543 "minLength" : 2,
10544 "optional" : 1,
10545 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10546 "type" : "string"
10547 },
10548 "vmid" : {
10549 "description" : "The (unique) ID of the VM.",
10550 "format" : "pve-vmid",
10551 "minimum" : 1,
4bd7df8b 10552 "type" : "integer",
013dc89f 10553 "typetext" : "<integer> (1 - N)"
44660702
DM
10554 }
10555 }
10556 },
7aacca6f
DM
10557 "permissions" : {
10558 "check" : [
10559 "perm",
10560 "/vms/{vmid}",
10561 [
10562 "VM.Config.Network"
10563 ]
10564 ]
10565 },
44660702 10566 "protected" : 1,
56122987 10567 "returns" : {
7aacca6f 10568 "type" : "null"
44660702
DM
10569 }
10570 }
10571 },
10572 "leaf" : 0,
10573 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset",
10574 "text" : "ipset"
10575 },
10576 {
10577 "info" : {
10578 "GET" : {
e9cd3bd4 10579 "allowtoken" : 1,
44660702
DM
10580 "description" : "Get VM firewall options.",
10581 "method" : "GET",
10582 "name" : "get_options",
7aacca6f
DM
10583 "parameters" : {
10584 "additionalProperties" : 0,
56122987 10585 "properties" : {
7aacca6f
DM
10586 "node" : {
10587 "description" : "The cluster node name.",
44660702 10588 "format" : "pve-node",
013dc89f
DM
10589 "type" : "string",
10590 "typetext" : "<string>"
7aacca6f 10591 },
44660702
DM
10592 "vmid" : {
10593 "description" : "The (unique) ID of the VM.",
10594 "format" : "pve-vmid",
10595 "minimum" : 1,
4bd7df8b 10596 "type" : "integer",
013dc89f 10597 "typetext" : "<integer> (1 - N)"
44660702
DM
10598 }
10599 }
10600 },
10601 "permissions" : {
10602 "check" : [
10603 "perm",
10604 "/vms/{vmid}",
10605 [
10606 "VM.Audit"
10607 ]
10608 ]
10609 },
10610 "proxyto" : "node",
10611 "returns" : {
10612 "properties" : {
10613 "dhcp" : {
5c1699e5 10614 "default" : 0,
44660702 10615 "description" : "Enable DHCP.",
56122987 10616 "optional" : 1,
44660702 10617 "type" : "boolean"
56122987 10618 },
44660702 10619 "enable" : {
5c1699e5 10620 "default" : 0,
44660702 10621 "description" : "Enable/disable firewall rules.",
7aacca6f 10622 "optional" : 1,
44660702 10623 "type" : "boolean"
56122987 10624 },
44660702
DM
10625 "ipfilter" : {
10626 "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 10627 "optional" : 1,
44660702 10628 "type" : "boolean"
7aacca6f 10629 },
56122987 10630 "log_level_in" : {
7aacca6f 10631 "description" : "Log level for incoming traffic.",
56122987
DM
10632 "enum" : [
10633 "emerg",
10634 "alert",
10635 "crit",
10636 "err",
10637 "warning",
10638 "notice",
10639 "info",
10640 "debug",
10641 "nolog"
10642 ],
56122987
DM
10643 "optional" : 1,
10644 "type" : "string"
10645 },
44660702
DM
10646 "log_level_out" : {
10647 "description" : "Log level for outgoing traffic.",
10648 "enum" : [
10649 "emerg",
10650 "alert",
10651 "crit",
10652 "err",
10653 "warning",
10654 "notice",
10655 "info",
10656 "debug",
10657 "nolog"
10658 ],
10659 "optional" : 1,
10660 "type" : "string"
10661 },
10662 "macfilter" : {
de786b48 10663 "default" : 1,
44660702 10664 "description" : "Enable/disable MAC address filter.",
56122987 10665 "optional" : 1,
7aacca6f 10666 "type" : "boolean"
56122987
DM
10667 },
10668 "ndp" : {
5c1699e5
TL
10669 "default" : 0,
10670 "description" : "Enable NDP (Neighbor Discovery Protocol).",
56122987 10671 "optional" : 1,
44660702 10672 "type" : "boolean"
56122987
DM
10673 },
10674 "policy_in" : {
56122987
DM
10675 "description" : "Input policy.",
10676 "enum" : [
10677 "ACCEPT",
10678 "REJECT",
10679 "DROP"
44660702
DM
10680 ],
10681 "optional" : 1,
10682 "type" : "string"
56122987 10683 },
44660702
DM
10684 "policy_out" : {
10685 "description" : "Output policy.",
10686 "enum" : [
10687 "ACCEPT",
10688 "REJECT",
10689 "DROP"
10690 ],
10691 "optional" : 1,
10692 "type" : "string"
10693 },
10694 "radv" : {
10695 "description" : "Allow sending Router Advertisement.",
10696 "optional" : 1,
10697 "type" : "boolean"
10698 }
10699 },
10700 "type" : "object"
10701 }
10702 },
10703 "PUT" : {
e9cd3bd4 10704 "allowtoken" : 1,
44660702
DM
10705 "description" : "Set Firewall options.",
10706 "method" : "PUT",
10707 "name" : "set_options",
10708 "parameters" : {
10709 "additionalProperties" : 0,
10710 "properties" : {
10711 "delete" : {
10712 "description" : "A list of settings you want to delete.",
10713 "format" : "pve-configid-list",
10714 "optional" : 1,
013dc89f
DM
10715 "type" : "string",
10716 "typetext" : "<string>"
44660702
DM
10717 },
10718 "dhcp" : {
5c1699e5 10719 "default" : 0,
44660702 10720 "description" : "Enable DHCP.",
7aacca6f 10721 "optional" : 1,
013dc89f
DM
10722 "type" : "boolean",
10723 "typetext" : "<boolean>"
7aacca6f
DM
10724 },
10725 "digest" : {
10726 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 10727 "maxLength" : 40,
7aacca6f 10728 "optional" : 1,
013dc89f
DM
10729 "type" : "string",
10730 "typetext" : "<string>"
7aacca6f
DM
10731 },
10732 "enable" : {
5c1699e5 10733 "default" : 0,
7aacca6f 10734 "description" : "Enable/disable firewall rules.",
56122987 10735 "optional" : 1,
013dc89f
DM
10736 "type" : "boolean",
10737 "typetext" : "<boolean>"
7aacca6f 10738 },
44660702
DM
10739 "ipfilter" : {
10740 "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.",
10741 "optional" : 1,
013dc89f
DM
10742 "type" : "boolean",
10743 "typetext" : "<boolean>"
44660702
DM
10744 },
10745 "log_level_in" : {
10746 "description" : "Log level for incoming traffic.",
56122987
DM
10747 "enum" : [
10748 "emerg",
10749 "alert",
10750 "crit",
10751 "err",
10752 "warning",
10753 "notice",
10754 "info",
10755 "debug",
10756 "nolog"
7aacca6f 10757 ],
7aacca6f 10758 "optional" : 1,
44660702 10759 "type" : "string"
7aacca6f 10760 },
44660702
DM
10761 "log_level_out" : {
10762 "description" : "Log level for outgoing traffic.",
56122987
DM
10763 "enum" : [
10764 "emerg",
10765 "alert",
10766 "crit",
10767 "err",
10768 "warning",
10769 "notice",
10770 "info",
10771 "debug",
10772 "nolog"
10773 ],
56122987 10774 "optional" : 1,
44660702 10775 "type" : "string"
56122987
DM
10776 },
10777 "macfilter" : {
de786b48 10778 "default" : 1,
56122987 10779 "description" : "Enable/disable MAC address filter.",
7aacca6f 10780 "optional" : 1,
013dc89f
DM
10781 "type" : "boolean",
10782 "typetext" : "<boolean>"
56122987 10783 },
44660702 10784 "ndp" : {
5c1699e5
TL
10785 "default" : 0,
10786 "description" : "Enable NDP (Neighbor Discovery Protocol).",
44660702 10787 "optional" : 1,
013dc89f
DM
10788 "type" : "boolean",
10789 "typetext" : "<boolean>"
44660702
DM
10790 },
10791 "node" : {
10792 "description" : "The cluster node name.",
10793 "format" : "pve-node",
013dc89f
DM
10794 "type" : "string",
10795 "typetext" : "<string>"
44660702 10796 },
56122987 10797 "policy_in" : {
44660702 10798 "description" : "Input policy.",
56122987
DM
10799 "enum" : [
10800 "ACCEPT",
10801 "REJECT",
10802 "DROP"
7aacca6f 10803 ],
56122987 10804 "optional" : 1,
7aacca6f 10805 "type" : "string"
56122987 10806 },
44660702
DM
10807 "policy_out" : {
10808 "description" : "Output policy.",
10809 "enum" : [
10810 "ACCEPT",
10811 "REJECT",
10812 "DROP"
10813 ],
56122987 10814 "optional" : 1,
44660702 10815 "type" : "string"
56122987 10816 },
44660702
DM
10817 "radv" : {
10818 "description" : "Allow sending Router Advertisement.",
56122987 10819 "optional" : 1,
013dc89f
DM
10820 "type" : "boolean",
10821 "typetext" : "<boolean>"
7aacca6f
DM
10822 },
10823 "vmid" : {
10824 "description" : "The (unique) ID of the VM.",
44660702 10825 "format" : "pve-vmid",
7aacca6f 10826 "minimum" : 1,
4bd7df8b 10827 "type" : "integer",
013dc89f 10828 "typetext" : "<integer> (1 - N)"
56122987
DM
10829 }
10830 }
10831 },
56122987
DM
10832 "permissions" : {
10833 "check" : [
10834 "perm",
10835 "/vms/{vmid}",
10836 [
44660702 10837 "VM.Config.Network"
56122987
DM
10838 ]
10839 ]
7aacca6f 10840 },
44660702 10841 "protected" : 1,
7aacca6f 10842 "proxyto" : "node",
44660702
DM
10843 "returns" : {
10844 "type" : "null"
10845 }
56122987
DM
10846 }
10847 },
44660702 10848 "leaf" : 1,
7aacca6f 10849 "path" : "/nodes/{node}/qemu/{vmid}/firewall/options",
44660702 10850 "text" : "options"
56122987
DM
10851 },
10852 {
56122987
DM
10853 "info" : {
10854 "GET" : {
e9cd3bd4 10855 "allowtoken" : 1,
44660702
DM
10856 "description" : "Read firewall log",
10857 "method" : "GET",
10858 "name" : "log",
10859 "parameters" : {
10860 "additionalProperties" : 0,
10861 "properties" : {
10862 "limit" : {
10863 "minimum" : 0,
10864 "optional" : 1,
4bd7df8b 10865 "type" : "integer",
013dc89f 10866 "typetext" : "<integer> (0 - N)"
56122987 10867 },
44660702
DM
10868 "node" : {
10869 "description" : "The cluster node name.",
10870 "format" : "pve-node",
013dc89f
DM
10871 "type" : "string",
10872 "typetext" : "<string>"
44660702
DM
10873 },
10874 "start" : {
10875 "minimum" : 0,
10876 "optional" : 1,
4bd7df8b 10877 "type" : "integer",
013dc89f 10878 "typetext" : "<integer> (0 - N)"
44660702
DM
10879 },
10880 "vmid" : {
10881 "description" : "The (unique) ID of the VM.",
10882 "format" : "pve-vmid",
10883 "minimum" : 1,
4bd7df8b 10884 "type" : "integer",
013dc89f 10885 "typetext" : "<integer> (1 - N)"
44660702
DM
10886 }
10887 }
7aacca6f 10888 },
7aacca6f
DM
10889 "permissions" : {
10890 "check" : [
10891 "perm",
10892 "/vms/{vmid}",
10893 [
10894 "VM.Console"
10895 ]
10896 ]
56122987 10897 },
7aacca6f 10898 "protected" : 1,
44660702
DM
10899 "proxyto" : "node",
10900 "returns" : {
10901 "items" : {
10902 "properties" : {
10903 "n" : {
10904 "description" : "Line number",
10905 "type" : "integer"
10906 },
10907 "t" : {
10908 "description" : "Line text",
10909 "type" : "string"
10910 }
56122987 10911 },
44660702 10912 "type" : "object"
7aacca6f 10913 },
44660702 10914 "type" : "array"
7aacca6f
DM
10915 }
10916 }
10917 },
44660702 10918 "leaf" : 1,
7aacca6f 10919 "path" : "/nodes/{node}/qemu/{vmid}/firewall/log",
44660702 10920 "text" : "log"
7aacca6f
DM
10921 },
10922 {
7aacca6f
DM
10923 "info" : {
10924 "GET" : {
e9cd3bd4 10925 "allowtoken" : 1,
7aacca6f 10926 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
44660702
DM
10927 "method" : "GET",
10928 "name" : "refs",
56122987 10929 "parameters" : {
44660702 10930 "additionalProperties" : 0,
56122987
DM
10931 "properties" : {
10932 "node" : {
7aacca6f 10933 "description" : "The cluster node name.",
44660702 10934 "format" : "pve-node",
013dc89f
DM
10935 "type" : "string",
10936 "typetext" : "<string>"
56122987
DM
10937 },
10938 "type" : {
56122987
DM
10939 "description" : "Only list references of specified type.",
10940 "enum" : [
10941 "alias",
10942 "ipset"
7aacca6f 10943 ],
44660702
DM
10944 "optional" : 1,
10945 "type" : "string"
10946 },
10947 "vmid" : {
10948 "description" : "The (unique) ID of the VM.",
10949 "format" : "pve-vmid",
10950 "minimum" : 1,
4bd7df8b 10951 "type" : "integer",
013dc89f 10952 "typetext" : "<integer> (1 - N)"
56122987 10953 }
44660702
DM
10954 }
10955 },
10956 "permissions" : {
10957 "check" : [
10958 "perm",
10959 "/vms/{vmid}",
10960 [
10961 "VM.Audit"
10962 ]
10963 ]
56122987
DM
10964 },
10965 "returns" : {
56122987
DM
10966 "items" : {
10967 "properties" : {
44660702
DM
10968 "comment" : {
10969 "optional" : 1,
56122987
DM
10970 "type" : "string"
10971 },
10972 "name" : {
10973 "type" : "string"
10974 },
44660702
DM
10975 "type" : {
10976 "enum" : [
10977 "alias",
10978 "ipset"
10979 ],
7aacca6f 10980 "type" : "string"
56122987
DM
10981 }
10982 },
10983 "type" : "object"
7aacca6f
DM
10984 },
10985 "type" : "array"
10986 }
56122987 10987 }
44660702
DM
10988 },
10989 "leaf" : 1,
10990 "path" : "/nodes/{node}/qemu/{vmid}/firewall/refs",
10991 "text" : "refs"
56122987
DM
10992 }
10993 ],
56122987
DM
10994 "info" : {
10995 "GET" : {
e9cd3bd4 10996 "allowtoken" : 1,
44660702 10997 "description" : "Directory index.",
56122987 10998 "method" : "GET",
44660702 10999 "name" : "index",
56122987 11000 "parameters" : {
44660702 11001 "additionalProperties" : 0,
56122987
DM
11002 "properties" : {
11003 "node" : {
11004 "description" : "The cluster node name.",
44660702 11005 "format" : "pve-node",
013dc89f
DM
11006 "type" : "string",
11007 "typetext" : "<string>"
56122987
DM
11008 },
11009 "vmid" : {
44660702 11010 "description" : "The (unique) ID of the VM.",
56122987
DM
11011 "format" : "pve-vmid",
11012 "minimum" : 1,
4bd7df8b 11013 "type" : "integer",
013dc89f 11014 "typetext" : "<integer> (1 - N)"
56122987 11015 }
44660702 11016 }
56122987 11017 },
56122987 11018 "permissions" : {
27a7acb2
DM
11019 "user" : "all"
11020 },
11021 "returns" : {
11022 "items" : {
11023 "properties" : {},
11024 "type" : "object"
11025 },
11026 "links" : [
11027 {
11028 "href" : "{name}",
11029 "rel" : "child"
11030 }
11031 ],
11032 "type" : "array"
11033 }
11034 }
11035 },
11036 "leaf" : 0,
11037 "path" : "/nodes/{node}/qemu/{vmid}/firewall",
11038 "text" : "firewall"
11039 },
11040 {
11041 "children" : [
11042 {
11043 "info" : {
11044 "POST" : {
e9cd3bd4 11045 "allowtoken" : 1,
27a7acb2
DM
11046 "description" : "Execute fsfreeze-freeze.",
11047 "method" : "POST",
11048 "name" : "fsfreeze-freeze",
11049 "parameters" : {
11050 "additionalProperties" : 0,
11051 "properties" : {
11052 "node" : {
11053 "description" : "The cluster node name.",
11054 "format" : "pve-node",
11055 "type" : "string",
11056 "typetext" : "<string>"
11057 },
11058 "vmid" : {
11059 "description" : "The (unique) ID of the VM.",
11060 "format" : "pve-vmid",
11061 "minimum" : 1,
11062 "type" : "integer",
11063 "typetext" : "<integer> (1 - N)"
11064 }
11065 }
11066 },
11067 "permissions" : {
11068 "check" : [
11069 "perm",
11070 "/vms/{vmid}",
11071 [
11072 "VM.Monitor"
11073 ]
11074 ]
11075 },
11076 "protected" : 1,
11077 "proxyto" : "node",
11078 "returns" : {
11079 "description" : "Returns an object with a single `result` property.",
11080 "type" : "object"
11081 }
11082 }
11083 },
11084 "leaf" : 1,
11085 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-freeze",
11086 "text" : "fsfreeze-freeze"
11087 },
11088 {
11089 "info" : {
11090 "POST" : {
e9cd3bd4 11091 "allowtoken" : 1,
27a7acb2
DM
11092 "description" : "Execute fsfreeze-status.",
11093 "method" : "POST",
11094 "name" : "fsfreeze-status",
11095 "parameters" : {
11096 "additionalProperties" : 0,
11097 "properties" : {
11098 "node" : {
11099 "description" : "The cluster node name.",
11100 "format" : "pve-node",
11101 "type" : "string",
11102 "typetext" : "<string>"
11103 },
11104 "vmid" : {
11105 "description" : "The (unique) ID of the VM.",
11106 "format" : "pve-vmid",
11107 "minimum" : 1,
11108 "type" : "integer",
11109 "typetext" : "<integer> (1 - N)"
11110 }
11111 }
11112 },
11113 "permissions" : {
11114 "check" : [
11115 "perm",
11116 "/vms/{vmid}",
11117 [
11118 "VM.Monitor"
11119 ]
11120 ]
11121 },
11122 "protected" : 1,
11123 "proxyto" : "node",
11124 "returns" : {
11125 "description" : "Returns an object with a single `result` property.",
11126 "type" : "object"
11127 }
11128 }
11129 },
11130 "leaf" : 1,
11131 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-status",
11132 "text" : "fsfreeze-status"
11133 },
11134 {
11135 "info" : {
11136 "POST" : {
e9cd3bd4 11137 "allowtoken" : 1,
27a7acb2
DM
11138 "description" : "Execute fsfreeze-thaw.",
11139 "method" : "POST",
11140 "name" : "fsfreeze-thaw",
11141 "parameters" : {
11142 "additionalProperties" : 0,
11143 "properties" : {
11144 "node" : {
11145 "description" : "The cluster node name.",
11146 "format" : "pve-node",
11147 "type" : "string",
11148 "typetext" : "<string>"
11149 },
11150 "vmid" : {
11151 "description" : "The (unique) ID of the VM.",
11152 "format" : "pve-vmid",
11153 "minimum" : 1,
11154 "type" : "integer",
11155 "typetext" : "<integer> (1 - N)"
11156 }
11157 }
11158 },
11159 "permissions" : {
11160 "check" : [
11161 "perm",
11162 "/vms/{vmid}",
11163 [
11164 "VM.Monitor"
11165 ]
11166 ]
11167 },
11168 "protected" : 1,
11169 "proxyto" : "node",
11170 "returns" : {
11171 "description" : "Returns an object with a single `result` property.",
11172 "type" : "object"
11173 }
11174 }
11175 },
11176 "leaf" : 1,
11177 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-thaw",
11178 "text" : "fsfreeze-thaw"
11179 },
11180 {
11181 "info" : {
11182 "POST" : {
e9cd3bd4 11183 "allowtoken" : 1,
27a7acb2
DM
11184 "description" : "Execute fstrim.",
11185 "method" : "POST",
11186 "name" : "fstrim",
11187 "parameters" : {
11188 "additionalProperties" : 0,
11189 "properties" : {
11190 "node" : {
11191 "description" : "The cluster node name.",
11192 "format" : "pve-node",
11193 "type" : "string",
11194 "typetext" : "<string>"
11195 },
11196 "vmid" : {
11197 "description" : "The (unique) ID of the VM.",
11198 "format" : "pve-vmid",
11199 "minimum" : 1,
11200 "type" : "integer",
11201 "typetext" : "<integer> (1 - N)"
11202 }
11203 }
11204 },
11205 "permissions" : {
11206 "check" : [
11207 "perm",
11208 "/vms/{vmid}",
11209 [
11210 "VM.Monitor"
11211 ]
11212 ]
11213 },
11214 "protected" : 1,
11215 "proxyto" : "node",
11216 "returns" : {
11217 "description" : "Returns an object with a single `result` property.",
11218 "type" : "object"
11219 }
11220 }
11221 },
11222 "leaf" : 1,
11223 "path" : "/nodes/{node}/qemu/{vmid}/agent/fstrim",
11224 "text" : "fstrim"
11225 },
11226 {
11227 "info" : {
11228 "GET" : {
e9cd3bd4 11229 "allowtoken" : 1,
27a7acb2
DM
11230 "description" : "Execute get-fsinfo.",
11231 "method" : "GET",
11232 "name" : "get-fsinfo",
11233 "parameters" : {
11234 "additionalProperties" : 0,
11235 "properties" : {
11236 "node" : {
11237 "description" : "The cluster node name.",
11238 "format" : "pve-node",
11239 "type" : "string",
11240 "typetext" : "<string>"
11241 },
11242 "vmid" : {
11243 "description" : "The (unique) ID of the VM.",
11244 "format" : "pve-vmid",
11245 "minimum" : 1,
11246 "type" : "integer",
11247 "typetext" : "<integer> (1 - N)"
11248 }
11249 }
11250 },
11251 "permissions" : {
11252 "check" : [
11253 "perm",
11254 "/vms/{vmid}",
11255 [
11256 "VM.Monitor"
11257 ]
11258 ]
11259 },
11260 "protected" : 1,
11261 "proxyto" : "node",
11262 "returns" : {
11263 "description" : "Returns an object with a single `result` property.",
11264 "type" : "object"
11265 }
11266 }
11267 },
11268 "leaf" : 1,
11269 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-fsinfo",
11270 "text" : "get-fsinfo"
11271 },
11272 {
11273 "info" : {
11274 "GET" : {
e9cd3bd4 11275 "allowtoken" : 1,
27a7acb2
DM
11276 "description" : "Execute get-host-name.",
11277 "method" : "GET",
11278 "name" : "get-host-name",
11279 "parameters" : {
11280 "additionalProperties" : 0,
11281 "properties" : {
11282 "node" : {
11283 "description" : "The cluster node name.",
11284 "format" : "pve-node",
11285 "type" : "string",
11286 "typetext" : "<string>"
11287 },
11288 "vmid" : {
11289 "description" : "The (unique) ID of the VM.",
11290 "format" : "pve-vmid",
11291 "minimum" : 1,
11292 "type" : "integer",
11293 "typetext" : "<integer> (1 - N)"
11294 }
11295 }
11296 },
11297 "permissions" : {
11298 "check" : [
11299 "perm",
11300 "/vms/{vmid}",
11301 [
11302 "VM.Monitor"
11303 ]
11304 ]
11305 },
11306 "protected" : 1,
11307 "proxyto" : "node",
11308 "returns" : {
11309 "description" : "Returns an object with a single `result` property.",
11310 "type" : "object"
11311 }
11312 }
11313 },
11314 "leaf" : 1,
11315 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-host-name",
11316 "text" : "get-host-name"
11317 },
11318 {
11319 "info" : {
11320 "GET" : {
e9cd3bd4 11321 "allowtoken" : 1,
27a7acb2
DM
11322 "description" : "Execute get-memory-block-info.",
11323 "method" : "GET",
11324 "name" : "get-memory-block-info",
11325 "parameters" : {
11326 "additionalProperties" : 0,
11327 "properties" : {
11328 "node" : {
11329 "description" : "The cluster node name.",
11330 "format" : "pve-node",
11331 "type" : "string",
11332 "typetext" : "<string>"
11333 },
11334 "vmid" : {
11335 "description" : "The (unique) ID of the VM.",
11336 "format" : "pve-vmid",
11337 "minimum" : 1,
11338 "type" : "integer",
11339 "typetext" : "<integer> (1 - N)"
11340 }
11341 }
11342 },
11343 "permissions" : {
11344 "check" : [
11345 "perm",
11346 "/vms/{vmid}",
11347 [
11348 "VM.Monitor"
11349 ]
11350 ]
11351 },
11352 "protected" : 1,
11353 "proxyto" : "node",
11354 "returns" : {
11355 "description" : "Returns an object with a single `result` property.",
11356 "type" : "object"
11357 }
11358 }
11359 },
11360 "leaf" : 1,
11361 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-block-info",
11362 "text" : "get-memory-block-info"
11363 },
11364 {
11365 "info" : {
11366 "GET" : {
e9cd3bd4 11367 "allowtoken" : 1,
27a7acb2
DM
11368 "description" : "Execute get-memory-blocks.",
11369 "method" : "GET",
11370 "name" : "get-memory-blocks",
11371 "parameters" : {
11372 "additionalProperties" : 0,
11373 "properties" : {
11374 "node" : {
11375 "description" : "The cluster node name.",
11376 "format" : "pve-node",
11377 "type" : "string",
11378 "typetext" : "<string>"
11379 },
11380 "vmid" : {
11381 "description" : "The (unique) ID of the VM.",
11382 "format" : "pve-vmid",
11383 "minimum" : 1,
11384 "type" : "integer",
11385 "typetext" : "<integer> (1 - N)"
11386 }
11387 }
11388 },
11389 "permissions" : {
11390 "check" : [
11391 "perm",
11392 "/vms/{vmid}",
11393 [
11394 "VM.Monitor"
11395 ]
11396 ]
11397 },
11398 "protected" : 1,
11399 "proxyto" : "node",
11400 "returns" : {
11401 "description" : "Returns an object with a single `result` property.",
11402 "type" : "object"
11403 }
11404 }
11405 },
11406 "leaf" : 1,
11407 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-blocks",
11408 "text" : "get-memory-blocks"
11409 },
11410 {
11411 "info" : {
11412 "GET" : {
e9cd3bd4 11413 "allowtoken" : 1,
27a7acb2
DM
11414 "description" : "Execute get-osinfo.",
11415 "method" : "GET",
11416 "name" : "get-osinfo",
11417 "parameters" : {
11418 "additionalProperties" : 0,
11419 "properties" : {
11420 "node" : {
11421 "description" : "The cluster node name.",
11422 "format" : "pve-node",
11423 "type" : "string",
11424 "typetext" : "<string>"
11425 },
11426 "vmid" : {
11427 "description" : "The (unique) ID of the VM.",
11428 "format" : "pve-vmid",
11429 "minimum" : 1,
11430 "type" : "integer",
11431 "typetext" : "<integer> (1 - N)"
11432 }
11433 }
11434 },
11435 "permissions" : {
11436 "check" : [
11437 "perm",
11438 "/vms/{vmid}",
11439 [
11440 "VM.Monitor"
11441 ]
11442 ]
11443 },
11444 "protected" : 1,
11445 "proxyto" : "node",
11446 "returns" : {
11447 "description" : "Returns an object with a single `result` property.",
11448 "type" : "object"
11449 }
11450 }
11451 },
11452 "leaf" : 1,
11453 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-osinfo",
11454 "text" : "get-osinfo"
11455 },
11456 {
11457 "info" : {
11458 "GET" : {
e9cd3bd4 11459 "allowtoken" : 1,
27a7acb2
DM
11460 "description" : "Execute get-time.",
11461 "method" : "GET",
11462 "name" : "get-time",
11463 "parameters" : {
11464 "additionalProperties" : 0,
11465 "properties" : {
11466 "node" : {
11467 "description" : "The cluster node name.",
11468 "format" : "pve-node",
11469 "type" : "string",
11470 "typetext" : "<string>"
11471 },
11472 "vmid" : {
11473 "description" : "The (unique) ID of the VM.",
11474 "format" : "pve-vmid",
11475 "minimum" : 1,
11476 "type" : "integer",
11477 "typetext" : "<integer> (1 - N)"
11478 }
11479 }
11480 },
11481 "permissions" : {
11482 "check" : [
11483 "perm",
11484 "/vms/{vmid}",
11485 [
11486 "VM.Monitor"
11487 ]
11488 ]
11489 },
11490 "protected" : 1,
11491 "proxyto" : "node",
11492 "returns" : {
11493 "description" : "Returns an object with a single `result` property.",
11494 "type" : "object"
11495 }
11496 }
11497 },
11498 "leaf" : 1,
11499 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-time",
11500 "text" : "get-time"
11501 },
11502 {
11503 "info" : {
11504 "GET" : {
e9cd3bd4 11505 "allowtoken" : 1,
27a7acb2
DM
11506 "description" : "Execute get-timezone.",
11507 "method" : "GET",
11508 "name" : "get-timezone",
11509 "parameters" : {
11510 "additionalProperties" : 0,
11511 "properties" : {
11512 "node" : {
11513 "description" : "The cluster node name.",
11514 "format" : "pve-node",
11515 "type" : "string",
11516 "typetext" : "<string>"
11517 },
11518 "vmid" : {
11519 "description" : "The (unique) ID of the VM.",
11520 "format" : "pve-vmid",
11521 "minimum" : 1,
11522 "type" : "integer",
11523 "typetext" : "<integer> (1 - N)"
11524 }
11525 }
11526 },
11527 "permissions" : {
11528 "check" : [
11529 "perm",
11530 "/vms/{vmid}",
11531 [
11532 "VM.Monitor"
11533 ]
11534 ]
11535 },
11536 "protected" : 1,
11537 "proxyto" : "node",
11538 "returns" : {
11539 "description" : "Returns an object with a single `result` property.",
11540 "type" : "object"
11541 }
11542 }
11543 },
11544 "leaf" : 1,
11545 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-timezone",
11546 "text" : "get-timezone"
11547 },
11548 {
11549 "info" : {
11550 "GET" : {
e9cd3bd4 11551 "allowtoken" : 1,
27a7acb2
DM
11552 "description" : "Execute get-users.",
11553 "method" : "GET",
11554 "name" : "get-users",
11555 "parameters" : {
11556 "additionalProperties" : 0,
11557 "properties" : {
11558 "node" : {
11559 "description" : "The cluster node name.",
11560 "format" : "pve-node",
11561 "type" : "string",
11562 "typetext" : "<string>"
11563 },
11564 "vmid" : {
11565 "description" : "The (unique) ID of the VM.",
11566 "format" : "pve-vmid",
11567 "minimum" : 1,
11568 "type" : "integer",
11569 "typetext" : "<integer> (1 - N)"
11570 }
11571 }
11572 },
11573 "permissions" : {
11574 "check" : [
11575 "perm",
11576 "/vms/{vmid}",
11577 [
11578 "VM.Monitor"
11579 ]
11580 ]
11581 },
11582 "protected" : 1,
11583 "proxyto" : "node",
11584 "returns" : {
11585 "description" : "Returns an object with a single `result` property.",
11586 "type" : "object"
11587 }
11588 }
11589 },
11590 "leaf" : 1,
11591 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-users",
11592 "text" : "get-users"
11593 },
11594 {
11595 "info" : {
11596 "GET" : {
e9cd3bd4 11597 "allowtoken" : 1,
27a7acb2
DM
11598 "description" : "Execute get-vcpus.",
11599 "method" : "GET",
11600 "name" : "get-vcpus",
11601 "parameters" : {
11602 "additionalProperties" : 0,
11603 "properties" : {
11604 "node" : {
11605 "description" : "The cluster node name.",
11606 "format" : "pve-node",
11607 "type" : "string",
11608 "typetext" : "<string>"
11609 },
11610 "vmid" : {
11611 "description" : "The (unique) ID of the VM.",
11612 "format" : "pve-vmid",
11613 "minimum" : 1,
11614 "type" : "integer",
11615 "typetext" : "<integer> (1 - N)"
11616 }
11617 }
11618 },
11619 "permissions" : {
11620 "check" : [
11621 "perm",
11622 "/vms/{vmid}",
11623 [
11624 "VM.Monitor"
11625 ]
11626 ]
11627 },
11628 "protected" : 1,
11629 "proxyto" : "node",
11630 "returns" : {
11631 "description" : "Returns an object with a single `result` property.",
11632 "type" : "object"
11633 }
11634 }
11635 },
11636 "leaf" : 1,
11637 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-vcpus",
11638 "text" : "get-vcpus"
11639 },
11640 {
11641 "info" : {
11642 "GET" : {
e9cd3bd4 11643 "allowtoken" : 1,
27a7acb2
DM
11644 "description" : "Execute info.",
11645 "method" : "GET",
11646 "name" : "info",
11647 "parameters" : {
11648 "additionalProperties" : 0,
11649 "properties" : {
11650 "node" : {
11651 "description" : "The cluster node name.",
11652 "format" : "pve-node",
11653 "type" : "string",
11654 "typetext" : "<string>"
11655 },
11656 "vmid" : {
11657 "description" : "The (unique) ID of the VM.",
11658 "format" : "pve-vmid",
11659 "minimum" : 1,
11660 "type" : "integer",
11661 "typetext" : "<integer> (1 - N)"
11662 }
11663 }
11664 },
11665 "permissions" : {
11666 "check" : [
11667 "perm",
11668 "/vms/{vmid}",
11669 [
11670 "VM.Monitor"
11671 ]
11672 ]
11673 },
11674 "protected" : 1,
11675 "proxyto" : "node",
11676 "returns" : {
11677 "description" : "Returns an object with a single `result` property.",
11678 "type" : "object"
11679 }
11680 }
11681 },
11682 "leaf" : 1,
11683 "path" : "/nodes/{node}/qemu/{vmid}/agent/info",
11684 "text" : "info"
11685 },
11686 {
11687 "info" : {
11688 "GET" : {
e9cd3bd4 11689 "allowtoken" : 1,
27a7acb2
DM
11690 "description" : "Execute network-get-interfaces.",
11691 "method" : "GET",
11692 "name" : "network-get-interfaces",
11693 "parameters" : {
11694 "additionalProperties" : 0,
11695 "properties" : {
11696 "node" : {
11697 "description" : "The cluster node name.",
11698 "format" : "pve-node",
11699 "type" : "string",
11700 "typetext" : "<string>"
11701 },
11702 "vmid" : {
11703 "description" : "The (unique) ID of the VM.",
11704 "format" : "pve-vmid",
11705 "minimum" : 1,
11706 "type" : "integer",
11707 "typetext" : "<integer> (1 - N)"
11708 }
11709 }
11710 },
11711 "permissions" : {
11712 "check" : [
11713 "perm",
11714 "/vms/{vmid}",
11715 [
11716 "VM.Monitor"
11717 ]
11718 ]
11719 },
11720 "protected" : 1,
11721 "proxyto" : "node",
11722 "returns" : {
11723 "description" : "Returns an object with a single `result` property.",
11724 "type" : "object"
11725 }
11726 }
11727 },
11728 "leaf" : 1,
11729 "path" : "/nodes/{node}/qemu/{vmid}/agent/network-get-interfaces",
11730 "text" : "network-get-interfaces"
11731 },
11732 {
11733 "info" : {
11734 "POST" : {
e9cd3bd4 11735 "allowtoken" : 1,
27a7acb2
DM
11736 "description" : "Execute ping.",
11737 "method" : "POST",
11738 "name" : "ping",
11739 "parameters" : {
11740 "additionalProperties" : 0,
11741 "properties" : {
11742 "node" : {
11743 "description" : "The cluster node name.",
11744 "format" : "pve-node",
11745 "type" : "string",
11746 "typetext" : "<string>"
11747 },
11748 "vmid" : {
11749 "description" : "The (unique) ID of the VM.",
11750 "format" : "pve-vmid",
11751 "minimum" : 1,
11752 "type" : "integer",
11753 "typetext" : "<integer> (1 - N)"
11754 }
11755 }
11756 },
11757 "permissions" : {
11758 "check" : [
11759 "perm",
11760 "/vms/{vmid}",
11761 [
11762 "VM.Monitor"
11763 ]
11764 ]
11765 },
11766 "protected" : 1,
11767 "proxyto" : "node",
11768 "returns" : {
11769 "description" : "Returns an object with a single `result` property.",
11770 "type" : "object"
11771 }
11772 }
11773 },
11774 "leaf" : 1,
11775 "path" : "/nodes/{node}/qemu/{vmid}/agent/ping",
11776 "text" : "ping"
11777 },
11778 {
11779 "info" : {
11780 "POST" : {
e9cd3bd4 11781 "allowtoken" : 1,
27a7acb2
DM
11782 "description" : "Execute shutdown.",
11783 "method" : "POST",
11784 "name" : "shutdown",
11785 "parameters" : {
11786 "additionalProperties" : 0,
11787 "properties" : {
11788 "node" : {
11789 "description" : "The cluster node name.",
11790 "format" : "pve-node",
11791 "type" : "string",
11792 "typetext" : "<string>"
11793 },
11794 "vmid" : {
11795 "description" : "The (unique) ID of the VM.",
11796 "format" : "pve-vmid",
11797 "minimum" : 1,
11798 "type" : "integer",
11799 "typetext" : "<integer> (1 - N)"
11800 }
11801 }
11802 },
11803 "permissions" : {
11804 "check" : [
11805 "perm",
11806 "/vms/{vmid}",
11807 [
11808 "VM.Monitor"
11809 ]
11810 ]
11811 },
11812 "protected" : 1,
11813 "proxyto" : "node",
11814 "returns" : {
11815 "description" : "Returns an object with a single `result` property.",
11816 "type" : "object"
11817 }
11818 }
11819 },
11820 "leaf" : 1,
11821 "path" : "/nodes/{node}/qemu/{vmid}/agent/shutdown",
11822 "text" : "shutdown"
11823 },
11824 {
11825 "info" : {
11826 "POST" : {
e9cd3bd4 11827 "allowtoken" : 1,
27a7acb2
DM
11828 "description" : "Execute suspend-disk.",
11829 "method" : "POST",
11830 "name" : "suspend-disk",
11831 "parameters" : {
11832 "additionalProperties" : 0,
11833 "properties" : {
11834 "node" : {
11835 "description" : "The cluster node name.",
11836 "format" : "pve-node",
11837 "type" : "string",
11838 "typetext" : "<string>"
11839 },
11840 "vmid" : {
11841 "description" : "The (unique) ID of the VM.",
11842 "format" : "pve-vmid",
11843 "minimum" : 1,
11844 "type" : "integer",
11845 "typetext" : "<integer> (1 - N)"
11846 }
11847 }
11848 },
11849 "permissions" : {
11850 "check" : [
11851 "perm",
11852 "/vms/{vmid}",
11853 [
11854 "VM.Monitor"
11855 ]
11856 ]
11857 },
11858 "protected" : 1,
11859 "proxyto" : "node",
11860 "returns" : {
11861 "description" : "Returns an object with a single `result` property.",
11862 "type" : "object"
11863 }
11864 }
11865 },
11866 "leaf" : 1,
11867 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-disk",
11868 "text" : "suspend-disk"
11869 },
11870 {
11871 "info" : {
11872 "POST" : {
e9cd3bd4 11873 "allowtoken" : 1,
27a7acb2
DM
11874 "description" : "Execute suspend-hybrid.",
11875 "method" : "POST",
11876 "name" : "suspend-hybrid",
11877 "parameters" : {
11878 "additionalProperties" : 0,
11879 "properties" : {
11880 "node" : {
11881 "description" : "The cluster node name.",
11882 "format" : "pve-node",
11883 "type" : "string",
11884 "typetext" : "<string>"
11885 },
11886 "vmid" : {
11887 "description" : "The (unique) ID of the VM.",
11888 "format" : "pve-vmid",
11889 "minimum" : 1,
11890 "type" : "integer",
11891 "typetext" : "<integer> (1 - N)"
11892 }
11893 }
11894 },
11895 "permissions" : {
11896 "check" : [
11897 "perm",
11898 "/vms/{vmid}",
11899 [
11900 "VM.Monitor"
11901 ]
11902 ]
11903 },
11904 "protected" : 1,
11905 "proxyto" : "node",
11906 "returns" : {
11907 "description" : "Returns an object with a single `result` property.",
11908 "type" : "object"
11909 }
11910 }
11911 },
11912 "leaf" : 1,
11913 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-hybrid",
11914 "text" : "suspend-hybrid"
11915 },
11916 {
11917 "info" : {
11918 "POST" : {
e9cd3bd4 11919 "allowtoken" : 1,
27a7acb2
DM
11920 "description" : "Execute suspend-ram.",
11921 "method" : "POST",
11922 "name" : "suspend-ram",
11923 "parameters" : {
11924 "additionalProperties" : 0,
11925 "properties" : {
11926 "node" : {
11927 "description" : "The cluster node name.",
11928 "format" : "pve-node",
11929 "type" : "string",
11930 "typetext" : "<string>"
11931 },
11932 "vmid" : {
11933 "description" : "The (unique) ID of the VM.",
11934 "format" : "pve-vmid",
11935 "minimum" : 1,
11936 "type" : "integer",
11937 "typetext" : "<integer> (1 - N)"
11938 }
11939 }
11940 },
11941 "permissions" : {
11942 "check" : [
11943 "perm",
11944 "/vms/{vmid}",
11945 [
11946 "VM.Monitor"
11947 ]
11948 ]
11949 },
11950 "protected" : 1,
11951 "proxyto" : "node",
11952 "returns" : {
11953 "description" : "Returns an object with a single `result` property.",
11954 "type" : "object"
11955 }
11956 }
11957 },
11958 "leaf" : 1,
11959 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-ram",
11960 "text" : "suspend-ram"
4d47f125
TL
11961 },
11962 {
11963 "info" : {
11964 "POST" : {
e9cd3bd4 11965 "allowtoken" : 1,
4d47f125
TL
11966 "description" : "Sets the password for the given user to the given password",
11967 "method" : "POST",
11968 "name" : "set-user-password",
11969 "parameters" : {
11970 "additionalProperties" : 0,
11971 "properties" : {
11972 "crypted" : {
11973 "default" : 0,
11974 "description" : "set to 1 if the password has already been passed through crypt()",
11975 "optional" : 1,
11976 "type" : "boolean",
11977 "typetext" : "<boolean>"
11978 },
11979 "node" : {
11980 "description" : "The cluster node name.",
11981 "format" : "pve-node",
11982 "type" : "string",
11983 "typetext" : "<string>"
11984 },
11985 "password" : {
11986 "description" : "The new password.",
1c532546 11987 "maxLength" : 1024,
4d47f125
TL
11988 "minLength" : 5,
11989 "type" : "string",
11990 "typetext" : "<string>"
11991 },
11992 "username" : {
11993 "description" : "The user to set the password for.",
11994 "type" : "string",
11995 "typetext" : "<string>"
11996 },
11997 "vmid" : {
11998 "description" : "The (unique) ID of the VM.",
11999 "format" : "pve-vmid",
12000 "minimum" : 1,
12001 "type" : "integer",
12002 "typetext" : "<integer> (1 - N)"
12003 }
12004 }
27a7acb2 12005 },
4d47f125
TL
12006 "permissions" : {
12007 "check" : [
12008 "perm",
12009 "/vms/{vmid}",
12010 [
12011 "VM.Monitor"
12012 ]
12013 ]
12014 },
12015 "protected" : 1,
12016 "proxyto" : "node",
12017 "returns" : {
12018 "description" : "Returns an object with a single `result` property.",
12019 "type" : "object"
27a7acb2
DM
12020 }
12021 }
12022 },
4d47f125
TL
12023 "leaf" : 1,
12024 "path" : "/nodes/{node}/qemu/{vmid}/agent/set-user-password",
12025 "text" : "set-user-password"
27a7acb2 12026 },
4d47f125
TL
12027 {
12028 "info" : {
12029 "POST" : {
e9cd3bd4 12030 "allowtoken" : 1,
4d47f125
TL
12031 "description" : "Executes the given command in the vm via the guest-agent and returns an object with the pid.",
12032 "method" : "POST",
12033 "name" : "exec",
12034 "parameters" : {
12035 "additionalProperties" : 0,
12036 "properties" : {
12037 "command" : {
12038 "description" : "The command as a list of program + arguments",
12039 "format" : "string-alist",
c5aa7e14
TL
12040 "optional" : 1,
12041 "type" : "string",
12042 "typetext" : "<string>"
12043 },
12044 "input-data" : {
12045 "description" : "Data to pass as 'input-data' to the guest. Usually treated as STDIN to 'command'.",
12046 "maxLength" : 65536,
12047 "optional" : 1,
4d47f125
TL
12048 "type" : "string",
12049 "typetext" : "<string>"
12050 },
12051 "node" : {
12052 "description" : "The cluster node name.",
12053 "format" : "pve-node",
12054 "type" : "string",
12055 "typetext" : "<string>"
12056 },
12057 "vmid" : {
12058 "description" : "The (unique) ID of the VM.",
12059 "format" : "pve-vmid",
12060 "minimum" : 1,
12061 "type" : "integer",
12062 "typetext" : "<integer> (1 - N)"
12063 }
12064 }
27a7acb2 12065 },
4d47f125
TL
12066 "permissions" : {
12067 "check" : [
12068 "perm",
12069 "/vms/{vmid}",
12070 [
12071 "VM.Monitor"
12072 ]
12073 ]
27a7acb2 12074 },
4d47f125
TL
12075 "protected" : 1,
12076 "proxyto" : "node",
12077 "returns" : {
12078 "properties" : {
12079 "pid" : {
12080 "description" : "The PID of the process started by the guest-agent.",
12081 "type" : "integer"
12082 }
12083 },
12084 "type" : "object"
27a7acb2
DM
12085 }
12086 }
12087 },
4d47f125
TL
12088 "leaf" : 1,
12089 "path" : "/nodes/{node}/qemu/{vmid}/agent/exec",
12090 "text" : "exec"
12091 },
12092 {
12093 "info" : {
12094 "GET" : {
e9cd3bd4 12095 "allowtoken" : 1,
4d47f125
TL
12096 "description" : "Gets the status of the given pid started by the guest-agent",
12097 "method" : "GET",
12098 "name" : "exec-status",
12099 "parameters" : {
12100 "additionalProperties" : 0,
12101 "properties" : {
12102 "node" : {
12103 "description" : "The cluster node name.",
12104 "format" : "pve-node",
12105 "type" : "string",
12106 "typetext" : "<string>"
12107 },
12108 "pid" : {
12109 "description" : "The PID to query",
12110 "type" : "integer",
12111 "typetext" : "<integer>"
12112 },
12113 "vmid" : {
12114 "description" : "The (unique) ID of the VM.",
12115 "format" : "pve-vmid",
12116 "minimum" : 1,
12117 "type" : "integer",
12118 "typetext" : "<integer> (1 - N)"
12119 }
12120 }
56122987 12121 },
4d47f125
TL
12122 "permissions" : {
12123 "check" : [
12124 "perm",
12125 "/vms/{vmid}",
12126 [
12127 "VM.Monitor"
12128 ]
12129 ]
56122987 12130 },
4d47f125
TL
12131 "protected" : 1,
12132 "proxyto" : "node",
12133 "returns" : {
12134 "properties" : {
12135 "err-data" : {
12136 "description" : "stderr of the process",
12137 "optional" : 1,
12138 "type" : "string"
12139 },
12140 "err-truncated" : {
12141 "description" : "true if stderr was not fully captured",
12142 "optional" : 1,
12143 "type" : "boolean"
12144 },
12145 "exitcode" : {
12146 "description" : "process exit code if it was normally terminated.",
12147 "optional" : 1,
12148 "type" : "integer"
12149 },
12150 "exited" : {
12151 "description" : "Tells if the given command has exited yet.",
12152 "type" : "boolean"
12153 },
12154 "out-data" : {
12155 "description" : "stdout of the process",
12156 "optional" : 1,
12157 "type" : "string"
12158 },
12159 "out-truncated" : {
12160 "description" : "true if stdout was not fully captured",
12161 "optional" : 1,
12162 "type" : "boolean"
12163 },
12164 "signal" : {
12165 "description" : "signal number or exception code if the process was abnormally terminated.",
12166 "optional" : 1,
12167 "type" : "integer"
12168 }
12169 },
12170 "type" : "object"
56122987
DM
12171 }
12172 }
12173 },
4d47f125
TL
12174 "leaf" : 1,
12175 "path" : "/nodes/{node}/qemu/{vmid}/agent/exec-status",
12176 "text" : "exec-status"
12177 },
12178 {
12179 "info" : {
12180 "GET" : {
e9cd3bd4 12181 "allowtoken" : 1,
4d47f125
TL
12182 "description" : "Reads the given file via guest agent. Is limited to 16777216 bytes.",
12183 "method" : "GET",
12184 "name" : "file-read",
12185 "parameters" : {
12186 "additionalProperties" : 0,
12187 "properties" : {
12188 "file" : {
12189 "description" : "The path to the file",
12190 "type" : "string",
12191 "typetext" : "<string>"
12192 },
12193 "node" : {
12194 "description" : "The cluster node name.",
12195 "format" : "pve-node",
12196 "type" : "string",
12197 "typetext" : "<string>"
12198 },
12199 "vmid" : {
12200 "description" : "The (unique) ID of the VM.",
12201 "format" : "pve-vmid",
12202 "minimum" : 1,
12203 "type" : "integer",
12204 "typetext" : "<integer> (1 - N)"
12205 }
12206 }
12207 },
12208 "permissions" : {
12209 "check" : [
12210 "perm",
12211 "/vms/{vmid}",
12212 [
12213 "VM.Monitor"
12214 ]
12215 ]
12216 },
12217 "protected" : 1,
12218 "proxyto" : "node",
12219 "returns" : {
12220 "description" : "Returns an object with a `content` property.",
12221 "properties" : {
12222 "content" : {
12223 "description" : "The content of the file, maximum 16777216",
12224 "type" : "string"
12225 },
12226 "truncated" : {
12227 "description" : "If set to 1, the output is truncated and not complete",
12228 "optional" : 1,
12229 "type" : "boolean"
12230 }
12231 },
12232 "type" : "object"
12233 }
12234 }
56122987 12235 },
4d47f125
TL
12236 "leaf" : 1,
12237 "path" : "/nodes/{node}/qemu/{vmid}/agent/file-read",
12238 "text" : "file-read"
12239 },
12240 {
12241 "info" : {
12242 "POST" : {
e9cd3bd4 12243 "allowtoken" : 1,
4d47f125
TL
12244 "description" : "Writes the given file via guest agent.",
12245 "method" : "POST",
12246 "name" : "file-write",
12247 "parameters" : {
12248 "additionalProperties" : 0,
12249 "properties" : {
12250 "content" : {
12251 "description" : "The content to write into the file.",
12252 "maxLength" : 61440,
12253 "type" : "string",
12254 "typetext" : "<string>"
12255 },
7af2edf9
TL
12256 "encode" : {
12257 "default" : 1,
12258 "description" : "If set, the content will be encoded as base64 (required by QEMU).Otherwise the content needs to be encoded beforehand - defaults to true.",
12259 "optional" : 1,
12260 "type" : "boolean",
12261 "typetext" : "<boolean>"
12262 },
4d47f125
TL
12263 "file" : {
12264 "description" : "The path to the file.",
12265 "type" : "string",
12266 "typetext" : "<string>"
12267 },
12268 "node" : {
12269 "description" : "The cluster node name.",
12270 "format" : "pve-node",
12271 "type" : "string",
12272 "typetext" : "<string>"
12273 },
12274 "vmid" : {
12275 "description" : "The (unique) ID of the VM.",
12276 "format" : "pve-vmid",
12277 "minimum" : 1,
12278 "type" : "integer",
12279 "typetext" : "<integer> (1 - N)"
12280 }
12281 }
12282 },
12283 "permissions" : {
12284 "check" : [
12285 "perm",
12286 "/vms/{vmid}",
12287 [
12288 "VM.Monitor"
12289 ]
12290 ]
12291 },
12292 "protected" : 1,
12293 "proxyto" : "node",
12294 "returns" : {
12295 "type" : "null"
7aacca6f 12296 }
4d47f125
TL
12297 }
12298 },
12299 "leaf" : 1,
12300 "path" : "/nodes/{node}/qemu/{vmid}/agent/file-write",
12301 "text" : "file-write"
56122987 12302 }
4d47f125 12303 ],
7aacca6f 12304 "info" : {
56122987 12305 "GET" : {
e9cd3bd4 12306 "allowtoken" : 1,
4d47f125 12307 "description" : "Qemu Agent command index.",
44660702 12308 "method" : "GET",
4d47f125 12309 "name" : "index",
56122987 12310 "parameters" : {
4d47f125 12311 "additionalProperties" : 1,
56122987
DM
12312 "properties" : {
12313 "node" : {
44660702 12314 "description" : "The cluster node name.",
56122987 12315 "format" : "pve-node",
013dc89f
DM
12316 "type" : "string",
12317 "typetext" : "<string>"
56122987 12318 },
7aacca6f 12319 "vmid" : {
7aacca6f
DM
12320 "description" : "The (unique) ID of the VM.",
12321 "format" : "pve-vmid",
44660702 12322 "minimum" : 1,
4bd7df8b 12323 "type" : "integer",
013dc89f 12324 "typetext" : "<integer> (1 - N)"
56122987 12325 }
44660702 12326 }
56122987 12327 },
56122987 12328 "permissions" : {
4d47f125 12329 "user" : "all"
56122987 12330 },
4d47f125 12331 "proxyto" : "node",
7aacca6f 12332 "returns" : {
4d47f125 12333 "description" : "Returns the list of Qemu Agent commands",
7aacca6f 12334 "items" : {
44660702
DM
12335 "properties" : {},
12336 "type" : "object"
12337 },
4d47f125
TL
12338 "links" : [
12339 {
12340 "href" : "{name}",
12341 "rel" : "child"
12342 }
12343 ],
44660702 12344 "type" : "array"
7aacca6f 12345 }
4d47f125
TL
12346 },
12347 "POST" : {
e9cd3bd4 12348 "allowtoken" : 1,
4d47f125
TL
12349 "description" : "Execute Qemu Guest Agent commands.",
12350 "method" : "POST",
12351 "name" : "agent",
44660702
DM
12352 "parameters" : {
12353 "additionalProperties" : 0,
12354 "properties" : {
4d47f125
TL
12355 "command" : {
12356 "description" : "The QGA command.",
12357 "enum" : [
12358 "fsfreeze-freeze",
12359 "fsfreeze-status",
12360 "fsfreeze-thaw",
12361 "fstrim",
12362 "get-fsinfo",
12363 "get-host-name",
12364 "get-memory-block-info",
12365 "get-memory-blocks",
12366 "get-osinfo",
12367 "get-time",
12368 "get-timezone",
12369 "get-users",
12370 "get-vcpus",
12371 "info",
12372 "network-get-interfaces",
12373 "ping",
12374 "shutdown",
12375 "suspend-disk",
12376 "suspend-hybrid",
12377 "suspend-ram"
12378 ],
12379 "type" : "string"
12380 },
12381 "node" : {
12382 "description" : "The cluster node name.",
12383 "format" : "pve-node",
12384 "type" : "string",
12385 "typetext" : "<string>"
12386 },
12387 "vmid" : {
12388 "description" : "The (unique) ID of the VM.",
12389 "format" : "pve-vmid",
12390 "minimum" : 1,
12391 "type" : "integer",
12392 "typetext" : "<integer> (1 - N)"
12393 }
12394 }
12395 },
12396 "permissions" : {
12397 "check" : [
12398 "perm",
12399 "/vms/{vmid}",
12400 [
12401 "VM.Monitor"
12402 ]
12403 ]
12404 },
12405 "protected" : 1,
12406 "proxyto" : "node",
12407 "returns" : {
12408 "description" : "Returns an object with a single `result` property.",
12409 "type" : "object"
12410 }
12411 }
12412 },
12413 "leaf" : 0,
12414 "path" : "/nodes/{node}/qemu/{vmid}/agent",
12415 "text" : "agent"
12416 },
12417 {
12418 "info" : {
12419 "GET" : {
e9cd3bd4 12420 "allowtoken" : 1,
4d47f125
TL
12421 "description" : "Read VM RRD statistics (returns PNG)",
12422 "method" : "GET",
12423 "name" : "rrd",
12424 "parameters" : {
12425 "additionalProperties" : 0,
12426 "properties" : {
12427 "cf" : {
12428 "description" : "The RRD consolidation function",
12429 "enum" : [
12430 "AVERAGE",
12431 "MAX"
12432 ],
44660702 12433 "optional" : 1,
4d47f125
TL
12434 "type" : "string"
12435 },
12436 "ds" : {
12437 "description" : "The list of datasources you want to display.",
12438 "format" : "pve-configid-list",
12439 "type" : "string",
12440 "typetext" : "<string>"
44660702
DM
12441 },
12442 "node" : {
12443 "description" : "The cluster node name.",
12444 "format" : "pve-node",
013dc89f
DM
12445 "type" : "string",
12446 "typetext" : "<string>"
44660702 12447 },
4d47f125
TL
12448 "timeframe" : {
12449 "description" : "Specify the time frame you are interested in.",
12450 "enum" : [
12451 "hour",
12452 "day",
12453 "week",
12454 "month",
12455 "year"
12456 ],
12457 "type" : "string"
12458 },
44660702
DM
12459 "vmid" : {
12460 "description" : "The (unique) ID of the VM.",
12461 "format" : "pve-vmid",
12462 "minimum" : 1,
4bd7df8b 12463 "type" : "integer",
013dc89f 12464 "typetext" : "<integer> (1 - N)"
44660702
DM
12465 }
12466 }
7aacca6f 12467 },
56122987
DM
12468 "permissions" : {
12469 "check" : [
12470 "perm",
12471 "/vms/{vmid}",
12472 [
44660702
DM
12473 "VM.Audit"
12474 ]
56122987
DM
12475 ]
12476 },
4d47f125 12477 "protected" : 1,
44660702
DM
12478 "returns" : {
12479 "properties" : {
4d47f125 12480 "filename" : {
44660702
DM
12481 "type" : "string"
12482 }
12483 },
12484 "type" : "object"
12485 }
4d47f125
TL
12486 }
12487 },
12488 "leaf" : 1,
12489 "path" : "/nodes/{node}/qemu/{vmid}/rrd",
12490 "text" : "rrd"
12491 },
12492 {
12493 "info" : {
12494 "GET" : {
e9cd3bd4 12495 "allowtoken" : 1,
4d47f125
TL
12496 "description" : "Read VM RRD statistics",
12497 "method" : "GET",
12498 "name" : "rrddata",
12499 "parameters" : {
12500 "additionalProperties" : 0,
12501 "properties" : {
12502 "cf" : {
12503 "description" : "The RRD consolidation function",
12504 "enum" : [
12505 "AVERAGE",
12506 "MAX"
12507 ],
12508 "optional" : 1,
12509 "type" : "string"
12510 },
12511 "node" : {
12512 "description" : "The cluster node name.",
12513 "format" : "pve-node",
12514 "type" : "string",
12515 "typetext" : "<string>"
12516 },
12517 "timeframe" : {
12518 "description" : "Specify the time frame you are interested in.",
12519 "enum" : [
12520 "hour",
12521 "day",
12522 "week",
12523 "month",
12524 "year"
12525 ],
12526 "type" : "string"
12527 },
12528 "vmid" : {
12529 "description" : "The (unique) ID of the VM.",
12530 "format" : "pve-vmid",
12531 "minimum" : 1,
12532 "type" : "integer",
12533 "typetext" : "<integer> (1 - N)"
12534 }
12535 }
12536 },
12537 "permissions" : {
12538 "check" : [
12539 "perm",
12540 "/vms/{vmid}",
12541 [
12542 "VM.Audit"
12543 ]
12544 ]
12545 },
12546 "protected" : 1,
12547 "returns" : {
12548 "items" : {
12549 "properties" : {},
12550 "type" : "object"
12551 },
12552 "type" : "array"
12553 }
12554 }
12555 },
12556 "leaf" : 1,
12557 "path" : "/nodes/{node}/qemu/{vmid}/rrddata",
12558 "text" : "rrddata"
12559 },
12560 {
12561 "info" : {
12562 "GET" : {
e9cd3bd4
TL
12563 "allowtoken" : 1,
12564 "description" : "Get the virtual machine configuration with pending configuration changes applied. Set the 'current' parameter to get the current configuration instead.",
4d47f125
TL
12565 "method" : "GET",
12566 "name" : "vm_config",
56122987 12567 "parameters" : {
44660702 12568 "additionalProperties" : 0,
4d47f125
TL
12569 "properties" : {
12570 "current" : {
12571 "default" : 0,
12572 "description" : "Get current values (instead of pending values).",
12573 "optional" : 1,
12574 "type" : "boolean",
12575 "typetext" : "<boolean>"
12576 },
12577 "node" : {
12578 "description" : "The cluster node name.",
12579 "format" : "pve-node",
12580 "type" : "string",
12581 "typetext" : "<string>"
12582 },
5f26e15b
TL
12583 "snapshot" : {
12584 "description" : "Fetch config values from given snapshot.",
12585 "format" : "pve-configid",
12586 "maxLength" : 40,
12587 "optional" : 1,
12588 "type" : "string",
12589 "typetext" : "<string>"
12590 },
4d47f125
TL
12591 "vmid" : {
12592 "description" : "The (unique) ID of the VM.",
12593 "format" : "pve-vmid",
12594 "minimum" : 1,
12595 "type" : "integer",
12596 "typetext" : "<integer> (1 - N)"
12597 }
12598 }
12599 },
12600 "permissions" : {
12601 "check" : [
12602 "perm",
12603 "/vms/{vmid}",
12604 [
12605 "VM.Audit"
12606 ]
12607 ]
12608 },
12609 "proxyto" : "node",
12610 "returns" : {
e9cd3bd4 12611 "description" : "The VM configuration.",
56122987 12612 "properties" : {
44660702
DM
12613 "acpi" : {
12614 "default" : 1,
12615 "description" : "Enable/disable ACPI.",
12616 "optional" : 1,
4d47f125 12617 "type" : "boolean"
44660702 12618 },
4e7f60c2 12619 "affinity" : {
81a3384d 12620 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
12621 "format" : "pve-cpuset",
12622 "optional" : 1,
12623 "type" : "string"
12624 },
44660702 12625 "agent" : {
5370fa8c 12626 "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
4d47f125
TL
12627 "format" : {
12628 "enabled" : {
12629 "default" : 0,
12630 "default_key" : 1,
5370fa8c 12631 "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
4d47f125
TL
12632 "type" : "boolean"
12633 },
12634 "fstrim_cloned_disks" : {
12635 "default" : 0,
d2656385 12636 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
12637 "optional" : 1,
12638 "type" : "boolean"
5c1699e5
TL
12639 },
12640 "type" : {
12641 "default" : "virtio",
12642 "description" : "Select the agent type",
12643 "enum" : [
12644 "virtio",
12645 "isa"
12646 ],
12647 "optional" : 1,
12648 "type" : "string"
4d47f125
TL
12649 }
12650 },
7aacca6f 12651 "optional" : 1,
4d47f125 12652 "type" : "string"
7aacca6f 12653 },
e2d681b3
TL
12654 "arch" : {
12655 "description" : "Virtual processor architecture. Defaults to the host.",
12656 "enum" : [
12657 "x86_64",
12658 "aarch64"
12659 ],
12660 "optional" : 1,
12661 "type" : "string"
12662 },
44660702 12663 "args" : {
c2993fe5 12664 "description" : "Arbitrary arguments passed to kvm.",
44660702 12665 "optional" : 1,
c2993fe5
DM
12666 "type" : "string",
12667 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
7aacca6f 12668 },
1c532546
TL
12669 "audio0" : {
12670 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
12671 "format" : {
12672 "device" : {
12673 "description" : "Configure an audio device.",
12674 "enum" : [
12675 "ich9-intel-hda",
12676 "intel-hda",
12677 "AC97"
12678 ],
12679 "type" : "string"
12680 },
12681 "driver" : {
12682 "default" : "spice",
12683 "description" : "Driver backend for the audio device.",
12684 "enum" : [
d2656385
TL
12685 "spice",
12686 "none"
1c532546
TL
12687 ],
12688 "optional" : 1,
12689 "type" : "string"
12690 }
12691 },
12692 "optional" : 1,
12693 "type" : "string"
12694 },
44660702
DM
12695 "autostart" : {
12696 "default" : 0,
12697 "description" : "Automatic restart after crash (currently ignored).",
56122987 12698 "optional" : 1,
4d47f125 12699 "type" : "boolean"
56122987 12700 },
4d47f125
TL
12701 "balloon" : {
12702 "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
12703 "minimum" : 0,
7aacca6f 12704 "optional" : 1,
4d47f125 12705 "type" : "integer"
7aacca6f 12706 },
44660702
DM
12707 "bios" : {
12708 "default" : "seabios",
12709 "description" : "Select BIOS implementation.",
12710 "enum" : [
12711 "seabios",
12712 "ovmf"
12713 ],
56122987 12714 "optional" : 1,
44660702 12715 "type" : "string"
7aacca6f 12716 },
44660702 12717 "boot" : {
5370fa8c 12718 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 12719 "format" : "pve-qm-boot",
44660702 12720 "optional" : 1,
44660702
DM
12721 "type" : "string"
12722 },
12723 "bootdisk" : {
4772952b 12724 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
12725 "format" : "pve-qm-bootdisk",
12726 "optional" : 1,
12727 "pattern" : "(ide|sata|scsi|virtio)\\d+",
12728 "type" : "string"
12729 },
12730 "cdrom" : {
12731 "description" : "This is an alias for option -ide2",
de0983cb 12732 "format" : "pve-qm-ide",
44660702 12733 "optional" : 1,
7aacca6f 12734 "type" : "string",
013dc89f 12735 "typetext" : "<volume>"
44660702 12736 },
95895385
TL
12737 "cicustom" : {
12738 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
12739 "format" : "pve-qm-cicustom",
12740 "optional" : 1,
12741 "type" : "string"
12742 },
27a7acb2
DM
12743 "cipassword" : {
12744 "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.",
12745 "optional" : 1,
4d47f125 12746 "type" : "string"
27a7acb2
DM
12747 },
12748 "citype" : {
12749 "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.",
12750 "enum" : [
12751 "configdrive2",
d2656385
TL
12752 "nocloud",
12753 "opennebula"
27a7acb2
DM
12754 ],
12755 "optional" : 1,
12756 "type" : "string"
12757 },
12758 "ciuser" : {
12759 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
12760 "optional" : 1,
4d47f125 12761 "type" : "string"
27a7acb2 12762 },
44660702
DM
12763 "cores" : {
12764 "default" : 1,
12765 "description" : "The number of cores per socket.",
12766 "minimum" : 1,
7aacca6f 12767 "optional" : 1,
4d47f125 12768 "type" : "integer"
7aacca6f 12769 },
44660702
DM
12770 "cpu" : {
12771 "description" : "Emulated CPU type.",
c5aa7e14 12772 "format" : "pve-vm-cpu-conf",
44660702 12773 "optional" : 1,
4d47f125 12774 "type" : "string"
44660702
DM
12775 },
12776 "cpulimit" : {
12777 "default" : 0,
c2993fe5 12778 "description" : "Limit of CPU usage.",
44660702
DM
12779 "maximum" : 128,
12780 "minimum" : 0,
12781 "optional" : 1,
c2993fe5
DM
12782 "type" : "number",
12783 "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
12784 },
12785 "cpuunits" : {
5370fa8c
TL
12786 "default" : "cgroup v1: 1024, cgroup v2: 100",
12787 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 12788 "maximum" : 262144,
7af2edf9 12789 "minimum" : 1,
44660702 12790 "optional" : 1,
c2993fe5 12791 "type" : "integer",
2489d6df 12792 "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 12793 },
44660702 12794 "description" : {
8f4d9c87
TL
12795 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
12796 "maxLength" : 8192,
44660702 12797 "optional" : 1,
4d47f125 12798 "type" : "string"
44660702
DM
12799 },
12800 "digest" : {
4d47f125
TL
12801 "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
12802 "type" : "string"
44660702 12803 },
4d47f125 12804 "efidisk0" : {
7af2edf9 12805 "description" : "Configure a Disk for storing EFI vars.",
4d47f125 12806 "format" : {
5370fa8c
TL
12807 "efitype" : {
12808 "default" : "2m",
12809 "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.",
12810 "enum" : [
12811 "2m",
12812 "4m"
12813 ],
12814 "optional" : 1,
12815 "type" : "string"
12816 },
4d47f125
TL
12817 "file" : {
12818 "default_key" : 1,
12819 "description" : "The drive's backing volume.",
12820 "format" : "pve-volume-id-or-qm-path",
12821 "format_description" : "volume",
12822 "type" : "string"
12823 },
12824 "format" : {
12825 "description" : "The drive's backing file's data format.",
12826 "enum" : [
12827 "raw",
12828 "cow",
12829 "qcow",
12830 "qed",
12831 "qcow2",
12832 "vmdk",
12833 "cloop"
12834 ],
12835 "optional" : 1,
12836 "type" : "string"
12837 },
5370fa8c
TL
12838 "pre-enrolled-keys" : {
12839 "default" : 0,
12840 "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.",
12841 "optional" : 1,
12842 "type" : "boolean"
12843 },
4d47f125
TL
12844 "size" : {
12845 "description" : "Disk size. This is purely informational and has no effect.",
12846 "format" : "disk-size",
12847 "format_description" : "DiskSize",
12848 "optional" : 1,
12849 "type" : "string"
12850 },
12851 "volume" : {
12852 "alias" : "file"
12853 }
12854 },
44660702 12855 "optional" : 1,
4d47f125 12856 "type" : "string"
44660702
DM
12857 },
12858 "freeze" : {
12859 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
12860 "optional" : 1,
4d47f125 12861 "type" : "boolean"
44660702 12862 },
5f26e15b
TL
12863 "hookscript" : {
12864 "description" : "Script that will be executed during various steps in the vms lifetime.",
12865 "format" : "pve-volume-id",
12866 "optional" : 1,
12867 "type" : "string"
12868 },
44660702 12869 "hostpci[n]" : {
c2993fe5 12870 "description" : "Map host PCI devices into guest.",
44660702
DM
12871 "format" : "pve-qm-hostpci",
12872 "optional" : 1,
57b78691 12873 "type" : "string",
bb4c8cf8 12874 "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
12875 },
12876 "hotplug" : {
12877 "default" : "network,disk,usb",
4e7f60c2 12878 "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
12879 "format" : "pve-hotplug-features",
12880 "optional" : 1,
4d47f125 12881 "type" : "string"
44660702 12882 },
4bd7df8b
DM
12883 "hugepages" : {
12884 "description" : "Enable/disable hugepages memory.",
12885 "enum" : [
12886 "any",
12887 "2",
12888 "1024"
12889 ],
12890 "optional" : 1,
12891 "type" : "string"
12892 },
44660702 12893 "ide[n]" : {
7af2edf9 12894 "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
44660702
DM
12895 "format" : {
12896 "aio" : {
12897 "description" : "AIO type to use.",
12898 "enum" : [
12899 "native",
8f4d9c87
TL
12900 "threads",
12901 "io_uring"
56122987 12902 ],
56122987 12903 "optional" : 1,
44660702 12904 "type" : "string"
56122987 12905 },
44660702
DM
12906 "backup" : {
12907 "description" : "Whether the drive should be included when making backups.",
56122987 12908 "optional" : 1,
44660702 12909 "type" : "boolean"
56122987 12910 },
7aacca6f 12911 "bps" : {
de0983cb 12912 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
12913 "format_description" : "bps",
12914 "optional" : 1,
12915 "type" : "integer"
12916 },
de0983cb
DM
12917 "bps_max_length" : {
12918 "description" : "Maximum length of I/O bursts in seconds.",
12919 "format_description" : "seconds",
12920 "minimum" : 1,
12921 "optional" : 1,
12922 "type" : "integer"
12923 },
44660702 12924 "bps_rd" : {
de0983cb 12925 "description" : "Maximum read speed in bytes per second.",
44660702 12926 "format_description" : "bps",
56122987 12927 "optional" : 1,
44660702 12928 "type" : "integer"
56122987 12929 },
de0983cb 12930 "bps_rd_length" : {
5d9c884c
DM
12931 "alias" : "bps_rd_max_length"
12932 },
12933 "bps_rd_max_length" : {
de0983cb
DM
12934 "description" : "Maximum length of read I/O bursts in seconds.",
12935 "format_description" : "seconds",
12936 "minimum" : 1,
12937 "optional" : 1,
12938 "type" : "integer"
12939 },
44660702 12940 "bps_wr" : {
de0983cb 12941 "description" : "Maximum write speed in bytes per second.",
44660702
DM
12942 "format_description" : "bps",
12943 "optional" : 1,
12944 "type" : "integer"
12945 },
de0983cb 12946 "bps_wr_length" : {
5d9c884c
DM
12947 "alias" : "bps_wr_max_length"
12948 },
12949 "bps_wr_max_length" : {
de0983cb
DM
12950 "description" : "Maximum length of write I/O bursts in seconds.",
12951 "format_description" : "seconds",
12952 "minimum" : 1,
12953 "optional" : 1,
12954 "type" : "integer"
12955 },
44660702
DM
12956 "cache" : {
12957 "description" : "The drive's cache mode",
12958 "enum" : [
12959 "none",
12960 "writethrough",
12961 "writeback",
12962 "unsafe",
12963 "directsync"
12964 ],
44660702
DM
12965 "optional" : 1,
12966 "type" : "string"
12967 },
12968 "cyls" : {
12969 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
12970 "optional" : 1,
12971 "type" : "integer"
12972 },
12973 "detect_zeroes" : {
12974 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
12975 "optional" : 1,
12976 "type" : "boolean"
12977 },
12978 "discard" : {
12979 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
12980 "enum" : [
12981 "ignore",
12982 "on"
12983 ],
56122987 12984 "optional" : 1,
44660702
DM
12985 "type" : "string"
12986 },
12987 "file" : {
12988 "default_key" : 1,
12989 "description" : "The drive's backing volume.",
12990 "format" : "pve-volume-id-or-qm-path",
12991 "format_description" : "volume",
12992 "type" : "string"
56122987 12993 },
7aacca6f 12994 "format" : {
7aacca6f 12995 "description" : "The drive's backing file's data format.",
56122987 12996 "enum" : [
7aacca6f
DM
12997 "raw",
12998 "cow",
12999 "qcow",
13000 "qed",
13001 "qcow2",
13002 "vmdk",
13003 "cloop"
56122987
DM
13004 ],
13005 "optional" : 1,
56122987
DM
13006 "type" : "string"
13007 },
44660702
DM
13008 "heads" : {
13009 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
13010 "optional" : 1,
13011 "type" : "integer"
7aacca6f 13012 },
44660702 13013 "iops" : {
de0983cb 13014 "description" : "Maximum r/w I/O in operations per second.",
44660702 13015 "format_description" : "iops",
56122987 13016 "optional" : 1,
44660702 13017 "type" : "integer"
56122987 13018 },
44660702 13019 "iops_max" : {
de0983cb 13020 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 13021 "format_description" : "iops",
56122987 13022 "optional" : 1,
44660702 13023 "type" : "integer"
56122987 13024 },
de0983cb
DM
13025 "iops_max_length" : {
13026 "description" : "Maximum length of I/O bursts in seconds.",
13027 "format_description" : "seconds",
13028 "minimum" : 1,
13029 "optional" : 1,
13030 "type" : "integer"
13031 },
44660702 13032 "iops_rd" : {
de0983cb 13033 "description" : "Maximum read I/O in operations per second.",
44660702
DM
13034 "format_description" : "iops",
13035 "optional" : 1,
13036 "type" : "integer"
13037 },
de0983cb 13038 "iops_rd_length" : {
5d9c884c 13039 "alias" : "iops_rd_max_length"
de0983cb 13040 },
44660702 13041 "iops_rd_max" : {
de0983cb 13042 "description" : "Maximum unthrottled read I/O pool in operations per second.",
7aacca6f 13043 "format_description" : "iops",
44660702
DM
13044 "optional" : 1,
13045 "type" : "integer"
13046 },
5d9c884c
DM
13047 "iops_rd_max_length" : {
13048 "description" : "Maximum length of read I/O bursts in seconds.",
13049 "format_description" : "seconds",
13050 "minimum" : 1,
13051 "optional" : 1,
13052 "type" : "integer"
13053 },
44660702 13054 "iops_wr" : {
de0983cb 13055 "description" : "Maximum write I/O in operations per second.",
44660702 13056 "format_description" : "iops",
56122987 13057 "optional" : 1,
7aacca6f 13058 "type" : "integer"
56122987 13059 },
de0983cb 13060 "iops_wr_length" : {
5d9c884c 13061 "alias" : "iops_wr_max_length"
de0983cb 13062 },
44660702 13063 "iops_wr_max" : {
de0983cb 13064 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 13065 "format_description" : "iops",
7aacca6f 13066 "optional" : 1,
44660702 13067 "type" : "integer"
56122987 13068 },
5d9c884c
DM
13069 "iops_wr_max_length" : {
13070 "description" : "Maximum length of write I/O bursts in seconds.",
13071 "format_description" : "seconds",
13072 "minimum" : 1,
13073 "optional" : 1,
13074 "type" : "integer"
13075 },
44660702 13076 "mbps" : {
de0983cb 13077 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
13078 "format_description" : "mbps",
13079 "optional" : 1,
13080 "type" : "number"
13081 },
13082 "mbps_max" : {
de0983cb 13083 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
13084 "format_description" : "mbps",
13085 "optional" : 1,
13086 "type" : "number"
13087 },
13088 "mbps_rd" : {
de0983cb 13089 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
13090 "format_description" : "mbps",
13091 "optional" : 1,
13092 "type" : "number"
13093 },
13094 "mbps_rd_max" : {
de0983cb 13095 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
13096 "format_description" : "mbps",
13097 "optional" : 1,
13098 "type" : "number"
13099 },
13100 "mbps_wr" : {
de0983cb 13101 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
13102 "format_description" : "mbps",
13103 "optional" : 1,
13104 "type" : "number"
13105 },
13106 "mbps_wr_max" : {
de0983cb 13107 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 13108 "format_description" : "mbps",
56122987 13109 "optional" : 1,
44660702 13110 "type" : "number"
56122987 13111 },
7aacca6f 13112 "media" : {
7aacca6f 13113 "default" : "disk",
7aacca6f
DM
13114 "description" : "The drive's media type.",
13115 "enum" : [
13116 "cdrom",
13117 "disk"
44660702 13118 ],
44660702
DM
13119 "optional" : 1,
13120 "type" : "string"
56122987 13121 },
44660702
DM
13122 "model" : {
13123 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
13124 "format" : "urlencoded",
13125 "format_description" : "model",
13126 "maxLength" : 120,
56122987 13127 "optional" : 1,
44660702 13128 "type" : "string"
56122987 13129 },
5d9c884c
DM
13130 "replicate" : {
13131 "default" : 1,
13132 "description" : "Whether the drive should considered for replication jobs.",
13133 "optional" : 1,
13134 "type" : "boolean"
13135 },
44660702
DM
13136 "rerror" : {
13137 "description" : "Read error action.",
13138 "enum" : [
13139 "ignore",
13140 "report",
13141 "stop"
13142 ],
56122987 13143 "optional" : 1,
44660702
DM
13144 "type" : "string"
13145 },
13146 "secs" : {
13147 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
13148 "optional" : 1,
13149 "type" : "integer"
13150 },
13151 "serial" : {
13152 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
13153 "format" : "urlencoded",
13154 "format_description" : "serial",
13155 "maxLength" : 60,
13156 "optional" : 1,
13157 "type" : "string"
13158 },
27a7acb2
DM
13159 "shared" : {
13160 "default" : 0,
13161 "description" : "Mark this locally-managed volume as available on all nodes",
13162 "optional" : 1,
13163 "type" : "boolean",
13164 "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!"
13165 },
44660702
DM
13166 "size" : {
13167 "description" : "Disk size. This is purely informational and has no effect.",
13168 "format" : "disk-size",
f004f5b9 13169 "format_description" : "DiskSize",
44660702
DM
13170 "optional" : 1,
13171 "type" : "string"
13172 },
13173 "snapshot" : {
27a7acb2 13174 "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
13175 "optional" : 1,
13176 "type" : "boolean"
13177 },
25203dc1
NC
13178 "ssd" : {
13179 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
13180 "optional" : 1,
13181 "type" : "boolean"
13182 },
44660702
DM
13183 "trans" : {
13184 "description" : "Force disk geometry bios translation mode.",
13185 "enum" : [
13186 "none",
13187 "lba",
13188 "auto"
13189 ],
44660702
DM
13190 "optional" : 1,
13191 "type" : "string"
13192 },
13193 "volume" : {
13194 "alias" : "file"
13195 },
13196 "werror" : {
13197 "description" : "Write error action.",
13198 "enum" : [
13199 "enospc",
13200 "ignore",
13201 "report",
13202 "stop"
13203 ],
44660702
DM
13204 "optional" : 1,
13205 "type" : "string"
95895385
TL
13206 },
13207 "wwn" : {
13208 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
13209 "format_description" : "wwn",
13210 "optional" : 1,
13211 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
13212 "type" : "string"
56122987
DM
13213 }
13214 },
44660702 13215 "optional" : 1,
4d47f125 13216 "type" : "string"
27a7acb2
DM
13217 },
13218 "ipconfig[n]" : {
d2656385 13219 "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
13220 "format" : "pve-qm-ipconfig",
13221 "optional" : 1,
4d47f125 13222 "type" : "string"
56122987 13223 },
95895385
TL
13224 "ivshmem" : {
13225 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
13226 "format" : {
13227 "name" : {
13228 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
13229 "format_description" : "string",
13230 "optional" : 1,
13231 "pattern" : "[a-zA-Z0-9\\-]+",
13232 "type" : "string"
13233 },
13234 "size" : {
13235 "description" : "The size of the file in MB.",
13236 "minimum" : 1,
13237 "type" : "integer"
13238 }
13239 },
13240 "optional" : 1,
13241 "type" : "string"
13242 },
4772952b
TL
13243 "keephugepages" : {
13244 "default" : 0,
13245 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
13246 "optional" : 1,
13247 "type" : "boolean"
13248 },
44660702 13249 "keyboard" : {
35a75dd3 13250 "default" : null,
7af2edf9 13251 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
44660702
DM
13252 "enum" : [
13253 "de",
13254 "de-ch",
13255 "da",
13256 "en-gb",
13257 "en-us",
13258 "es",
13259 "fi",
13260 "fr",
13261 "fr-be",
13262 "fr-ca",
13263 "fr-ch",
13264 "hu",
13265 "is",
13266 "it",
13267 "ja",
13268 "lt",
13269 "mk",
13270 "nl",
13271 "no",
13272 "pl",
13273 "pt",
13274 "pt-br",
13275 "sv",
13276 "sl",
13277 "tr"
13278 ],
56122987 13279 "optional" : 1,
44660702
DM
13280 "type" : "string"
13281 },
13282 "kvm" : {
7aacca6f 13283 "default" : 1,
44660702
DM
13284 "description" : "Enable/disable KVM hardware virtualization.",
13285 "optional" : 1,
4d47f125 13286 "type" : "boolean"
56122987 13287 },
44660702 13288 "localtime" : {
5370fa8c 13289 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
56122987 13290 "optional" : 1,
4d47f125 13291 "type" : "boolean"
56122987 13292 },
44660702
DM
13293 "lock" : {
13294 "description" : "Lock/unlock the VM.",
13295 "enum" : [
44660702 13296 "backup",
5f26e15b
TL
13297 "clone",
13298 "create",
13299 "migrate",
13300 "rollback",
44660702 13301 "snapshot",
95895385
TL
13302 "snapshot-delete",
13303 "suspending",
13304 "suspended"
44660702 13305 ],
7aacca6f 13306 "optional" : 1,
44660702
DM
13307 "type" : "string"
13308 },
13309 "machine" : {
4d47f125 13310 "description" : "Specifies the Qemu machine type.",
44660702
DM
13311 "maxLength" : 40,
13312 "optional" : 1,
5c1699e5 13313 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702
DM
13314 "type" : "string"
13315 },
13316 "memory" : {
13317 "default" : 512,
13318 "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
13319 "minimum" : 16,
13320 "optional" : 1,
4d47f125 13321 "type" : "integer"
44660702
DM
13322 },
13323 "migrate_downtime" : {
13324 "default" : 0.1,
13325 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
13326 "minimum" : 0,
13327 "optional" : 1,
4d47f125 13328 "type" : "number"
44660702
DM
13329 },
13330 "migrate_speed" : {
13331 "default" : 0,
13332 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
13333 "minimum" : 0,
13334 "optional" : 1,
4d47f125 13335 "type" : "integer"
44660702
DM
13336 },
13337 "name" : {
13338 "description" : "Set a name for the VM. Only used on the configuration web interface.",
13339 "format" : "dns-name",
13340 "optional" : 1,
4d47f125 13341 "type" : "string"
44660702 13342 },
27a7acb2 13343 "nameserver" : {
de786b48 13344 "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
13345 "format" : "address-list",
13346 "optional" : 1,
4d47f125 13347 "type" : "string"
27a7acb2 13348 },
44660702 13349 "net[n]" : {
c2993fe5 13350 "description" : "Specify network devices.",
f004f5b9
DM
13351 "format" : {
13352 "bridge" : {
c2993fe5 13353 "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 13354 "format" : "pve-bridge-id",
f004f5b9
DM
13355 "format_description" : "bridge",
13356 "optional" : 1,
13357 "type" : "string"
13358 },
13359 "e1000" : {
13360 "alias" : "macaddr",
13361 "keyAlias" : "model"
13362 },
13363 "e1000-82540em" : {
13364 "alias" : "macaddr",
13365 "keyAlias" : "model"
13366 },
13367 "e1000-82544gc" : {
13368 "alias" : "macaddr",
13369 "keyAlias" : "model"
13370 },
13371 "e1000-82545em" : {
13372 "alias" : "macaddr",
13373 "keyAlias" : "model"
13374 },
5370fa8c
TL
13375 "e1000e" : {
13376 "alias" : "macaddr",
13377 "keyAlias" : "model"
13378 },
f004f5b9
DM
13379 "firewall" : {
13380 "description" : "Whether this interface should be protected by the firewall.",
13381 "optional" : 1,
13382 "type" : "boolean"
13383 },
13384 "i82551" : {
13385 "alias" : "macaddr",
13386 "keyAlias" : "model"
13387 },
13388 "i82557b" : {
13389 "alias" : "macaddr",
13390 "keyAlias" : "model"
13391 },
13392 "i82559er" : {
13393 "alias" : "macaddr",
13394 "keyAlias" : "model"
13395 },
13396 "link_down" : {
c2993fe5 13397 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
13398 "optional" : 1,
13399 "type" : "boolean"
13400 },
13401 "macaddr" : {
c2993fe5 13402 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 13403 "format" : "mac-addr",
f004f5b9 13404 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 13405 "optional" : 1,
95895385
TL
13406 "type" : "string",
13407 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
13408 },
13409 "model" : {
13410 "default_key" : 1,
c2993fe5 13411 "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 13412 "enum" : [
f004f5b9 13413 "e1000",
5370fa8c
TL
13414 "e1000-82540em",
13415 "e1000-82544gc",
13416 "e1000-82545em",
13417 "e1000e",
f004f5b9
DM
13418 "i82551",
13419 "i82557b",
13420 "i82559er",
5370fa8c
TL
13421 "ne2k_isa",
13422 "ne2k_pci",
13423 "pcnet",
13424 "rtl8139",
13425 "virtio",
13426 "vmxnet3"
f004f5b9 13427 ],
f004f5b9
DM
13428 "type" : "string"
13429 },
ac70d7d1
TL
13430 "mtu" : {
13431 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
13432 "maximum" : 65520,
13433 "minimum" : 1,
13434 "optional" : 1,
13435 "type" : "integer"
13436 },
f004f5b9
DM
13437 "ne2k_isa" : {
13438 "alias" : "macaddr",
13439 "keyAlias" : "model"
13440 },
13441 "ne2k_pci" : {
13442 "alias" : "macaddr",
13443 "keyAlias" : "model"
13444 },
13445 "pcnet" : {
13446 "alias" : "macaddr",
13447 "keyAlias" : "model"
13448 },
13449 "queues" : {
13450 "description" : "Number of packet queues to be used on the device.",
81a3384d 13451 "maximum" : 64,
f004f5b9
DM
13452 "minimum" : 0,
13453 "optional" : 1,
13454 "type" : "integer"
13455 },
13456 "rate" : {
c2993fe5 13457 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
13458 "minimum" : 0,
13459 "optional" : 1,
13460 "type" : "number"
13461 },
13462 "rtl8139" : {
13463 "alias" : "macaddr",
13464 "keyAlias" : "model"
13465 },
13466 "tag" : {
13467 "description" : "VLAN tag to apply to packets on this interface.",
13468 "maximum" : 4094,
c2993fe5 13469 "minimum" : 1,
f004f5b9
DM
13470 "optional" : 1,
13471 "type" : "integer"
13472 },
13473 "trunks" : {
13474 "description" : "VLAN trunks to pass through this interface.",
13475 "format_description" : "vlanid[;vlanid...]",
13476 "optional" : 1,
13477 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
13478 "type" : "string"
13479 },
13480 "virtio" : {
13481 "alias" : "macaddr",
13482 "keyAlias" : "model"
13483 },
13484 "vmxnet3" : {
13485 "alias" : "macaddr",
13486 "keyAlias" : "model"
13487 }
13488 },
44660702 13489 "optional" : 1,
4d47f125 13490 "type" : "string"
44660702
DM
13491 },
13492 "numa" : {
13493 "default" : 0,
13494 "description" : "Enable/disable NUMA.",
13495 "optional" : 1,
4d47f125 13496 "type" : "boolean"
44660702
DM
13497 },
13498 "numa[n]" : {
c2993fe5 13499 "description" : "NUMA topology.",
56122987 13500 "format" : {
7aacca6f 13501 "cpus" : {
c2993fe5 13502 "description" : "CPUs accessing this NUMA node.",
44660702
DM
13503 "format_description" : "id[-id];...",
13504 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
13505 "type" : "string"
7aacca6f
DM
13506 },
13507 "hostnodes" : {
c2993fe5 13508 "description" : "Host NUMA nodes to use.",
44660702 13509 "format_description" : "id[-id];...",
7aacca6f 13510 "optional" : 1,
7aacca6f 13511 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
44660702 13512 "type" : "string"
7aacca6f 13513 },
44660702 13514 "memory" : {
c2993fe5 13515 "description" : "Amount of memory this NUMA node provides.",
7aacca6f 13516 "optional" : 1,
44660702
DM
13517 "type" : "number"
13518 },
13519 "policy" : {
c2993fe5 13520 "description" : "NUMA allocation policy.",
7aacca6f
DM
13521 "enum" : [
13522 "preferred",
13523 "bind",
13524 "interleave"
13525 ],
44660702
DM
13526 "optional" : 1,
13527 "type" : "string"
56122987 13528 }
44660702 13529 },
56122987 13530 "optional" : 1,
4d47f125 13531 "type" : "string"
56122987 13532 },
44660702 13533 "onboot" : {
7aacca6f 13534 "default" : 0,
44660702
DM
13535 "description" : "Specifies whether a VM will be started during system bootup.",
13536 "optional" : 1,
4d47f125 13537 "type" : "boolean"
7aacca6f
DM
13538 },
13539 "ostype" : {
c2993fe5 13540 "description" : "Specify guest operating system.",
7aacca6f
DM
13541 "enum" : [
13542 "other",
13543 "wxp",
13544 "w2k",
13545 "w2k3",
13546 "w2k8",
13547 "wvista",
13548 "win7",
13549 "win8",
32d876b5 13550 "win10",
5370fa8c 13551 "win11",
7aacca6f
DM
13552 "l24",
13553 "l26",
13554 "solaris"
13555 ],
7aacca6f 13556 "optional" : 1,
c2993fe5 13557 "type" : "string",
5370fa8c 13558 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 5.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
56122987 13559 },
44660702 13560 "parallel[n]" : {
c2993fe5 13561 "description" : "Map host parallel devices (n is 0 to 2).",
7aacca6f 13562 "optional" : 1,
44660702 13563 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 13564 "type" : "string",
4772952b 13565 "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
13566 },
13567 "protection" : {
13568 "default" : 0,
c2993fe5 13569 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
7aacca6f 13570 "optional" : 1,
4d47f125 13571 "type" : "boolean"
7aacca6f 13572 },
44660702
DM
13573 "reboot" : {
13574 "default" : 1,
13575 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
7aacca6f 13576 "optional" : 1,
4d47f125 13577 "type" : "boolean"
44660702 13578 },
c5aa7e14
TL
13579 "rng0" : {
13580 "description" : "Configure a VirtIO-based Random Number Generator.",
13581 "format" : {
13582 "max_bytes" : {
13583 "default" : 1024,
5370fa8c 13584 "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
13585 "optional" : 1,
13586 "type" : "integer"
13587 },
13588 "period" : {
13589 "default" : 1000,
13590 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
13591 "optional" : 1,
13592 "type" : "integer"
13593 },
13594 "source" : {
13595 "default_key" : 1,
5370fa8c 13596 "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
13597 "enum" : [
13598 "/dev/urandom",
13599 "/dev/random",
13600 "/dev/hwrng"
13601 ],
13602 "type" : "string"
13603 }
13604 },
13605 "optional" : 1,
13606 "type" : "string"
13607 },
44660702 13608 "sata[n]" : {
7af2edf9 13609 "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
56122987 13610 "format" : {
44660702
DM
13611 "aio" : {
13612 "description" : "AIO type to use.",
7aacca6f 13613 "enum" : [
44660702 13614 "native",
8f4d9c87
TL
13615 "threads",
13616 "io_uring"
7aacca6f 13617 ],
44660702
DM
13618 "optional" : 1,
13619 "type" : "string"
7aacca6f 13620 },
44660702
DM
13621 "backup" : {
13622 "description" : "Whether the drive should be included when making backups.",
56122987 13623 "optional" : 1,
7aacca6f 13624 "type" : "boolean"
44660702
DM
13625 },
13626 "bps" : {
de0983cb 13627 "description" : "Maximum r/w speed in bytes per second.",
44660702 13628 "format_description" : "bps",
7aacca6f 13629 "optional" : 1,
44660702 13630 "type" : "integer"
56122987 13631 },
de0983cb
DM
13632 "bps_max_length" : {
13633 "description" : "Maximum length of I/O bursts in seconds.",
13634 "format_description" : "seconds",
13635 "minimum" : 1,
13636 "optional" : 1,
13637 "type" : "integer"
13638 },
44660702 13639 "bps_rd" : {
de0983cb 13640 "description" : "Maximum read speed in bytes per second.",
44660702 13641 "format_description" : "bps",
56122987 13642 "optional" : 1,
44660702 13643 "type" : "integer"
56122987 13644 },
de0983cb 13645 "bps_rd_length" : {
5d9c884c
DM
13646 "alias" : "bps_rd_max_length"
13647 },
13648 "bps_rd_max_length" : {
de0983cb
DM
13649 "description" : "Maximum length of read I/O bursts in seconds.",
13650 "format_description" : "seconds",
13651 "minimum" : 1,
13652 "optional" : 1,
13653 "type" : "integer"
13654 },
44660702 13655 "bps_wr" : {
de0983cb 13656 "description" : "Maximum write speed in bytes per second.",
44660702 13657 "format_description" : "bps",
56122987 13658 "optional" : 1,
44660702 13659 "type" : "integer"
56122987 13660 },
de0983cb 13661 "bps_wr_length" : {
5d9c884c
DM
13662 "alias" : "bps_wr_max_length"
13663 },
13664 "bps_wr_max_length" : {
de0983cb
DM
13665 "description" : "Maximum length of write I/O bursts in seconds.",
13666 "format_description" : "seconds",
13667 "minimum" : 1,
13668 "optional" : 1,
13669 "type" : "integer"
13670 },
56122987 13671 "cache" : {
44660702 13672 "description" : "The drive's cache mode",
56122987
DM
13673 "enum" : [
13674 "none",
13675 "writethrough",
13676 "writeback",
13677 "unsafe",
13678 "directsync"
13679 ],
56122987 13680 "optional" : 1,
44660702 13681 "type" : "string"
56122987 13682 },
44660702
DM
13683 "cyls" : {
13684 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 13685 "optional" : 1,
44660702 13686 "type" : "integer"
7aacca6f
DM
13687 },
13688 "detect_zeroes" : {
13689 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 13690 "optional" : 1,
44660702 13691 "type" : "boolean"
56122987 13692 },
44660702
DM
13693 "discard" : {
13694 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
13695 "enum" : [
13696 "ignore",
13697 "on"
13698 ],
56122987 13699 "optional" : 1,
44660702 13700 "type" : "string"
7aacca6f 13701 },
44660702
DM
13702 "file" : {
13703 "default_key" : 1,
13704 "description" : "The drive's backing volume.",
13705 "format" : "pve-volume-id-or-qm-path",
13706 "format_description" : "volume",
13707 "type" : "string"
56122987 13708 },
7aacca6f 13709 "format" : {
44660702 13710 "description" : "The drive's backing file's data format.",
7aacca6f
DM
13711 "enum" : [
13712 "raw",
13713 "cow",
13714 "qcow",
13715 "qed",
13716 "qcow2",
13717 "vmdk",
13718 "cloop"
13719 ],
7aacca6f 13720 "optional" : 1,
44660702 13721 "type" : "string"
56122987 13722 },
7aacca6f 13723 "heads" : {
7aacca6f 13724 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 13725 "optional" : 1,
7aacca6f 13726 "type" : "integer"
56122987 13727 },
44660702 13728 "iops" : {
de0983cb 13729 "description" : "Maximum r/w I/O in operations per second.",
44660702 13730 "format_description" : "iops",
56122987 13731 "optional" : 1,
44660702 13732 "type" : "integer"
56122987 13733 },
44660702 13734 "iops_max" : {
de0983cb 13735 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 13736 "format_description" : "iops",
56122987 13737 "optional" : 1,
44660702 13738 "type" : "integer"
56122987 13739 },
de0983cb
DM
13740 "iops_max_length" : {
13741 "description" : "Maximum length of I/O bursts in seconds.",
13742 "format_description" : "seconds",
13743 "minimum" : 1,
13744 "optional" : 1,
13745 "type" : "integer"
13746 },
44660702 13747 "iops_rd" : {
de0983cb 13748 "description" : "Maximum read I/O in operations per second.",
44660702 13749 "format_description" : "iops",
7aacca6f 13750 "optional" : 1,
44660702 13751 "type" : "integer"
56122987 13752 },
de0983cb 13753 "iops_rd_length" : {
5d9c884c 13754 "alias" : "iops_rd_max_length"
de0983cb 13755 },
44660702 13756 "iops_rd_max" : {
de0983cb 13757 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 13758 "format_description" : "iops",
56122987 13759 "optional" : 1,
44660702 13760 "type" : "integer"
7aacca6f 13761 },
5d9c884c
DM
13762 "iops_rd_max_length" : {
13763 "description" : "Maximum length of read I/O bursts in seconds.",
13764 "format_description" : "seconds",
13765 "minimum" : 1,
13766 "optional" : 1,
13767 "type" : "integer"
13768 },
44660702 13769 "iops_wr" : {
de0983cb 13770 "description" : "Maximum write I/O in operations per second.",
44660702 13771 "format_description" : "iops",
56122987 13772 "optional" : 1,
44660702 13773 "type" : "integer"
56122987 13774 },
de0983cb 13775 "iops_wr_length" : {
5d9c884c 13776 "alias" : "iops_wr_max_length"
de0983cb 13777 },
56122987 13778 "iops_wr_max" : {
de0983cb 13779 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 13780 "format_description" : "iops",
56122987 13781 "optional" : 1,
44660702 13782 "type" : "integer"
56122987 13783 },
5d9c884c
DM
13784 "iops_wr_max_length" : {
13785 "description" : "Maximum length of write I/O bursts in seconds.",
13786 "format_description" : "seconds",
13787 "minimum" : 1,
13788 "optional" : 1,
13789 "type" : "integer"
13790 },
44660702 13791 "mbps" : {
de0983cb 13792 "description" : "Maximum r/w speed in megabytes per second.",
44660702 13793 "format_description" : "mbps",
56122987 13794 "optional" : 1,
44660702 13795 "type" : "number"
56122987 13796 },
44660702 13797 "mbps_max" : {
de0983cb 13798 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
13799 "format_description" : "mbps",
13800 "optional" : 1,
13801 "type" : "number"
56122987 13802 },
44660702 13803 "mbps_rd" : {
de0983cb 13804 "description" : "Maximum read speed in megabytes per second.",
44660702 13805 "format_description" : "mbps",
56122987 13806 "optional" : 1,
44660702 13807 "type" : "number"
56122987 13808 },
44660702 13809 "mbps_rd_max" : {
de0983cb 13810 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 13811 "format_description" : "mbps",
56122987 13812 "optional" : 1,
44660702 13813 "type" : "number"
56122987 13814 },
44660702 13815 "mbps_wr" : {
de0983cb 13816 "description" : "Maximum write speed in megabytes per second.",
56122987 13817 "format_description" : "mbps",
44660702
DM
13818 "optional" : 1,
13819 "type" : "number"
56122987 13820 },
44660702 13821 "mbps_wr_max" : {
de0983cb 13822 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
13823 "format_description" : "mbps",
13824 "optional" : 1,
13825 "type" : "number"
7aacca6f 13826 },
44660702
DM
13827 "media" : {
13828 "default" : "disk",
13829 "description" : "The drive's media type.",
13830 "enum" : [
13831 "cdrom",
13832 "disk"
13833 ],
56122987 13834 "optional" : 1,
44660702
DM
13835 "type" : "string"
13836 },
5d9c884c
DM
13837 "replicate" : {
13838 "default" : 1,
13839 "description" : "Whether the drive should considered for replication jobs.",
13840 "optional" : 1,
13841 "type" : "boolean"
13842 },
44660702
DM
13843 "rerror" : {
13844 "description" : "Read error action.",
7aacca6f 13845 "enum" : [
44660702
DM
13846 "ignore",
13847 "report",
13848 "stop"
13849 ],
7aacca6f 13850 "optional" : 1,
44660702 13851 "type" : "string"
56122987 13852 },
44660702
DM
13853 "secs" : {
13854 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 13855 "optional" : 1,
44660702 13856 "type" : "integer"
56122987 13857 },
44660702
DM
13858 "serial" : {
13859 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
13860 "format" : "urlencoded",
13861 "format_description" : "serial",
13862 "maxLength" : 60,
56122987 13863 "optional" : 1,
44660702 13864 "type" : "string"
56122987 13865 },
27a7acb2
DM
13866 "shared" : {
13867 "default" : 0,
13868 "description" : "Mark this locally-managed volume as available on all nodes",
13869 "optional" : 1,
13870 "type" : "boolean",
13871 "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!"
13872 },
44660702
DM
13873 "size" : {
13874 "description" : "Disk size. This is purely informational and has no effect.",
13875 "format" : "disk-size",
f004f5b9 13876 "format_description" : "DiskSize",
44660702
DM
13877 "optional" : 1,
13878 "type" : "string"
13879 },
13880 "snapshot" : {
27a7acb2 13881 "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 13882 "optional" : 1,
44660702
DM
13883 "type" : "boolean"
13884 },
25203dc1
NC
13885 "ssd" : {
13886 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
13887 "optional" : 1,
13888 "type" : "boolean"
13889 },
44660702
DM
13890 "trans" : {
13891 "description" : "Force disk geometry bios translation mode.",
56122987 13892 "enum" : [
7aacca6f
DM
13893 "none",
13894 "lba",
13895 "auto"
56122987 13896 ],
44660702
DM
13897 "optional" : 1,
13898 "type" : "string"
56122987 13899 },
7aacca6f
DM
13900 "volume" : {
13901 "alias" : "file"
56122987 13902 },
44660702
DM
13903 "werror" : {
13904 "description" : "Write error action.",
13905 "enum" : [
13906 "enospc",
13907 "ignore",
13908 "report",
13909 "stop"
13910 ],
7aacca6f 13911 "optional" : 1,
44660702 13912 "type" : "string"
95895385
TL
13913 },
13914 "wwn" : {
13915 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
13916 "format_description" : "wwn",
13917 "optional" : 1,
13918 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
13919 "type" : "string"
44660702
DM
13920 }
13921 },
13922 "optional" : 1,
4d47f125 13923 "type" : "string"
44660702
DM
13924 },
13925 "scsi[n]" : {
7af2edf9 13926 "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).",
44660702 13927 "format" : {
56122987 13928 "aio" : {
56122987
DM
13929 "description" : "AIO type to use.",
13930 "enum" : [
13931 "native",
8f4d9c87
TL
13932 "threads",
13933 "io_uring"
56122987 13934 ],
7aacca6f 13935 "optional" : 1,
44660702 13936 "type" : "string"
56122987 13937 },
44660702
DM
13938 "backup" : {
13939 "description" : "Whether the drive should be included when making backups.",
56122987 13940 "optional" : 1,
44660702 13941 "type" : "boolean"
56122987 13942 },
44660702 13943 "bps" : {
de0983cb 13944 "description" : "Maximum r/w speed in bytes per second.",
44660702 13945 "format_description" : "bps",
56122987 13946 "optional" : 1,
44660702 13947 "type" : "integer"
56122987 13948 },
de0983cb
DM
13949 "bps_max_length" : {
13950 "description" : "Maximum length of I/O bursts in seconds.",
13951 "format_description" : "seconds",
13952 "minimum" : 1,
13953 "optional" : 1,
13954 "type" : "integer"
13955 },
44660702 13956 "bps_rd" : {
de0983cb 13957 "description" : "Maximum read speed in bytes per second.",
44660702 13958 "format_description" : "bps",
56122987 13959 "optional" : 1,
44660702 13960 "type" : "integer"
56122987 13961 },
de0983cb 13962 "bps_rd_length" : {
5d9c884c
DM
13963 "alias" : "bps_rd_max_length"
13964 },
13965 "bps_rd_max_length" : {
de0983cb
DM
13966 "description" : "Maximum length of read I/O bursts in seconds.",
13967 "format_description" : "seconds",
13968 "minimum" : 1,
13969 "optional" : 1,
13970 "type" : "integer"
13971 },
7aacca6f 13972 "bps_wr" : {
de0983cb 13973 "description" : "Maximum write speed in bytes per second.",
7aacca6f 13974 "format_description" : "bps",
56122987 13975 "optional" : 1,
44660702 13976 "type" : "integer"
56122987 13977 },
de0983cb 13978 "bps_wr_length" : {
5d9c884c
DM
13979 "alias" : "bps_wr_max_length"
13980 },
13981 "bps_wr_max_length" : {
de0983cb
DM
13982 "description" : "Maximum length of write I/O bursts in seconds.",
13983 "format_description" : "seconds",
13984 "minimum" : 1,
13985 "optional" : 1,
13986 "type" : "integer"
13987 },
44660702
DM
13988 "cache" : {
13989 "description" : "The drive's cache mode",
7aacca6f 13990 "enum" : [
44660702
DM
13991 "none",
13992 "writethrough",
13993 "writeback",
13994 "unsafe",
13995 "directsync"
7aacca6f 13996 ],
56122987 13997 "optional" : 1,
44660702 13998 "type" : "string"
56122987 13999 },
44660702
DM
14000 "cyls" : {
14001 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 14002 "optional" : 1,
44660702 14003 "type" : "integer"
56122987 14004 },
44660702
DM
14005 "detect_zeroes" : {
14006 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 14007 "optional" : 1,
44660702 14008 "type" : "boolean"
56122987 14009 },
44660702
DM
14010 "discard" : {
14011 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
14012 "enum" : [
14013 "ignore",
14014 "on"
14015 ],
7aacca6f 14016 "optional" : 1,
44660702 14017 "type" : "string"
56122987 14018 },
44660702
DM
14019 "file" : {
14020 "default_key" : 1,
14021 "description" : "The drive's backing volume.",
14022 "format" : "pve-volume-id-or-qm-path",
14023 "format_description" : "volume",
14024 "type" : "string"
56122987 14025 },
7aacca6f 14026 "format" : {
44660702 14027 "description" : "The drive's backing file's data format.",
56122987 14028 "enum" : [
7aacca6f
DM
14029 "raw",
14030 "cow",
14031 "qcow",
14032 "qed",
14033 "qcow2",
14034 "vmdk",
14035 "cloop"
14036 ],
44660702
DM
14037 "optional" : 1,
14038 "type" : "string"
56122987 14039 },
44660702
DM
14040 "heads" : {
14041 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 14042 "optional" : 1,
7aacca6f 14043 "type" : "integer"
56122987 14044 },
44660702 14045 "iops" : {
de0983cb 14046 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 14047 "format_description" : "iops",
44660702
DM
14048 "optional" : 1,
14049 "type" : "integer"
7aacca6f 14050 },
44660702 14051 "iops_max" : {
de0983cb 14052 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 14053 "format_description" : "iops",
56122987 14054 "optional" : 1,
44660702 14055 "type" : "integer"
7aacca6f 14056 },
de0983cb
DM
14057 "iops_max_length" : {
14058 "description" : "Maximum length of I/O bursts in seconds.",
14059 "format_description" : "seconds",
14060 "minimum" : 1,
14061 "optional" : 1,
14062 "type" : "integer"
14063 },
44660702 14064 "iops_rd" : {
de0983cb 14065 "description" : "Maximum read I/O in operations per second.",
44660702 14066 "format_description" : "iops",
7aacca6f 14067 "optional" : 1,
44660702 14068 "type" : "integer"
56122987 14069 },
de0983cb 14070 "iops_rd_length" : {
5d9c884c 14071 "alias" : "iops_rd_max_length"
de0983cb 14072 },
44660702 14073 "iops_rd_max" : {
de0983cb 14074 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
14075 "format_description" : "iops",
14076 "optional" : 1,
14077 "type" : "integer"
14078 },
5d9c884c
DM
14079 "iops_rd_max_length" : {
14080 "description" : "Maximum length of read I/O bursts in seconds.",
14081 "format_description" : "seconds",
14082 "minimum" : 1,
14083 "optional" : 1,
14084 "type" : "integer"
14085 },
44660702 14086 "iops_wr" : {
de0983cb 14087 "description" : "Maximum write I/O in operations per second.",
44660702 14088 "format_description" : "iops",
56122987 14089 "optional" : 1,
44660702
DM
14090 "type" : "integer"
14091 },
de0983cb 14092 "iops_wr_length" : {
5d9c884c 14093 "alias" : "iops_wr_max_length"
de0983cb 14094 },
44660702 14095 "iops_wr_max" : {
de0983cb 14096 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
14097 "format_description" : "iops",
14098 "optional" : 1,
14099 "type" : "integer"
56122987 14100 },
5d9c884c
DM
14101 "iops_wr_max_length" : {
14102 "description" : "Maximum length of write I/O bursts in seconds.",
14103 "format_description" : "seconds",
14104 "minimum" : 1,
14105 "optional" : 1,
14106 "type" : "integer"
14107 },
7aacca6f 14108 "iothread" : {
7aacca6f 14109 "description" : "Whether to use iothreads for this drive",
56122987 14110 "optional" : 1,
56122987
DM
14111 "type" : "boolean"
14112 },
44660702 14113 "mbps" : {
de0983cb 14114 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
14115 "format_description" : "mbps",
14116 "optional" : 1,
14117 "type" : "number"
14118 },
14119 "mbps_max" : {
de0983cb 14120 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
14121 "format_description" : "mbps",
14122 "optional" : 1,
14123 "type" : "number"
14124 },
14125 "mbps_rd" : {
de0983cb 14126 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
14127 "format_description" : "mbps",
14128 "optional" : 1,
14129 "type" : "number"
14130 },
14131 "mbps_rd_max" : {
de0983cb 14132 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
14133 "format_description" : "mbps",
14134 "optional" : 1,
14135 "type" : "number"
14136 },
14137 "mbps_wr" : {
de0983cb 14138 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
14139 "format_description" : "mbps",
14140 "optional" : 1,
14141 "type" : "number"
14142 },
14143 "mbps_wr_max" : {
de0983cb 14144 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
14145 "format_description" : "mbps",
14146 "optional" : 1,
14147 "type" : "number"
14148 },
7aacca6f 14149 "media" : {
44660702
DM
14150 "default" : "disk",
14151 "description" : "The drive's media type.",
7aacca6f
DM
14152 "enum" : [
14153 "cdrom",
14154 "disk"
14155 ],
56122987 14156 "optional" : 1,
44660702
DM
14157 "type" : "string"
14158 },
14159 "queues" : {
14160 "description" : "Number of queues.",
44660702
DM
14161 "minimum" : 2,
14162 "optional" : 1,
14163 "type" : "integer"
14164 },
5d9c884c
DM
14165 "replicate" : {
14166 "default" : 1,
14167 "description" : "Whether the drive should considered for replication jobs.",
14168 "optional" : 1,
14169 "type" : "boolean"
14170 },
14171 "rerror" : {
14172 "description" : "Read error action.",
14173 "enum" : [
14174 "ignore",
14175 "report",
14176 "stop"
14177 ],
14178 "optional" : 1,
14179 "type" : "string"
14180 },
5370fa8c
TL
14181 "ro" : {
14182 "description" : "Whether the drive is read-only.",
14183 "optional" : 1,
14184 "type" : "boolean"
14185 },
52e44c50
FG
14186 "scsiblock" : {
14187 "default" : 0,
14188 "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",
14189 "optional" : 1,
14190 "type" : "boolean"
14191 },
44660702
DM
14192 "secs" : {
14193 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
14194 "optional" : 1,
14195 "type" : "integer"
14196 },
14197 "serial" : {
14198 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
14199 "format" : "urlencoded",
14200 "format_description" : "serial",
14201 "maxLength" : 60,
14202 "optional" : 1,
14203 "type" : "string"
14204 },
27a7acb2
DM
14205 "shared" : {
14206 "default" : 0,
14207 "description" : "Mark this locally-managed volume as available on all nodes",
14208 "optional" : 1,
14209 "type" : "boolean",
14210 "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!"
14211 },
44660702
DM
14212 "size" : {
14213 "description" : "Disk size. This is purely informational and has no effect.",
14214 "format" : "disk-size",
f004f5b9 14215 "format_description" : "DiskSize",
44660702
DM
14216 "optional" : 1,
14217 "type" : "string"
56122987 14218 },
7aacca6f 14219 "snapshot" : {
27a7acb2 14220 "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 14221 "optional" : 1,
44660702 14222 "type" : "boolean"
7aacca6f 14223 },
25203dc1
NC
14224 "ssd" : {
14225 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
14226 "optional" : 1,
14227 "type" : "boolean"
14228 },
44660702
DM
14229 "trans" : {
14230 "description" : "Force disk geometry bios translation mode.",
14231 "enum" : [
14232 "none",
14233 "lba",
14234 "auto"
14235 ],
44660702
DM
14236 "optional" : 1,
14237 "type" : "string"
14238 },
14239 "volume" : {
14240 "alias" : "file"
14241 },
14242 "werror" : {
14243 "description" : "Write error action.",
14244 "enum" : [
14245 "enospc",
14246 "ignore",
14247 "report",
14248 "stop"
14249 ],
56122987 14250 "optional" : 1,
44660702 14251 "type" : "string"
95895385
TL
14252 },
14253 "wwn" : {
14254 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
14255 "format_description" : "wwn",
14256 "optional" : 1,
14257 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
14258 "type" : "string"
56122987 14259 }
44660702 14260 },
7aacca6f 14261 "optional" : 1,
4d47f125 14262 "type" : "string"
44660702
DM
14263 },
14264 "scsihw" : {
14265 "default" : "lsi",
c2993fe5 14266 "description" : "SCSI controller model",
7aacca6f 14267 "enum" : [
44660702
DM
14268 "lsi",
14269 "lsi53c810",
14270 "virtio-scsi-pci",
14271 "virtio-scsi-single",
14272 "megasas",
14273 "pvscsi"
7aacca6f 14274 ],
44660702
DM
14275 "optional" : 1,
14276 "type" : "string"
56122987 14277 },
27a7acb2 14278 "searchdomain" : {
de786b48 14279 "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 14280 "optional" : 1,
4d47f125 14281 "type" : "string"
27a7acb2 14282 },
44660702 14283 "serial[n]" : {
c2993fe5 14284 "description" : "Create a serial device inside the VM (n is 0 to 3)",
7aacca6f 14285 "optional" : 1,
44660702 14286 "pattern" : "(/dev/.+|socket)",
c2993fe5 14287 "type" : "string",
4772952b 14288 "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 14289 },
44660702
DM
14290 "shares" : {
14291 "default" : 1000,
5da3d723 14292 "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
14293 "maximum" : 50000,
14294 "minimum" : 0,
56122987 14295 "optional" : 1,
4d47f125 14296 "type" : "integer"
56122987 14297 },
44660702
DM
14298 "smbios1" : {
14299 "description" : "Specify SMBIOS type 1 fields.",
14300 "format" : "pve-qm-smbios1",
1e3f8156 14301 "maxLength" : 512,
56122987 14302 "optional" : 1,
4d47f125 14303 "type" : "string"
56122987 14304 },
44660702
DM
14305 "smp" : {
14306 "default" : 1,
14307 "description" : "The number of CPUs. Please use option -sockets instead.",
7aacca6f 14308 "minimum" : 1,
7aacca6f 14309 "optional" : 1,
4d47f125 14310 "type" : "integer"
7aacca6f 14311 },
44660702
DM
14312 "sockets" : {
14313 "default" : 1,
14314 "description" : "The number of CPU sockets.",
14315 "minimum" : 1,
7aacca6f 14316 "optional" : 1,
4d47f125 14317 "type" : "integer"
56122987 14318 },
1c532546
TL
14319 "spice_enhancements" : {
14320 "description" : "Configure additional enhancements for SPICE.",
14321 "format" : {
14322 "foldersharing" : {
14323 "default" : "0",
14324 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
14325 "optional" : 1,
14326 "type" : "boolean"
14327 },
14328 "videostreaming" : {
14329 "default" : "off",
14330 "description" : "Enable video streaming. Uses compression for detected video streams.",
14331 "enum" : [
14332 "off",
14333 "all",
14334 "filter"
14335 ],
14336 "optional" : 1,
14337 "type" : "string"
14338 }
14339 },
14340 "optional" : 1,
14341 "type" : "string"
14342 },
27a7acb2
DM
14343 "sshkeys" : {
14344 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
14345 "format" : "urlencoded",
14346 "optional" : 1,
4d47f125 14347 "type" : "string"
27a7acb2 14348 },
44660702
DM
14349 "startdate" : {
14350 "default" : "now",
4772952b 14351 "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 14352 "optional" : 1,
44660702 14353 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
7aacca6f 14354 "type" : "string",
44660702 14355 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
56122987 14356 },
7aacca6f 14357 "startup" : {
7aacca6f 14358 "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 14359 "format" : "pve-startup-order",
56122987 14360 "optional" : 1,
44660702
DM
14361 "type" : "string",
14362 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
56122987 14363 },
44660702 14364 "tablet" : {
7aacca6f 14365 "default" : 1,
c2993fe5 14366 "description" : "Enable/disable the USB tablet device.",
7aacca6f 14367 "optional" : 1,
c2993fe5 14368 "type" : "boolean",
4772952b 14369 "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 14370 },
5c1699e5
TL
14371 "tags" : {
14372 "description" : "Tags of the VM. This is only meta information.",
14373 "format" : "pve-tag-list",
14374 "optional" : 1,
14375 "type" : "string"
14376 },
44660702
DM
14377 "tdf" : {
14378 "default" : 0,
14379 "description" : "Enable/disable time drift fix.",
7aacca6f 14380 "optional" : 1,
4d47f125 14381 "type" : "boolean"
7aacca6f 14382 },
44660702
DM
14383 "template" : {
14384 "default" : 0,
14385 "description" : "Enable/disable Template.",
7aacca6f 14386 "optional" : 1,
4d47f125 14387 "type" : "boolean"
7aacca6f 14388 },
5370fa8c 14389 "tpmstate0" : {
7af2edf9 14390 "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'.",
5370fa8c
TL
14391 "format" : {
14392 "file" : {
14393 "default_key" : 1,
14394 "description" : "The drive's backing volume.",
14395 "format" : "pve-volume-id-or-qm-path",
14396 "format_description" : "volume",
14397 "type" : "string"
14398 },
14399 "size" : {
14400 "description" : "Disk size. This is purely informational and has no effect.",
14401 "format" : "disk-size",
14402 "format_description" : "DiskSize",
14403 "optional" : 1,
14404 "type" : "string"
14405 },
14406 "version" : {
14407 "default" : "v2.0",
14408 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
14409 "enum" : [
14410 "v1.2",
14411 "v2.0"
14412 ],
14413 "optional" : 1,
14414 "type" : "string"
14415 },
14416 "volume" : {
14417 "alias" : "file"
14418 }
14419 },
14420 "optional" : 1,
14421 "type" : "string"
14422 },
44660702 14423 "unused[n]" : {
c2993fe5 14424 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
14425 "format" : {
14426 "file" : {
14427 "default_key" : 1,
14428 "description" : "The drive's backing volume.",
14429 "format" : "pve-volume-id",
14430 "format_description" : "volume",
14431 "type" : "string"
14432 },
14433 "volume" : {
14434 "alias" : "file"
14435 }
14436 },
7aacca6f 14437 "optional" : 1,
4d47f125 14438 "type" : "string"
7aacca6f 14439 },
44660702 14440 "usb[n]" : {
4e7f60c2 14441 "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
14442 "format" : {
14443 "host" : {
14444 "default_key" : 1,
4772952b 14445 "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
44660702
DM
14446 "format" : "pve-qm-usb-device",
14447 "format_description" : "HOSTUSBDEVICE|spice",
14448 "type" : "string"
14449 },
14450 "usb3" : {
c2993fe5 14451 "default" : 0,
4e7f60c2 14452 "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
14453 "optional" : 1,
14454 "type" : "boolean"
14455 }
14456 },
7aacca6f 14457 "optional" : 1,
4d47f125 14458 "type" : "string"
56122987 14459 },
44660702
DM
14460 "vcpus" : {
14461 "default" : 0,
14462 "description" : "Number of hotplugged vcpus.",
14463 "minimum" : 1,
56122987 14464 "optional" : 1,
4d47f125 14465 "type" : "integer"
56122987 14466 },
44660702 14467 "vga" : {
e2d681b3
TL
14468 "description" : "Configure the VGA hardware.",
14469 "format" : {
14470 "memory" : {
14471 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
14472 "maximum" : 512,
14473 "minimum" : 4,
14474 "optional" : 1,
14475 "type" : "integer"
14476 },
14477 "type" : {
14478 "default" : "std",
14479 "default_key" : 1,
14480 "description" : "Select the VGA type.",
14481 "enum" : [
14482 "cirrus",
14483 "qxl",
14484 "qxl2",
14485 "qxl3",
14486 "qxl4",
5f26e15b 14487 "none",
e2d681b3
TL
14488 "serial0",
14489 "serial1",
14490 "serial2",
14491 "serial3",
14492 "std",
14493 "virtio",
7af2edf9 14494 "virtio-gl",
e2d681b3
TL
14495 "vmware"
14496 ],
14497 "optional" : 1,
14498 "type" : "string"
14499 }
14500 },
56122987 14501 "optional" : 1,
c2993fe5 14502 "type" : "string",
e2d681b3 14503 "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 14504 },
44660702 14505 "virtio[n]" : {
7af2edf9 14506 "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
56122987 14507 "format" : {
44660702
DM
14508 "aio" : {
14509 "description" : "AIO type to use.",
56122987 14510 "enum" : [
44660702 14511 "native",
8f4d9c87
TL
14512 "threads",
14513 "io_uring"
56122987 14514 ],
56122987
DM
14515 "optional" : 1,
14516 "type" : "string"
14517 },
44660702
DM
14518 "backup" : {
14519 "description" : "Whether the drive should be included when making backups.",
44660702
DM
14520 "optional" : 1,
14521 "type" : "boolean"
7aacca6f 14522 },
44660702 14523 "bps" : {
de0983cb 14524 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
14525 "format_description" : "bps",
14526 "optional" : 1,
14527 "type" : "integer"
56122987 14528 },
de0983cb
DM
14529 "bps_max_length" : {
14530 "description" : "Maximum length of I/O bursts in seconds.",
14531 "format_description" : "seconds",
14532 "minimum" : 1,
14533 "optional" : 1,
14534 "type" : "integer"
14535 },
44660702 14536 "bps_rd" : {
de0983cb 14537 "description" : "Maximum read speed in bytes per second.",
44660702 14538 "format_description" : "bps",
56122987 14539 "optional" : 1,
44660702 14540 "type" : "integer"
56122987 14541 },
de0983cb 14542 "bps_rd_length" : {
5d9c884c
DM
14543 "alias" : "bps_rd_max_length"
14544 },
14545 "bps_rd_max_length" : {
de0983cb
DM
14546 "description" : "Maximum length of read I/O bursts in seconds.",
14547 "format_description" : "seconds",
14548 "minimum" : 1,
14549 "optional" : 1,
14550 "type" : "integer"
14551 },
44660702 14552 "bps_wr" : {
de0983cb 14553 "description" : "Maximum write speed in bytes per second.",
44660702 14554 "format_description" : "bps",
56122987 14555 "optional" : 1,
44660702
DM
14556 "type" : "integer"
14557 },
de0983cb 14558 "bps_wr_length" : {
5d9c884c
DM
14559 "alias" : "bps_wr_max_length"
14560 },
14561 "bps_wr_max_length" : {
de0983cb
DM
14562 "description" : "Maximum length of write I/O bursts in seconds.",
14563 "format_description" : "seconds",
14564 "minimum" : 1,
14565 "optional" : 1,
14566 "type" : "integer"
14567 },
44660702
DM
14568 "cache" : {
14569 "description" : "The drive's cache mode",
56122987 14570 "enum" : [
44660702
DM
14571 "none",
14572 "writethrough",
14573 "writeback",
14574 "unsafe",
14575 "directsync"
56122987 14576 ],
56122987 14577 "optional" : 1,
44660702 14578 "type" : "string"
56122987 14579 },
44660702
DM
14580 "cyls" : {
14581 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
56122987 14582 "optional" : 1,
44660702 14583 "type" : "integer"
7aacca6f 14584 },
44660702
DM
14585 "detect_zeroes" : {
14586 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
14587 "optional" : 1,
14588 "type" : "boolean"
7aacca6f 14589 },
44660702
DM
14590 "discard" : {
14591 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
14592 "enum" : [
14593 "ignore",
14594 "on"
14595 ],
56122987 14596 "optional" : 1,
44660702 14597 "type" : "string"
56122987
DM
14598 },
14599 "file" : {
7aacca6f 14600 "default_key" : 1,
44660702 14601 "description" : "The drive's backing volume.",
7aacca6f 14602 "format" : "pve-volume-id-or-qm-path",
44660702
DM
14603 "format_description" : "volume",
14604 "type" : "string"
7aacca6f
DM
14605 },
14606 "format" : {
7aacca6f
DM
14607 "description" : "The drive's backing file's data format.",
14608 "enum" : [
14609 "raw",
14610 "cow",
14611 "qcow",
14612 "qed",
14613 "qcow2",
14614 "vmdk",
14615 "cloop"
56122987
DM
14616 ],
14617 "optional" : 1,
56122987
DM
14618 "type" : "string"
14619 },
44660702
DM
14620 "heads" : {
14621 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 14622 "optional" : 1,
44660702 14623 "type" : "integer"
56122987 14624 },
44660702 14625 "iops" : {
de0983cb 14626 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 14627 "format_description" : "iops",
56122987 14628 "optional" : 1,
44660702 14629 "type" : "integer"
56122987 14630 },
44660702 14631 "iops_max" : {
de0983cb 14632 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 14633 "format_description" : "iops",
56122987 14634 "optional" : 1,
56122987
DM
14635 "type" : "integer"
14636 },
de0983cb
DM
14637 "iops_max_length" : {
14638 "description" : "Maximum length of I/O bursts in seconds.",
14639 "format_description" : "seconds",
14640 "minimum" : 1,
14641 "optional" : 1,
14642 "type" : "integer"
14643 },
44660702 14644 "iops_rd" : {
de0983cb 14645 "description" : "Maximum read I/O in operations per second.",
44660702 14646 "format_description" : "iops",
56122987 14647 "optional" : 1,
44660702 14648 "type" : "integer"
56122987 14649 },
de0983cb 14650 "iops_rd_length" : {
5d9c884c 14651 "alias" : "iops_rd_max_length"
de0983cb 14652 },
44660702 14653 "iops_rd_max" : {
de0983cb 14654 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 14655 "format_description" : "iops",
7aacca6f 14656 "optional" : 1,
44660702 14657 "type" : "integer"
56122987 14658 },
5d9c884c
DM
14659 "iops_rd_max_length" : {
14660 "description" : "Maximum length of read I/O bursts in seconds.",
14661 "format_description" : "seconds",
14662 "minimum" : 1,
14663 "optional" : 1,
14664 "type" : "integer"
14665 },
44660702 14666 "iops_wr" : {
de0983cb 14667 "description" : "Maximum write I/O in operations per second.",
44660702 14668 "format_description" : "iops",
7aacca6f 14669 "optional" : 1,
44660702 14670 "type" : "integer"
56122987 14671 },
de0983cb 14672 "iops_wr_length" : {
5d9c884c 14673 "alias" : "iops_wr_max_length"
de0983cb 14674 },
44660702 14675 "iops_wr_max" : {
de0983cb 14676 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 14677 "format_description" : "iops",
56122987
DM
14678 "optional" : 1,
14679 "type" : "integer"
14680 },
5d9c884c
DM
14681 "iops_wr_max_length" : {
14682 "description" : "Maximum length of write I/O bursts in seconds.",
14683 "format_description" : "seconds",
14684 "minimum" : 1,
14685 "optional" : 1,
14686 "type" : "integer"
14687 },
44660702
DM
14688 "iothread" : {
14689 "description" : "Whether to use iothreads for this drive",
44660702
DM
14690 "optional" : 1,
14691 "type" : "boolean"
14692 },
14693 "mbps" : {
de0983cb 14694 "description" : "Maximum r/w speed in megabytes per second.",
7aacca6f 14695 "format_description" : "mbps",
44660702
DM
14696 "optional" : 1,
14697 "type" : "number"
14698 },
14699 "mbps_max" : {
de0983cb 14700 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
14701 "format_description" : "mbps",
14702 "optional" : 1,
14703 "type" : "number"
7aacca6f 14704 },
44660702 14705 "mbps_rd" : {
de0983cb 14706 "description" : "Maximum read speed in megabytes per second.",
44660702 14707 "format_description" : "mbps",
56122987 14708 "optional" : 1,
44660702 14709 "type" : "number"
56122987 14710 },
44660702 14711 "mbps_rd_max" : {
de0983cb 14712 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 14713 "format_description" : "mbps",
7aacca6f 14714 "optional" : 1,
44660702 14715 "type" : "number"
56122987 14716 },
44660702 14717 "mbps_wr" : {
de0983cb 14718 "description" : "Maximum write speed in megabytes per second.",
44660702 14719 "format_description" : "mbps",
56122987 14720 "optional" : 1,
44660702 14721 "type" : "number"
56122987 14722 },
44660702 14723 "mbps_wr_max" : {
de0983cb 14724 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 14725 "format_description" : "mbps",
56122987 14726 "optional" : 1,
44660702 14727 "type" : "number"
56122987
DM
14728 },
14729 "media" : {
7aacca6f 14730 "default" : "disk",
44660702 14731 "description" : "The drive's media type.",
56122987
DM
14732 "enum" : [
14733 "cdrom",
14734 "disk"
14735 ],
44660702
DM
14736 "optional" : 1,
14737 "type" : "string"
56122987 14738 },
5d9c884c
DM
14739 "replicate" : {
14740 "default" : 1,
14741 "description" : "Whether the drive should considered for replication jobs.",
14742 "optional" : 1,
14743 "type" : "boolean"
14744 },
7aacca6f 14745 "rerror" : {
44660702 14746 "description" : "Read error action.",
56122987 14747 "enum" : [
7aacca6f
DM
14748 "ignore",
14749 "report",
14750 "stop"
56122987 14751 ],
56122987 14752 "optional" : 1,
44660702 14753 "type" : "string"
56122987 14754 },
5370fa8c
TL
14755 "ro" : {
14756 "description" : "Whether the drive is read-only.",
14757 "optional" : 1,
14758 "type" : "boolean"
14759 },
44660702
DM
14760 "secs" : {
14761 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
14762 "optional" : 1,
14763 "type" : "integer"
14764 },
14765 "serial" : {
14766 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
14767 "format" : "urlencoded",
14768 "format_description" : "serial",
14769 "maxLength" : 60,
56122987 14770 "optional" : 1,
7aacca6f 14771 "type" : "string"
56122987 14772 },
27a7acb2
DM
14773 "shared" : {
14774 "default" : 0,
14775 "description" : "Mark this locally-managed volume as available on all nodes",
14776 "optional" : 1,
14777 "type" : "boolean",
14778 "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!"
14779 },
44660702
DM
14780 "size" : {
14781 "description" : "Disk size. This is purely informational and has no effect.",
14782 "format" : "disk-size",
f004f5b9 14783 "format_description" : "DiskSize",
56122987 14784 "optional" : 1,
44660702 14785 "type" : "string"
56122987 14786 },
44660702 14787 "snapshot" : {
27a7acb2 14788 "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 14789 "optional" : 1,
44660702 14790 "type" : "boolean"
56122987 14791 },
44660702
DM
14792 "trans" : {
14793 "description" : "Force disk geometry bios translation mode.",
14794 "enum" : [
14795 "none",
14796 "lba",
14797 "auto"
14798 ],
44660702
DM
14799 "optional" : 1,
14800 "type" : "string"
14801 },
14802 "volume" : {
14803 "alias" : "file"
14804 },
14805 "werror" : {
14806 "description" : "Write error action.",
14807 "enum" : [
14808 "enospc",
14809 "ignore",
14810 "report",
14811 "stop"
14812 ],
56122987 14813 "optional" : 1,
44660702 14814 "type" : "string"
56122987 14815 }
44660702 14816 },
56122987 14817 "optional" : 1,
4d47f125 14818 "type" : "string"
56122987 14819 },
4d47f125
TL
14820 "vmgenid" : {
14821 "default" : "1 (autogenerated)",
14822 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
14823 "format_description" : "UUID",
14824 "optional" : 1,
14825 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
14826 "type" : "string",
4772952b 14827 "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 14828 },
2489d6df
WB
14829 "vmstatestorage" : {
14830 "description" : "Default storage for VM state volumes/files.",
14831 "format" : "pve-storage-id",
14832 "optional" : 1,
4d47f125 14833 "type" : "string"
2489d6df 14834 },
44660702 14835 "watchdog" : {
c2993fe5 14836 "description" : "Create a virtual hardware watchdog device.",
44660702 14837 "format" : "pve-qm-watchdog",
56122987 14838 "optional" : 1,
c2993fe5
DM
14839 "type" : "string",
14840 "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 14841 }
4d47f125
TL
14842 },
14843 "type" : "object"
44660702 14844 }
56122987 14845 },
4d47f125 14846 "POST" : {
e9cd3bd4 14847 "allowtoken" : 1,
4d47f125
TL
14848 "description" : "Set virtual machine options (asynchrounous API).",
14849 "method" : "POST",
14850 "name" : "update_vm_async",
56122987 14851 "parameters" : {
7aacca6f 14852 "additionalProperties" : 0,
56122987 14853 "properties" : {
44660702
DM
14854 "acpi" : {
14855 "default" : 1,
14856 "description" : "Enable/disable ACPI.",
7aacca6f 14857 "optional" : 1,
013dc89f
DM
14858 "type" : "boolean",
14859 "typetext" : "<boolean>"
7aacca6f 14860 },
4e7f60c2 14861 "affinity" : {
81a3384d 14862 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
14863 "format" : "pve-cpuset",
14864 "optional" : 1,
14865 "type" : "string",
14866 "typetext" : "<string>"
14867 },
44660702 14868 "agent" : {
5370fa8c 14869 "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
4d47f125
TL
14870 "format" : {
14871 "enabled" : {
14872 "default" : 0,
14873 "default_key" : 1,
5370fa8c 14874 "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
4d47f125
TL
14875 "type" : "boolean"
14876 },
14877 "fstrim_cloned_disks" : {
14878 "default" : 0,
d2656385 14879 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
14880 "optional" : 1,
14881 "type" : "boolean"
5c1699e5
TL
14882 },
14883 "type" : {
14884 "default" : "virtio",
14885 "description" : "Select the agent type",
14886 "enum" : [
14887 "virtio",
14888 "isa"
14889 ],
14890 "optional" : 1,
14891 "type" : "string"
4d47f125
TL
14892 }
14893 },
7aacca6f 14894 "optional" : 1,
4d47f125 14895 "type" : "string",
5c1699e5 14896 "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
56122987 14897 },
e2d681b3
TL
14898 "arch" : {
14899 "description" : "Virtual processor architecture. Defaults to the host.",
14900 "enum" : [
14901 "x86_64",
14902 "aarch64"
14903 ],
14904 "optional" : 1,
14905 "type" : "string"
14906 },
44660702 14907 "args" : {
c2993fe5 14908 "description" : "Arbitrary arguments passed to kvm.",
7aacca6f 14909 "optional" : 1,
c2993fe5 14910 "type" : "string",
013dc89f 14911 "typetext" : "<string>",
c2993fe5 14912 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
7aacca6f 14913 },
1c532546
TL
14914 "audio0" : {
14915 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
14916 "format" : {
14917 "device" : {
14918 "description" : "Configure an audio device.",
14919 "enum" : [
14920 "ich9-intel-hda",
14921 "intel-hda",
14922 "AC97"
14923 ],
14924 "type" : "string"
14925 },
14926 "driver" : {
14927 "default" : "spice",
14928 "description" : "Driver backend for the audio device.",
14929 "enum" : [
d2656385
TL
14930 "spice",
14931 "none"
1c532546
TL
14932 ],
14933 "optional" : 1,
14934 "type" : "string"
14935 }
14936 },
14937 "optional" : 1,
14938 "type" : "string",
d2656385 14939 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 14940 },
44660702
DM
14941 "autostart" : {
14942 "default" : 0,
14943 "description" : "Automatic restart after crash (currently ignored).",
7aacca6f 14944 "optional" : 1,
013dc89f
DM
14945 "type" : "boolean",
14946 "typetext" : "<boolean>"
7aacca6f 14947 },
4d47f125
TL
14948 "background_delay" : {
14949 "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
14950 "maximum" : 30,
14951 "minimum" : 1,
14952 "optional" : 1,
14953 "type" : "integer",
14954 "typetext" : "<integer> (1 - 30)"
14955 },
44660702
DM
14956 "balloon" : {
14957 "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
14958 "minimum" : 0,
14959 "optional" : 1,
4bd7df8b 14960 "type" : "integer",
013dc89f 14961 "typetext" : "<integer> (0 - N)"
44660702
DM
14962 },
14963 "bios" : {
14964 "default" : "seabios",
14965 "description" : "Select BIOS implementation.",
7aacca6f 14966 "enum" : [
44660702
DM
14967 "seabios",
14968 "ovmf"
7aacca6f 14969 ],
56122987 14970 "optional" : 1,
7aacca6f
DM
14971 "type" : "string"
14972 },
44660702 14973 "boot" : {
5370fa8c 14974 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 14975 "format" : "pve-qm-boot",
7aacca6f 14976 "optional" : 1,
4772952b
TL
14977 "type" : "string",
14978 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
56122987 14979 },
44660702 14980 "bootdisk" : {
4772952b 14981 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
14982 "format" : "pve-qm-bootdisk",
14983 "optional" : 1,
14984 "pattern" : "(ide|sata|scsi|virtio)\\d+",
14985 "type" : "string"
14986 },
14987 "cdrom" : {
14988 "description" : "This is an alias for option -ide2",
de0983cb 14989 "format" : "pve-qm-ide",
56122987 14990 "optional" : 1,
7aacca6f 14991 "type" : "string",
013dc89f 14992 "typetext" : "<volume>"
44660702 14993 },
95895385
TL
14994 "cicustom" : {
14995 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
14996 "format" : "pve-qm-cicustom",
14997 "optional" : 1,
14998 "type" : "string",
5370fa8c 14999 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 15000 },
27a7acb2
DM
15001 "cipassword" : {
15002 "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.",
15003 "optional" : 1,
15004 "type" : "string",
15005 "typetext" : "<string>"
15006 },
15007 "citype" : {
15008 "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.",
15009 "enum" : [
15010 "configdrive2",
d2656385
TL
15011 "nocloud",
15012 "opennebula"
27a7acb2
DM
15013 ],
15014 "optional" : 1,
15015 "type" : "string"
15016 },
15017 "ciuser" : {
15018 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
15019 "optional" : 1,
15020 "type" : "string",
15021 "typetext" : "<string>"
15022 },
44660702
DM
15023 "cores" : {
15024 "default" : 1,
15025 "description" : "The number of cores per socket.",
15026 "minimum" : 1,
15027 "optional" : 1,
4bd7df8b 15028 "type" : "integer",
013dc89f 15029 "typetext" : "<integer> (1 - N)"
44660702
DM
15030 },
15031 "cpu" : {
15032 "description" : "Emulated CPU type.",
c5aa7e14 15033 "format" : "pve-vm-cpu-conf",
44660702 15034 "optional" : 1,
4bd7df8b 15035 "type" : "string",
04d22a9f 15036 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
44660702
DM
15037 },
15038 "cpulimit" : {
15039 "default" : 0,
c2993fe5 15040 "description" : "Limit of CPU usage.",
44660702
DM
15041 "maximum" : 128,
15042 "minimum" : 0,
15043 "optional" : 1,
c2993fe5 15044 "type" : "number",
013dc89f 15045 "typetext" : "<number> (0 - 128)",
c2993fe5 15046 "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
15047 },
15048 "cpuunits" : {
5370fa8c
TL
15049 "default" : "cgroup v1: 1024, cgroup v2: 100",
15050 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 15051 "maximum" : 262144,
7af2edf9 15052 "minimum" : 1,
44660702 15053 "optional" : 1,
c2993fe5 15054 "type" : "integer",
7af2edf9 15055 "typetext" : "<integer> (1 - 262144)",
2489d6df 15056 "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
15057 },
15058 "delete" : {
15059 "description" : "A list of settings you want to delete.",
15060 "format" : "pve-configid-list",
15061 "optional" : 1,
013dc89f
DM
15062 "type" : "string",
15063 "typetext" : "<string>"
44660702
DM
15064 },
15065 "description" : {
8f4d9c87
TL
15066 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
15067 "maxLength" : 8192,
44660702 15068 "optional" : 1,
013dc89f
DM
15069 "type" : "string",
15070 "typetext" : "<string>"
44660702
DM
15071 },
15072 "digest" : {
15073 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
15074 "maxLength" : 40,
15075 "optional" : 1,
013dc89f
DM
15076 "type" : "string",
15077 "typetext" : "<string>"
44660702 15078 },
4d47f125 15079 "efidisk0" : {
7af2edf9 15080 "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 15081 "format" : {
5370fa8c
TL
15082 "efitype" : {
15083 "default" : "2m",
15084 "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.",
15085 "enum" : [
15086 "2m",
15087 "4m"
15088 ],
15089 "optional" : 1,
15090 "type" : "string"
15091 },
4d47f125
TL
15092 "file" : {
15093 "default_key" : 1,
15094 "description" : "The drive's backing volume.",
15095 "format" : "pve-volume-id-or-qm-path",
15096 "format_description" : "volume",
15097 "type" : "string"
15098 },
15099 "format" : {
15100 "description" : "The drive's backing file's data format.",
15101 "enum" : [
15102 "raw",
15103 "cow",
15104 "qcow",
15105 "qed",
15106 "qcow2",
15107 "vmdk",
15108 "cloop"
15109 ],
15110 "optional" : 1,
15111 "type" : "string"
15112 },
7af2edf9
TL
15113 "import-from" : {
15114 "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!",
15115 "format" : "pve-volume-id-or-absolute-path",
15116 "format_description" : "source volume",
15117 "optional" : 1,
15118 "type" : "string"
15119 },
5370fa8c
TL
15120 "pre-enrolled-keys" : {
15121 "default" : 0,
15122 "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.",
15123 "optional" : 1,
15124 "type" : "boolean"
15125 },
4d47f125
TL
15126 "size" : {
15127 "description" : "Disk size. This is purely informational and has no effect.",
15128 "format" : "disk-size",
15129 "format_description" : "DiskSize",
15130 "optional" : 1,
15131 "type" : "string"
15132 },
15133 "volume" : {
15134 "alias" : "file"
15135 }
15136 },
15137 "optional" : 1,
15138 "type" : "string",
7af2edf9 15139 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125 15140 },
44660702
DM
15141 "force" : {
15142 "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.",
15143 "optional" : 1,
15144 "requires" : "delete",
013dc89f
DM
15145 "type" : "boolean",
15146 "typetext" : "<boolean>"
44660702
DM
15147 },
15148 "freeze" : {
15149 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
15150 "optional" : 1,
013dc89f
DM
15151 "type" : "boolean",
15152 "typetext" : "<boolean>"
44660702 15153 },
5f26e15b
TL
15154 "hookscript" : {
15155 "description" : "Script that will be executed during various steps in the vms lifetime.",
15156 "format" : "pve-volume-id",
15157 "optional" : 1,
15158 "type" : "string",
15159 "typetext" : "<string>"
15160 },
44660702 15161 "hostpci[n]" : {
c2993fe5 15162 "description" : "Map host PCI devices into guest.",
44660702
DM
15163 "format" : "pve-qm-hostpci",
15164 "optional" : 1,
57b78691 15165 "type" : "string",
7af2edf9 15166 "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
bb4c8cf8 15167 "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 15168 },
7aacca6f 15169 "hotplug" : {
7aacca6f 15170 "default" : "network,disk,usb",
4e7f60c2 15171 "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 15172 "format" : "pve-hotplug-features",
56122987 15173 "optional" : 1,
013dc89f
DM
15174 "type" : "string",
15175 "typetext" : "<string>"
56122987 15176 },
4bd7df8b
DM
15177 "hugepages" : {
15178 "description" : "Enable/disable hugepages memory.",
15179 "enum" : [
15180 "any",
15181 "2",
15182 "1024"
15183 ],
15184 "optional" : 1,
15185 "type" : "string"
15186 },
56122987 15187 "ide[n]" : {
7af2edf9 15188 "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 15189 "format" : {
44660702
DM
15190 "aio" : {
15191 "description" : "AIO type to use.",
15192 "enum" : [
15193 "native",
8f4d9c87
TL
15194 "threads",
15195 "io_uring"
44660702 15196 ],
56122987 15197 "optional" : 1,
44660702 15198 "type" : "string"
56122987 15199 },
44660702
DM
15200 "backup" : {
15201 "description" : "Whether the drive should be included when making backups.",
44660702
DM
15202 "optional" : 1,
15203 "type" : "boolean"
15204 },
15205 "bps" : {
de0983cb 15206 "description" : "Maximum r/w speed in bytes per second.",
44660702 15207 "format_description" : "bps",
56122987 15208 "optional" : 1,
44660702 15209 "type" : "integer"
56122987 15210 },
de0983cb
DM
15211 "bps_max_length" : {
15212 "description" : "Maximum length of I/O bursts in seconds.",
15213 "format_description" : "seconds",
15214 "minimum" : 1,
15215 "optional" : 1,
15216 "type" : "integer"
15217 },
44660702 15218 "bps_rd" : {
de0983cb 15219 "description" : "Maximum read speed in bytes per second.",
44660702 15220 "format_description" : "bps",
56122987 15221 "optional" : 1,
44660702 15222 "type" : "integer"
56122987 15223 },
de0983cb 15224 "bps_rd_length" : {
5d9c884c
DM
15225 "alias" : "bps_rd_max_length"
15226 },
15227 "bps_rd_max_length" : {
de0983cb
DM
15228 "description" : "Maximum length of read I/O bursts in seconds.",
15229 "format_description" : "seconds",
15230 "minimum" : 1,
15231 "optional" : 1,
15232 "type" : "integer"
15233 },
7aacca6f 15234 "bps_wr" : {
de0983cb 15235 "description" : "Maximum write speed in bytes per second.",
44660702
DM
15236 "format_description" : "bps",
15237 "optional" : 1,
15238 "type" : "integer"
7aacca6f 15239 },
de0983cb 15240 "bps_wr_length" : {
5d9c884c
DM
15241 "alias" : "bps_wr_max_length"
15242 },
15243 "bps_wr_max_length" : {
de0983cb
DM
15244 "description" : "Maximum length of write I/O bursts in seconds.",
15245 "format_description" : "seconds",
15246 "minimum" : 1,
15247 "optional" : 1,
15248 "type" : "integer"
15249 },
44660702
DM
15250 "cache" : {
15251 "description" : "The drive's cache mode",
15252 "enum" : [
15253 "none",
15254 "writethrough",
15255 "writeback",
15256 "unsafe",
15257 "directsync"
15258 ],
56122987 15259 "optional" : 1,
44660702
DM
15260 "type" : "string"
15261 },
15262 "cyls" : {
15263 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
15264 "optional" : 1,
15265 "type" : "integer"
15266 },
15267 "detect_zeroes" : {
15268 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
15269 "optional" : 1,
15270 "type" : "boolean"
56122987 15271 },
7aacca6f 15272 "discard" : {
7aacca6f 15273 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
56122987 15274 "enum" : [
7aacca6f
DM
15275 "ignore",
15276 "on"
56122987
DM
15277 ],
15278 "optional" : 1,
44660702 15279 "type" : "string"
7aacca6f 15280 },
44660702
DM
15281 "file" : {
15282 "default_key" : 1,
15283 "description" : "The drive's backing volume.",
15284 "format" : "pve-volume-id-or-qm-path",
15285 "format_description" : "volume",
15286 "type" : "string"
7aacca6f
DM
15287 },
15288 "format" : {
44660702 15289 "description" : "The drive's backing file's data format.",
7aacca6f
DM
15290 "enum" : [
15291 "raw",
15292 "cow",
15293 "qcow",
15294 "qed",
15295 "qcow2",
15296 "vmdk",
15297 "cloop"
15298 ],
7aacca6f 15299 "optional" : 1,
44660702 15300 "type" : "string"
56122987 15301 },
7aacca6f 15302 "heads" : {
44660702 15303 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 15304 "optional" : 1,
44660702 15305 "type" : "integer"
7aacca6f 15306 },
7af2edf9
TL
15307 "import-from" : {
15308 "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!",
15309 "format" : "pve-volume-id-or-absolute-path",
15310 "format_description" : "source volume",
15311 "optional" : 1,
15312 "type" : "string"
15313 },
44660702 15314 "iops" : {
de0983cb 15315 "description" : "Maximum r/w I/O in operations per second.",
44660702 15316 "format_description" : "iops",
7aacca6f 15317 "optional" : 1,
44660702 15318 "type" : "integer"
56122987 15319 },
44660702 15320 "iops_max" : {
de0983cb 15321 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 15322 "format_description" : "iops",
56122987 15323 "optional" : 1,
44660702 15324 "type" : "integer"
56122987 15325 },
de0983cb
DM
15326 "iops_max_length" : {
15327 "description" : "Maximum length of I/O bursts in seconds.",
15328 "format_description" : "seconds",
15329 "minimum" : 1,
15330 "optional" : 1,
15331 "type" : "integer"
15332 },
44660702 15333 "iops_rd" : {
de0983cb 15334 "description" : "Maximum read I/O in operations per second.",
44660702 15335 "format_description" : "iops",
56122987 15336 "optional" : 1,
44660702 15337 "type" : "integer"
7aacca6f 15338 },
de0983cb 15339 "iops_rd_length" : {
5d9c884c 15340 "alias" : "iops_rd_max_length"
de0983cb 15341 },
44660702 15342 "iops_rd_max" : {
de0983cb 15343 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 15344 "format_description" : "iops",
7aacca6f 15345 "optional" : 1,
44660702 15346 "type" : "integer"
7aacca6f 15347 },
5d9c884c
DM
15348 "iops_rd_max_length" : {
15349 "description" : "Maximum length of read I/O bursts in seconds.",
15350 "format_description" : "seconds",
15351 "minimum" : 1,
15352 "optional" : 1,
15353 "type" : "integer"
15354 },
44660702 15355 "iops_wr" : {
de0983cb 15356 "description" : "Maximum write I/O in operations per second.",
44660702 15357 "format_description" : "iops",
7aacca6f 15358 "optional" : 1,
44660702 15359 "type" : "integer"
56122987 15360 },
de0983cb 15361 "iops_wr_length" : {
5d9c884c 15362 "alias" : "iops_wr_max_length"
de0983cb 15363 },
44660702 15364 "iops_wr_max" : {
de0983cb 15365 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 15366 "format_description" : "iops",
7aacca6f 15367 "optional" : 1,
44660702 15368 "type" : "integer"
7aacca6f 15369 },
5d9c884c
DM
15370 "iops_wr_max_length" : {
15371 "description" : "Maximum length of write I/O bursts in seconds.",
15372 "format_description" : "seconds",
15373 "minimum" : 1,
15374 "optional" : 1,
15375 "type" : "integer"
15376 },
7aacca6f 15377 "mbps" : {
de0983cb 15378 "description" : "Maximum r/w speed in megabytes per second.",
7aacca6f 15379 "format_description" : "mbps",
7aacca6f 15380 "optional" : 1,
44660702 15381 "type" : "number"
7aacca6f 15382 },
44660702 15383 "mbps_max" : {
de0983cb 15384 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 15385 "format_description" : "mbps",
7aacca6f 15386 "optional" : 1,
44660702 15387 "type" : "number"
7aacca6f 15388 },
44660702 15389 "mbps_rd" : {
de0983cb 15390 "description" : "Maximum read speed in megabytes per second.",
44660702 15391 "format_description" : "mbps",
7aacca6f 15392 "optional" : 1,
44660702 15393 "type" : "number"
7aacca6f 15394 },
44660702 15395 "mbps_rd_max" : {
de0983cb 15396 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
15397 "format_description" : "mbps",
15398 "optional" : 1,
15399 "type" : "number"
7aacca6f 15400 },
44660702 15401 "mbps_wr" : {
de0983cb 15402 "description" : "Maximum write speed in megabytes per second.",
44660702 15403 "format_description" : "mbps",
7aacca6f 15404 "optional" : 1,
44660702
DM
15405 "type" : "number"
15406 },
15407 "mbps_wr_max" : {
de0983cb 15408 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
15409 "format_description" : "mbps",
15410 "optional" : 1,
15411 "type" : "number"
15412 },
15413 "media" : {
15414 "default" : "disk",
15415 "description" : "The drive's media type.",
56122987 15416 "enum" : [
44660702
DM
15417 "cdrom",
15418 "disk"
56122987 15419 ],
44660702
DM
15420 "optional" : 1,
15421 "type" : "string"
56122987 15422 },
7aacca6f 15423 "model" : {
44660702 15424 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
56122987 15425 "format" : "urlencoded",
7aacca6f 15426 "format_description" : "model",
44660702 15427 "maxLength" : 120,
56122987 15428 "optional" : 1,
44660702 15429 "type" : "string"
56122987 15430 },
5d9c884c
DM
15431 "replicate" : {
15432 "default" : 1,
15433 "description" : "Whether the drive should considered for replication jobs.",
15434 "optional" : 1,
15435 "type" : "boolean"
15436 },
44660702
DM
15437 "rerror" : {
15438 "description" : "Read error action.",
15439 "enum" : [
15440 "ignore",
15441 "report",
15442 "stop"
15443 ],
56122987 15444 "optional" : 1,
44660702 15445 "type" : "string"
56122987 15446 },
44660702
DM
15447 "secs" : {
15448 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
15449 "optional" : 1,
15450 "type" : "integer"
56122987 15451 },
44660702
DM
15452 "serial" : {
15453 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
15454 "format" : "urlencoded",
15455 "format_description" : "serial",
15456 "maxLength" : 60,
56122987 15457 "optional" : 1,
44660702 15458 "type" : "string"
56122987 15459 },
27a7acb2
DM
15460 "shared" : {
15461 "default" : 0,
15462 "description" : "Mark this locally-managed volume as available on all nodes",
15463 "optional" : 1,
15464 "type" : "boolean",
15465 "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!"
15466 },
44660702
DM
15467 "size" : {
15468 "description" : "Disk size. This is purely informational and has no effect.",
15469 "format" : "disk-size",
f004f5b9 15470 "format_description" : "DiskSize",
56122987 15471 "optional" : 1,
44660702 15472 "type" : "string"
56122987 15473 },
44660702 15474 "snapshot" : {
27a7acb2 15475 "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 15476 "optional" : 1,
44660702 15477 "type" : "boolean"
56122987 15478 },
25203dc1
NC
15479 "ssd" : {
15480 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
15481 "optional" : 1,
15482 "type" : "boolean"
15483 },
44660702
DM
15484 "trans" : {
15485 "description" : "Force disk geometry bios translation mode.",
15486 "enum" : [
15487 "none",
15488 "lba",
15489 "auto"
15490 ],
56122987 15491 "optional" : 1,
44660702
DM
15492 "type" : "string"
15493 },
15494 "volume" : {
15495 "alias" : "file"
56122987 15496 },
7aacca6f 15497 "werror" : {
44660702 15498 "description" : "Write error action.",
7aacca6f
DM
15499 "enum" : [
15500 "enospc",
15501 "ignore",
15502 "report",
15503 "stop"
15504 ],
56122987 15505 "optional" : 1,
44660702 15506 "type" : "string"
95895385
TL
15507 },
15508 "wwn" : {
15509 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
15510 "format_description" : "wwn",
15511 "optional" : 1,
15512 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
15513 "type" : "string"
7aacca6f 15514 }
44660702
DM
15515 },
15516 "optional" : 1,
4bd7df8b 15517 "type" : "string",
7af2edf9 15518 "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
15519 },
15520 "ipconfig[n]" : {
d2656385 15521 "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
15522 "format" : "pve-qm-ipconfig",
15523 "optional" : 1,
15524 "type" : "string",
15525 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
7aacca6f 15526 },
95895385
TL
15527 "ivshmem" : {
15528 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
15529 "format" : {
15530 "name" : {
15531 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
15532 "format_description" : "string",
15533 "optional" : 1,
15534 "pattern" : "[a-zA-Z0-9\\-]+",
15535 "type" : "string"
15536 },
15537 "size" : {
15538 "description" : "The size of the file in MB.",
15539 "minimum" : 1,
15540 "type" : "integer"
15541 }
15542 },
15543 "optional" : 1,
15544 "type" : "string",
15545 "typetext" : "size=<integer> [,name=<string>]"
15546 },
4772952b
TL
15547 "keephugepages" : {
15548 "default" : 0,
15549 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
15550 "optional" : 1,
15551 "type" : "boolean",
15552 "typetext" : "<boolean>"
15553 },
44660702 15554 "keyboard" : {
35a75dd3 15555 "default" : null,
7af2edf9 15556 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
44660702
DM
15557 "enum" : [
15558 "de",
15559 "de-ch",
15560 "da",
15561 "en-gb",
15562 "en-us",
15563 "es",
15564 "fi",
15565 "fr",
15566 "fr-be",
15567 "fr-ca",
15568 "fr-ch",
15569 "hu",
15570 "is",
15571 "it",
15572 "ja",
15573 "lt",
15574 "mk",
15575 "nl",
15576 "no",
15577 "pl",
15578 "pt",
15579 "pt-br",
15580 "sv",
15581 "sl",
15582 "tr"
15583 ],
7aacca6f 15584 "optional" : 1,
44660702 15585 "type" : "string"
7aacca6f 15586 },
44660702 15587 "kvm" : {
7aacca6f 15588 "default" : 1,
44660702 15589 "description" : "Enable/disable KVM hardware virtualization.",
7aacca6f 15590 "optional" : 1,
013dc89f
DM
15591 "type" : "boolean",
15592 "typetext" : "<boolean>"
7aacca6f 15593 },
44660702 15594 "localtime" : {
5370fa8c 15595 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
7aacca6f 15596 "optional" : 1,
013dc89f
DM
15597 "type" : "boolean",
15598 "typetext" : "<boolean>"
7aacca6f 15599 },
44660702
DM
15600 "lock" : {
15601 "description" : "Lock/unlock the VM.",
15602 "enum" : [
44660702 15603 "backup",
5f26e15b
TL
15604 "clone",
15605 "create",
15606 "migrate",
15607 "rollback",
44660702 15608 "snapshot",
95895385
TL
15609 "snapshot-delete",
15610 "suspending",
15611 "suspended"
44660702 15612 ],
7aacca6f 15613 "optional" : 1,
44660702 15614 "type" : "string"
7aacca6f 15615 },
44660702 15616 "machine" : {
4d47f125 15617 "description" : "Specifies the Qemu machine type.",
44660702 15618 "maxLength" : 40,
7aacca6f 15619 "optional" : 1,
5c1699e5 15620 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702 15621 "type" : "string"
7aacca6f 15622 },
44660702
DM
15623 "memory" : {
15624 "default" : 512,
15625 "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
15626 "minimum" : 16,
7aacca6f 15627 "optional" : 1,
4bd7df8b 15628 "type" : "integer",
013dc89f 15629 "typetext" : "<integer> (16 - N)"
7aacca6f 15630 },
44660702
DM
15631 "migrate_downtime" : {
15632 "default" : 0.1,
15633 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
15634 "minimum" : 0,
7aacca6f 15635 "optional" : 1,
4bd7df8b 15636 "type" : "number",
013dc89f 15637 "typetext" : "<number> (0 - N)"
7aacca6f 15638 },
44660702 15639 "migrate_speed" : {
7aacca6f 15640 "default" : 0,
44660702
DM
15641 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
15642 "minimum" : 0,
15643 "optional" : 1,
4bd7df8b 15644 "type" : "integer",
013dc89f 15645 "typetext" : "<integer> (0 - N)"
7aacca6f 15646 },
44660702
DM
15647 "name" : {
15648 "description" : "Set a name for the VM. Only used on the configuration web interface.",
15649 "format" : "dns-name",
7aacca6f 15650 "optional" : 1,
013dc89f
DM
15651 "type" : "string",
15652 "typetext" : "<string>"
7aacca6f 15653 },
27a7acb2 15654 "nameserver" : {
de786b48 15655 "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
15656 "format" : "address-list",
15657 "optional" : 1,
15658 "type" : "string",
15659 "typetext" : "<string>"
15660 },
44660702 15661 "net[n]" : {
c2993fe5 15662 "description" : "Specify network devices.",
f004f5b9
DM
15663 "format" : {
15664 "bridge" : {
c2993fe5 15665 "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 15666 "format" : "pve-bridge-id",
f004f5b9
DM
15667 "format_description" : "bridge",
15668 "optional" : 1,
15669 "type" : "string"
15670 },
15671 "e1000" : {
15672 "alias" : "macaddr",
15673 "keyAlias" : "model"
15674 },
15675 "e1000-82540em" : {
15676 "alias" : "macaddr",
15677 "keyAlias" : "model"
15678 },
15679 "e1000-82544gc" : {
15680 "alias" : "macaddr",
15681 "keyAlias" : "model"
15682 },
15683 "e1000-82545em" : {
15684 "alias" : "macaddr",
15685 "keyAlias" : "model"
15686 },
5370fa8c
TL
15687 "e1000e" : {
15688 "alias" : "macaddr",
15689 "keyAlias" : "model"
15690 },
f004f5b9
DM
15691 "firewall" : {
15692 "description" : "Whether this interface should be protected by the firewall.",
15693 "optional" : 1,
15694 "type" : "boolean"
15695 },
15696 "i82551" : {
15697 "alias" : "macaddr",
15698 "keyAlias" : "model"
15699 },
15700 "i82557b" : {
15701 "alias" : "macaddr",
15702 "keyAlias" : "model"
15703 },
15704 "i82559er" : {
15705 "alias" : "macaddr",
15706 "keyAlias" : "model"
15707 },
15708 "link_down" : {
c2993fe5 15709 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
15710 "optional" : 1,
15711 "type" : "boolean"
15712 },
15713 "macaddr" : {
c2993fe5 15714 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 15715 "format" : "mac-addr",
f004f5b9 15716 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 15717 "optional" : 1,
95895385
TL
15718 "type" : "string",
15719 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
15720 },
15721 "model" : {
15722 "default_key" : 1,
c2993fe5 15723 "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 15724 "enum" : [
f004f5b9 15725 "e1000",
5370fa8c
TL
15726 "e1000-82540em",
15727 "e1000-82544gc",
15728 "e1000-82545em",
15729 "e1000e",
f004f5b9
DM
15730 "i82551",
15731 "i82557b",
15732 "i82559er",
5370fa8c
TL
15733 "ne2k_isa",
15734 "ne2k_pci",
15735 "pcnet",
15736 "rtl8139",
15737 "virtio",
15738 "vmxnet3"
f004f5b9 15739 ],
f004f5b9
DM
15740 "type" : "string"
15741 },
ac70d7d1
TL
15742 "mtu" : {
15743 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
15744 "maximum" : 65520,
15745 "minimum" : 1,
15746 "optional" : 1,
15747 "type" : "integer"
15748 },
f004f5b9
DM
15749 "ne2k_isa" : {
15750 "alias" : "macaddr",
15751 "keyAlias" : "model"
15752 },
15753 "ne2k_pci" : {
15754 "alias" : "macaddr",
15755 "keyAlias" : "model"
15756 },
15757 "pcnet" : {
15758 "alias" : "macaddr",
15759 "keyAlias" : "model"
15760 },
15761 "queues" : {
15762 "description" : "Number of packet queues to be used on the device.",
81a3384d 15763 "maximum" : 64,
f004f5b9
DM
15764 "minimum" : 0,
15765 "optional" : 1,
15766 "type" : "integer"
15767 },
15768 "rate" : {
c2993fe5 15769 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
15770 "minimum" : 0,
15771 "optional" : 1,
15772 "type" : "number"
15773 },
15774 "rtl8139" : {
15775 "alias" : "macaddr",
15776 "keyAlias" : "model"
15777 },
15778 "tag" : {
15779 "description" : "VLAN tag to apply to packets on this interface.",
15780 "maximum" : 4094,
c2993fe5 15781 "minimum" : 1,
f004f5b9
DM
15782 "optional" : 1,
15783 "type" : "integer"
15784 },
15785 "trunks" : {
15786 "description" : "VLAN trunks to pass through this interface.",
15787 "format_description" : "vlanid[;vlanid...]",
15788 "optional" : 1,
15789 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
15790 "type" : "string"
15791 },
15792 "virtio" : {
15793 "alias" : "macaddr",
15794 "keyAlias" : "model"
15795 },
15796 "vmxnet3" : {
15797 "alias" : "macaddr",
15798 "keyAlias" : "model"
15799 }
15800 },
7aacca6f 15801 "optional" : 1,
4bd7df8b 15802 "type" : "string",
ac70d7d1 15803 "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 15804 },
44660702
DM
15805 "node" : {
15806 "description" : "The cluster node name.",
15807 "format" : "pve-node",
013dc89f
DM
15808 "type" : "string",
15809 "typetext" : "<string>"
44660702
DM
15810 },
15811 "numa" : {
15812 "default" : 0,
15813 "description" : "Enable/disable NUMA.",
7aacca6f 15814 "optional" : 1,
013dc89f
DM
15815 "type" : "boolean",
15816 "typetext" : "<boolean>"
7aacca6f 15817 },
44660702 15818 "numa[n]" : {
c2993fe5 15819 "description" : "NUMA topology.",
44660702
DM
15820 "format" : {
15821 "cpus" : {
c2993fe5 15822 "description" : "CPUs accessing this NUMA node.",
44660702
DM
15823 "format_description" : "id[-id];...",
15824 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
15825 "type" : "string"
15826 },
15827 "hostnodes" : {
c2993fe5 15828 "description" : "Host NUMA nodes to use.",
44660702
DM
15829 "format_description" : "id[-id];...",
15830 "optional" : 1,
15831 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
15832 "type" : "string"
15833 },
15834 "memory" : {
c2993fe5 15835 "description" : "Amount of memory this NUMA node provides.",
44660702
DM
15836 "optional" : 1,
15837 "type" : "number"
15838 },
15839 "policy" : {
c2993fe5 15840 "description" : "NUMA allocation policy.",
44660702
DM
15841 "enum" : [
15842 "preferred",
15843 "bind",
15844 "interleave"
15845 ],
44660702
DM
15846 "optional" : 1,
15847 "type" : "string"
15848 }
15849 },
7aacca6f 15850 "optional" : 1,
4bd7df8b
DM
15851 "type" : "string",
15852 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
7aacca6f 15853 },
44660702
DM
15854 "onboot" : {
15855 "default" : 0,
15856 "description" : "Specifies whether a VM will be started during system bootup.",
7aacca6f 15857 "optional" : 1,
013dc89f
DM
15858 "type" : "boolean",
15859 "typetext" : "<boolean>"
7aacca6f 15860 },
44660702 15861 "ostype" : {
c2993fe5 15862 "description" : "Specify guest operating system.",
44660702
DM
15863 "enum" : [
15864 "other",
15865 "wxp",
15866 "w2k",
15867 "w2k3",
15868 "w2k8",
15869 "wvista",
15870 "win7",
15871 "win8",
32d876b5 15872 "win10",
5370fa8c 15873 "win11",
44660702
DM
15874 "l24",
15875 "l26",
15876 "solaris"
15877 ],
7aacca6f 15878 "optional" : 1,
c2993fe5 15879 "type" : "string",
5370fa8c 15880 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 5.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
7aacca6f 15881 },
44660702 15882 "parallel[n]" : {
c2993fe5 15883 "description" : "Map host parallel devices (n is 0 to 2).",
7aacca6f 15884 "optional" : 1,
44660702 15885 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 15886 "type" : "string",
4772952b 15887 "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 15888 },
44660702
DM
15889 "protection" : {
15890 "default" : 0,
c2993fe5 15891 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
7aacca6f 15892 "optional" : 1,
013dc89f
DM
15893 "type" : "boolean",
15894 "typetext" : "<boolean>"
7aacca6f 15895 },
44660702
DM
15896 "reboot" : {
15897 "default" : 1,
15898 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
7aacca6f 15899 "optional" : 1,
013dc89f
DM
15900 "type" : "boolean",
15901 "typetext" : "<boolean>"
7aacca6f 15902 },
44660702
DM
15903 "revert" : {
15904 "description" : "Revert a pending change.",
15905 "format" : "pve-configid-list",
7aacca6f 15906 "optional" : 1,
013dc89f
DM
15907 "type" : "string",
15908 "typetext" : "<string>"
7aacca6f 15909 },
c5aa7e14
TL
15910 "rng0" : {
15911 "description" : "Configure a VirtIO-based Random Number Generator.",
15912 "format" : {
15913 "max_bytes" : {
15914 "default" : 1024,
5370fa8c 15915 "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
15916 "optional" : 1,
15917 "type" : "integer"
15918 },
15919 "period" : {
15920 "default" : 1000,
15921 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
15922 "optional" : 1,
15923 "type" : "integer"
15924 },
15925 "source" : {
15926 "default_key" : 1,
5370fa8c 15927 "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
15928 "enum" : [
15929 "/dev/urandom",
15930 "/dev/random",
15931 "/dev/hwrng"
15932 ],
15933 "type" : "string"
15934 }
15935 },
15936 "optional" : 1,
15937 "type" : "string",
15938 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
15939 },
44660702 15940 "sata[n]" : {
7af2edf9 15941 "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 15942 "format" : {
44660702
DM
15943 "aio" : {
15944 "description" : "AIO type to use.",
15945 "enum" : [
15946 "native",
8f4d9c87
TL
15947 "threads",
15948 "io_uring"
44660702 15949 ],
44660702
DM
15950 "optional" : 1,
15951 "type" : "string"
15952 },
15953 "backup" : {
15954 "description" : "Whether the drive should be included when making backups.",
44660702
DM
15955 "optional" : 1,
15956 "type" : "boolean"
15957 },
15958 "bps" : {
de0983cb 15959 "description" : "Maximum r/w speed in bytes per second.",
7aacca6f 15960 "format_description" : "bps",
7aacca6f
DM
15961 "optional" : 1,
15962 "type" : "integer"
56122987 15963 },
de0983cb
DM
15964 "bps_max_length" : {
15965 "description" : "Maximum length of I/O bursts in seconds.",
15966 "format_description" : "seconds",
15967 "minimum" : 1,
15968 "optional" : 1,
15969 "type" : "integer"
15970 },
44660702 15971 "bps_rd" : {
de0983cb 15972 "description" : "Maximum read speed in bytes per second.",
44660702 15973 "format_description" : "bps",
7aacca6f 15974 "optional" : 1,
44660702 15975 "type" : "integer"
7aacca6f 15976 },
de0983cb 15977 "bps_rd_length" : {
5d9c884c
DM
15978 "alias" : "bps_rd_max_length"
15979 },
15980 "bps_rd_max_length" : {
de0983cb
DM
15981 "description" : "Maximum length of read I/O bursts in seconds.",
15982 "format_description" : "seconds",
15983 "minimum" : 1,
15984 "optional" : 1,
15985 "type" : "integer"
15986 },
44660702 15987 "bps_wr" : {
de0983cb 15988 "description" : "Maximum write speed in bytes per second.",
44660702 15989 "format_description" : "bps",
7aacca6f 15990 "optional" : 1,
44660702 15991 "type" : "integer"
7aacca6f 15992 },
de0983cb 15993 "bps_wr_length" : {
5d9c884c
DM
15994 "alias" : "bps_wr_max_length"
15995 },
15996 "bps_wr_max_length" : {
de0983cb
DM
15997 "description" : "Maximum length of write I/O bursts in seconds.",
15998 "format_description" : "seconds",
15999 "minimum" : 1,
16000 "optional" : 1,
16001 "type" : "integer"
16002 },
44660702
DM
16003 "cache" : {
16004 "description" : "The drive's cache mode",
16005 "enum" : [
16006 "none",
16007 "writethrough",
16008 "writeback",
16009 "unsafe",
16010 "directsync"
16011 ],
7aacca6f 16012 "optional" : 1,
44660702 16013 "type" : "string"
7aacca6f 16014 },
44660702
DM
16015 "cyls" : {
16016 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 16017 "optional" : 1,
44660702 16018 "type" : "integer"
7aacca6f 16019 },
44660702
DM
16020 "detect_zeroes" : {
16021 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
7aacca6f 16022 "optional" : 1,
44660702 16023 "type" : "boolean"
7aacca6f 16024 },
44660702
DM
16025 "discard" : {
16026 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
16027 "enum" : [
16028 "ignore",
16029 "on"
16030 ],
7aacca6f 16031 "optional" : 1,
44660702
DM
16032 "type" : "string"
16033 },
16034 "file" : {
16035 "default_key" : 1,
16036 "description" : "The drive's backing volume.",
16037 "format" : "pve-volume-id-or-qm-path",
16038 "format_description" : "volume",
16039 "type" : "string"
7aacca6f
DM
16040 },
16041 "format" : {
7aacca6f 16042 "description" : "The drive's backing file's data format.",
56122987
DM
16043 "enum" : [
16044 "raw",
16045 "cow",
16046 "qcow",
16047 "qed",
16048 "qcow2",
16049 "vmdk",
16050 "cloop"
16051 ],
16052 "optional" : 1,
7aacca6f 16053 "type" : "string"
56122987 16054 },
7aacca6f 16055 "heads" : {
7aacca6f 16056 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
16057 "optional" : 1,
16058 "type" : "integer"
56122987 16059 },
7af2edf9
TL
16060 "import-from" : {
16061 "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!",
16062 "format" : "pve-volume-id-or-absolute-path",
16063 "format_description" : "source volume",
16064 "optional" : 1,
16065 "type" : "string"
16066 },
44660702 16067 "iops" : {
de0983cb 16068 "description" : "Maximum r/w I/O in operations per second.",
44660702 16069 "format_description" : "iops",
56122987 16070 "optional" : 1,
44660702 16071 "type" : "integer"
7aacca6f 16072 },
44660702 16073 "iops_max" : {
de0983cb 16074 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 16075 "format_description" : "iops",
7aacca6f 16076 "optional" : 1,
44660702 16077 "type" : "integer"
56122987 16078 },
de0983cb
DM
16079 "iops_max_length" : {
16080 "description" : "Maximum length of I/O bursts in seconds.",
16081 "format_description" : "seconds",
16082 "minimum" : 1,
16083 "optional" : 1,
16084 "type" : "integer"
16085 },
44660702 16086 "iops_rd" : {
de0983cb 16087 "description" : "Maximum read I/O in operations per second.",
44660702 16088 "format_description" : "iops",
56122987 16089 "optional" : 1,
44660702 16090 "type" : "integer"
7aacca6f 16091 },
de0983cb 16092 "iops_rd_length" : {
5d9c884c 16093 "alias" : "iops_rd_max_length"
de0983cb 16094 },
44660702 16095 "iops_rd_max" : {
de0983cb 16096 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 16097 "format_description" : "iops",
56122987 16098 "optional" : 1,
44660702 16099 "type" : "integer"
56122987 16100 },
5d9c884c
DM
16101 "iops_rd_max_length" : {
16102 "description" : "Maximum length of read I/O bursts in seconds.",
16103 "format_description" : "seconds",
16104 "minimum" : 1,
16105 "optional" : 1,
16106 "type" : "integer"
16107 },
44660702 16108 "iops_wr" : {
de0983cb 16109 "description" : "Maximum write I/O in operations per second.",
44660702
DM
16110 "format_description" : "iops",
16111 "optional" : 1,
16112 "type" : "integer"
56122987 16113 },
de0983cb 16114 "iops_wr_length" : {
5d9c884c 16115 "alias" : "iops_wr_max_length"
de0983cb 16116 },
44660702 16117 "iops_wr_max" : {
de0983cb 16118 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
16119 "format_description" : "iops",
16120 "optional" : 1,
16121 "type" : "integer"
16122 },
5d9c884c
DM
16123 "iops_wr_max_length" : {
16124 "description" : "Maximum length of write I/O bursts in seconds.",
16125 "format_description" : "seconds",
16126 "minimum" : 1,
16127 "optional" : 1,
16128 "type" : "integer"
16129 },
44660702 16130 "mbps" : {
de0983cb 16131 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
16132 "format_description" : "mbps",
16133 "optional" : 1,
16134 "type" : "number"
16135 },
16136 "mbps_max" : {
de0983cb 16137 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
16138 "format_description" : "mbps",
16139 "optional" : 1,
16140 "type" : "number"
16141 },
16142 "mbps_rd" : {
de0983cb 16143 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
16144 "format_description" : "mbps",
16145 "optional" : 1,
16146 "type" : "number"
16147 },
16148 "mbps_rd_max" : {
de0983cb 16149 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
16150 "format_description" : "mbps",
16151 "optional" : 1,
16152 "type" : "number"
16153 },
16154 "mbps_wr" : {
de0983cb 16155 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
16156 "format_description" : "mbps",
16157 "optional" : 1,
16158 "type" : "number"
16159 },
16160 "mbps_wr_max" : {
de0983cb 16161 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
16162 "format_description" : "mbps",
16163 "optional" : 1,
16164 "type" : "number"
16165 },
16166 "media" : {
16167 "default" : "disk",
16168 "description" : "The drive's media type.",
16169 "enum" : [
16170 "cdrom",
16171 "disk"
16172 ],
56122987 16173 "optional" : 1,
44660702
DM
16174 "type" : "string"
16175 },
5d9c884c
DM
16176 "replicate" : {
16177 "default" : 1,
16178 "description" : "Whether the drive should considered for replication jobs.",
16179 "optional" : 1,
16180 "type" : "boolean"
16181 },
44660702 16182 "rerror" : {
7aacca6f
DM
16183 "description" : "Read error action.",
16184 "enum" : [
16185 "ignore",
16186 "report",
16187 "stop"
44660702 16188 ],
56122987 16189 "optional" : 1,
44660702 16190 "type" : "string"
56122987 16191 },
7aacca6f 16192 "secs" : {
44660702 16193 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 16194 "optional" : 1,
44660702 16195 "type" : "integer"
56122987 16196 },
44660702
DM
16197 "serial" : {
16198 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
16199 "format" : "urlencoded",
16200 "format_description" : "serial",
16201 "maxLength" : 60,
56122987 16202 "optional" : 1,
44660702 16203 "type" : "string"
56122987 16204 },
27a7acb2
DM
16205 "shared" : {
16206 "default" : 0,
16207 "description" : "Mark this locally-managed volume as available on all nodes",
16208 "optional" : 1,
16209 "type" : "boolean",
16210 "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!"
16211 },
44660702
DM
16212 "size" : {
16213 "description" : "Disk size. This is purely informational and has no effect.",
16214 "format" : "disk-size",
f004f5b9 16215 "format_description" : "DiskSize",
56122987 16216 "optional" : 1,
44660702 16217 "type" : "string"
56122987
DM
16218 },
16219 "snapshot" : {
27a7acb2 16220 "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 16221 "optional" : 1,
44660702 16222 "type" : "boolean"
56122987 16223 },
25203dc1
NC
16224 "ssd" : {
16225 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
16226 "optional" : 1,
16227 "type" : "boolean"
16228 },
56122987 16229 "trans" : {
7aacca6f 16230 "description" : "Force disk geometry bios translation mode.",
56122987
DM
16231 "enum" : [
16232 "none",
16233 "lba",
16234 "auto"
16235 ],
16236 "optional" : 1,
44660702 16237 "type" : "string"
56122987 16238 },
44660702
DM
16239 "volume" : {
16240 "alias" : "file"
56122987 16241 },
7aacca6f 16242 "werror" : {
44660702 16243 "description" : "Write error action.",
56122987 16244 "enum" : [
7aacca6f 16245 "enospc",
56122987 16246 "ignore",
7aacca6f
DM
16247 "report",
16248 "stop"
16249 ],
7aacca6f 16250 "optional" : 1,
44660702 16251 "type" : "string"
95895385
TL
16252 },
16253 "wwn" : {
16254 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
16255 "format_description" : "wwn",
16256 "optional" : 1,
16257 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
16258 "type" : "string"
44660702
DM
16259 }
16260 },
16261 "optional" : 1,
4bd7df8b 16262 "type" : "string",
7af2edf9 16263 "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
16264 },
16265 "scsi[n]" : {
7af2edf9 16266 "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
16267 "format" : {
16268 "aio" : {
7aacca6f 16269 "description" : "AIO type to use.",
56122987
DM
16270 "enum" : [
16271 "native",
8f4d9c87
TL
16272 "threads",
16273 "io_uring"
44660702 16274 ],
56122987 16275 "optional" : 1,
44660702 16276 "type" : "string"
56122987 16277 },
7aacca6f 16278 "backup" : {
7aacca6f 16279 "description" : "Whether the drive should be included when making backups.",
7aacca6f 16280 "optional" : 1,
44660702 16281 "type" : "boolean"
56122987 16282 },
44660702 16283 "bps" : {
de0983cb 16284 "description" : "Maximum r/w speed in bytes per second.",
44660702 16285 "format_description" : "bps",
7aacca6f 16286 "optional" : 1,
44660702 16287 "type" : "integer"
7aacca6f 16288 },
de0983cb
DM
16289 "bps_max_length" : {
16290 "description" : "Maximum length of I/O bursts in seconds.",
16291 "format_description" : "seconds",
16292 "minimum" : 1,
16293 "optional" : 1,
16294 "type" : "integer"
16295 },
44660702 16296 "bps_rd" : {
de0983cb 16297 "description" : "Maximum read speed in bytes per second.",
44660702 16298 "format_description" : "bps",
56122987 16299 "optional" : 1,
44660702 16300 "type" : "integer"
56122987 16301 },
de0983cb 16302 "bps_rd_length" : {
5d9c884c
DM
16303 "alias" : "bps_rd_max_length"
16304 },
16305 "bps_rd_max_length" : {
de0983cb
DM
16306 "description" : "Maximum length of read I/O bursts in seconds.",
16307 "format_description" : "seconds",
16308 "minimum" : 1,
16309 "optional" : 1,
16310 "type" : "integer"
16311 },
44660702 16312 "bps_wr" : {
de0983cb 16313 "description" : "Maximum write speed in bytes per second.",
44660702 16314 "format_description" : "bps",
56122987 16315 "optional" : 1,
44660702 16316 "type" : "integer"
56122987 16317 },
de0983cb 16318 "bps_wr_length" : {
5d9c884c
DM
16319 "alias" : "bps_wr_max_length"
16320 },
16321 "bps_wr_max_length" : {
de0983cb
DM
16322 "description" : "Maximum length of write I/O bursts in seconds.",
16323 "format_description" : "seconds",
16324 "minimum" : 1,
16325 "optional" : 1,
16326 "type" : "integer"
16327 },
44660702
DM
16328 "cache" : {
16329 "description" : "The drive's cache mode",
16330 "enum" : [
16331 "none",
16332 "writethrough",
16333 "writeback",
16334 "unsafe",
16335 "directsync"
16336 ],
56122987 16337 "optional" : 1,
44660702
DM
16338 "type" : "string"
16339 },
16340 "cyls" : {
16341 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
16342 "optional" : 1,
16343 "type" : "integer"
16344 },
16345 "detect_zeroes" : {
16346 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
16347 "optional" : 1,
16348 "type" : "boolean"
16349 },
16350 "discard" : {
16351 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
16352 "enum" : [
16353 "ignore",
16354 "on"
16355 ],
44660702
DM
16356 "optional" : 1,
16357 "type" : "string"
16358 },
16359 "file" : {
16360 "default_key" : 1,
16361 "description" : "The drive's backing volume.",
16362 "format" : "pve-volume-id-or-qm-path",
16363 "format_description" : "volume",
16364 "type" : "string"
56122987 16365 },
7aacca6f 16366 "format" : {
44660702 16367 "description" : "The drive's backing file's data format.",
7aacca6f
DM
16368 "enum" : [
16369 "raw",
16370 "cow",
16371 "qcow",
16372 "qed",
16373 "qcow2",
16374 "vmdk",
16375 "cloop"
16376 ],
56122987 16377 "optional" : 1,
44660702 16378 "type" : "string"
56122987 16379 },
44660702
DM
16380 "heads" : {
16381 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 16382 "optional" : 1,
44660702 16383 "type" : "integer"
56122987 16384 },
7af2edf9
TL
16385 "import-from" : {
16386 "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!",
16387 "format" : "pve-volume-id-or-absolute-path",
16388 "format_description" : "source volume",
16389 "optional" : 1,
16390 "type" : "string"
16391 },
44660702 16392 "iops" : {
de0983cb 16393 "description" : "Maximum r/w I/O in operations per second.",
44660702 16394 "format_description" : "iops",
7aacca6f 16395 "optional" : 1,
44660702 16396 "type" : "integer"
56122987 16397 },
44660702 16398 "iops_max" : {
de0983cb 16399 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
7aacca6f 16400 "format_description" : "iops",
7aacca6f 16401 "optional" : 1,
44660702 16402 "type" : "integer"
56122987 16403 },
de0983cb
DM
16404 "iops_max_length" : {
16405 "description" : "Maximum length of I/O bursts in seconds.",
16406 "format_description" : "seconds",
16407 "minimum" : 1,
16408 "optional" : 1,
16409 "type" : "integer"
16410 },
44660702 16411 "iops_rd" : {
de0983cb 16412 "description" : "Maximum read I/O in operations per second.",
44660702 16413 "format_description" : "iops",
56122987 16414 "optional" : 1,
44660702 16415 "type" : "integer"
56122987 16416 },
de0983cb 16417 "iops_rd_length" : {
5d9c884c 16418 "alias" : "iops_rd_max_length"
de0983cb 16419 },
44660702 16420 "iops_rd_max" : {
de0983cb 16421 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 16422 "format_description" : "iops",
56122987 16423 "optional" : 1,
44660702 16424 "type" : "integer"
56122987 16425 },
5d9c884c
DM
16426 "iops_rd_max_length" : {
16427 "description" : "Maximum length of read I/O bursts in seconds.",
16428 "format_description" : "seconds",
16429 "minimum" : 1,
16430 "optional" : 1,
16431 "type" : "integer"
16432 },
44660702 16433 "iops_wr" : {
de0983cb 16434 "description" : "Maximum write I/O in operations per second.",
44660702 16435 "format_description" : "iops",
56122987 16436 "optional" : 1,
44660702 16437 "type" : "integer"
56122987 16438 },
de0983cb 16439 "iops_wr_length" : {
5d9c884c 16440 "alias" : "iops_wr_max_length"
de0983cb 16441 },
44660702 16442 "iops_wr_max" : {
de0983cb 16443 "description" : "Maximum unthrottled write I/O pool in operations per second.",
7aacca6f 16444 "format_description" : "iops",
44660702
DM
16445 "optional" : 1,
16446 "type" : "integer"
7aacca6f 16447 },
5d9c884c
DM
16448 "iops_wr_max_length" : {
16449 "description" : "Maximum length of write I/O bursts in seconds.",
16450 "format_description" : "seconds",
16451 "minimum" : 1,
16452 "optional" : 1,
16453 "type" : "integer"
16454 },
7aacca6f 16455 "iothread" : {
44660702 16456 "description" : "Whether to use iothreads for this drive",
56122987 16457 "optional" : 1,
44660702 16458 "type" : "boolean"
56122987 16459 },
44660702 16460 "mbps" : {
de0983cb 16461 "description" : "Maximum r/w speed in megabytes per second.",
44660702 16462 "format_description" : "mbps",
56122987 16463 "optional" : 1,
44660702 16464 "type" : "number"
56122987 16465 },
44660702 16466 "mbps_max" : {
de0983cb 16467 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 16468 "format_description" : "mbps",
56122987 16469 "optional" : 1,
44660702 16470 "type" : "number"
56122987 16471 },
44660702 16472 "mbps_rd" : {
de0983cb 16473 "description" : "Maximum read speed in megabytes per second.",
44660702 16474 "format_description" : "mbps",
7aacca6f 16475 "optional" : 1,
44660702 16476 "type" : "number"
56122987 16477 },
44660702 16478 "mbps_rd_max" : {
de0983cb 16479 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 16480 "format_description" : "mbps",
7aacca6f 16481 "optional" : 1,
44660702 16482 "type" : "number"
7aacca6f 16483 },
44660702 16484 "mbps_wr" : {
de0983cb 16485 "description" : "Maximum write speed in megabytes per second.",
44660702 16486 "format_description" : "mbps",
56122987 16487 "optional" : 1,
44660702 16488 "type" : "number"
56122987 16489 },
44660702 16490 "mbps_wr_max" : {
de0983cb 16491 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 16492 "format_description" : "mbps",
56122987 16493 "optional" : 1,
44660702
DM
16494 "type" : "number"
16495 },
16496 "media" : {
16497 "default" : "disk",
16498 "description" : "The drive's media type.",
7aacca6f 16499 "enum" : [
44660702
DM
16500 "cdrom",
16501 "disk"
7aacca6f 16502 ],
56122987 16503 "optional" : 1,
44660702 16504 "type" : "string"
56122987 16505 },
7aacca6f 16506 "queues" : {
44660702 16507 "description" : "Number of queues.",
7aacca6f 16508 "minimum" : 2,
7aacca6f
DM
16509 "optional" : 1,
16510 "type" : "integer"
56122987 16511 },
5d9c884c
DM
16512 "replicate" : {
16513 "default" : 1,
16514 "description" : "Whether the drive should considered for replication jobs.",
16515 "optional" : 1,
16516 "type" : "boolean"
16517 },
16518 "rerror" : {
16519 "description" : "Read error action.",
16520 "enum" : [
16521 "ignore",
16522 "report",
16523 "stop"
16524 ],
16525 "optional" : 1,
16526 "type" : "string"
16527 },
5370fa8c
TL
16528 "ro" : {
16529 "description" : "Whether the drive is read-only.",
16530 "optional" : 1,
16531 "type" : "boolean"
16532 },
52e44c50
FG
16533 "scsiblock" : {
16534 "default" : 0,
16535 "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",
16536 "optional" : 1,
16537 "type" : "boolean"
16538 },
44660702
DM
16539 "secs" : {
16540 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 16541 "optional" : 1,
44660702 16542 "type" : "integer"
56122987 16543 },
44660702
DM
16544 "serial" : {
16545 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
16546 "format" : "urlencoded",
16547 "format_description" : "serial",
16548 "maxLength" : 60,
56122987 16549 "optional" : 1,
44660702 16550 "type" : "string"
56122987 16551 },
27a7acb2
DM
16552 "shared" : {
16553 "default" : 0,
16554 "description" : "Mark this locally-managed volume as available on all nodes",
16555 "optional" : 1,
16556 "type" : "boolean",
16557 "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!"
16558 },
44660702
DM
16559 "size" : {
16560 "description" : "Disk size. This is purely informational and has no effect.",
16561 "format" : "disk-size",
f004f5b9 16562 "format_description" : "DiskSize",
44660702
DM
16563 "optional" : 1,
16564 "type" : "string"
16565 },
16566 "snapshot" : {
27a7acb2 16567 "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 16568 "optional" : 1,
44660702
DM
16569 "type" : "boolean"
16570 },
25203dc1
NC
16571 "ssd" : {
16572 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
16573 "optional" : 1,
16574 "type" : "boolean"
16575 },
44660702
DM
16576 "trans" : {
16577 "description" : "Force disk geometry bios translation mode.",
56122987 16578 "enum" : [
44660702
DM
16579 "none",
16580 "lba",
16581 "auto"
56122987 16582 ],
44660702
DM
16583 "optional" : 1,
16584 "type" : "string"
16585 },
16586 "volume" : {
16587 "alias" : "file"
56122987 16588 },
7aacca6f 16589 "werror" : {
7aacca6f
DM
16590 "description" : "Write error action.",
16591 "enum" : [
16592 "enospc",
16593 "ignore",
16594 "report",
16595 "stop"
44660702 16596 ],
56122987 16597 "optional" : 1,
7aacca6f 16598 "type" : "string"
95895385
TL
16599 },
16600 "wwn" : {
16601 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
16602 "format_description" : "wwn",
16603 "optional" : 1,
16604 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
16605 "type" : "string"
56122987 16606 }
44660702 16607 },
56122987 16608 "optional" : 1,
4bd7df8b 16609 "type" : "string",
7af2edf9 16610 "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
16611 },
16612 "scsihw" : {
44660702 16613 "default" : "lsi",
c2993fe5 16614 "description" : "SCSI controller model",
56122987
DM
16615 "enum" : [
16616 "lsi",
16617 "lsi53c810",
16618 "virtio-scsi-pci",
16619 "virtio-scsi-single",
16620 "megasas",
16621 "pvscsi"
16622 ],
16623 "optional" : 1,
56122987
DM
16624 "type" : "string"
16625 },
27a7acb2 16626 "searchdomain" : {
de786b48 16627 "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
16628 "optional" : 1,
16629 "type" : "string",
16630 "typetext" : "<string>"
16631 },
44660702 16632 "serial[n]" : {
c2993fe5 16633 "description" : "Create a serial device inside the VM (n is 0 to 3)",
56122987 16634 "optional" : 1,
44660702 16635 "pattern" : "(/dev/.+|socket)",
c2993fe5 16636 "type" : "string",
4772952b 16637 "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 16638 },
44660702
DM
16639 "shares" : {
16640 "default" : 1000,
5da3d723 16641 "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
16642 "maximum" : 50000,
16643 "minimum" : 0,
7aacca6f 16644 "optional" : 1,
4bd7df8b 16645 "type" : "integer",
013dc89f 16646 "typetext" : "<integer> (0 - 50000)"
56122987 16647 },
7aacca6f
DM
16648 "skiplock" : {
16649 "description" : "Ignore locks - only root is allowed to use this option.",
44660702 16650 "optional" : 1,
013dc89f
DM
16651 "type" : "boolean",
16652 "typetext" : "<boolean>"
56122987 16653 },
44660702
DM
16654 "smbios1" : {
16655 "description" : "Specify SMBIOS type 1 fields.",
16656 "format" : "pve-qm-smbios1",
1e3f8156 16657 "maxLength" : 512,
56122987 16658 "optional" : 1,
4bd7df8b 16659 "type" : "string",
1e3f8156 16660 "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 16661 },
44660702
DM
16662 "smp" : {
16663 "default" : 1,
16664 "description" : "The number of CPUs. Please use option -sockets instead.",
16665 "minimum" : 1,
56122987 16666 "optional" : 1,
4bd7df8b 16667 "type" : "integer",
013dc89f 16668 "typetext" : "<integer> (1 - N)"
56122987 16669 },
44660702
DM
16670 "sockets" : {
16671 "default" : 1,
16672 "description" : "The number of CPU sockets.",
16673 "minimum" : 1,
56122987 16674 "optional" : 1,
4bd7df8b 16675 "type" : "integer",
013dc89f 16676 "typetext" : "<integer> (1 - N)"
56122987 16677 },
1c532546
TL
16678 "spice_enhancements" : {
16679 "description" : "Configure additional enhancements for SPICE.",
16680 "format" : {
16681 "foldersharing" : {
16682 "default" : "0",
16683 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
16684 "optional" : 1,
16685 "type" : "boolean"
16686 },
16687 "videostreaming" : {
16688 "default" : "off",
16689 "description" : "Enable video streaming. Uses compression for detected video streams.",
16690 "enum" : [
16691 "off",
16692 "all",
16693 "filter"
16694 ],
16695 "optional" : 1,
16696 "type" : "string"
16697 }
16698 },
16699 "optional" : 1,
16700 "type" : "string",
16701 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
16702 },
27a7acb2
DM
16703 "sshkeys" : {
16704 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
16705 "format" : "urlencoded",
16706 "optional" : 1,
16707 "type" : "string",
16708 "typetext" : "<string>"
16709 },
44660702
DM
16710 "startdate" : {
16711 "default" : "now",
4772952b 16712 "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
16713 "optional" : 1,
16714 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
7aacca6f 16715 "type" : "string",
44660702
DM
16716 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
16717 },
16718 "startup" : {
16719 "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.",
16720 "format" : "pve-startup-order",
7aacca6f 16721 "optional" : 1,
44660702
DM
16722 "type" : "string",
16723 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
7aacca6f 16724 },
44660702
DM
16725 "tablet" : {
16726 "default" : 1,
c2993fe5 16727 "description" : "Enable/disable the USB tablet device.",
7aacca6f 16728 "optional" : 1,
c2993fe5 16729 "type" : "boolean",
013dc89f 16730 "typetext" : "<boolean>",
4772952b 16731 "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 16732 },
5c1699e5
TL
16733 "tags" : {
16734 "description" : "Tags of the VM. This is only meta information.",
16735 "format" : "pve-tag-list",
16736 "optional" : 1,
16737 "type" : "string",
16738 "typetext" : "<string>"
16739 },
44660702
DM
16740 "tdf" : {
16741 "default" : 0,
16742 "description" : "Enable/disable time drift fix.",
7aacca6f 16743 "optional" : 1,
013dc89f
DM
16744 "type" : "boolean",
16745 "typetext" : "<boolean>"
7aacca6f 16746 },
44660702
DM
16747 "template" : {
16748 "default" : 0,
16749 "description" : "Enable/disable Template.",
7aacca6f 16750 "optional" : 1,
013dc89f
DM
16751 "type" : "boolean",
16752 "typetext" : "<boolean>"
7aacca6f 16753 },
5370fa8c 16754 "tpmstate0" : {
7af2edf9 16755 "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
16756 "format" : {
16757 "file" : {
16758 "default_key" : 1,
16759 "description" : "The drive's backing volume.",
16760 "format" : "pve-volume-id-or-qm-path",
16761 "format_description" : "volume",
16762 "type" : "string"
16763 },
7af2edf9
TL
16764 "import-from" : {
16765 "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!",
16766 "format" : "pve-volume-id-or-absolute-path",
16767 "format_description" : "source volume",
16768 "optional" : 1,
16769 "type" : "string"
16770 },
5370fa8c
TL
16771 "size" : {
16772 "description" : "Disk size. This is purely informational and has no effect.",
16773 "format" : "disk-size",
16774 "format_description" : "DiskSize",
16775 "optional" : 1,
16776 "type" : "string"
16777 },
16778 "version" : {
16779 "default" : "v2.0",
16780 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
16781 "enum" : [
16782 "v1.2",
16783 "v2.0"
16784 ],
16785 "optional" : 1,
16786 "type" : "string"
16787 },
16788 "volume" : {
16789 "alias" : "file"
16790 }
16791 },
16792 "optional" : 1,
16793 "type" : "string",
7af2edf9 16794 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 16795 },
44660702 16796 "unused[n]" : {
c2993fe5 16797 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
16798 "format" : {
16799 "file" : {
16800 "default_key" : 1,
16801 "description" : "The drive's backing volume.",
16802 "format" : "pve-volume-id",
16803 "format_description" : "volume",
16804 "type" : "string"
16805 },
16806 "volume" : {
16807 "alias" : "file"
16808 }
16809 },
7aacca6f 16810 "optional" : 1,
013dc89f 16811 "type" : "string",
c5aa7e14 16812 "typetext" : "[file=]<volume>"
7aacca6f 16813 },
44660702 16814 "usb[n]" : {
4e7f60c2 16815 "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 16816 "format" : {
44660702
DM
16817 "host" : {
16818 "default_key" : 1,
4772952b 16819 "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
44660702
DM
16820 "format" : "pve-qm-usb-device",
16821 "format_description" : "HOSTUSBDEVICE|spice",
16822 "type" : "string"
7aacca6f 16823 },
44660702 16824 "usb3" : {
c2993fe5 16825 "default" : 0,
4e7f60c2 16826 "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 16827 "optional" : 1,
44660702 16828 "type" : "boolean"
7aacca6f 16829 }
44660702 16830 },
7aacca6f 16831 "optional" : 1,
4bd7df8b
DM
16832 "type" : "string",
16833 "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
7aacca6f 16834 },
44660702 16835 "vcpus" : {
7aacca6f 16836 "default" : 0,
44660702
DM
16837 "description" : "Number of hotplugged vcpus.",
16838 "minimum" : 1,
7aacca6f 16839 "optional" : 1,
4bd7df8b 16840 "type" : "integer",
013dc89f 16841 "typetext" : "<integer> (1 - N)"
7aacca6f 16842 },
44660702 16843 "vga" : {
e2d681b3
TL
16844 "description" : "Configure the VGA hardware.",
16845 "format" : {
16846 "memory" : {
16847 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
16848 "maximum" : 512,
16849 "minimum" : 4,
16850 "optional" : 1,
16851 "type" : "integer"
16852 },
16853 "type" : {
16854 "default" : "std",
16855 "default_key" : 1,
16856 "description" : "Select the VGA type.",
16857 "enum" : [
16858 "cirrus",
16859 "qxl",
16860 "qxl2",
16861 "qxl3",
16862 "qxl4",
5f26e15b 16863 "none",
e2d681b3
TL
16864 "serial0",
16865 "serial1",
16866 "serial2",
16867 "serial3",
16868 "std",
16869 "virtio",
7af2edf9 16870 "virtio-gl",
e2d681b3
TL
16871 "vmware"
16872 ],
16873 "optional" : 1,
16874 "type" : "string"
16875 }
16876 },
7aacca6f 16877 "optional" : 1,
c2993fe5 16878 "type" : "string",
e2d681b3
TL
16879 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
16880 "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 16881 },
44660702 16882 "virtio[n]" : {
7af2edf9 16883 "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 16884 "format" : {
7aacca6f 16885 "aio" : {
7aacca6f 16886 "description" : "AIO type to use.",
56122987 16887 "enum" : [
7aacca6f 16888 "native",
8f4d9c87
TL
16889 "threads",
16890 "io_uring"
7aacca6f 16891 ],
44660702
DM
16892 "optional" : 1,
16893 "type" : "string"
56122987 16894 },
44660702
DM
16895 "backup" : {
16896 "description" : "Whether the drive should be included when making backups.",
56122987 16897 "optional" : 1,
44660702 16898 "type" : "boolean"
7aacca6f 16899 },
44660702 16900 "bps" : {
de0983cb 16901 "description" : "Maximum r/w speed in bytes per second.",
44660702 16902 "format_description" : "bps",
7aacca6f 16903 "optional" : 1,
44660702 16904 "type" : "integer"
56122987 16905 },
de0983cb
DM
16906 "bps_max_length" : {
16907 "description" : "Maximum length of I/O bursts in seconds.",
16908 "format_description" : "seconds",
16909 "minimum" : 1,
16910 "optional" : 1,
16911 "type" : "integer"
16912 },
56122987 16913 "bps_rd" : {
de0983cb 16914 "description" : "Maximum read speed in bytes per second.",
44660702 16915 "format_description" : "bps",
56122987 16916 "optional" : 1,
7aacca6f 16917 "type" : "integer"
56122987 16918 },
de0983cb 16919 "bps_rd_length" : {
5d9c884c
DM
16920 "alias" : "bps_rd_max_length"
16921 },
16922 "bps_rd_max_length" : {
de0983cb
DM
16923 "description" : "Maximum length of read I/O bursts in seconds.",
16924 "format_description" : "seconds",
16925 "minimum" : 1,
16926 "optional" : 1,
16927 "type" : "integer"
16928 },
44660702 16929 "bps_wr" : {
de0983cb 16930 "description" : "Maximum write speed in bytes per second.",
44660702 16931 "format_description" : "bps",
56122987 16932 "optional" : 1,
7aacca6f 16933 "type" : "integer"
56122987 16934 },
de0983cb 16935 "bps_wr_length" : {
5d9c884c
DM
16936 "alias" : "bps_wr_max_length"
16937 },
16938 "bps_wr_max_length" : {
de0983cb
DM
16939 "description" : "Maximum length of write I/O bursts in seconds.",
16940 "format_description" : "seconds",
16941 "minimum" : 1,
16942 "optional" : 1,
16943 "type" : "integer"
16944 },
7aacca6f 16945 "cache" : {
44660702 16946 "description" : "The drive's cache mode",
7aacca6f
DM
16947 "enum" : [
16948 "none",
16949 "writethrough",
16950 "writeback",
16951 "unsafe",
16952 "directsync"
16953 ],
56122987 16954 "optional" : 1,
44660702 16955 "type" : "string"
7aacca6f 16956 },
44660702
DM
16957 "cyls" : {
16958 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
16959 "optional" : 1,
16960 "type" : "integer"
16961 },
16962 "detect_zeroes" : {
16963 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
16964 "optional" : 1,
16965 "type" : "boolean"
16966 },
16967 "discard" : {
16968 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
56122987 16969 "enum" : [
44660702
DM
16970 "ignore",
16971 "on"
56122987
DM
16972 ],
16973 "optional" : 1,
44660702 16974 "type" : "string"
56122987 16975 },
44660702
DM
16976 "file" : {
16977 "default_key" : 1,
16978 "description" : "The drive's backing volume.",
16979 "format" : "pve-volume-id-or-qm-path",
16980 "format_description" : "volume",
16981 "type" : "string"
16982 },
16983 "format" : {
16984 "description" : "The drive's backing file's data format.",
16985 "enum" : [
16986 "raw",
16987 "cow",
16988 "qcow",
16989 "qed",
16990 "qcow2",
16991 "vmdk",
16992 "cloop"
16993 ],
56122987 16994 "optional" : 1,
44660702 16995 "type" : "string"
56122987 16996 },
44660702
DM
16997 "heads" : {
16998 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
16999 "optional" : 1,
17000 "type" : "integer"
17001 },
7af2edf9
TL
17002 "import-from" : {
17003 "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!",
17004 "format" : "pve-volume-id-or-absolute-path",
17005 "format_description" : "source volume",
17006 "optional" : 1,
17007 "type" : "string"
17008 },
44660702 17009 "iops" : {
de0983cb 17010 "description" : "Maximum r/w I/O in operations per second.",
44660702 17011 "format_description" : "iops",
56122987 17012 "optional" : 1,
44660702
DM
17013 "type" : "integer"
17014 },
17015 "iops_max" : {
de0983cb 17016 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702
DM
17017 "format_description" : "iops",
17018 "optional" : 1,
17019 "type" : "integer"
56122987 17020 },
de0983cb
DM
17021 "iops_max_length" : {
17022 "description" : "Maximum length of I/O bursts in seconds.",
17023 "format_description" : "seconds",
17024 "minimum" : 1,
17025 "optional" : 1,
17026 "type" : "integer"
17027 },
7aacca6f 17028 "iops_rd" : {
de0983cb 17029 "description" : "Maximum read I/O in operations per second.",
7aacca6f 17030 "format_description" : "iops",
7aacca6f 17031 "optional" : 1,
44660702 17032 "type" : "integer"
56122987 17033 },
de0983cb 17034 "iops_rd_length" : {
5d9c884c 17035 "alias" : "iops_rd_max_length"
de0983cb 17036 },
44660702 17037 "iops_rd_max" : {
de0983cb 17038 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
17039 "format_description" : "iops",
17040 "optional" : 1,
17041 "type" : "integer"
17042 },
5d9c884c
DM
17043 "iops_rd_max_length" : {
17044 "description" : "Maximum length of read I/O bursts in seconds.",
17045 "format_description" : "seconds",
17046 "minimum" : 1,
17047 "optional" : 1,
17048 "type" : "integer"
17049 },
44660702 17050 "iops_wr" : {
de0983cb 17051 "description" : "Maximum write I/O in operations per second.",
44660702
DM
17052 "format_description" : "iops",
17053 "optional" : 1,
17054 "type" : "integer"
17055 },
de0983cb 17056 "iops_wr_length" : {
5d9c884c 17057 "alias" : "iops_wr_max_length"
de0983cb 17058 },
44660702 17059 "iops_wr_max" : {
de0983cb 17060 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
17061 "format_description" : "iops",
17062 "optional" : 1,
17063 "type" : "integer"
17064 },
5d9c884c
DM
17065 "iops_wr_max_length" : {
17066 "description" : "Maximum length of write I/O bursts in seconds.",
17067 "format_description" : "seconds",
17068 "minimum" : 1,
17069 "optional" : 1,
17070 "type" : "integer"
17071 },
44660702
DM
17072 "iothread" : {
17073 "description" : "Whether to use iothreads for this drive",
44660702
DM
17074 "optional" : 1,
17075 "type" : "boolean"
17076 },
17077 "mbps" : {
de0983cb 17078 "description" : "Maximum r/w speed in megabytes per second.",
44660702 17079 "format_description" : "mbps",
7aacca6f 17080 "optional" : 1,
44660702 17081 "type" : "number"
7aacca6f
DM
17082 },
17083 "mbps_max" : {
de0983cb 17084 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 17085 "format_description" : "mbps",
56122987 17086 "optional" : 1,
44660702 17087 "type" : "number"
56122987 17088 },
44660702 17089 "mbps_rd" : {
de0983cb 17090 "description" : "Maximum read speed in megabytes per second.",
44660702 17091 "format_description" : "mbps",
56122987 17092 "optional" : 1,
44660702 17093 "type" : "number"
56122987 17094 },
44660702 17095 "mbps_rd_max" : {
de0983cb 17096 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
17097 "format_description" : "mbps",
17098 "optional" : 1,
17099 "type" : "number"
17100 },
17101 "mbps_wr" : {
de0983cb 17102 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
17103 "format_description" : "mbps",
17104 "optional" : 1,
17105 "type" : "number"
17106 },
17107 "mbps_wr_max" : {
de0983cb 17108 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
17109 "format_description" : "mbps",
17110 "optional" : 1,
17111 "type" : "number"
17112 },
17113 "media" : {
17114 "default" : "disk",
17115 "description" : "The drive's media type.",
56122987 17116 "enum" : [
44660702
DM
17117 "cdrom",
17118 "disk"
56122987
DM
17119 ],
17120 "optional" : 1,
44660702 17121 "type" : "string"
56122987 17122 },
5d9c884c
DM
17123 "replicate" : {
17124 "default" : 1,
17125 "description" : "Whether the drive should considered for replication jobs.",
17126 "optional" : 1,
17127 "type" : "boolean"
17128 },
44660702
DM
17129 "rerror" : {
17130 "description" : "Read error action.",
17131 "enum" : [
17132 "ignore",
17133 "report",
17134 "stop"
17135 ],
56122987 17136 "optional" : 1,
44660702 17137 "type" : "string"
56122987 17138 },
5370fa8c
TL
17139 "ro" : {
17140 "description" : "Whether the drive is read-only.",
17141 "optional" : 1,
17142 "type" : "boolean"
17143 },
44660702
DM
17144 "secs" : {
17145 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 17146 "optional" : 1,
44660702 17147 "type" : "integer"
56122987 17148 },
7aacca6f
DM
17149 "serial" : {
17150 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
7aacca6f 17151 "format" : "urlencoded",
44660702 17152 "format_description" : "serial",
7aacca6f 17153 "maxLength" : 60,
44660702
DM
17154 "optional" : 1,
17155 "type" : "string"
56122987 17156 },
27a7acb2
DM
17157 "shared" : {
17158 "default" : 0,
17159 "description" : "Mark this locally-managed volume as available on all nodes",
17160 "optional" : 1,
17161 "type" : "boolean",
17162 "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!"
17163 },
44660702
DM
17164 "size" : {
17165 "description" : "Disk size. This is purely informational and has no effect.",
17166 "format" : "disk-size",
f004f5b9 17167 "format_description" : "DiskSize",
44660702
DM
17168 "optional" : 1,
17169 "type" : "string"
56122987 17170 },
44660702 17171 "snapshot" : {
27a7acb2 17172 "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 17173 "optional" : 1,
44660702 17174 "type" : "boolean"
56122987 17175 },
44660702
DM
17176 "trans" : {
17177 "description" : "Force disk geometry bios translation mode.",
17178 "enum" : [
17179 "none",
17180 "lba",
17181 "auto"
17182 ],
7aacca6f 17183 "optional" : 1,
44660702 17184 "type" : "string"
7aacca6f 17185 },
44660702
DM
17186 "volume" : {
17187 "alias" : "file"
17188 },
17189 "werror" : {
17190 "description" : "Write error action.",
17191 "enum" : [
17192 "enospc",
17193 "ignore",
17194 "report",
17195 "stop"
17196 ],
7aacca6f 17197 "optional" : 1,
44660702 17198 "type" : "string"
56122987
DM
17199 }
17200 },
7aacca6f 17201 "optional" : 1,
4bd7df8b 17202 "type" : "string",
7af2edf9 17203 "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 17204 },
4d47f125
TL
17205 "vmgenid" : {
17206 "default" : "1 (autogenerated)",
17207 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
17208 "format_description" : "UUID",
17209 "optional" : 1,
17210 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
17211 "type" : "string",
4772952b 17212 "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 17213 },
44660702
DM
17214 "vmid" : {
17215 "description" : "The (unique) ID of the VM.",
17216 "format" : "pve-vmid",
17217 "minimum" : 1,
4bd7df8b 17218 "type" : "integer",
013dc89f 17219 "typetext" : "<integer> (1 - N)"
56122987 17220 },
2489d6df
WB
17221 "vmstatestorage" : {
17222 "description" : "Default storage for VM state volumes/files.",
17223 "format" : "pve-storage-id",
17224 "optional" : 1,
17225 "type" : "string",
17226 "typetext" : "<string>"
17227 },
44660702 17228 "watchdog" : {
c2993fe5 17229 "description" : "Create a virtual hardware watchdog device.",
44660702 17230 "format" : "pve-qm-watchdog",
56122987 17231 "optional" : 1,
c2993fe5 17232 "type" : "string",
013dc89f 17233 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
c2993fe5 17234 "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 17235 }
7aacca6f 17236 }
56122987 17237 },
56122987
DM
17238 "permissions" : {
17239 "check" : [
17240 "perm",
17241 "/vms/{vmid}",
17242 [
17243 "VM.Config.Disk",
17244 "VM.Config.CDROM",
17245 "VM.Config.CPU",
17246 "VM.Config.Memory",
17247 "VM.Config.Network",
17248 "VM.Config.HWType",
ac70d7d1
TL
17249 "VM.Config.Options",
17250 "VM.Config.Cloudinit"
56122987
DM
17251 ],
17252 "any",
17253 1
17254 ]
17255 },
44660702 17256 "protected" : 1,
7aacca6f 17257 "proxyto" : "node",
56122987 17258 "returns" : {
4d47f125
TL
17259 "optional" : 1,
17260 "type" : "string"
7aacca6f 17261 }
4d47f125
TL
17262 },
17263 "PUT" : {
e9cd3bd4 17264 "allowtoken" : 1,
4d47f125
TL
17265 "description" : "Set virtual machine options (synchrounous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.",
17266 "method" : "PUT",
17267 "name" : "update_vm",
7aacca6f 17268 "parameters" : {
44660702 17269 "additionalProperties" : 0,
7aacca6f 17270 "properties" : {
4d47f125
TL
17271 "acpi" : {
17272 "default" : 1,
17273 "description" : "Enable/disable ACPI.",
17274 "optional" : 1,
17275 "type" : "boolean",
17276 "typetext" : "<boolean>"
7aacca6f 17277 },
4e7f60c2 17278 "affinity" : {
81a3384d 17279 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
17280 "format" : "pve-cpuset",
17281 "optional" : 1,
17282 "type" : "string",
17283 "typetext" : "<string>"
17284 },
4d47f125 17285 "agent" : {
5370fa8c 17286 "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
4d47f125
TL
17287 "format" : {
17288 "enabled" : {
17289 "default" : 0,
17290 "default_key" : 1,
5370fa8c 17291 "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
4d47f125
TL
17292 "type" : "boolean"
17293 },
17294 "fstrim_cloned_disks" : {
17295 "default" : 0,
d2656385 17296 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
17297 "optional" : 1,
17298 "type" : "boolean"
5c1699e5
TL
17299 },
17300 "type" : {
17301 "default" : "virtio",
17302 "description" : "Select the agent type",
17303 "enum" : [
17304 "virtio",
17305 "isa"
17306 ],
17307 "optional" : 1,
17308 "type" : "string"
4d47f125 17309 }
44660702 17310 },
4d47f125
TL
17311 "optional" : 1,
17312 "type" : "string",
5c1699e5 17313 "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
44660702 17314 },
e2d681b3
TL
17315 "arch" : {
17316 "description" : "Virtual processor architecture. Defaults to the host.",
17317 "enum" : [
17318 "x86_64",
17319 "aarch64"
17320 ],
17321 "optional" : 1,
17322 "type" : "string"
17323 },
4d47f125
TL
17324 "args" : {
17325 "description" : "Arbitrary arguments passed to kvm.",
17326 "optional" : 1,
17327 "type" : "string",
17328 "typetext" : "<string>",
17329 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
17330 },
1c532546
TL
17331 "audio0" : {
17332 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
17333 "format" : {
17334 "device" : {
17335 "description" : "Configure an audio device.",
17336 "enum" : [
17337 "ich9-intel-hda",
17338 "intel-hda",
17339 "AC97"
17340 ],
17341 "type" : "string"
17342 },
17343 "driver" : {
17344 "default" : "spice",
17345 "description" : "Driver backend for the audio device.",
17346 "enum" : [
d2656385
TL
17347 "spice",
17348 "none"
1c532546
TL
17349 ],
17350 "optional" : 1,
17351 "type" : "string"
17352 }
17353 },
17354 "optional" : 1,
17355 "type" : "string",
d2656385 17356 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 17357 },
4d47f125
TL
17358 "autostart" : {
17359 "default" : 0,
17360 "description" : "Automatic restart after crash (currently ignored).",
7aacca6f 17361 "optional" : 1,
013dc89f
DM
17362 "type" : "boolean",
17363 "typetext" : "<boolean>"
7aacca6f 17364 },
4d47f125
TL
17365 "balloon" : {
17366 "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
17367 "minimum" : 0,
17368 "optional" : 1,
17369 "type" : "integer",
17370 "typetext" : "<integer> (0 - N)"
17371 },
17372 "bios" : {
17373 "default" : "seabios",
17374 "description" : "Select BIOS implementation.",
17375 "enum" : [
17376 "seabios",
17377 "ovmf"
17378 ],
17379 "optional" : 1,
17380 "type" : "string"
17381 },
17382 "boot" : {
5370fa8c 17383 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 17384 "format" : "pve-qm-boot",
4d47f125 17385 "optional" : 1,
4772952b
TL
17386 "type" : "string",
17387 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
4d47f125
TL
17388 },
17389 "bootdisk" : {
4772952b 17390 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
4d47f125
TL
17391 "format" : "pve-qm-bootdisk",
17392 "optional" : 1,
17393 "pattern" : "(ide|sata|scsi|virtio)\\d+",
17394 "type" : "string"
17395 },
17396 "cdrom" : {
17397 "description" : "This is an alias for option -ide2",
17398 "format" : "pve-qm-ide",
17399 "optional" : 1,
17400 "type" : "string",
17401 "typetext" : "<volume>"
17402 },
95895385
TL
17403 "cicustom" : {
17404 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
17405 "format" : "pve-qm-cicustom",
17406 "optional" : 1,
17407 "type" : "string",
5370fa8c 17408 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 17409 },
4d47f125
TL
17410 "cipassword" : {
17411 "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.",
17412 "optional" : 1,
013dc89f
DM
17413 "type" : "string",
17414 "typetext" : "<string>"
44660702 17415 },
4d47f125
TL
17416 "citype" : {
17417 "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.",
17418 "enum" : [
17419 "configdrive2",
d2656385
TL
17420 "nocloud",
17421 "opennebula"
4d47f125
TL
17422 ],
17423 "optional" : 1,
17424 "type" : "string"
17425 },
17426 "ciuser" : {
17427 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
17428 "optional" : 1,
013dc89f
DM
17429 "type" : "string",
17430 "typetext" : "<string>"
56122987 17431 },
4d47f125
TL
17432 "cores" : {
17433 "default" : 1,
17434 "description" : "The number of cores per socket.",
7aacca6f 17435 "minimum" : 1,
4d47f125 17436 "optional" : 1,
4bd7df8b 17437 "type" : "integer",
013dc89f 17438 "typetext" : "<integer> (1 - N)"
4d47f125
TL
17439 },
17440 "cpu" : {
17441 "description" : "Emulated CPU type.",
c5aa7e14 17442 "format" : "pve-vm-cpu-conf",
4d47f125 17443 "optional" : 1,
013dc89f 17444 "type" : "string",
04d22a9f 17445 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
44660702 17446 },
4d47f125
TL
17447 "cpulimit" : {
17448 "default" : 0,
17449 "description" : "Limit of CPU usage.",
17450 "maximum" : 128,
17451 "minimum" : 0,
17452 "optional" : 1,
17453 "type" : "number",
17454 "typetext" : "<number> (0 - 128)",
17455 "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."
17456 },
17457 "cpuunits" : {
5370fa8c
TL
17458 "default" : "cgroup v1: 1024, cgroup v2: 100",
17459 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
4d47f125 17460 "maximum" : 262144,
7af2edf9 17461 "minimum" : 1,
4d47f125 17462 "optional" : 1,
4bd7df8b 17463 "type" : "integer",
7af2edf9 17464 "typetext" : "<integer> (1 - 262144)",
4d47f125 17465 "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 17466 },
4d47f125
TL
17467 "delete" : {
17468 "description" : "A list of settings you want to delete.",
17469 "format" : "pve-configid-list",
17470 "optional" : 1,
17471 "type" : "string",
17472 "typetext" : "<string>"
17473 },
17474 "description" : {
8f4d9c87
TL
17475 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
17476 "maxLength" : 8192,
4d47f125
TL
17477 "optional" : 1,
17478 "type" : "string",
17479 "typetext" : "<string>"
17480 },
17481 "digest" : {
17482 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
17483 "maxLength" : 40,
44660702 17484 "optional" : 1,
4d47f125
TL
17485 "type" : "string",
17486 "typetext" : "<string>"
17487 },
17488 "efidisk0" : {
7af2edf9 17489 "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 17490 "format" : {
5370fa8c
TL
17491 "efitype" : {
17492 "default" : "2m",
17493 "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.",
17494 "enum" : [
17495 "2m",
17496 "4m"
17497 ],
17498 "optional" : 1,
17499 "type" : "string"
17500 },
4d47f125
TL
17501 "file" : {
17502 "default_key" : 1,
17503 "description" : "The drive's backing volume.",
17504 "format" : "pve-volume-id-or-qm-path",
17505 "format_description" : "volume",
17506 "type" : "string"
17507 },
17508 "format" : {
17509 "description" : "The drive's backing file's data format.",
17510 "enum" : [
17511 "raw",
17512 "cow",
17513 "qcow",
17514 "qed",
17515 "qcow2",
17516 "vmdk",
17517 "cloop"
17518 ],
17519 "optional" : 1,
17520 "type" : "string"
17521 },
7af2edf9
TL
17522 "import-from" : {
17523 "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!",
17524 "format" : "pve-volume-id-or-absolute-path",
17525 "format_description" : "source volume",
17526 "optional" : 1,
17527 "type" : "string"
17528 },
5370fa8c
TL
17529 "pre-enrolled-keys" : {
17530 "default" : 0,
17531 "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.",
17532 "optional" : 1,
17533 "type" : "boolean"
17534 },
4d47f125
TL
17535 "size" : {
17536 "description" : "Disk size. This is purely informational and has no effect.",
17537 "format" : "disk-size",
17538 "format_description" : "DiskSize",
17539 "optional" : 1,
17540 "type" : "string"
17541 },
17542 "volume" : {
17543 "alias" : "file"
17544 }
17545 },
17546 "optional" : 1,
17547 "type" : "string",
7af2edf9 17548 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125
TL
17549 },
17550 "force" : {
17551 "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.",
17552 "optional" : 1,
17553 "requires" : "delete",
013dc89f
DM
17554 "type" : "boolean",
17555 "typetext" : "<boolean>"
56122987 17556 },
4d47f125
TL
17557 "freeze" : {
17558 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
17559 "optional" : 1,
17560 "type" : "boolean",
17561 "typetext" : "<boolean>"
7aacca6f 17562 },
5f26e15b
TL
17563 "hookscript" : {
17564 "description" : "Script that will be executed during various steps in the vms lifetime.",
17565 "format" : "pve-volume-id",
17566 "optional" : 1,
17567 "type" : "string",
17568 "typetext" : "<string>"
17569 },
4d47f125
TL
17570 "hostpci[n]" : {
17571 "description" : "Map host PCI devices into guest.",
17572 "format" : "pve-qm-hostpci",
17573 "optional" : 1,
17574 "type" : "string",
7af2edf9 17575 "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
bb4c8cf8 17576 "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 17577 },
4d47f125
TL
17578 "hotplug" : {
17579 "default" : "network,disk,usb",
4e7f60c2 17580 "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
17581 "format" : "pve-hotplug-features",
17582 "optional" : 1,
35a75dd3
DM
17583 "type" : "string",
17584 "typetext" : "<string>"
17585 },
4d47f125
TL
17586 "hugepages" : {
17587 "description" : "Enable/disable hugepages memory.",
35a75dd3 17588 "enum" : [
4d47f125
TL
17589 "any",
17590 "2",
17591 "1024"
35a75dd3
DM
17592 ],
17593 "optional" : 1,
17594 "type" : "string"
17595 },
4d47f125 17596 "ide[n]" : {
7af2edf9 17597 "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
17598 "format" : {
17599 "aio" : {
17600 "description" : "AIO type to use.",
17601 "enum" : [
17602 "native",
8f4d9c87
TL
17603 "threads",
17604 "io_uring"
4d47f125 17605 ],
44660702 17606 "optional" : 1,
44660702
DM
17607 "type" : "string"
17608 },
4d47f125
TL
17609 "backup" : {
17610 "description" : "Whether the drive should be included when making backups.",
56122987 17611 "optional" : 1,
4d47f125 17612 "type" : "boolean"
56122987 17613 },
4d47f125
TL
17614 "bps" : {
17615 "description" : "Maximum r/w speed in bytes per second.",
17616 "format_description" : "bps",
de0983cb 17617 "optional" : 1,
4d47f125 17618 "type" : "integer"
de0983cb 17619 },
4d47f125
TL
17620 "bps_max_length" : {
17621 "description" : "Maximum length of I/O bursts in seconds.",
17622 "format_description" : "seconds",
17623 "minimum" : 1,
de0983cb 17624 "optional" : 1,
4d47f125 17625 "type" : "integer"
7aacca6f 17626 },
4d47f125
TL
17627 "bps_rd" : {
17628 "description" : "Maximum read speed in bytes per second.",
17629 "format_description" : "bps",
7aacca6f 17630 "optional" : 1,
4d47f125 17631 "type" : "integer"
56122987 17632 },
4d47f125
TL
17633 "bps_rd_length" : {
17634 "alias" : "bps_rd_max_length"
17635 },
17636 "bps_rd_max_length" : {
17637 "description" : "Maximum length of read I/O bursts in seconds.",
17638 "format_description" : "seconds",
17639 "minimum" : 1,
56122987 17640 "optional" : 1,
4d47f125 17641 "type" : "integer"
56122987 17642 },
4d47f125
TL
17643 "bps_wr" : {
17644 "description" : "Maximum write speed in bytes per second.",
17645 "format_description" : "bps",
52e44c50 17646 "optional" : 1,
4d47f125 17647 "type" : "integer"
52e44c50 17648 },
4d47f125
TL
17649 "bps_wr_length" : {
17650 "alias" : "bps_wr_max_length"
17651 },
17652 "bps_wr_max_length" : {
17653 "description" : "Maximum length of write I/O bursts in seconds.",
17654 "format_description" : "seconds",
44660702 17655 "minimum" : 1,
56122987 17656 "optional" : 1,
4d47f125 17657 "type" : "integer"
56122987 17658 },
4d47f125
TL
17659 "cache" : {
17660 "description" : "The drive's cache mode",
17661 "enum" : [
17662 "none",
17663 "writethrough",
17664 "writeback",
17665 "unsafe",
17666 "directsync"
17667 ],
7aacca6f 17668 "optional" : 1,
4d47f125 17669 "type" : "string"
7aacca6f 17670 },
4d47f125
TL
17671 "cyls" : {
17672 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
17673 "optional" : 1,
17674 "type" : "integer"
56122987 17675 },
4d47f125
TL
17676 "detect_zeroes" : {
17677 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 17678 "optional" : 1,
4d47f125 17679 "type" : "boolean"
56122987 17680 },
4d47f125
TL
17681 "discard" : {
17682 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
17683 "enum" : [
17684 "ignore",
17685 "on"
17686 ],
56122987 17687 "optional" : 1,
4d47f125 17688 "type" : "string"
7aacca6f 17689 },
4d47f125
TL
17690 "file" : {
17691 "default_key" : 1,
17692 "description" : "The drive's backing volume.",
17693 "format" : "pve-volume-id-or-qm-path",
17694 "format_description" : "volume",
17695 "type" : "string"
56122987 17696 },
4d47f125
TL
17697 "format" : {
17698 "description" : "The drive's backing file's data format.",
17699 "enum" : [
17700 "raw",
17701 "cow",
17702 "qcow",
17703 "qed",
17704 "qcow2",
17705 "vmdk",
17706 "cloop"
17707 ],
7aacca6f 17708 "optional" : 1,
4d47f125 17709 "type" : "string"
7aacca6f 17710 },
4d47f125
TL
17711 "heads" : {
17712 "description" : "Force the drive's physical geometry to have a specific head count.",
7aacca6f 17713 "optional" : 1,
4d47f125 17714 "type" : "integer"
56122987 17715 },
7af2edf9
TL
17716 "import-from" : {
17717 "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!",
17718 "format" : "pve-volume-id-or-absolute-path",
17719 "format_description" : "source volume",
17720 "optional" : 1,
17721 "type" : "string"
17722 },
4d47f125
TL
17723 "iops" : {
17724 "description" : "Maximum r/w I/O in operations per second.",
17725 "format_description" : "iops",
44660702 17726 "optional" : 1,
4d47f125 17727 "type" : "integer"
44660702 17728 },
4d47f125
TL
17729 "iops_max" : {
17730 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
17731 "format_description" : "iops",
44660702 17732 "optional" : 1,
4d47f125 17733 "type" : "integer"
56122987 17734 },
4d47f125
TL
17735 "iops_max_length" : {
17736 "description" : "Maximum length of I/O bursts in seconds.",
17737 "format_description" : "seconds",
17738 "minimum" : 1,
7aacca6f 17739 "optional" : 1,
4d47f125 17740 "type" : "integer"
7aacca6f 17741 },
4d47f125
TL
17742 "iops_rd" : {
17743 "description" : "Maximum read I/O in operations per second.",
17744 "format_description" : "iops",
17745 "optional" : 1,
17746 "type" : "integer"
17747 },
17748 "iops_rd_length" : {
17749 "alias" : "iops_rd_max_length"
17750 },
17751 "iops_rd_max" : {
17752 "description" : "Maximum unthrottled read I/O pool in operations per second.",
17753 "format_description" : "iops",
17754 "optional" : 1,
17755 "type" : "integer"
17756 },
17757 "iops_rd_max_length" : {
17758 "description" : "Maximum length of read I/O bursts in seconds.",
17759 "format_description" : "seconds",
44660702 17760 "minimum" : 1,
4d47f125
TL
17761 "optional" : 1,
17762 "type" : "integer"
7aacca6f 17763 },
4d47f125
TL
17764 "iops_wr" : {
17765 "description" : "Maximum write I/O in operations per second.",
17766 "format_description" : "iops",
44660702 17767 "optional" : 1,
4d47f125 17768 "type" : "integer"
44660702 17769 },
4d47f125
TL
17770 "iops_wr_length" : {
17771 "alias" : "iops_wr_max_length"
17772 },
17773 "iops_wr_max" : {
17774 "description" : "Maximum unthrottled write I/O pool in operations per second.",
17775 "format_description" : "iops",
17776 "optional" : 1,
17777 "type" : "integer"
17778 },
17779 "iops_wr_max_length" : {
17780 "description" : "Maximum length of write I/O bursts in seconds.",
17781 "format_description" : "seconds",
44660702 17782 "minimum" : 1,
44660702 17783 "optional" : 1,
4d47f125 17784 "type" : "integer"
44660702 17785 },
4d47f125
TL
17786 "mbps" : {
17787 "description" : "Maximum r/w speed in megabytes per second.",
17788 "format_description" : "mbps",
17789 "optional" : 1,
17790 "type" : "number"
56122987 17791 },
4d47f125
TL
17792 "mbps_max" : {
17793 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
17794 "format_description" : "mbps",
17795 "optional" : 1,
17796 "type" : "number"
17797 },
17798 "mbps_rd" : {
17799 "description" : "Maximum read speed in megabytes per second.",
17800 "format_description" : "mbps",
17801 "optional" : 1,
17802 "type" : "number"
17803 },
17804 "mbps_rd_max" : {
17805 "description" : "Maximum unthrottled read pool in megabytes per second.",
17806 "format_description" : "mbps",
17807 "optional" : 1,
17808 "type" : "number"
17809 },
17810 "mbps_wr" : {
17811 "description" : "Maximum write speed in megabytes per second.",
17812 "format_description" : "mbps",
17813 "optional" : 1,
17814 "type" : "number"
17815 },
17816 "mbps_wr_max" : {
17817 "description" : "Maximum unthrottled write pool in megabytes per second.",
17818 "format_description" : "mbps",
17819 "optional" : 1,
17820 "type" : "number"
17821 },
17822 "media" : {
17823 "default" : "disk",
17824 "description" : "The drive's media type.",
17825 "enum" : [
17826 "cdrom",
17827 "disk"
17828 ],
17829 "optional" : 1,
17830 "type" : "string"
17831 },
17832 "model" : {
17833 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
17834 "format" : "urlencoded",
17835 "format_description" : "model",
17836 "maxLength" : 120,
17837 "optional" : 1,
17838 "type" : "string"
17839 },
17840 "replicate" : {
17841 "default" : 1,
17842 "description" : "Whether the drive should considered for replication jobs.",
17843 "optional" : 1,
17844 "type" : "boolean"
17845 },
17846 "rerror" : {
17847 "description" : "Read error action.",
17848 "enum" : [
17849 "ignore",
17850 "report",
17851 "stop"
17852 ],
17853 "optional" : 1,
17854 "type" : "string"
17855 },
17856 "secs" : {
17857 "description" : "Force the drive's physical geometry to have a specific sector count.",
17858 "optional" : 1,
17859 "type" : "integer"
17860 },
17861 "serial" : {
17862 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
17863 "format" : "urlencoded",
17864 "format_description" : "serial",
17865 "maxLength" : 60,
17866 "optional" : 1,
17867 "type" : "string"
17868 },
17869 "shared" : {
17870 "default" : 0,
17871 "description" : "Mark this locally-managed volume as available on all nodes",
44660702 17872 "optional" : 1,
013dc89f 17873 "type" : "boolean",
4d47f125 17874 "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 17875 },
4d47f125
TL
17876 "size" : {
17877 "description" : "Disk size. This is purely informational and has no effect.",
17878 "format" : "disk-size",
17879 "format_description" : "DiskSize",
17880 "optional" : 1,
17881 "type" : "string"
17882 },
17883 "snapshot" : {
17884 "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.",
17885 "optional" : 1,
17886 "type" : "boolean"
17887 },
25203dc1
NC
17888 "ssd" : {
17889 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
17890 "optional" : 1,
17891 "type" : "boolean"
17892 },
4d47f125
TL
17893 "trans" : {
17894 "description" : "Force disk geometry bios translation mode.",
17895 "enum" : [
17896 "none",
17897 "lba",
17898 "auto"
17899 ],
17900 "optional" : 1,
17901 "type" : "string"
17902 },
17903 "volume" : {
17904 "alias" : "file"
17905 },
17906 "werror" : {
17907 "description" : "Write error action.",
17908 "enum" : [
17909 "enospc",
17910 "ignore",
17911 "report",
17912 "stop"
17913 ],
17914 "optional" : 1,
17915 "type" : "string"
95895385
TL
17916 },
17917 "wwn" : {
17918 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
17919 "format_description" : "wwn",
17920 "optional" : 1,
17921 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
17922 "type" : "string"
4d47f125
TL
17923 }
17924 },
17925 "optional" : 1,
013dc89f 17926 "type" : "string",
7af2edf9 17927 "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 17928 },
4d47f125 17929 "ipconfig[n]" : {
d2656385 17930 "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
17931 "format" : "pve-qm-ipconfig",
17932 "optional" : 1,
013dc89f 17933 "type" : "string",
4d47f125 17934 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
44660702 17935 },
95895385
TL
17936 "ivshmem" : {
17937 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
17938 "format" : {
17939 "name" : {
17940 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
17941 "format_description" : "string",
17942 "optional" : 1,
17943 "pattern" : "[a-zA-Z0-9\\-]+",
17944 "type" : "string"
17945 },
17946 "size" : {
17947 "description" : "The size of the file in MB.",
17948 "minimum" : 1,
17949 "type" : "integer"
17950 }
17951 },
17952 "optional" : 1,
17953 "type" : "string",
17954 "typetext" : "size=<integer> [,name=<string>]"
17955 },
4772952b
TL
17956 "keephugepages" : {
17957 "default" : 0,
17958 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
17959 "optional" : 1,
17960 "type" : "boolean",
17961 "typetext" : "<boolean>"
17962 },
4d47f125
TL
17963 "keyboard" : {
17964 "default" : null,
7af2edf9 17965 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
4d47f125
TL
17966 "enum" : [
17967 "de",
17968 "de-ch",
17969 "da",
17970 "en-gb",
17971 "en-us",
17972 "es",
17973 "fi",
17974 "fr",
17975 "fr-be",
17976 "fr-ca",
17977 "fr-ch",
17978 "hu",
17979 "is",
17980 "it",
17981 "ja",
17982 "lt",
17983 "mk",
17984 "nl",
17985 "no",
17986 "pl",
17987 "pt",
17988 "pt-br",
17989 "sv",
17990 "sl",
17991 "tr"
17992 ],
17993 "optional" : 1,
17994 "type" : "string"
44660702 17995 },
4d47f125
TL
17996 "kvm" : {
17997 "default" : 1,
17998 "description" : "Enable/disable KVM hardware virtualization.",
44660702 17999 "optional" : 1,
013dc89f
DM
18000 "type" : "boolean",
18001 "typetext" : "<boolean>"
7aacca6f 18002 },
4d47f125 18003 "localtime" : {
5370fa8c 18004 "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
18005 "optional" : 1,
18006 "type" : "boolean",
18007 "typetext" : "<boolean>"
18008 },
18009 "lock" : {
18010 "description" : "Lock/unlock the VM.",
56122987 18011 "enum" : [
4d47f125 18012 "backup",
5f26e15b
TL
18013 "clone",
18014 "create",
18015 "migrate",
18016 "rollback",
56122987 18017 "snapshot",
95895385
TL
18018 "snapshot-delete",
18019 "suspending",
18020 "suspended"
56122987 18021 ],
4d47f125 18022 "optional" : 1,
44660702
DM
18023 "type" : "string"
18024 },
4d47f125
TL
18025 "machine" : {
18026 "description" : "Specifies the Qemu machine type.",
18027 "maxLength" : 40,
18028 "optional" : 1,
5c1699e5 18029 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
4d47f125
TL
18030 "type" : "string"
18031 },
18032 "memory" : {
18033 "default" : 512,
18034 "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
18035 "minimum" : 16,
18036 "optional" : 1,
18037 "type" : "integer",
18038 "typetext" : "<integer> (16 - N)"
18039 },
18040 "migrate_downtime" : {
18041 "default" : 0.1,
18042 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
18043 "minimum" : 0,
18044 "optional" : 1,
18045 "type" : "number",
18046 "typetext" : "<number> (0 - N)"
18047 },
18048 "migrate_speed" : {
18049 "default" : 0,
18050 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
18051 "minimum" : 0,
18052 "optional" : 1,
18053 "type" : "integer",
18054 "typetext" : "<integer> (0 - N)"
18055 },
18056 "name" : {
18057 "description" : "Set a name for the VM. Only used on the configuration web interface.",
18058 "format" : "dns-name",
18059 "optional" : 1,
013dc89f
DM
18060 "type" : "string",
18061 "typetext" : "<string>"
56122987 18062 },
4d47f125 18063 "nameserver" : {
de786b48 18064 "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 18065 "format" : "address-list",
7aacca6f 18066 "optional" : 1,
013dc89f
DM
18067 "type" : "string",
18068 "typetext" : "<string>"
7aacca6f 18069 },
4d47f125
TL
18070 "net[n]" : {
18071 "description" : "Specify network devices.",
18072 "format" : {
18073 "bridge" : {
18074 "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 18075 "format" : "pve-bridge-id",
4d47f125
TL
18076 "format_description" : "bridge",
18077 "optional" : 1,
18078 "type" : "string"
18079 },
18080 "e1000" : {
18081 "alias" : "macaddr",
18082 "keyAlias" : "model"
18083 },
18084 "e1000-82540em" : {
18085 "alias" : "macaddr",
18086 "keyAlias" : "model"
18087 },
18088 "e1000-82544gc" : {
18089 "alias" : "macaddr",
18090 "keyAlias" : "model"
18091 },
18092 "e1000-82545em" : {
18093 "alias" : "macaddr",
18094 "keyAlias" : "model"
18095 },
5370fa8c
TL
18096 "e1000e" : {
18097 "alias" : "macaddr",
18098 "keyAlias" : "model"
18099 },
4d47f125
TL
18100 "firewall" : {
18101 "description" : "Whether this interface should be protected by the firewall.",
18102 "optional" : 1,
18103 "type" : "boolean"
18104 },
18105 "i82551" : {
18106 "alias" : "macaddr",
18107 "keyAlias" : "model"
18108 },
18109 "i82557b" : {
18110 "alias" : "macaddr",
18111 "keyAlias" : "model"
18112 },
18113 "i82559er" : {
18114 "alias" : "macaddr",
18115 "keyAlias" : "model"
18116 },
18117 "link_down" : {
18118 "description" : "Whether this interface should be disconnected (like pulling the plug).",
18119 "optional" : 1,
18120 "type" : "boolean"
18121 },
18122 "macaddr" : {
18123 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 18124 "format" : "mac-addr",
4d47f125
TL
18125 "format_description" : "XX:XX:XX:XX:XX:XX",
18126 "optional" : 1,
95895385
TL
18127 "type" : "string",
18128 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
18129 },
18130 "model" : {
18131 "default_key" : 1,
18132 "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'.",
18133 "enum" : [
4d47f125 18134 "e1000",
5370fa8c
TL
18135 "e1000-82540em",
18136 "e1000-82544gc",
18137 "e1000-82545em",
18138 "e1000e",
4d47f125
TL
18139 "i82551",
18140 "i82557b",
18141 "i82559er",
5370fa8c
TL
18142 "ne2k_isa",
18143 "ne2k_pci",
18144 "pcnet",
18145 "rtl8139",
18146 "virtio",
18147 "vmxnet3"
4d47f125
TL
18148 ],
18149 "type" : "string"
18150 },
ac70d7d1
TL
18151 "mtu" : {
18152 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
18153 "maximum" : 65520,
18154 "minimum" : 1,
18155 "optional" : 1,
18156 "type" : "integer"
18157 },
4d47f125
TL
18158 "ne2k_isa" : {
18159 "alias" : "macaddr",
18160 "keyAlias" : "model"
18161 },
18162 "ne2k_pci" : {
18163 "alias" : "macaddr",
18164 "keyAlias" : "model"
18165 },
18166 "pcnet" : {
18167 "alias" : "macaddr",
18168 "keyAlias" : "model"
18169 },
18170 "queues" : {
18171 "description" : "Number of packet queues to be used on the device.",
81a3384d 18172 "maximum" : 64,
4d47f125
TL
18173 "minimum" : 0,
18174 "optional" : 1,
18175 "type" : "integer"
18176 },
18177 "rate" : {
18178 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
18179 "minimum" : 0,
18180 "optional" : 1,
18181 "type" : "number"
18182 },
18183 "rtl8139" : {
18184 "alias" : "macaddr",
18185 "keyAlias" : "model"
18186 },
18187 "tag" : {
18188 "description" : "VLAN tag to apply to packets on this interface.",
18189 "maximum" : 4094,
18190 "minimum" : 1,
18191 "optional" : 1,
18192 "type" : "integer"
18193 },
18194 "trunks" : {
18195 "description" : "VLAN trunks to pass through this interface.",
18196 "format_description" : "vlanid[;vlanid...]",
18197 "optional" : 1,
18198 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
18199 "type" : "string"
18200 },
18201 "virtio" : {
18202 "alias" : "macaddr",
18203 "keyAlias" : "model"
18204 },
18205 "vmxnet3" : {
18206 "alias" : "macaddr",
18207 "keyAlias" : "model"
18208 }
44660702 18209 },
44660702 18210 "optional" : 1,
013dc89f 18211 "type" : "string",
ac70d7d1 18212 "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
18213 },
18214 "node" : {
18215 "description" : "The cluster node name.",
18216 "format" : "pve-node",
013dc89f
DM
18217 "type" : "string",
18218 "typetext" : "<string>"
7aacca6f 18219 },
4d47f125
TL
18220 "numa" : {
18221 "default" : 0,
18222 "description" : "Enable/disable NUMA.",
56122987 18223 "optional" : 1,
4d47f125
TL
18224 "type" : "boolean",
18225 "typetext" : "<boolean>"
56122987 18226 },
4d47f125
TL
18227 "numa[n]" : {
18228 "description" : "NUMA topology.",
18229 "format" : {
18230 "cpus" : {
18231 "description" : "CPUs accessing this NUMA node.",
18232 "format_description" : "id[-id];...",
18233 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
18234 "type" : "string"
18235 },
18236 "hostnodes" : {
18237 "description" : "Host NUMA nodes to use.",
18238 "format_description" : "id[-id];...",
18239 "optional" : 1,
18240 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
18241 "type" : "string"
18242 },
18243 "memory" : {
18244 "description" : "Amount of memory this NUMA node provides.",
18245 "optional" : 1,
18246 "type" : "number"
18247 },
18248 "policy" : {
18249 "description" : "NUMA allocation policy.",
18250 "enum" : [
18251 "preferred",
18252 "bind",
18253 "interleave"
18254 ],
18255 "optional" : 1,
18256 "type" : "string"
18257 }
18258 },
7aacca6f 18259 "optional" : 1,
013dc89f 18260 "type" : "string",
4d47f125 18261 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
56122987 18262 },
4d47f125 18263 "onboot" : {
44660702 18264 "default" : 0,
4d47f125 18265 "description" : "Specifies whether a VM will be started during system bootup.",
7aacca6f 18266 "optional" : 1,
013dc89f
DM
18267 "type" : "boolean",
18268 "typetext" : "<boolean>"
56122987 18269 },
4d47f125
TL
18270 "ostype" : {
18271 "description" : "Specify guest operating system.",
7aacca6f 18272 "enum" : [
4d47f125
TL
18273 "other",
18274 "wxp",
18275 "w2k",
18276 "w2k3",
18277 "w2k8",
18278 "wvista",
18279 "win7",
18280 "win8",
18281 "win10",
5370fa8c 18282 "win11",
4d47f125
TL
18283 "l24",
18284 "l26",
18285 "solaris"
7aacca6f
DM
18286 ],
18287 "optional" : 1,
013dc89f 18288 "type" : "string",
5370fa8c 18289 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 5.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
44660702 18290 },
4d47f125
TL
18291 "parallel[n]" : {
18292 "description" : "Map host parallel devices (n is 0 to 2).",
18293 "optional" : 1,
18294 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
013dc89f 18295 "type" : "string",
4772952b 18296 "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 18297 },
4d47f125
TL
18298 "protection" : {
18299 "default" : 0,
18300 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
44660702 18301 "optional" : 1,
013dc89f
DM
18302 "type" : "boolean",
18303 "typetext" : "<boolean>"
44660702 18304 },
4d47f125
TL
18305 "reboot" : {
18306 "default" : 1,
18307 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
56122987 18308 "optional" : 1,
013dc89f
DM
18309 "type" : "boolean",
18310 "typetext" : "<boolean>"
56122987 18311 },
4d47f125
TL
18312 "revert" : {
18313 "description" : "Revert a pending change.",
18314 "format" : "pve-configid-list",
18315 "optional" : 1,
013dc89f
DM
18316 "type" : "string",
18317 "typetext" : "<string>"
56122987 18318 },
c5aa7e14
TL
18319 "rng0" : {
18320 "description" : "Configure a VirtIO-based Random Number Generator.",
18321 "format" : {
18322 "max_bytes" : {
18323 "default" : 1024,
5370fa8c 18324 "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
18325 "optional" : 1,
18326 "type" : "integer"
18327 },
18328 "period" : {
18329 "default" : 1000,
18330 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
18331 "optional" : 1,
18332 "type" : "integer"
18333 },
18334 "source" : {
18335 "default_key" : 1,
5370fa8c 18336 "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
18337 "enum" : [
18338 "/dev/urandom",
18339 "/dev/random",
18340 "/dev/hwrng"
18341 ],
18342 "type" : "string"
18343 }
18344 },
18345 "optional" : 1,
18346 "type" : "string",
18347 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
18348 },
4d47f125 18349 "sata[n]" : {
7af2edf9 18350 "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
18351 "format" : {
18352 "aio" : {
18353 "description" : "AIO type to use.",
18354 "enum" : [
18355 "native",
8f4d9c87
TL
18356 "threads",
18357 "io_uring"
4d47f125
TL
18358 ],
18359 "optional" : 1,
18360 "type" : "string"
18361 },
18362 "backup" : {
18363 "description" : "Whether the drive should be included when making backups.",
18364 "optional" : 1,
18365 "type" : "boolean"
18366 },
18367 "bps" : {
18368 "description" : "Maximum r/w speed in bytes per second.",
18369 "format_description" : "bps",
18370 "optional" : 1,
18371 "type" : "integer"
18372 },
18373 "bps_max_length" : {
18374 "description" : "Maximum length of I/O bursts in seconds.",
18375 "format_description" : "seconds",
18376 "minimum" : 1,
18377 "optional" : 1,
18378 "type" : "integer"
18379 },
18380 "bps_rd" : {
18381 "description" : "Maximum read speed in bytes per second.",
18382 "format_description" : "bps",
18383 "optional" : 1,
18384 "type" : "integer"
18385 },
18386 "bps_rd_length" : {
18387 "alias" : "bps_rd_max_length"
18388 },
18389 "bps_rd_max_length" : {
18390 "description" : "Maximum length of read I/O bursts in seconds.",
18391 "format_description" : "seconds",
18392 "minimum" : 1,
18393 "optional" : 1,
18394 "type" : "integer"
18395 },
18396 "bps_wr" : {
18397 "description" : "Maximum write speed in bytes per second.",
18398 "format_description" : "bps",
18399 "optional" : 1,
18400 "type" : "integer"
18401 },
18402 "bps_wr_length" : {
18403 "alias" : "bps_wr_max_length"
18404 },
18405 "bps_wr_max_length" : {
18406 "description" : "Maximum length of write I/O bursts in seconds.",
18407 "format_description" : "seconds",
18408 "minimum" : 1,
18409 "optional" : 1,
18410 "type" : "integer"
18411 },
18412 "cache" : {
18413 "description" : "The drive's cache mode",
18414 "enum" : [
18415 "none",
18416 "writethrough",
18417 "writeback",
18418 "unsafe",
18419 "directsync"
18420 ],
18421 "optional" : 1,
18422 "type" : "string"
18423 },
18424 "cyls" : {
18425 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
18426 "optional" : 1,
18427 "type" : "integer"
18428 },
18429 "detect_zeroes" : {
18430 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
18431 "optional" : 1,
18432 "type" : "boolean"
18433 },
18434 "discard" : {
18435 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
18436 "enum" : [
18437 "ignore",
18438 "on"
18439 ],
18440 "optional" : 1,
18441 "type" : "string"
18442 },
18443 "file" : {
18444 "default_key" : 1,
18445 "description" : "The drive's backing volume.",
18446 "format" : "pve-volume-id-or-qm-path",
18447 "format_description" : "volume",
18448 "type" : "string"
18449 },
18450 "format" : {
18451 "description" : "The drive's backing file's data format.",
18452 "enum" : [
18453 "raw",
18454 "cow",
18455 "qcow",
18456 "qed",
18457 "qcow2",
18458 "vmdk",
18459 "cloop"
18460 ],
18461 "optional" : 1,
18462 "type" : "string"
18463 },
18464 "heads" : {
18465 "description" : "Force the drive's physical geometry to have a specific head count.",
18466 "optional" : 1,
18467 "type" : "integer"
18468 },
7af2edf9
TL
18469 "import-from" : {
18470 "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!",
18471 "format" : "pve-volume-id-or-absolute-path",
18472 "format_description" : "source volume",
18473 "optional" : 1,
18474 "type" : "string"
18475 },
4d47f125
TL
18476 "iops" : {
18477 "description" : "Maximum r/w I/O in operations per second.",
18478 "format_description" : "iops",
18479 "optional" : 1,
18480 "type" : "integer"
18481 },
18482 "iops_max" : {
18483 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
18484 "format_description" : "iops",
18485 "optional" : 1,
18486 "type" : "integer"
18487 },
18488 "iops_max_length" : {
18489 "description" : "Maximum length of I/O bursts in seconds.",
18490 "format_description" : "seconds",
18491 "minimum" : 1,
18492 "optional" : 1,
18493 "type" : "integer"
18494 },
18495 "iops_rd" : {
18496 "description" : "Maximum read I/O in operations per second.",
18497 "format_description" : "iops",
18498 "optional" : 1,
18499 "type" : "integer"
18500 },
18501 "iops_rd_length" : {
18502 "alias" : "iops_rd_max_length"
18503 },
18504 "iops_rd_max" : {
18505 "description" : "Maximum unthrottled read I/O pool in operations per second.",
18506 "format_description" : "iops",
18507 "optional" : 1,
18508 "type" : "integer"
18509 },
18510 "iops_rd_max_length" : {
18511 "description" : "Maximum length of read I/O bursts in seconds.",
18512 "format_description" : "seconds",
18513 "minimum" : 1,
18514 "optional" : 1,
18515 "type" : "integer"
18516 },
18517 "iops_wr" : {
18518 "description" : "Maximum write I/O in operations per second.",
18519 "format_description" : "iops",
18520 "optional" : 1,
18521 "type" : "integer"
18522 },
18523 "iops_wr_length" : {
18524 "alias" : "iops_wr_max_length"
18525 },
18526 "iops_wr_max" : {
18527 "description" : "Maximum unthrottled write I/O pool in operations per second.",
18528 "format_description" : "iops",
18529 "optional" : 1,
18530 "type" : "integer"
18531 },
18532 "iops_wr_max_length" : {
18533 "description" : "Maximum length of write I/O bursts in seconds.",
18534 "format_description" : "seconds",
18535 "minimum" : 1,
18536 "optional" : 1,
18537 "type" : "integer"
18538 },
18539 "mbps" : {
18540 "description" : "Maximum r/w speed in megabytes per second.",
18541 "format_description" : "mbps",
18542 "optional" : 1,
18543 "type" : "number"
18544 },
18545 "mbps_max" : {
18546 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
18547 "format_description" : "mbps",
18548 "optional" : 1,
18549 "type" : "number"
18550 },
18551 "mbps_rd" : {
18552 "description" : "Maximum read speed in megabytes per second.",
18553 "format_description" : "mbps",
18554 "optional" : 1,
18555 "type" : "number"
18556 },
18557 "mbps_rd_max" : {
18558 "description" : "Maximum unthrottled read pool in megabytes per second.",
18559 "format_description" : "mbps",
18560 "optional" : 1,
18561 "type" : "number"
18562 },
18563 "mbps_wr" : {
18564 "description" : "Maximum write speed in megabytes per second.",
18565 "format_description" : "mbps",
18566 "optional" : 1,
18567 "type" : "number"
18568 },
18569 "mbps_wr_max" : {
18570 "description" : "Maximum unthrottled write pool in megabytes per second.",
18571 "format_description" : "mbps",
18572 "optional" : 1,
18573 "type" : "number"
18574 },
18575 "media" : {
18576 "default" : "disk",
18577 "description" : "The drive's media type.",
18578 "enum" : [
18579 "cdrom",
18580 "disk"
18581 ],
18582 "optional" : 1,
18583 "type" : "string"
18584 },
18585 "replicate" : {
18586 "default" : 1,
18587 "description" : "Whether the drive should considered for replication jobs.",
18588 "optional" : 1,
18589 "type" : "boolean"
18590 },
18591 "rerror" : {
18592 "description" : "Read error action.",
18593 "enum" : [
18594 "ignore",
18595 "report",
18596 "stop"
18597 ],
18598 "optional" : 1,
18599 "type" : "string"
18600 },
18601 "secs" : {
18602 "description" : "Force the drive's physical geometry to have a specific sector count.",
18603 "optional" : 1,
18604 "type" : "integer"
18605 },
18606 "serial" : {
18607 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
18608 "format" : "urlencoded",
18609 "format_description" : "serial",
18610 "maxLength" : 60,
18611 "optional" : 1,
18612 "type" : "string"
18613 },
18614 "shared" : {
18615 "default" : 0,
18616 "description" : "Mark this locally-managed volume as available on all nodes",
18617 "optional" : 1,
18618 "type" : "boolean",
18619 "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!"
18620 },
18621 "size" : {
18622 "description" : "Disk size. This is purely informational and has no effect.",
18623 "format" : "disk-size",
18624 "format_description" : "DiskSize",
18625 "optional" : 1,
18626 "type" : "string"
18627 },
18628 "snapshot" : {
18629 "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.",
18630 "optional" : 1,
18631 "type" : "boolean"
18632 },
25203dc1
NC
18633 "ssd" : {
18634 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
18635 "optional" : 1,
18636 "type" : "boolean"
18637 },
4d47f125
TL
18638 "trans" : {
18639 "description" : "Force disk geometry bios translation mode.",
18640 "enum" : [
18641 "none",
18642 "lba",
18643 "auto"
18644 ],
18645 "optional" : 1,
18646 "type" : "string"
18647 },
18648 "volume" : {
18649 "alias" : "file"
18650 },
18651 "werror" : {
18652 "description" : "Write error action.",
18653 "enum" : [
18654 "enospc",
18655 "ignore",
18656 "report",
18657 "stop"
18658 ],
18659 "optional" : 1,
18660 "type" : "string"
95895385
TL
18661 },
18662 "wwn" : {
18663 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
18664 "format_description" : "wwn",
18665 "optional" : 1,
18666 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
18667 "type" : "string"
4d47f125
TL
18668 }
18669 },
18670 "optional" : 1,
18671 "type" : "string",
7af2edf9 18672 "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
18673 },
18674 "scsi[n]" : {
7af2edf9 18675 "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
18676 "format" : {
18677 "aio" : {
18678 "description" : "AIO type to use.",
18679 "enum" : [
18680 "native",
8f4d9c87
TL
18681 "threads",
18682 "io_uring"
4d47f125
TL
18683 ],
18684 "optional" : 1,
18685 "type" : "string"
18686 },
18687 "backup" : {
18688 "description" : "Whether the drive should be included when making backups.",
18689 "optional" : 1,
18690 "type" : "boolean"
18691 },
18692 "bps" : {
18693 "description" : "Maximum r/w speed in bytes per second.",
18694 "format_description" : "bps",
18695 "optional" : 1,
18696 "type" : "integer"
18697 },
18698 "bps_max_length" : {
18699 "description" : "Maximum length of I/O bursts in seconds.",
18700 "format_description" : "seconds",
18701 "minimum" : 1,
18702 "optional" : 1,
18703 "type" : "integer"
18704 },
18705 "bps_rd" : {
18706 "description" : "Maximum read speed in bytes per second.",
18707 "format_description" : "bps",
18708 "optional" : 1,
18709 "type" : "integer"
18710 },
18711 "bps_rd_length" : {
18712 "alias" : "bps_rd_max_length"
18713 },
18714 "bps_rd_max_length" : {
18715 "description" : "Maximum length of read I/O bursts in seconds.",
18716 "format_description" : "seconds",
18717 "minimum" : 1,
18718 "optional" : 1,
18719 "type" : "integer"
18720 },
18721 "bps_wr" : {
18722 "description" : "Maximum write speed in bytes per second.",
18723 "format_description" : "bps",
18724 "optional" : 1,
18725 "type" : "integer"
18726 },
18727 "bps_wr_length" : {
18728 "alias" : "bps_wr_max_length"
18729 },
18730 "bps_wr_max_length" : {
18731 "description" : "Maximum length of write I/O bursts in seconds.",
18732 "format_description" : "seconds",
18733 "minimum" : 1,
18734 "optional" : 1,
18735 "type" : "integer"
18736 },
18737 "cache" : {
18738 "description" : "The drive's cache mode",
18739 "enum" : [
18740 "none",
18741 "writethrough",
18742 "writeback",
18743 "unsafe",
18744 "directsync"
18745 ],
18746 "optional" : 1,
18747 "type" : "string"
18748 },
18749 "cyls" : {
18750 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
18751 "optional" : 1,
18752 "type" : "integer"
18753 },
18754 "detect_zeroes" : {
18755 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
18756 "optional" : 1,
18757 "type" : "boolean"
18758 },
18759 "discard" : {
18760 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
18761 "enum" : [
18762 "ignore",
18763 "on"
18764 ],
18765 "optional" : 1,
18766 "type" : "string"
18767 },
18768 "file" : {
18769 "default_key" : 1,
18770 "description" : "The drive's backing volume.",
18771 "format" : "pve-volume-id-or-qm-path",
18772 "format_description" : "volume",
18773 "type" : "string"
18774 },
18775 "format" : {
18776 "description" : "The drive's backing file's data format.",
18777 "enum" : [
18778 "raw",
18779 "cow",
18780 "qcow",
18781 "qed",
18782 "qcow2",
18783 "vmdk",
18784 "cloop"
18785 ],
18786 "optional" : 1,
18787 "type" : "string"
18788 },
18789 "heads" : {
18790 "description" : "Force the drive's physical geometry to have a specific head count.",
18791 "optional" : 1,
18792 "type" : "integer"
18793 },
7af2edf9
TL
18794 "import-from" : {
18795 "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!",
18796 "format" : "pve-volume-id-or-absolute-path",
18797 "format_description" : "source volume",
18798 "optional" : 1,
18799 "type" : "string"
18800 },
4d47f125
TL
18801 "iops" : {
18802 "description" : "Maximum r/w I/O in operations per second.",
18803 "format_description" : "iops",
18804 "optional" : 1,
18805 "type" : "integer"
18806 },
18807 "iops_max" : {
18808 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
18809 "format_description" : "iops",
18810 "optional" : 1,
18811 "type" : "integer"
18812 },
18813 "iops_max_length" : {
18814 "description" : "Maximum length of I/O bursts in seconds.",
18815 "format_description" : "seconds",
18816 "minimum" : 1,
18817 "optional" : 1,
18818 "type" : "integer"
18819 },
18820 "iops_rd" : {
18821 "description" : "Maximum read I/O in operations per second.",
18822 "format_description" : "iops",
18823 "optional" : 1,
18824 "type" : "integer"
18825 },
18826 "iops_rd_length" : {
18827 "alias" : "iops_rd_max_length"
18828 },
18829 "iops_rd_max" : {
18830 "description" : "Maximum unthrottled read I/O pool in operations per second.",
18831 "format_description" : "iops",
18832 "optional" : 1,
18833 "type" : "integer"
18834 },
18835 "iops_rd_max_length" : {
18836 "description" : "Maximum length of read I/O bursts in seconds.",
18837 "format_description" : "seconds",
18838 "minimum" : 1,
18839 "optional" : 1,
18840 "type" : "integer"
18841 },
18842 "iops_wr" : {
18843 "description" : "Maximum write I/O in operations per second.",
18844 "format_description" : "iops",
18845 "optional" : 1,
18846 "type" : "integer"
18847 },
18848 "iops_wr_length" : {
18849 "alias" : "iops_wr_max_length"
18850 },
18851 "iops_wr_max" : {
18852 "description" : "Maximum unthrottled write I/O pool in operations per second.",
18853 "format_description" : "iops",
18854 "optional" : 1,
18855 "type" : "integer"
18856 },
18857 "iops_wr_max_length" : {
18858 "description" : "Maximum length of write I/O bursts in seconds.",
18859 "format_description" : "seconds",
18860 "minimum" : 1,
18861 "optional" : 1,
18862 "type" : "integer"
18863 },
18864 "iothread" : {
18865 "description" : "Whether to use iothreads for this drive",
18866 "optional" : 1,
18867 "type" : "boolean"
18868 },
18869 "mbps" : {
18870 "description" : "Maximum r/w speed in megabytes per second.",
18871 "format_description" : "mbps",
18872 "optional" : 1,
18873 "type" : "number"
18874 },
18875 "mbps_max" : {
18876 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
18877 "format_description" : "mbps",
18878 "optional" : 1,
18879 "type" : "number"
18880 },
18881 "mbps_rd" : {
18882 "description" : "Maximum read speed in megabytes per second.",
18883 "format_description" : "mbps",
18884 "optional" : 1,
18885 "type" : "number"
18886 },
18887 "mbps_rd_max" : {
18888 "description" : "Maximum unthrottled read pool in megabytes per second.",
18889 "format_description" : "mbps",
18890 "optional" : 1,
18891 "type" : "number"
18892 },
18893 "mbps_wr" : {
18894 "description" : "Maximum write speed in megabytes per second.",
18895 "format_description" : "mbps",
18896 "optional" : 1,
18897 "type" : "number"
18898 },
18899 "mbps_wr_max" : {
18900 "description" : "Maximum unthrottled write pool in megabytes per second.",
18901 "format_description" : "mbps",
18902 "optional" : 1,
18903 "type" : "number"
18904 },
18905 "media" : {
18906 "default" : "disk",
18907 "description" : "The drive's media type.",
18908 "enum" : [
18909 "cdrom",
18910 "disk"
18911 ],
18912 "optional" : 1,
18913 "type" : "string"
18914 },
18915 "queues" : {
18916 "description" : "Number of queues.",
18917 "minimum" : 2,
18918 "optional" : 1,
18919 "type" : "integer"
18920 },
18921 "replicate" : {
18922 "default" : 1,
18923 "description" : "Whether the drive should considered for replication jobs.",
18924 "optional" : 1,
18925 "type" : "boolean"
18926 },
18927 "rerror" : {
18928 "description" : "Read error action.",
18929 "enum" : [
18930 "ignore",
18931 "report",
18932 "stop"
18933 ],
18934 "optional" : 1,
18935 "type" : "string"
18936 },
5370fa8c
TL
18937 "ro" : {
18938 "description" : "Whether the drive is read-only.",
18939 "optional" : 1,
18940 "type" : "boolean"
18941 },
4d47f125
TL
18942 "scsiblock" : {
18943 "default" : 0,
18944 "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",
18945 "optional" : 1,
18946 "type" : "boolean"
18947 },
18948 "secs" : {
18949 "description" : "Force the drive's physical geometry to have a specific sector count.",
18950 "optional" : 1,
18951 "type" : "integer"
18952 },
18953 "serial" : {
18954 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
18955 "format" : "urlencoded",
18956 "format_description" : "serial",
18957 "maxLength" : 60,
18958 "optional" : 1,
18959 "type" : "string"
18960 },
18961 "shared" : {
18962 "default" : 0,
18963 "description" : "Mark this locally-managed volume as available on all nodes",
18964 "optional" : 1,
18965 "type" : "boolean",
18966 "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!"
18967 },
18968 "size" : {
18969 "description" : "Disk size. This is purely informational and has no effect.",
18970 "format" : "disk-size",
18971 "format_description" : "DiskSize",
18972 "optional" : 1,
18973 "type" : "string"
18974 },
18975 "snapshot" : {
18976 "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.",
18977 "optional" : 1,
18978 "type" : "boolean"
18979 },
25203dc1
NC
18980 "ssd" : {
18981 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
18982 "optional" : 1,
18983 "type" : "boolean"
18984 },
4d47f125
TL
18985 "trans" : {
18986 "description" : "Force disk geometry bios translation mode.",
18987 "enum" : [
18988 "none",
18989 "lba",
18990 "auto"
18991 ],
18992 "optional" : 1,
18993 "type" : "string"
18994 },
18995 "volume" : {
18996 "alias" : "file"
18997 },
18998 "werror" : {
18999 "description" : "Write error action.",
19000 "enum" : [
19001 "enospc",
19002 "ignore",
19003 "report",
19004 "stop"
19005 ],
19006 "optional" : 1,
19007 "type" : "string"
95895385
TL
19008 },
19009 "wwn" : {
19010 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
19011 "format_description" : "wwn",
19012 "optional" : 1,
19013 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
19014 "type" : "string"
4d47f125
TL
19015 }
19016 },
19017 "optional" : 1,
19018 "type" : "string",
7af2edf9 19019 "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
19020 },
19021 "scsihw" : {
19022 "default" : "lsi",
19023 "description" : "SCSI controller model",
19024 "enum" : [
19025 "lsi",
19026 "lsi53c810",
19027 "virtio-scsi-pci",
19028 "virtio-scsi-single",
19029 "megasas",
19030 "pvscsi"
19031 ],
19032 "optional" : 1,
19033 "type" : "string"
19034 },
19035 "searchdomain" : {
de786b48 19036 "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
19037 "optional" : 1,
19038 "type" : "string",
19039 "typetext" : "<string>"
19040 },
19041 "serial[n]" : {
19042 "description" : "Create a serial device inside the VM (n is 0 to 3)",
19043 "optional" : 1,
19044 "pattern" : "(/dev/.+|socket)",
19045 "type" : "string",
4772952b 19046 "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
19047 },
19048 "shares" : {
19049 "default" : 1000,
19050 "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.",
19051 "maximum" : 50000,
19052 "minimum" : 0,
19053 "optional" : 1,
19054 "type" : "integer",
19055 "typetext" : "<integer> (0 - 50000)"
19056 },
19057 "skiplock" : {
19058 "description" : "Ignore locks - only root is allowed to use this option.",
19059 "optional" : 1,
19060 "type" : "boolean",
19061 "typetext" : "<boolean>"
19062 },
19063 "smbios1" : {
19064 "description" : "Specify SMBIOS type 1 fields.",
19065 "format" : "pve-qm-smbios1",
1e3f8156 19066 "maxLength" : 512,
4d47f125
TL
19067 "optional" : 1,
19068 "type" : "string",
1e3f8156 19069 "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
19070 },
19071 "smp" : {
19072 "default" : 1,
19073 "description" : "The number of CPUs. Please use option -sockets instead.",
19074 "minimum" : 1,
19075 "optional" : 1,
19076 "type" : "integer",
19077 "typetext" : "<integer> (1 - N)"
19078 },
19079 "sockets" : {
19080 "default" : 1,
19081 "description" : "The number of CPU sockets.",
19082 "minimum" : 1,
19083 "optional" : 1,
19084 "type" : "integer",
19085 "typetext" : "<integer> (1 - N)"
19086 },
1c532546
TL
19087 "spice_enhancements" : {
19088 "description" : "Configure additional enhancements for SPICE.",
19089 "format" : {
19090 "foldersharing" : {
19091 "default" : "0",
19092 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
19093 "optional" : 1,
19094 "type" : "boolean"
19095 },
19096 "videostreaming" : {
19097 "default" : "off",
19098 "description" : "Enable video streaming. Uses compression for detected video streams.",
19099 "enum" : [
19100 "off",
19101 "all",
19102 "filter"
19103 ],
19104 "optional" : 1,
19105 "type" : "string"
19106 }
19107 },
19108 "optional" : 1,
19109 "type" : "string",
19110 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
19111 },
4d47f125
TL
19112 "sshkeys" : {
19113 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
19114 "format" : "urlencoded",
19115 "optional" : 1,
19116 "type" : "string",
19117 "typetext" : "<string>"
19118 },
19119 "startdate" : {
19120 "default" : "now",
4772952b 19121 "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
19122 "optional" : 1,
19123 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
19124 "type" : "string",
19125 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
19126 },
19127 "startup" : {
19128 "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.",
19129 "format" : "pve-startup-order",
19130 "optional" : 1,
19131 "type" : "string",
19132 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
19133 },
19134 "tablet" : {
19135 "default" : 1,
19136 "description" : "Enable/disable the USB tablet device.",
19137 "optional" : 1,
19138 "type" : "boolean",
19139 "typetext" : "<boolean>",
4772952b 19140 "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 19141 },
5c1699e5
TL
19142 "tags" : {
19143 "description" : "Tags of the VM. This is only meta information.",
19144 "format" : "pve-tag-list",
19145 "optional" : 1,
19146 "type" : "string",
19147 "typetext" : "<string>"
19148 },
4d47f125
TL
19149 "tdf" : {
19150 "default" : 0,
19151 "description" : "Enable/disable time drift fix.",
19152 "optional" : 1,
19153 "type" : "boolean",
19154 "typetext" : "<boolean>"
19155 },
19156 "template" : {
19157 "default" : 0,
19158 "description" : "Enable/disable Template.",
19159 "optional" : 1,
19160 "type" : "boolean",
19161 "typetext" : "<boolean>"
19162 },
5370fa8c 19163 "tpmstate0" : {
7af2edf9 19164 "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
19165 "format" : {
19166 "file" : {
19167 "default_key" : 1,
19168 "description" : "The drive's backing volume.",
19169 "format" : "pve-volume-id-or-qm-path",
19170 "format_description" : "volume",
19171 "type" : "string"
19172 },
7af2edf9
TL
19173 "import-from" : {
19174 "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!",
19175 "format" : "pve-volume-id-or-absolute-path",
19176 "format_description" : "source volume",
19177 "optional" : 1,
19178 "type" : "string"
19179 },
5370fa8c
TL
19180 "size" : {
19181 "description" : "Disk size. This is purely informational and has no effect.",
19182 "format" : "disk-size",
19183 "format_description" : "DiskSize",
19184 "optional" : 1,
19185 "type" : "string"
19186 },
19187 "version" : {
19188 "default" : "v2.0",
19189 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
19190 "enum" : [
19191 "v1.2",
19192 "v2.0"
19193 ],
19194 "optional" : 1,
19195 "type" : "string"
19196 },
19197 "volume" : {
19198 "alias" : "file"
19199 }
19200 },
19201 "optional" : 1,
19202 "type" : "string",
7af2edf9 19203 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 19204 },
4d47f125
TL
19205 "unused[n]" : {
19206 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
19207 "format" : {
19208 "file" : {
19209 "default_key" : 1,
19210 "description" : "The drive's backing volume.",
19211 "format" : "pve-volume-id",
19212 "format_description" : "volume",
19213 "type" : "string"
19214 },
19215 "volume" : {
19216 "alias" : "file"
19217 }
19218 },
4d47f125
TL
19219 "optional" : 1,
19220 "type" : "string",
c5aa7e14 19221 "typetext" : "[file=]<volume>"
4d47f125
TL
19222 },
19223 "usb[n]" : {
4e7f60c2 19224 "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
19225 "format" : {
19226 "host" : {
19227 "default_key" : 1,
4772952b 19228 "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
4d47f125
TL
19229 "format" : "pve-qm-usb-device",
19230 "format_description" : "HOSTUSBDEVICE|spice",
19231 "type" : "string"
19232 },
19233 "usb3" : {
19234 "default" : 0,
4e7f60c2 19235 "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
19236 "optional" : 1,
19237 "type" : "boolean"
19238 }
19239 },
19240 "optional" : 1,
19241 "type" : "string",
19242 "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
19243 },
19244 "vcpus" : {
19245 "default" : 0,
19246 "description" : "Number of hotplugged vcpus.",
19247 "minimum" : 1,
19248 "optional" : 1,
19249 "type" : "integer",
19250 "typetext" : "<integer> (1 - N)"
19251 },
19252 "vga" : {
e2d681b3
TL
19253 "description" : "Configure the VGA hardware.",
19254 "format" : {
19255 "memory" : {
19256 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
19257 "maximum" : 512,
19258 "minimum" : 4,
19259 "optional" : 1,
19260 "type" : "integer"
19261 },
19262 "type" : {
19263 "default" : "std",
19264 "default_key" : 1,
19265 "description" : "Select the VGA type.",
19266 "enum" : [
19267 "cirrus",
19268 "qxl",
19269 "qxl2",
19270 "qxl3",
19271 "qxl4",
5f26e15b 19272 "none",
e2d681b3
TL
19273 "serial0",
19274 "serial1",
19275 "serial2",
19276 "serial3",
19277 "std",
19278 "virtio",
7af2edf9 19279 "virtio-gl",
e2d681b3
TL
19280 "vmware"
19281 ],
19282 "optional" : 1,
19283 "type" : "string"
19284 }
19285 },
4d47f125
TL
19286 "optional" : 1,
19287 "type" : "string",
e2d681b3
TL
19288 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
19289 "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
19290 },
19291 "virtio[n]" : {
7af2edf9 19292 "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
19293 "format" : {
19294 "aio" : {
19295 "description" : "AIO type to use.",
19296 "enum" : [
19297 "native",
8f4d9c87
TL
19298 "threads",
19299 "io_uring"
4d47f125
TL
19300 ],
19301 "optional" : 1,
19302 "type" : "string"
19303 },
19304 "backup" : {
19305 "description" : "Whether the drive should be included when making backups.",
19306 "optional" : 1,
19307 "type" : "boolean"
19308 },
19309 "bps" : {
19310 "description" : "Maximum r/w speed in bytes per second.",
19311 "format_description" : "bps",
19312 "optional" : 1,
19313 "type" : "integer"
19314 },
19315 "bps_max_length" : {
19316 "description" : "Maximum length of I/O bursts in seconds.",
19317 "format_description" : "seconds",
19318 "minimum" : 1,
19319 "optional" : 1,
19320 "type" : "integer"
19321 },
19322 "bps_rd" : {
19323 "description" : "Maximum read speed in bytes per second.",
19324 "format_description" : "bps",
19325 "optional" : 1,
19326 "type" : "integer"
19327 },
19328 "bps_rd_length" : {
19329 "alias" : "bps_rd_max_length"
19330 },
19331 "bps_rd_max_length" : {
19332 "description" : "Maximum length of read I/O bursts in seconds.",
19333 "format_description" : "seconds",
19334 "minimum" : 1,
19335 "optional" : 1,
19336 "type" : "integer"
19337 },
19338 "bps_wr" : {
19339 "description" : "Maximum write speed in bytes per second.",
19340 "format_description" : "bps",
19341 "optional" : 1,
19342 "type" : "integer"
19343 },
19344 "bps_wr_length" : {
19345 "alias" : "bps_wr_max_length"
19346 },
19347 "bps_wr_max_length" : {
19348 "description" : "Maximum length of write I/O bursts in seconds.",
19349 "format_description" : "seconds",
19350 "minimum" : 1,
19351 "optional" : 1,
19352 "type" : "integer"
19353 },
19354 "cache" : {
19355 "description" : "The drive's cache mode",
19356 "enum" : [
19357 "none",
19358 "writethrough",
19359 "writeback",
19360 "unsafe",
19361 "directsync"
19362 ],
19363 "optional" : 1,
19364 "type" : "string"
19365 },
19366 "cyls" : {
19367 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
19368 "optional" : 1,
19369 "type" : "integer"
19370 },
19371 "detect_zeroes" : {
19372 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
19373 "optional" : 1,
19374 "type" : "boolean"
19375 },
19376 "discard" : {
19377 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
19378 "enum" : [
19379 "ignore",
19380 "on"
19381 ],
19382 "optional" : 1,
19383 "type" : "string"
19384 },
19385 "file" : {
19386 "default_key" : 1,
19387 "description" : "The drive's backing volume.",
19388 "format" : "pve-volume-id-or-qm-path",
19389 "format_description" : "volume",
19390 "type" : "string"
19391 },
19392 "format" : {
19393 "description" : "The drive's backing file's data format.",
19394 "enum" : [
19395 "raw",
19396 "cow",
19397 "qcow",
19398 "qed",
19399 "qcow2",
19400 "vmdk",
19401 "cloop"
19402 ],
19403 "optional" : 1,
19404 "type" : "string"
19405 },
19406 "heads" : {
19407 "description" : "Force the drive's physical geometry to have a specific head count.",
19408 "optional" : 1,
19409 "type" : "integer"
19410 },
7af2edf9
TL
19411 "import-from" : {
19412 "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!",
19413 "format" : "pve-volume-id-or-absolute-path",
19414 "format_description" : "source volume",
19415 "optional" : 1,
19416 "type" : "string"
19417 },
4d47f125
TL
19418 "iops" : {
19419 "description" : "Maximum r/w I/O in operations per second.",
19420 "format_description" : "iops",
19421 "optional" : 1,
19422 "type" : "integer"
19423 },
19424 "iops_max" : {
19425 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
19426 "format_description" : "iops",
19427 "optional" : 1,
19428 "type" : "integer"
19429 },
19430 "iops_max_length" : {
19431 "description" : "Maximum length of I/O bursts in seconds.",
19432 "format_description" : "seconds",
19433 "minimum" : 1,
19434 "optional" : 1,
19435 "type" : "integer"
19436 },
19437 "iops_rd" : {
19438 "description" : "Maximum read I/O in operations per second.",
19439 "format_description" : "iops",
19440 "optional" : 1,
19441 "type" : "integer"
19442 },
19443 "iops_rd_length" : {
19444 "alias" : "iops_rd_max_length"
19445 },
19446 "iops_rd_max" : {
19447 "description" : "Maximum unthrottled read I/O pool in operations per second.",
19448 "format_description" : "iops",
19449 "optional" : 1,
19450 "type" : "integer"
19451 },
19452 "iops_rd_max_length" : {
19453 "description" : "Maximum length of read I/O bursts in seconds.",
19454 "format_description" : "seconds",
19455 "minimum" : 1,
19456 "optional" : 1,
19457 "type" : "integer"
19458 },
19459 "iops_wr" : {
19460 "description" : "Maximum write I/O in operations per second.",
19461 "format_description" : "iops",
19462 "optional" : 1,
19463 "type" : "integer"
19464 },
19465 "iops_wr_length" : {
19466 "alias" : "iops_wr_max_length"
19467 },
19468 "iops_wr_max" : {
19469 "description" : "Maximum unthrottled write I/O pool in operations per second.",
19470 "format_description" : "iops",
19471 "optional" : 1,
19472 "type" : "integer"
19473 },
19474 "iops_wr_max_length" : {
19475 "description" : "Maximum length of write I/O bursts in seconds.",
19476 "format_description" : "seconds",
19477 "minimum" : 1,
19478 "optional" : 1,
19479 "type" : "integer"
19480 },
19481 "iothread" : {
19482 "description" : "Whether to use iothreads for this drive",
19483 "optional" : 1,
19484 "type" : "boolean"
19485 },
19486 "mbps" : {
19487 "description" : "Maximum r/w speed in megabytes per second.",
19488 "format_description" : "mbps",
19489 "optional" : 1,
19490 "type" : "number"
19491 },
19492 "mbps_max" : {
19493 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
19494 "format_description" : "mbps",
19495 "optional" : 1,
19496 "type" : "number"
19497 },
19498 "mbps_rd" : {
19499 "description" : "Maximum read speed in megabytes per second.",
19500 "format_description" : "mbps",
19501 "optional" : 1,
19502 "type" : "number"
19503 },
19504 "mbps_rd_max" : {
19505 "description" : "Maximum unthrottled read pool in megabytes per second.",
19506 "format_description" : "mbps",
19507 "optional" : 1,
19508 "type" : "number"
19509 },
19510 "mbps_wr" : {
19511 "description" : "Maximum write speed in megabytes per second.",
19512 "format_description" : "mbps",
19513 "optional" : 1,
19514 "type" : "number"
19515 },
19516 "mbps_wr_max" : {
19517 "description" : "Maximum unthrottled write pool in megabytes per second.",
19518 "format_description" : "mbps",
19519 "optional" : 1,
19520 "type" : "number"
19521 },
19522 "media" : {
19523 "default" : "disk",
19524 "description" : "The drive's media type.",
19525 "enum" : [
19526 "cdrom",
19527 "disk"
19528 ],
19529 "optional" : 1,
19530 "type" : "string"
19531 },
19532 "replicate" : {
19533 "default" : 1,
19534 "description" : "Whether the drive should considered for replication jobs.",
19535 "optional" : 1,
19536 "type" : "boolean"
19537 },
19538 "rerror" : {
19539 "description" : "Read error action.",
19540 "enum" : [
19541 "ignore",
19542 "report",
19543 "stop"
19544 ],
19545 "optional" : 1,
19546 "type" : "string"
19547 },
5370fa8c
TL
19548 "ro" : {
19549 "description" : "Whether the drive is read-only.",
19550 "optional" : 1,
19551 "type" : "boolean"
19552 },
4d47f125
TL
19553 "secs" : {
19554 "description" : "Force the drive's physical geometry to have a specific sector count.",
19555 "optional" : 1,
19556 "type" : "integer"
19557 },
19558 "serial" : {
19559 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
19560 "format" : "urlencoded",
19561 "format_description" : "serial",
19562 "maxLength" : 60,
19563 "optional" : 1,
19564 "type" : "string"
19565 },
19566 "shared" : {
19567 "default" : 0,
19568 "description" : "Mark this locally-managed volume as available on all nodes",
19569 "optional" : 1,
19570 "type" : "boolean",
19571 "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!"
19572 },
19573 "size" : {
19574 "description" : "Disk size. This is purely informational and has no effect.",
19575 "format" : "disk-size",
19576 "format_description" : "DiskSize",
19577 "optional" : 1,
19578 "type" : "string"
19579 },
19580 "snapshot" : {
19581 "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.",
19582 "optional" : 1,
19583 "type" : "boolean"
19584 },
19585 "trans" : {
19586 "description" : "Force disk geometry bios translation mode.",
19587 "enum" : [
19588 "none",
19589 "lba",
19590 "auto"
19591 ],
19592 "optional" : 1,
19593 "type" : "string"
19594 },
19595 "volume" : {
19596 "alias" : "file"
19597 },
19598 "werror" : {
19599 "description" : "Write error action.",
19600 "enum" : [
19601 "enospc",
19602 "ignore",
19603 "report",
19604 "stop"
19605 ],
19606 "optional" : 1,
19607 "type" : "string"
19608 }
19609 },
19610 "optional" : 1,
19611 "type" : "string",
7af2edf9 19612 "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
19613 },
19614 "vmgenid" : {
19615 "default" : "1 (autogenerated)",
19616 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
19617 "format_description" : "UUID",
19618 "optional" : 1,
19619 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
19620 "type" : "string",
4772952b 19621 "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
19622 },
19623 "vmid" : {
19624 "description" : "The (unique) ID of the VM.",
19625 "format" : "pve-vmid",
19626 "minimum" : 1,
19627 "type" : "integer",
19628 "typetext" : "<integer> (1 - N)"
19629 },
19630 "vmstatestorage" : {
19631 "description" : "Default storage for VM state volumes/files.",
19632 "format" : "pve-storage-id",
19633 "optional" : 1,
19634 "type" : "string",
19635 "typetext" : "<string>"
19636 },
19637 "watchdog" : {
19638 "description" : "Create a virtual hardware watchdog device.",
19639 "format" : "pve-qm-watchdog",
19640 "optional" : 1,
19641 "type" : "string",
19642 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
19643 "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)"
19644 }
19645 }
19646 },
19647 "permissions" : {
19648 "check" : [
19649 "perm",
19650 "/vms/{vmid}",
19651 [
19652 "VM.Config.Disk",
19653 "VM.Config.CDROM",
19654 "VM.Config.CPU",
19655 "VM.Config.Memory",
19656 "VM.Config.Network",
19657 "VM.Config.HWType",
ac70d7d1
TL
19658 "VM.Config.Options",
19659 "VM.Config.Cloudinit"
4d47f125
TL
19660 ],
19661 "any",
19662 1
19663 ]
19664 },
19665 "protected" : 1,
19666 "proxyto" : "node",
19667 "returns" : {
19668 "type" : "null"
19669 }
19670 }
19671 },
19672 "leaf" : 1,
19673 "path" : "/nodes/{node}/qemu/{vmid}/config",
19674 "text" : "config"
19675 },
19676 {
19677 "info" : {
19678 "GET" : {
e9cd3bd4
TL
19679 "allowtoken" : 1,
19680 "description" : "Get the virtual machine configuration with both current and pending values.",
4d47f125
TL
19681 "method" : "GET",
19682 "name" : "vm_pending",
19683 "parameters" : {
19684 "additionalProperties" : 0,
19685 "properties" : {
19686 "node" : {
19687 "description" : "The cluster node name.",
19688 "format" : "pve-node",
19689 "type" : "string",
19690 "typetext" : "<string>"
19691 },
19692 "vmid" : {
19693 "description" : "The (unique) ID of the VM.",
19694 "format" : "pve-vmid",
19695 "minimum" : 1,
19696 "type" : "integer",
19697 "typetext" : "<integer> (1 - N)"
19698 }
19699 }
19700 },
19701 "permissions" : {
19702 "check" : [
19703 "perm",
19704 "/vms/{vmid}",
19705 [
19706 "VM.Audit"
19707 ]
19708 ]
19709 },
19710 "proxyto" : "node",
19711 "returns" : {
19712 "items" : {
19713 "properties" : {
19714 "delete" : {
19715 "description" : "Indicates a pending delete request if present and not 0. The value 2 indicates a force-delete request.",
19716 "maximum" : 2,
19717 "minimum" : 0,
19718 "optional" : 1,
19719 "type" : "integer"
19720 },
19721 "key" : {
19722 "description" : "Configuration option name.",
19723 "type" : "string"
19724 },
19725 "pending" : {
19726 "description" : "Pending value.",
19727 "optional" : 1,
19728 "type" : "string"
19729 },
19730 "value" : {
19731 "description" : "Current value.",
19732 "optional" : 1,
19733 "type" : "string"
19734 }
19735 },
19736 "type" : "object"
19737 },
19738 "type" : "array"
19739 }
19740 }
19741 },
19742 "leaf" : 1,
19743 "path" : "/nodes/{node}/qemu/{vmid}/pending",
19744 "text" : "pending"
19745 },
4e7f60c2
TL
19746 {
19747 "children" : [
19748 {
19749 "info" : {
19750 "GET" : {
19751 "allowtoken" : 1,
19752 "description" : "Get automatically generated cloudinit config.",
19753 "method" : "GET",
19754 "name" : "cloudinit_generated_config_dump",
19755 "parameters" : {
19756 "additionalProperties" : 0,
19757 "properties" : {
19758 "node" : {
19759 "description" : "The cluster node name.",
19760 "format" : "pve-node",
19761 "type" : "string",
19762 "typetext" : "<string>"
19763 },
19764 "type" : {
19765 "description" : "Config type.",
19766 "enum" : [
19767 "user",
19768 "network",
19769 "meta"
19770 ],
19771 "type" : "string"
19772 },
19773 "vmid" : {
19774 "description" : "The (unique) ID of the VM.",
19775 "format" : "pve-vmid",
19776 "minimum" : 1,
19777 "type" : "integer",
19778 "typetext" : "<integer> (1 - N)"
19779 }
19780 }
19781 },
19782 "permissions" : {
19783 "check" : [
19784 "perm",
19785 "/vms/{vmid}",
19786 [
19787 "VM.Audit"
19788 ]
19789 ]
19790 },
19791 "proxyto" : "node",
19792 "returns" : {
19793 "type" : "string"
19794 }
19795 }
19796 },
19797 "leaf" : 1,
19798 "path" : "/nodes/{node}/qemu/{vmid}/cloudinit/dump",
19799 "text" : "dump"
19800 }
19801 ],
19802 "info" : {
19803 "GET" : {
19804 "allowtoken" : 1,
19805 "description" : "Get the cloudinit configuration with both current and pending values.",
19806 "method" : "GET",
19807 "name" : "cloudinit_pending",
19808 "parameters" : {
19809 "additionalProperties" : 0,
19810 "properties" : {
19811 "node" : {
19812 "description" : "The cluster node name.",
19813 "format" : "pve-node",
19814 "type" : "string",
19815 "typetext" : "<string>"
19816 },
19817 "vmid" : {
19818 "description" : "The (unique) ID of the VM.",
19819 "format" : "pve-vmid",
19820 "minimum" : 1,
19821 "type" : "integer",
19822 "typetext" : "<integer> (1 - N)"
19823 }
19824 }
19825 },
19826 "permissions" : {
19827 "check" : [
19828 "perm",
19829 "/vms/{vmid}",
19830 [
19831 "VM.Audit"
19832 ]
19833 ]
19834 },
19835 "proxyto" : "node",
19836 "returns" : {
19837 "items" : {
19838 "properties" : {
4e7f60c2
TL
19839 "key" : {
19840 "description" : "Configuration option name.",
19841 "type" : "string"
19842 },
81a3384d
TL
19843 "new" : {
19844 "description" : "The new pending value.",
4e7f60c2
TL
19845 "optional" : 1,
19846 "type" : "string"
19847 },
81a3384d
TL
19848 "old" : {
19849 "description" : "Value as it was used to generate the current cloudinit image.",
4e7f60c2
TL
19850 "optional" : 1,
19851 "type" : "string"
19852 }
19853 },
19854 "type" : "object"
19855 },
19856 "type" : "array"
19857 }
19858 },
19859 "PUT" : {
19860 "allowtoken" : 1,
19861 "description" : "Regenerate and change cloudinit config drive.",
19862 "method" : "PUT",
19863 "name" : "cloudinit_update",
19864 "parameters" : {
19865 "additionalProperties" : 0,
19866 "properties" : {
19867 "node" : {
19868 "description" : "The cluster node name.",
19869 "format" : "pve-node",
19870 "type" : "string",
19871 "typetext" : "<string>"
19872 },
19873 "vmid" : {
19874 "description" : "The (unique) ID of the VM.",
19875 "format" : "pve-vmid",
19876 "minimum" : 1,
19877 "type" : "integer",
19878 "typetext" : "<integer> (1 - N)"
19879 }
19880 }
19881 },
19882 "permissions" : {
19883 "check" : [
19884 "perm",
19885 "/vms/{vmid}",
19886 "VM.Config.Cloudinit"
19887 ]
19888 },
19889 "protected" : 1,
19890 "proxyto" : "node",
19891 "returns" : {
19892 "type" : "null"
19893 }
19894 }
19895 },
19896 "leaf" : 0,
19897 "path" : "/nodes/{node}/qemu/{vmid}/cloudinit",
19898 "text" : "cloudinit"
19899 },
4d47f125
TL
19900 {
19901 "info" : {
19902 "PUT" : {
e9cd3bd4 19903 "allowtoken" : 1,
4d47f125
TL
19904 "description" : "Unlink/delete disk images.",
19905 "method" : "PUT",
19906 "name" : "unlink",
19907 "parameters" : {
19908 "additionalProperties" : 0,
19909 "properties" : {
19910 "force" : {
19911 "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.",
19912 "optional" : 1,
19913 "type" : "boolean",
19914 "typetext" : "<boolean>"
19915 },
19916 "idlist" : {
19917 "description" : "A list of disk IDs you want to delete.",
19918 "format" : "pve-configid-list",
19919 "type" : "string",
19920 "typetext" : "<string>"
19921 },
19922 "node" : {
19923 "description" : "The cluster node name.",
19924 "format" : "pve-node",
19925 "type" : "string",
19926 "typetext" : "<string>"
19927 },
19928 "vmid" : {
19929 "description" : "The (unique) ID of the VM.",
19930 "format" : "pve-vmid",
19931 "minimum" : 1,
19932 "type" : "integer",
19933 "typetext" : "<integer> (1 - N)"
19934 }
19935 }
19936 },
19937 "permissions" : {
19938 "check" : [
19939 "perm",
19940 "/vms/{vmid}",
19941 [
19942 "VM.Config.Disk"
19943 ]
19944 ]
19945 },
19946 "protected" : 1,
19947 "proxyto" : "node",
19948 "returns" : {
19949 "type" : "null"
19950 }
19951 }
19952 },
19953 "leaf" : 1,
19954 "path" : "/nodes/{node}/qemu/{vmid}/unlink",
19955 "text" : "unlink"
19956 },
19957 {
19958 "info" : {
19959 "POST" : {
e9cd3bd4 19960 "allowtoken" : 1,
4d47f125
TL
19961 "description" : "Creates a TCP VNC proxy connections.",
19962 "method" : "POST",
19963 "name" : "vncproxy",
19964 "parameters" : {
19965 "additionalProperties" : 0,
19966 "properties" : {
ac70d7d1
TL
19967 "generate-password" : {
19968 "default" : 0,
19969 "description" : "Generates a random password to be used as ticket instead of the API ticket.",
19970 "optional" : 1,
19971 "type" : "boolean",
19972 "typetext" : "<boolean>"
19973 },
4d47f125
TL
19974 "node" : {
19975 "description" : "The cluster node name.",
19976 "format" : "pve-node",
19977 "type" : "string",
19978 "typetext" : "<string>"
19979 },
19980 "vmid" : {
19981 "description" : "The (unique) ID of the VM.",
19982 "format" : "pve-vmid",
19983 "minimum" : 1,
19984 "type" : "integer",
19985 "typetext" : "<integer> (1 - N)"
19986 },
19987 "websocket" : {
19988 "description" : "starts websockify instead of vncproxy",
19989 "optional" : 1,
19990 "type" : "boolean",
19991 "typetext" : "<boolean>"
19992 }
19993 }
19994 },
19995 "permissions" : {
19996 "check" : [
19997 "perm",
19998 "/vms/{vmid}",
19999 [
20000 "VM.Console"
20001 ]
20002 ]
20003 },
20004 "protected" : 1,
20005 "returns" : {
20006 "additionalProperties" : 0,
20007 "properties" : {
20008 "cert" : {
20009 "type" : "string"
20010 },
ac70d7d1
TL
20011 "password" : {
20012 "description" : "Returned if requested with 'generate-password' param. Consists of printable ASCII characters ('!' .. '~').",
20013 "optional" : 1,
20014 "type" : "string"
20015 },
4d47f125
TL
20016 "port" : {
20017 "type" : "integer"
20018 },
20019 "ticket" : {
20020 "type" : "string"
20021 },
20022 "upid" : {
20023 "type" : "string"
20024 },
20025 "user" : {
20026 "type" : "string"
20027 }
20028 }
20029 }
20030 }
20031 },
20032 "leaf" : 1,
20033 "path" : "/nodes/{node}/qemu/{vmid}/vncproxy",
20034 "text" : "vncproxy"
20035 },
20036 {
20037 "info" : {
20038 "POST" : {
e9cd3bd4 20039 "allowtoken" : 1,
4d47f125
TL
20040 "description" : "Creates a TCP proxy connections.",
20041 "method" : "POST",
20042 "name" : "termproxy",
20043 "parameters" : {
20044 "additionalProperties" : 0,
20045 "properties" : {
20046 "node" : {
20047 "description" : "The cluster node name.",
20048 "format" : "pve-node",
20049 "type" : "string",
20050 "typetext" : "<string>"
20051 },
20052 "serial" : {
20053 "description" : "opens a serial terminal (defaults to display)",
20054 "enum" : [
20055 "serial0",
20056 "serial1",
20057 "serial2",
20058 "serial3"
20059 ],
20060 "optional" : 1,
20061 "type" : "string"
20062 },
20063 "vmid" : {
20064 "description" : "The (unique) ID of the VM.",
20065 "format" : "pve-vmid",
20066 "minimum" : 1,
20067 "type" : "integer",
20068 "typetext" : "<integer> (1 - N)"
20069 }
20070 }
20071 },
20072 "permissions" : {
20073 "check" : [
20074 "perm",
20075 "/vms/{vmid}",
20076 [
20077 "VM.Console"
20078 ]
20079 ]
20080 },
20081 "protected" : 1,
20082 "returns" : {
20083 "additionalProperties" : 0,
20084 "properties" : {
20085 "port" : {
20086 "type" : "integer"
20087 },
20088 "ticket" : {
20089 "type" : "string"
20090 },
20091 "upid" : {
20092 "type" : "string"
20093 },
20094 "user" : {
20095 "type" : "string"
20096 }
20097 }
20098 }
20099 }
20100 },
20101 "leaf" : 1,
20102 "path" : "/nodes/{node}/qemu/{vmid}/termproxy",
20103 "text" : "termproxy"
20104 },
20105 {
20106 "info" : {
20107 "GET" : {
e9cd3bd4 20108 "allowtoken" : 1,
4d47f125
TL
20109 "description" : "Opens a weksocket for VNC traffic.",
20110 "method" : "GET",
20111 "name" : "vncwebsocket",
20112 "parameters" : {
20113 "additionalProperties" : 0,
20114 "properties" : {
20115 "node" : {
20116 "description" : "The cluster node name.",
20117 "format" : "pve-node",
20118 "type" : "string",
20119 "typetext" : "<string>"
20120 },
20121 "port" : {
20122 "description" : "Port number returned by previous vncproxy call.",
20123 "maximum" : 5999,
20124 "minimum" : 5900,
20125 "type" : "integer",
20126 "typetext" : "<integer> (5900 - 5999)"
20127 },
20128 "vmid" : {
20129 "description" : "The (unique) ID of the VM.",
20130 "format" : "pve-vmid",
20131 "minimum" : 1,
20132 "type" : "integer",
20133 "typetext" : "<integer> (1 - N)"
20134 },
20135 "vncticket" : {
20136 "description" : "Ticket from previous call to vncproxy.",
20137 "maxLength" : 512,
20138 "type" : "string",
20139 "typetext" : "<string>"
20140 }
20141 }
20142 },
20143 "permissions" : {
20144 "check" : [
20145 "perm",
20146 "/vms/{vmid}",
20147 [
20148 "VM.Console"
20149 ]
20150 ],
20151 "description" : "You also need to pass a valid ticket (vncticket)."
20152 },
20153 "returns" : {
20154 "properties" : {
20155 "port" : {
20156 "type" : "string"
20157 }
20158 },
20159 "type" : "object"
20160 }
20161 }
20162 },
20163 "leaf" : 1,
20164 "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket",
20165 "text" : "vncwebsocket"
20166 },
20167 {
20168 "info" : {
20169 "POST" : {
e9cd3bd4 20170 "allowtoken" : 1,
4d47f125
TL
20171 "description" : "Returns a SPICE configuration to connect to the VM.",
20172 "method" : "POST",
20173 "name" : "spiceproxy",
20174 "parameters" : {
20175 "additionalProperties" : 0,
20176 "properties" : {
20177 "node" : {
20178 "description" : "The cluster node name.",
20179 "format" : "pve-node",
20180 "type" : "string",
20181 "typetext" : "<string>"
20182 },
20183 "proxy" : {
20184 "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).",
20185 "format" : "address",
20186 "optional" : 1,
20187 "type" : "string",
20188 "typetext" : "<string>"
20189 },
20190 "vmid" : {
20191 "description" : "The (unique) ID of the VM.",
20192 "format" : "pve-vmid",
20193 "minimum" : 1,
20194 "type" : "integer",
20195 "typetext" : "<integer> (1 - N)"
20196 }
20197 }
20198 },
20199 "permissions" : {
20200 "check" : [
20201 "perm",
20202 "/vms/{vmid}",
20203 [
20204 "VM.Console"
20205 ]
20206 ]
20207 },
20208 "protected" : 1,
20209 "proxyto" : "node",
20210 "returns" : {
20211 "additionalProperties" : 1,
20212 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
20213 "properties" : {
20214 "host" : {
20215 "type" : "string"
20216 },
20217 "password" : {
20218 "type" : "string"
20219 },
20220 "proxy" : {
20221 "type" : "string"
20222 },
20223 "tls-port" : {
20224 "type" : "integer"
20225 },
20226 "type" : {
20227 "type" : "string"
20228 }
20229 }
20230 }
20231 }
20232 },
20233 "leaf" : 1,
20234 "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy",
20235 "text" : "spiceproxy"
20236 },
20237 {
20238 "children" : [
20239 {
20240 "info" : {
20241 "GET" : {
e9cd3bd4 20242 "allowtoken" : 1,
4d47f125
TL
20243 "description" : "Get virtual machine status.",
20244 "method" : "GET",
20245 "name" : "vm_status",
20246 "parameters" : {
20247 "additionalProperties" : 0,
20248 "properties" : {
20249 "node" : {
20250 "description" : "The cluster node name.",
20251 "format" : "pve-node",
20252 "type" : "string",
20253 "typetext" : "<string>"
20254 },
20255 "vmid" : {
20256 "description" : "The (unique) ID of the VM.",
20257 "format" : "pve-vmid",
20258 "minimum" : 1,
20259 "type" : "integer",
20260 "typetext" : "<integer> (1 - N)"
20261 }
20262 }
20263 },
20264 "permissions" : {
20265 "check" : [
20266 "perm",
20267 "/vms/{vmid}",
20268 [
20269 "VM.Audit"
20270 ]
20271 ]
20272 },
20273 "protected" : 1,
20274 "proxyto" : "node",
20275 "returns" : {
20276 "properties" : {
20277 "agent" : {
20278 "description" : "Qemu GuestAgent enabled in config.",
20279 "optional" : 1,
20280 "type" : "boolean"
20281 },
20282 "cpus" : {
20283 "description" : "Maximum usable CPUs.",
20284 "optional" : 1,
20285 "type" : "number"
20286 },
20287 "ha" : {
20288 "description" : "HA manager service status.",
20289 "type" : "object"
20290 },
95895385
TL
20291 "lock" : {
20292 "description" : "The current config lock, if any.",
20293 "optional" : 1,
20294 "type" : "string"
20295 },
4d47f125
TL
20296 "maxdisk" : {
20297 "description" : "Root disk size in bytes.",
20298 "optional" : 1,
20299 "renderer" : "bytes",
20300 "type" : "integer"
20301 },
20302 "maxmem" : {
20303 "description" : "Maximum memory in bytes.",
20304 "optional" : 1,
20305 "renderer" : "bytes",
20306 "type" : "integer"
20307 },
20308 "name" : {
20309 "description" : "VM name.",
20310 "optional" : 1,
20311 "type" : "string"
20312 },
20313 "pid" : {
20314 "description" : "PID of running qemu process.",
20315 "optional" : 1,
20316 "type" : "integer"
20317 },
20318 "qmpstatus" : {
20319 "description" : "Qemu QMP agent status.",
20320 "optional" : 1,
20321 "type" : "string"
20322 },
d2656385
TL
20323 "running-machine" : {
20324 "description" : "The currently running machine type (if running).",
20325 "optional" : 1,
20326 "type" : "string"
20327 },
20328 "running-qemu" : {
20329 "description" : "The currently running QEMU version (if running).",
20330 "optional" : 1,
20331 "type" : "string"
20332 },
4d47f125
TL
20333 "spice" : {
20334 "description" : "Qemu VGA configuration supports spice.",
20335 "optional" : 1,
20336 "type" : "boolean"
20337 },
20338 "status" : {
20339 "description" : "Qemu process status.",
20340 "enum" : [
20341 "stopped",
20342 "running"
20343 ],
20344 "type" : "string"
20345 },
5c1699e5
TL
20346 "tags" : {
20347 "description" : "The current configured tags, if any",
20348 "optional" : 1,
20349 "type" : "string"
20350 },
4d47f125
TL
20351 "uptime" : {
20352 "description" : "Uptime.",
20353 "optional" : 1,
20354 "renderer" : "duration",
20355 "type" : "integer"
20356 },
20357 "vmid" : {
20358 "description" : "The (unique) ID of the VM.",
20359 "format" : "pve-vmid",
20360 "minimum" : 1,
20361 "type" : "integer"
20362 }
20363 },
20364 "type" : "object"
20365 }
20366 }
20367 },
20368 "leaf" : 1,
20369 "path" : "/nodes/{node}/qemu/{vmid}/status/current",
20370 "text" : "current"
20371 },
20372 {
20373 "info" : {
20374 "POST" : {
e9cd3bd4 20375 "allowtoken" : 1,
4d47f125
TL
20376 "description" : "Start virtual machine.",
20377 "method" : "POST",
20378 "name" : "vm_start",
20379 "parameters" : {
20380 "additionalProperties" : 0,
20381 "properties" : {
c5aa7e14
TL
20382 "force-cpu" : {
20383 "description" : "Override QEMU's -cpu argument with the given string.",
20384 "optional" : 1,
20385 "type" : "string",
20386 "typetext" : "<string>"
20387 },
4d47f125
TL
20388 "machine" : {
20389 "description" : "Specifies the Qemu machine type.",
20390 "maxLength" : 40,
20391 "optional" : 1,
5c1699e5 20392 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
4d47f125
TL
20393 "type" : "string"
20394 },
20395 "migratedfrom" : {
20396 "description" : "The cluster node name.",
20397 "format" : "pve-node",
20398 "optional" : 1,
20399 "type" : "string",
20400 "typetext" : "<string>"
20401 },
20402 "migration_network" : {
20403 "description" : "CIDR of the (sub) network that is used for migration.",
20404 "format" : "CIDR",
20405 "optional" : 1,
20406 "type" : "string",
20407 "typetext" : "<string>"
20408 },
20409 "migration_type" : {
20410 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
20411 "enum" : [
20412 "secure",
20413 "insecure"
20414 ],
20415 "optional" : 1,
20416 "type" : "string"
20417 },
20418 "node" : {
20419 "description" : "The cluster node name.",
20420 "format" : "pve-node",
20421 "type" : "string",
20422 "typetext" : "<string>"
20423 },
20424 "skiplock" : {
20425 "description" : "Ignore locks - only root is allowed to use this option.",
20426 "optional" : 1,
20427 "type" : "boolean",
20428 "typetext" : "<boolean>"
20429 },
20430 "stateuri" : {
20431 "description" : "Some command save/restore state from this location.",
20432 "maxLength" : 128,
20433 "optional" : 1,
20434 "type" : "string",
20435 "typetext" : "<string>"
20436 },
20437 "targetstorage" : {
c5aa7e14 20438 "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 20439 "format" : "storage-pair-list",
4d47f125
TL
20440 "optional" : 1,
20441 "type" : "string",
20442 "typetext" : "<string>"
20443 },
e9cd3bd4
TL
20444 "timeout" : {
20445 "default" : "max(30, vm memory in GiB)",
20446 "description" : "Wait maximal timeout seconds.",
20447 "minimum" : 0,
20448 "optional" : 1,
20449 "type" : "integer",
20450 "typetext" : "<integer> (0 - N)"
20451 },
4d47f125
TL
20452 "vmid" : {
20453 "description" : "The (unique) ID of the VM.",
20454 "format" : "pve-vmid",
20455 "minimum" : 1,
20456 "type" : "integer",
20457 "typetext" : "<integer> (1 - N)"
20458 }
20459 }
20460 },
20461 "permissions" : {
20462 "check" : [
20463 "perm",
20464 "/vms/{vmid}",
20465 [
20466 "VM.PowerMgmt"
20467 ]
20468 ]
20469 },
20470 "protected" : 1,
20471 "proxyto" : "node",
20472 "returns" : {
20473 "type" : "string"
20474 }
20475 }
20476 },
20477 "leaf" : 1,
20478 "path" : "/nodes/{node}/qemu/{vmid}/status/start",
20479 "text" : "start"
20480 },
20481 {
20482 "info" : {
20483 "POST" : {
e9cd3bd4 20484 "allowtoken" : 1,
4d47f125
TL
20485 "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",
20486 "method" : "POST",
20487 "name" : "vm_stop",
20488 "parameters" : {
20489 "additionalProperties" : 0,
20490 "properties" : {
20491 "keepActive" : {
20492 "default" : 0,
20493 "description" : "Do not deactivate storage volumes.",
20494 "optional" : 1,
20495 "type" : "boolean",
20496 "typetext" : "<boolean>"
20497 },
20498 "migratedfrom" : {
20499 "description" : "The cluster node name.",
20500 "format" : "pve-node",
20501 "optional" : 1,
20502 "type" : "string",
20503 "typetext" : "<string>"
20504 },
20505 "node" : {
20506 "description" : "The cluster node name.",
20507 "format" : "pve-node",
20508 "type" : "string",
20509 "typetext" : "<string>"
20510 },
20511 "skiplock" : {
20512 "description" : "Ignore locks - only root is allowed to use this option.",
20513 "optional" : 1,
20514 "type" : "boolean",
20515 "typetext" : "<boolean>"
20516 },
20517 "timeout" : {
20518 "description" : "Wait maximal timeout seconds.",
20519 "minimum" : 0,
20520 "optional" : 1,
20521 "type" : "integer",
20522 "typetext" : "<integer> (0 - N)"
20523 },
20524 "vmid" : {
20525 "description" : "The (unique) ID of the VM.",
20526 "format" : "pve-vmid",
20527 "minimum" : 1,
20528 "type" : "integer",
20529 "typetext" : "<integer> (1 - N)"
20530 }
20531 }
20532 },
20533 "permissions" : {
20534 "check" : [
20535 "perm",
20536 "/vms/{vmid}",
20537 [
20538 "VM.PowerMgmt"
20539 ]
20540 ]
20541 },
20542 "protected" : 1,
20543 "proxyto" : "node",
20544 "returns" : {
20545 "type" : "string"
20546 }
20547 }
20548 },
20549 "leaf" : 1,
20550 "path" : "/nodes/{node}/qemu/{vmid}/status/stop",
20551 "text" : "stop"
20552 },
20553 {
20554 "info" : {
20555 "POST" : {
e9cd3bd4 20556 "allowtoken" : 1,
4d47f125
TL
20557 "description" : "Reset virtual machine.",
20558 "method" : "POST",
20559 "name" : "vm_reset",
20560 "parameters" : {
20561 "additionalProperties" : 0,
20562 "properties" : {
20563 "node" : {
20564 "description" : "The cluster node name.",
20565 "format" : "pve-node",
20566 "type" : "string",
20567 "typetext" : "<string>"
20568 },
20569 "skiplock" : {
20570 "description" : "Ignore locks - only root is allowed to use this option.",
20571 "optional" : 1,
20572 "type" : "boolean",
20573 "typetext" : "<boolean>"
20574 },
20575 "vmid" : {
20576 "description" : "The (unique) ID of the VM.",
20577 "format" : "pve-vmid",
20578 "minimum" : 1,
20579 "type" : "integer",
20580 "typetext" : "<integer> (1 - N)"
20581 }
20582 }
20583 },
20584 "permissions" : {
20585 "check" : [
20586 "perm",
20587 "/vms/{vmid}",
20588 [
20589 "VM.PowerMgmt"
20590 ]
20591 ]
20592 },
20593 "protected" : 1,
20594 "proxyto" : "node",
20595 "returns" : {
20596 "type" : "string"
20597 }
20598 }
20599 },
20600 "leaf" : 1,
20601 "path" : "/nodes/{node}/qemu/{vmid}/status/reset",
20602 "text" : "reset"
20603 },
20604 {
20605 "info" : {
20606 "POST" : {
e9cd3bd4 20607 "allowtoken" : 1,
4d47f125
TL
20608 "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.",
20609 "method" : "POST",
20610 "name" : "vm_shutdown",
20611 "parameters" : {
20612 "additionalProperties" : 0,
20613 "properties" : {
20614 "forceStop" : {
20615 "default" : 0,
20616 "description" : "Make sure the VM stops.",
20617 "optional" : 1,
20618 "type" : "boolean",
20619 "typetext" : "<boolean>"
20620 },
20621 "keepActive" : {
20622 "default" : 0,
20623 "description" : "Do not deactivate storage volumes.",
20624 "optional" : 1,
20625 "type" : "boolean",
20626 "typetext" : "<boolean>"
20627 },
20628 "node" : {
20629 "description" : "The cluster node name.",
20630 "format" : "pve-node",
20631 "type" : "string",
20632 "typetext" : "<string>"
20633 },
20634 "skiplock" : {
20635 "description" : "Ignore locks - only root is allowed to use this option.",
20636 "optional" : 1,
20637 "type" : "boolean",
20638 "typetext" : "<boolean>"
20639 },
20640 "timeout" : {
20641 "description" : "Wait maximal timeout seconds.",
20642 "minimum" : 0,
20643 "optional" : 1,
20644 "type" : "integer",
20645 "typetext" : "<integer> (0 - N)"
20646 },
20647 "vmid" : {
20648 "description" : "The (unique) ID of the VM.",
20649 "format" : "pve-vmid",
20650 "minimum" : 1,
20651 "type" : "integer",
20652 "typetext" : "<integer> (1 - N)"
20653 }
20654 }
20655 },
20656 "permissions" : {
20657 "check" : [
20658 "perm",
20659 "/vms/{vmid}",
20660 [
20661 "VM.PowerMgmt"
20662 ]
20663 ]
20664 },
20665 "protected" : 1,
20666 "proxyto" : "node",
20667 "returns" : {
20668 "type" : "string"
20669 }
20670 }
20671 },
20672 "leaf" : 1,
20673 "path" : "/nodes/{node}/qemu/{vmid}/status/shutdown",
20674 "text" : "shutdown"
20675 },
1c532546
TL
20676 {
20677 "info" : {
20678 "POST" : {
e9cd3bd4 20679 "allowtoken" : 1,
1c532546
TL
20680 "description" : "Reboot the VM by shutting it down, and starting it again. Applies pending changes.",
20681 "method" : "POST",
20682 "name" : "vm_reboot",
20683 "parameters" : {
20684 "additionalProperties" : 0,
20685 "properties" : {
20686 "node" : {
20687 "description" : "The cluster node name.",
20688 "format" : "pve-node",
20689 "type" : "string",
20690 "typetext" : "<string>"
20691 },
20692 "timeout" : {
20693 "description" : "Wait maximal timeout seconds for the shutdown.",
20694 "minimum" : 0,
20695 "optional" : 1,
20696 "type" : "integer",
20697 "typetext" : "<integer> (0 - N)"
20698 },
20699 "vmid" : {
20700 "description" : "The (unique) ID of the VM.",
20701 "format" : "pve-vmid",
20702 "minimum" : 1,
20703 "type" : "integer",
20704 "typetext" : "<integer> (1 - N)"
20705 }
20706 }
20707 },
20708 "permissions" : {
20709 "check" : [
20710 "perm",
20711 "/vms/{vmid}",
20712 [
20713 "VM.PowerMgmt"
20714 ]
20715 ]
20716 },
20717 "protected" : 1,
20718 "proxyto" : "node",
20719 "returns" : {
20720 "type" : "string"
20721 }
20722 }
20723 },
20724 "leaf" : 1,
20725 "path" : "/nodes/{node}/qemu/{vmid}/status/reboot",
20726 "text" : "reboot"
20727 },
4d47f125
TL
20728 {
20729 "info" : {
20730 "POST" : {
e9cd3bd4 20731 "allowtoken" : 1,
4d47f125
TL
20732 "description" : "Suspend virtual machine.",
20733 "method" : "POST",
20734 "name" : "vm_suspend",
20735 "parameters" : {
20736 "additionalProperties" : 0,
20737 "properties" : {
20738 "node" : {
20739 "description" : "The cluster node name.",
20740 "format" : "pve-node",
20741 "type" : "string",
20742 "typetext" : "<string>"
20743 },
20744 "skiplock" : {
20745 "description" : "Ignore locks - only root is allowed to use this option.",
20746 "optional" : 1,
20747 "type" : "boolean",
20748 "typetext" : "<boolean>"
20749 },
95895385
TL
20750 "statestorage" : {
20751 "description" : "The storage for the VM state",
20752 "format" : "pve-storage-id",
20753 "optional" : 1,
20754 "requires" : "todisk",
20755 "type" : "string",
20756 "typetext" : "<string>"
20757 },
20758 "todisk" : {
20759 "default" : 0,
20760 "description" : "If set, suspends the VM to disk. Will be resumed on next VM start.",
20761 "optional" : 1,
20762 "type" : "boolean",
20763 "typetext" : "<boolean>"
20764 },
4d47f125
TL
20765 "vmid" : {
20766 "description" : "The (unique) ID of the VM.",
20767 "format" : "pve-vmid",
20768 "minimum" : 1,
20769 "type" : "integer",
20770 "typetext" : "<integer> (1 - N)"
20771 }
20772 }
20773 },
20774 "permissions" : {
20775 "check" : [
20776 "perm",
20777 "/vms/{vmid}",
20778 [
20779 "VM.PowerMgmt"
20780 ]
e9cd3bd4
TL
20781 ],
20782 "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
20783 },
20784 "protected" : 1,
20785 "proxyto" : "node",
20786 "returns" : {
20787 "type" : "string"
20788 }
20789 }
20790 },
20791 "leaf" : 1,
20792 "path" : "/nodes/{node}/qemu/{vmid}/status/suspend",
20793 "text" : "suspend"
20794 },
20795 {
20796 "info" : {
20797 "POST" : {
e9cd3bd4 20798 "allowtoken" : 1,
4d47f125
TL
20799 "description" : "Resume virtual machine.",
20800 "method" : "POST",
20801 "name" : "vm_resume",
20802 "parameters" : {
20803 "additionalProperties" : 0,
20804 "properties" : {
20805 "nocheck" : {
20806 "optional" : 1,
20807 "type" : "boolean",
20808 "typetext" : "<boolean>"
20809 },
20810 "node" : {
20811 "description" : "The cluster node name.",
20812 "format" : "pve-node",
20813 "type" : "string",
20814 "typetext" : "<string>"
20815 },
20816 "skiplock" : {
20817 "description" : "Ignore locks - only root is allowed to use this option.",
20818 "optional" : 1,
20819 "type" : "boolean",
20820 "typetext" : "<boolean>"
20821 },
20822 "vmid" : {
20823 "description" : "The (unique) ID of the VM.",
20824 "format" : "pve-vmid",
20825 "minimum" : 1,
20826 "type" : "integer",
20827 "typetext" : "<integer> (1 - N)"
20828 }
20829 }
20830 },
20831 "permissions" : {
20832 "check" : [
20833 "perm",
20834 "/vms/{vmid}",
20835 [
20836 "VM.PowerMgmt"
20837 ]
20838 ]
20839 },
20840 "protected" : 1,
20841 "proxyto" : "node",
20842 "returns" : {
20843 "type" : "string"
20844 }
20845 }
20846 },
20847 "leaf" : 1,
20848 "path" : "/nodes/{node}/qemu/{vmid}/status/resume",
20849 "text" : "resume"
20850 }
20851 ],
20852 "info" : {
20853 "GET" : {
e9cd3bd4 20854 "allowtoken" : 1,
4d47f125
TL
20855 "description" : "Directory index",
20856 "method" : "GET",
20857 "name" : "vmcmdidx",
20858 "parameters" : {
20859 "additionalProperties" : 0,
20860 "properties" : {
20861 "node" : {
20862 "description" : "The cluster node name.",
20863 "format" : "pve-node",
20864 "type" : "string",
20865 "typetext" : "<string>"
20866 },
20867 "vmid" : {
20868 "description" : "The (unique) ID of the VM.",
20869 "format" : "pve-vmid",
20870 "minimum" : 1,
20871 "type" : "integer",
20872 "typetext" : "<integer> (1 - N)"
20873 }
20874 }
20875 },
20876 "permissions" : {
20877 "user" : "all"
20878 },
20879 "proxyto" : "node",
20880 "returns" : {
20881 "items" : {
20882 "properties" : {
20883 "subdir" : {
20884 "type" : "string"
20885 }
20886 },
20887 "type" : "object"
20888 },
20889 "links" : [
20890 {
20891 "href" : "{subdir}",
20892 "rel" : "child"
20893 }
20894 ],
20895 "type" : "array"
20896 }
20897 }
20898 },
20899 "leaf" : 0,
20900 "path" : "/nodes/{node}/qemu/{vmid}/status",
20901 "text" : "status"
20902 },
20903 {
20904 "info" : {
20905 "PUT" : {
e9cd3bd4 20906 "allowtoken" : 1,
4d47f125
TL
20907 "description" : "Send key event to virtual machine.",
20908 "method" : "PUT",
20909 "name" : "vm_sendkey",
20910 "parameters" : {
20911 "additionalProperties" : 0,
20912 "properties" : {
20913 "key" : {
20914 "description" : "The key (qemu monitor encoding).",
20915 "type" : "string",
20916 "typetext" : "<string>"
20917 },
20918 "node" : {
20919 "description" : "The cluster node name.",
20920 "format" : "pve-node",
20921 "type" : "string",
20922 "typetext" : "<string>"
20923 },
20924 "skiplock" : {
20925 "description" : "Ignore locks - only root is allowed to use this option.",
20926 "optional" : 1,
20927 "type" : "boolean",
20928 "typetext" : "<boolean>"
20929 },
20930 "vmid" : {
20931 "description" : "The (unique) ID of the VM.",
20932 "format" : "pve-vmid",
20933 "minimum" : 1,
20934 "type" : "integer",
20935 "typetext" : "<integer> (1 - N)"
20936 }
20937 }
20938 },
20939 "permissions" : {
20940 "check" : [
20941 "perm",
20942 "/vms/{vmid}",
20943 [
20944 "VM.Console"
20945 ]
20946 ]
20947 },
20948 "protected" : 1,
20949 "proxyto" : "node",
20950 "returns" : {
20951 "type" : "null"
20952 }
20953 }
20954 },
20955 "leaf" : 1,
20956 "path" : "/nodes/{node}/qemu/{vmid}/sendkey",
20957 "text" : "sendkey"
20958 },
20959 {
20960 "info" : {
20961 "GET" : {
e9cd3bd4 20962 "allowtoken" : 1,
4d47f125
TL
20963 "description" : "Check if feature for virtual machine is available.",
20964 "method" : "GET",
20965 "name" : "vm_feature",
20966 "parameters" : {
20967 "additionalProperties" : 0,
20968 "properties" : {
20969 "feature" : {
20970 "description" : "Feature to check.",
20971 "enum" : [
20972 "snapshot",
20973 "clone",
20974 "copy"
20975 ],
20976 "type" : "string"
20977 },
20978 "node" : {
20979 "description" : "The cluster node name.",
20980 "format" : "pve-node",
20981 "type" : "string",
20982 "typetext" : "<string>"
20983 },
20984 "snapname" : {
20985 "description" : "The name of the snapshot.",
20986 "format" : "pve-configid",
20987 "maxLength" : 40,
20988 "optional" : 1,
20989 "type" : "string",
20990 "typetext" : "<string>"
20991 },
20992 "vmid" : {
20993 "description" : "The (unique) ID of the VM.",
20994 "format" : "pve-vmid",
20995 "minimum" : 1,
20996 "type" : "integer",
20997 "typetext" : "<integer> (1 - N)"
20998 }
20999 }
21000 },
21001 "permissions" : {
21002 "check" : [
21003 "perm",
21004 "/vms/{vmid}",
21005 [
21006 "VM.Audit"
21007 ]
21008 ]
21009 },
21010 "protected" : 1,
21011 "proxyto" : "node",
21012 "returns" : {
21013 "properties" : {
21014 "hasFeature" : {
21015 "type" : "boolean"
21016 },
21017 "nodes" : {
21018 "items" : {
21019 "type" : "string"
21020 },
21021 "type" : "array"
21022 }
21023 },
21024 "type" : "object"
21025 }
21026 }
21027 },
21028 "leaf" : 1,
21029 "path" : "/nodes/{node}/qemu/{vmid}/feature",
21030 "text" : "feature"
21031 },
21032 {
21033 "info" : {
21034 "POST" : {
e9cd3bd4 21035 "allowtoken" : 1,
4d47f125
TL
21036 "description" : "Create a copy of virtual machine/template.",
21037 "method" : "POST",
21038 "name" : "clone_vm",
21039 "parameters" : {
21040 "additionalProperties" : 0,
21041 "properties" : {
95895385
TL
21042 "bwlimit" : {
21043 "default" : "clone limit from datacenter or storage config",
21044 "description" : "Override I/O bandwidth limit (in KiB/s).",
21045 "minimum" : "0",
21046 "optional" : 1,
21047 "type" : "integer",
21048 "typetext" : "<integer> (0 - N)"
21049 },
4d47f125
TL
21050 "description" : {
21051 "description" : "Description for the new VM.",
21052 "optional" : 1,
21053 "type" : "string",
21054 "typetext" : "<string>"
21055 },
21056 "format" : {
21057 "description" : "Target format for file storage. Only valid for full clone.",
21058 "enum" : [
21059 "raw",
21060 "qcow2",
21061 "vmdk"
21062 ],
21063 "optional" : 1,
21064 "type" : "string"
21065 },
21066 "full" : {
21067 "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.",
21068 "optional" : 1,
21069 "type" : "boolean",
21070 "typetext" : "<boolean>"
21071 },
21072 "name" : {
21073 "description" : "Set a name for the new VM.",
21074 "format" : "dns-name",
21075 "optional" : 1,
21076 "type" : "string",
21077 "typetext" : "<string>"
21078 },
21079 "newid" : {
21080 "description" : "VMID for the clone.",
21081 "format" : "pve-vmid",
21082 "minimum" : 1,
21083 "type" : "integer",
21084 "typetext" : "<integer> (1 - N)"
21085 },
21086 "node" : {
21087 "description" : "The cluster node name.",
21088 "format" : "pve-node",
21089 "type" : "string",
21090 "typetext" : "<string>"
21091 },
21092 "pool" : {
21093 "description" : "Add the new VM to the specified pool.",
21094 "format" : "pve-poolid",
21095 "optional" : 1,
21096 "type" : "string",
21097 "typetext" : "<string>"
21098 },
21099 "snapname" : {
21100 "description" : "The name of the snapshot.",
21101 "format" : "pve-configid",
21102 "maxLength" : 40,
21103 "optional" : 1,
21104 "type" : "string",
21105 "typetext" : "<string>"
21106 },
21107 "storage" : {
21108 "description" : "Target storage for full clone.",
21109 "format" : "pve-storage-id",
21110 "optional" : 1,
21111 "type" : "string",
21112 "typetext" : "<string>"
21113 },
21114 "target" : {
21115 "description" : "Target node. Only allowed if the original VM is on shared storage.",
21116 "format" : "pve-node",
21117 "optional" : 1,
21118 "type" : "string",
21119 "typetext" : "<string>"
21120 },
21121 "vmid" : {
21122 "description" : "The (unique) ID of the VM.",
21123 "format" : "pve-vmid",
21124 "minimum" : 1,
21125 "type" : "integer",
21126 "typetext" : "<integer> (1 - N)"
21127 }
21128 }
21129 },
21130 "permissions" : {
21131 "check" : [
21132 "and",
21133 [
21134 "perm",
21135 "/vms/{vmid}",
21136 [
21137 "VM.Clone"
21138 ]
21139 ],
21140 [
21141 "or",
21142 [
21143 "perm",
21144 "/vms/{newid}",
21145 [
21146 "VM.Allocate"
21147 ]
21148 ],
21149 [
21150 "perm",
21151 "/pool/{pool}",
21152 [
21153 "VM.Allocate"
21154 ],
21155 "require_param",
21156 "pool"
21157 ]
21158 ]
21159 ],
21160 "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."
21161 },
21162 "protected" : 1,
21163 "proxyto" : "node",
21164 "returns" : {
21165 "type" : "string"
21166 }
21167 }
21168 },
21169 "leaf" : 1,
21170 "path" : "/nodes/{node}/qemu/{vmid}/clone",
21171 "text" : "clone"
21172 },
21173 {
21174 "info" : {
21175 "POST" : {
e9cd3bd4 21176 "allowtoken" : 1,
5370fa8c 21177 "description" : "Move volume to different storage or to a different VM.",
4d47f125
TL
21178 "method" : "POST",
21179 "name" : "move_vm_disk",
21180 "parameters" : {
21181 "additionalProperties" : 0,
21182 "properties" : {
95895385
TL
21183 "bwlimit" : {
21184 "default" : "move limit from datacenter or storage config",
21185 "description" : "Override I/O bandwidth limit (in KiB/s).",
21186 "minimum" : "0",
21187 "optional" : 1,
21188 "type" : "integer",
21189 "typetext" : "<integer> (0 - N)"
21190 },
4d47f125
TL
21191 "delete" : {
21192 "default" : 0,
21193 "description" : "Delete the original disk after successful copy. By default the original disk is kept as unused disk.",
21194 "optional" : 1,
21195 "type" : "boolean",
21196 "typetext" : "<boolean>"
21197 },
21198 "digest" : {
5370fa8c 21199 "description" : "Prevent changes if current configuration file has different SHA1\"\n\t\t .\" digest. This can be used to prevent concurrent modifications.",
4d47f125
TL
21200 "maxLength" : 40,
21201 "optional" : 1,
21202 "type" : "string",
21203 "typetext" : "<string>"
21204 },
21205 "disk" : {
21206 "description" : "The disk you want to move.",
21207 "enum" : [
21208 "ide0",
21209 "ide1",
21210 "ide2",
21211 "ide3",
21212 "scsi0",
21213 "scsi1",
21214 "scsi2",
21215 "scsi3",
21216 "scsi4",
21217 "scsi5",
21218 "scsi6",
21219 "scsi7",
21220 "scsi8",
21221 "scsi9",
21222 "scsi10",
21223 "scsi11",
21224 "scsi12",
21225 "scsi13",
e9cd3bd4
TL
21226 "scsi14",
21227 "scsi15",
21228 "scsi16",
21229 "scsi17",
21230 "scsi18",
21231 "scsi19",
21232 "scsi20",
21233 "scsi21",
21234 "scsi22",
21235 "scsi23",
21236 "scsi24",
21237 "scsi25",
21238 "scsi26",
21239 "scsi27",
21240 "scsi28",
21241 "scsi29",
21242 "scsi30",
4d47f125
TL
21243 "virtio0",
21244 "virtio1",
21245 "virtio2",
21246 "virtio3",
21247 "virtio4",
21248 "virtio5",
21249 "virtio6",
21250 "virtio7",
21251 "virtio8",
21252 "virtio9",
21253 "virtio10",
21254 "virtio11",
21255 "virtio12",
21256 "virtio13",
21257 "virtio14",
21258 "virtio15",
21259 "sata0",
21260 "sata1",
21261 "sata2",
21262 "sata3",
21263 "sata4",
21264 "sata5",
5370fa8c
TL
21265 "efidisk0",
21266 "tpmstate0",
21267 "unused0",
21268 "unused1",
21269 "unused2",
21270 "unused3",
21271 "unused4",
21272 "unused5",
21273 "unused6",
21274 "unused7",
21275 "unused8",
21276 "unused9",
21277 "unused10",
21278 "unused11",
21279 "unused12",
21280 "unused13",
21281 "unused14",
21282 "unused15",
21283 "unused16",
21284 "unused17",
21285 "unused18",
21286 "unused19",
21287 "unused20",
21288 "unused21",
21289 "unused22",
21290 "unused23",
21291 "unused24",
21292 "unused25",
21293 "unused26",
21294 "unused27",
21295 "unused28",
21296 "unused29",
21297 "unused30",
21298 "unused31",
21299 "unused32",
21300 "unused33",
21301 "unused34",
21302 "unused35",
21303 "unused36",
21304 "unused37",
21305 "unused38",
21306 "unused39",
21307 "unused40",
21308 "unused41",
21309 "unused42",
21310 "unused43",
21311 "unused44",
21312 "unused45",
21313 "unused46",
21314 "unused47",
21315 "unused48",
21316 "unused49",
21317 "unused50",
21318 "unused51",
21319 "unused52",
21320 "unused53",
21321 "unused54",
21322 "unused55",
21323 "unused56",
21324 "unused57",
21325 "unused58",
21326 "unused59",
21327 "unused60",
21328 "unused61",
21329 "unused62",
21330 "unused63",
21331 "unused64",
21332 "unused65",
21333 "unused66",
21334 "unused67",
21335 "unused68",
21336 "unused69",
21337 "unused70",
21338 "unused71",
21339 "unused72",
21340 "unused73",
21341 "unused74",
21342 "unused75",
21343 "unused76",
21344 "unused77",
21345 "unused78",
21346 "unused79",
21347 "unused80",
21348 "unused81",
21349 "unused82",
21350 "unused83",
21351 "unused84",
21352 "unused85",
21353 "unused86",
21354 "unused87",
21355 "unused88",
21356 "unused89",
21357 "unused90",
21358 "unused91",
21359 "unused92",
21360 "unused93",
21361 "unused94",
21362 "unused95",
21363 "unused96",
21364 "unused97",
21365 "unused98",
21366 "unused99",
21367 "unused100",
21368 "unused101",
21369 "unused102",
21370 "unused103",
21371 "unused104",
21372 "unused105",
21373 "unused106",
21374 "unused107",
21375 "unused108",
21376 "unused109",
21377 "unused110",
21378 "unused111",
21379 "unused112",
21380 "unused113",
21381 "unused114",
21382 "unused115",
21383 "unused116",
21384 "unused117",
21385 "unused118",
21386 "unused119",
21387 "unused120",
21388 "unused121",
21389 "unused122",
21390 "unused123",
21391 "unused124",
21392 "unused125",
21393 "unused126",
21394 "unused127",
21395 "unused128",
21396 "unused129",
21397 "unused130",
21398 "unused131",
21399 "unused132",
21400 "unused133",
21401 "unused134",
21402 "unused135",
21403 "unused136",
21404 "unused137",
21405 "unused138",
21406 "unused139",
21407 "unused140",
21408 "unused141",
21409 "unused142",
21410 "unused143",
21411 "unused144",
21412 "unused145",
21413 "unused146",
21414 "unused147",
21415 "unused148",
21416 "unused149",
21417 "unused150",
21418 "unused151",
21419 "unused152",
21420 "unused153",
21421 "unused154",
21422 "unused155",
21423 "unused156",
21424 "unused157",
21425 "unused158",
21426 "unused159",
21427 "unused160",
21428 "unused161",
21429 "unused162",
21430 "unused163",
21431 "unused164",
21432 "unused165",
21433 "unused166",
21434 "unused167",
21435 "unused168",
21436 "unused169",
21437 "unused170",
21438 "unused171",
21439 "unused172",
21440 "unused173",
21441 "unused174",
21442 "unused175",
21443 "unused176",
21444 "unused177",
21445 "unused178",
21446 "unused179",
21447 "unused180",
21448 "unused181",
21449 "unused182",
21450 "unused183",
21451 "unused184",
21452 "unused185",
21453 "unused186",
21454 "unused187",
21455 "unused188",
21456 "unused189",
21457 "unused190",
21458 "unused191",
21459 "unused192",
21460 "unused193",
21461 "unused194",
21462 "unused195",
21463 "unused196",
21464 "unused197",
21465 "unused198",
21466 "unused199",
21467 "unused200",
21468 "unused201",
21469 "unused202",
21470 "unused203",
21471 "unused204",
21472 "unused205",
21473 "unused206",
21474 "unused207",
21475 "unused208",
21476 "unused209",
21477 "unused210",
21478 "unused211",
21479 "unused212",
21480 "unused213",
21481 "unused214",
21482 "unused215",
21483 "unused216",
21484 "unused217",
21485 "unused218",
21486 "unused219",
21487 "unused220",
21488 "unused221",
21489 "unused222",
21490 "unused223",
21491 "unused224",
21492 "unused225",
21493 "unused226",
21494 "unused227",
21495 "unused228",
21496 "unused229",
21497 "unused230",
21498 "unused231",
21499 "unused232",
21500 "unused233",
21501 "unused234",
21502 "unused235",
21503 "unused236",
21504 "unused237",
21505 "unused238",
21506 "unused239",
21507 "unused240",
21508 "unused241",
21509 "unused242",
21510 "unused243",
21511 "unused244",
21512 "unused245",
21513 "unused246",
21514 "unused247",
21515 "unused248",
21516 "unused249",
21517 "unused250",
21518 "unused251",
21519 "unused252",
21520 "unused253",
21521 "unused254",
21522 "unused255"
4d47f125
TL
21523 ],
21524 "type" : "string"
21525 },
21526 "format" : {
21527 "description" : "Target Format.",
21528 "enum" : [
21529 "raw",
21530 "qcow2",
21531 "vmdk"
21532 ],
21533 "optional" : 1,
21534 "type" : "string"
21535 },
21536 "node" : {
21537 "description" : "The cluster node name.",
21538 "format" : "pve-node",
21539 "type" : "string",
21540 "typetext" : "<string>"
21541 },
21542 "storage" : {
21543 "description" : "Target storage.",
21544 "format" : "pve-storage-id",
5370fa8c 21545 "optional" : 1,
4d47f125
TL
21546 "type" : "string",
21547 "typetext" : "<string>"
21548 },
5370fa8c
TL
21549 "target-digest" : {
21550 "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.",
21551 "maxLength" : 40,
21552 "optional" : 1,
21553 "type" : "string",
21554 "typetext" : "<string>"
21555 },
21556 "target-disk" : {
21557 "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.",
21558 "enum" : [
21559 "ide0",
21560 "ide1",
21561 "ide2",
21562 "ide3",
21563 "scsi0",
21564 "scsi1",
21565 "scsi2",
21566 "scsi3",
21567 "scsi4",
21568 "scsi5",
21569 "scsi6",
21570 "scsi7",
21571 "scsi8",
21572 "scsi9",
21573 "scsi10",
21574 "scsi11",
21575 "scsi12",
21576 "scsi13",
21577 "scsi14",
21578 "scsi15",
21579 "scsi16",
21580 "scsi17",
21581 "scsi18",
21582 "scsi19",
21583 "scsi20",
21584 "scsi21",
21585 "scsi22",
21586 "scsi23",
21587 "scsi24",
21588 "scsi25",
21589 "scsi26",
21590 "scsi27",
21591 "scsi28",
21592 "scsi29",
21593 "scsi30",
21594 "virtio0",
21595 "virtio1",
21596 "virtio2",
21597 "virtio3",
21598 "virtio4",
21599 "virtio5",
21600 "virtio6",
21601 "virtio7",
21602 "virtio8",
21603 "virtio9",
21604 "virtio10",
21605 "virtio11",
21606 "virtio12",
21607 "virtio13",
21608 "virtio14",
21609 "virtio15",
21610 "sata0",
21611 "sata1",
21612 "sata2",
21613 "sata3",
21614 "sata4",
21615 "sata5",
21616 "efidisk0",
21617 "tpmstate0",
21618 "unused0",
21619 "unused1",
21620 "unused2",
21621 "unused3",
21622 "unused4",
21623 "unused5",
21624 "unused6",
21625 "unused7",
21626 "unused8",
21627 "unused9",
21628 "unused10",
21629 "unused11",
21630 "unused12",
21631 "unused13",
21632 "unused14",
21633 "unused15",
21634 "unused16",
21635 "unused17",
21636 "unused18",
21637 "unused19",
21638 "unused20",
21639 "unused21",
21640 "unused22",
21641 "unused23",
21642 "unused24",
21643 "unused25",
21644 "unused26",
21645 "unused27",
21646 "unused28",
21647 "unused29",
21648 "unused30",
21649 "unused31",
21650 "unused32",
21651 "unused33",
21652 "unused34",
21653 "unused35",
21654 "unused36",
21655 "unused37",
21656 "unused38",
21657 "unused39",
21658 "unused40",
21659 "unused41",
21660 "unused42",
21661 "unused43",
21662 "unused44",
21663 "unused45",
21664 "unused46",
21665 "unused47",
21666 "unused48",
21667 "unused49",
21668 "unused50",
21669 "unused51",
21670 "unused52",
21671 "unused53",
21672 "unused54",
21673 "unused55",
21674 "unused56",
21675 "unused57",
21676 "unused58",
21677 "unused59",
21678 "unused60",
21679 "unused61",
21680 "unused62",
21681 "unused63",
21682 "unused64",
21683 "unused65",
21684 "unused66",
21685 "unused67",
21686 "unused68",
21687 "unused69",
21688 "unused70",
21689 "unused71",
21690 "unused72",
21691 "unused73",
21692 "unused74",
21693 "unused75",
21694 "unused76",
21695 "unused77",
21696 "unused78",
21697 "unused79",
21698 "unused80",
21699 "unused81",
21700 "unused82",
21701 "unused83",
21702 "unused84",
21703 "unused85",
21704 "unused86",
21705 "unused87",
21706 "unused88",
21707 "unused89",
21708 "unused90",
21709 "unused91",
21710 "unused92",
21711 "unused93",
21712 "unused94",
21713 "unused95",
21714 "unused96",
21715 "unused97",
21716 "unused98",
21717 "unused99",
21718 "unused100",
21719 "unused101",
21720 "unused102",
21721 "unused103",
21722 "unused104",
21723 "unused105",
21724 "unused106",
21725 "unused107",
21726 "unused108",
21727 "unused109",
21728 "unused110",
21729 "unused111",
21730 "unused112",
21731 "unused113",
21732 "unused114",
21733 "unused115",
21734 "unused116",
21735 "unused117",
21736 "unused118",
21737 "unused119",
21738 "unused120",
21739 "unused121",
21740 "unused122",
21741 "unused123",
21742 "unused124",
21743 "unused125",
21744 "unused126",
21745 "unused127",
21746 "unused128",
21747 "unused129",
21748 "unused130",
21749 "unused131",
21750 "unused132",
21751 "unused133",
21752 "unused134",
21753 "unused135",
21754 "unused136",
21755 "unused137",
21756 "unused138",
21757 "unused139",
21758 "unused140",
21759 "unused141",
21760 "unused142",
21761 "unused143",
21762 "unused144",
21763 "unused145",
21764 "unused146",
21765 "unused147",
21766 "unused148",
21767 "unused149",
21768 "unused150",
21769 "unused151",
21770 "unused152",
21771 "unused153",
21772 "unused154",
21773 "unused155",
21774 "unused156",
21775 "unused157",
21776 "unused158",
21777 "unused159",
21778 "unused160",
21779 "unused161",
21780 "unused162",
21781 "unused163",
21782 "unused164",
21783 "unused165",
21784 "unused166",
21785 "unused167",
21786 "unused168",
21787 "unused169",
21788 "unused170",
21789 "unused171",
21790 "unused172",
21791 "unused173",
21792 "unused174",
21793 "unused175",
21794 "unused176",
21795 "unused177",
21796 "unused178",
21797 "unused179",
21798 "unused180",
21799 "unused181",
21800 "unused182",
21801 "unused183",
21802 "unused184",
21803 "unused185",
21804 "unused186",
21805 "unused187",
21806 "unused188",
21807 "unused189",
21808 "unused190",
21809 "unused191",
21810 "unused192",
21811 "unused193",
21812 "unused194",
21813 "unused195",
21814 "unused196",
21815 "unused197",
21816 "unused198",
21817 "unused199",
21818 "unused200",
21819 "unused201",
21820 "unused202",
21821 "unused203",
21822 "unused204",
21823 "unused205",
21824 "unused206",
21825 "unused207",
21826 "unused208",
21827 "unused209",
21828 "unused210",
21829 "unused211",
21830 "unused212",
21831 "unused213",
21832 "unused214",
21833 "unused215",
21834 "unused216",
21835 "unused217",
21836 "unused218",
21837 "unused219",
21838 "unused220",
21839 "unused221",
21840 "unused222",
21841 "unused223",
21842 "unused224",
21843 "unused225",
21844 "unused226",
21845 "unused227",
21846 "unused228",
21847 "unused229",
21848 "unused230",
21849 "unused231",
21850 "unused232",
21851 "unused233",
21852 "unused234",
21853 "unused235",
21854 "unused236",
21855 "unused237",
21856 "unused238",
21857 "unused239",
21858 "unused240",
21859 "unused241",
21860 "unused242",
21861 "unused243",
21862 "unused244",
21863 "unused245",
21864 "unused246",
21865 "unused247",
21866 "unused248",
21867 "unused249",
21868 "unused250",
21869 "unused251",
21870 "unused252",
21871 "unused253",
21872 "unused254",
21873 "unused255"
21874 ],
21875 "optional" : 1,
21876 "type" : "string"
21877 },
21878 "target-vmid" : {
21879 "description" : "The (unique) ID of the VM.",
21880 "format" : "pve-vmid",
21881 "minimum" : 1,
21882 "optional" : 1,
21883 "type" : "integer",
21884 "typetext" : "<integer> (1 - N)"
21885 },
4d47f125
TL
21886 "vmid" : {
21887 "description" : "The (unique) ID of the VM.",
21888 "format" : "pve-vmid",
21889 "minimum" : 1,
21890 "type" : "integer",
21891 "typetext" : "<integer> (1 - N)"
21892 }
21893 }
21894 },
21895 "permissions" : {
21896 "check" : [
5370fa8c
TL
21897 "perm",
21898 "/vms/{vmid}",
4d47f125 21899 [
5370fa8c 21900 "VM.Config.Disk"
4d47f125
TL
21901 ]
21902 ],
5370fa8c 21903 "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
21904 },
21905 "protected" : 1,
21906 "proxyto" : "node",
21907 "returns" : {
21908 "description" : "the task ID.",
21909 "type" : "string"
21910 }
21911 }
21912 },
21913 "leaf" : 1,
21914 "path" : "/nodes/{node}/qemu/{vmid}/move_disk",
21915 "text" : "move_disk"
21916 },
21917 {
21918 "info" : {
1e3f8156 21919 "GET" : {
e9cd3bd4 21920 "allowtoken" : 1,
1e3f8156
TL
21921 "description" : "Get preconditions for migration.",
21922 "method" : "GET",
21923 "name" : "migrate_vm_precondition",
21924 "parameters" : {
21925 "additionalProperties" : 0,
21926 "properties" : {
21927 "node" : {
21928 "description" : "The cluster node name.",
21929 "format" : "pve-node",
21930 "type" : "string",
21931 "typetext" : "<string>"
21932 },
21933 "target" : {
21934 "description" : "Target node.",
21935 "format" : "pve-node",
21936 "optional" : 1,
21937 "type" : "string",
21938 "typetext" : "<string>"
21939 },
21940 "vmid" : {
21941 "description" : "The (unique) ID of the VM.",
21942 "format" : "pve-vmid",
21943 "minimum" : 1,
21944 "type" : "integer",
21945 "typetext" : "<integer> (1 - N)"
21946 }
21947 }
21948 },
21949 "permissions" : {
21950 "check" : [
21951 "perm",
21952 "/vms/{vmid}",
21953 [
21954 "VM.Migrate"
21955 ]
21956 ]
21957 },
21958 "protected" : 1,
21959 "proxyto" : "node",
21960 "returns" : {
21961 "properties" : {
21962 "allowed_nodes" : {
9226ccbc 21963 "description" : "List nodes allowed for offline migration, only passed if VM is offline",
1e3f8156
TL
21964 "optional" : 1,
21965 "type" : "array"
21966 },
21967 "local_disks" : {
21968 "description" : "List local disks including CD-Rom, unsused and not referenced disks",
21969 "type" : "array"
21970 },
21971 "local_resources" : {
21972 "description" : "List local resources e.g. pci, usb",
21973 "type" : "array"
21974 },
9226ccbc
TL
21975 "not_allowed_nodes" : {
21976 "description" : "List not allowed nodes with additional informations, only passed if VM is offline",
21977 "optional" : 1,
21978 "type" : "object"
21979 },
1e3f8156
TL
21980 "running" : {
21981 "type" : "boolean"
21982 }
21983 },
21984 "type" : "object"
21985 }
21986 },
4d47f125 21987 "POST" : {
e9cd3bd4 21988 "allowtoken" : 1,
4d47f125
TL
21989 "description" : "Migrate virtual machine. Creates a new migration task.",
21990 "method" : "POST",
21991 "name" : "migrate_vm",
21992 "parameters" : {
21993 "additionalProperties" : 0,
21994 "properties" : {
95895385
TL
21995 "bwlimit" : {
21996 "default" : "migrate limit from datacenter or storage config",
21997 "description" : "Override I/O bandwidth limit (in KiB/s).",
21998 "minimum" : "0",
21999 "optional" : 1,
22000 "type" : "integer",
22001 "typetext" : "<integer> (0 - N)"
22002 },
4d47f125
TL
22003 "force" : {
22004 "description" : "Allow to migrate VMs which use local devices. Only root may use this option.",
22005 "optional" : 1,
22006 "type" : "boolean",
22007 "typetext" : "<boolean>"
22008 },
22009 "migration_network" : {
22010 "description" : "CIDR of the (sub) network that is used for migration.",
22011 "format" : "CIDR",
22012 "optional" : 1,
22013 "type" : "string",
22014 "typetext" : "<string>"
22015 },
22016 "migration_type" : {
22017 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
22018 "enum" : [
22019 "secure",
22020 "insecure"
22021 ],
22022 "optional" : 1,
22023 "type" : "string"
22024 },
22025 "node" : {
22026 "description" : "The cluster node name.",
22027 "format" : "pve-node",
22028 "type" : "string",
22029 "typetext" : "<string>"
22030 },
22031 "online" : {
1c532546 22032 "description" : "Use online/live migration if VM is running. Ignored if VM is stopped.",
4d47f125
TL
22033 "optional" : 1,
22034 "type" : "boolean",
22035 "typetext" : "<boolean>"
22036 },
22037 "target" : {
22038 "description" : "Target node.",
22039 "format" : "pve-node",
22040 "type" : "string",
22041 "typetext" : "<string>"
22042 },
22043 "targetstorage" : {
c5aa7e14 22044 "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 22045 "format" : "storage-pair-list",
4d47f125 22046 "optional" : 1,
52e44c50
FG
22047 "type" : "string",
22048 "typetext" : "<string>"
22049 },
7aacca6f 22050 "vmid" : {
7aacca6f 22051 "description" : "The (unique) ID of the VM.",
44660702 22052 "format" : "pve-vmid",
7aacca6f 22053 "minimum" : 1,
4bd7df8b 22054 "type" : "integer",
013dc89f 22055 "typetext" : "<integer> (1 - N)"
52e44c50
FG
22056 },
22057 "with-local-disks" : {
22058 "description" : "Enable live storage migration for local disk",
22059 "optional" : 1,
22060 "type" : "boolean",
22061 "typetext" : "<boolean>"
56122987 22062 }
44660702
DM
22063 }
22064 },
22065 "permissions" : {
22066 "check" : [
22067 "perm",
22068 "/vms/{vmid}",
22069 [
22070 "VM.Migrate"
22071 ]
22072 ]
56122987
DM
22073 },
22074 "protected" : 1,
44660702
DM
22075 "proxyto" : "node",
22076 "returns" : {
22077 "description" : "the task ID.",
22078 "type" : "string"
22079 }
56122987 22080 }
7aacca6f 22081 },
44660702
DM
22082 "leaf" : 1,
22083 "path" : "/nodes/{node}/qemu/{vmid}/migrate",
7aacca6f 22084 "text" : "migrate"
56122987 22085 },
81a3384d
TL
22086 {
22087 "info" : {
22088 "POST" : {
22089 "allowtoken" : 1,
22090 "description" : "Migrate virtual machine to a remote cluster. Creates a new migration task. EXPERIMENTAL feature!",
22091 "method" : "POST",
22092 "name" : "remote_migrate_vm",
22093 "parameters" : {
22094 "additionalProperties" : 0,
22095 "properties" : {
22096 "bwlimit" : {
22097 "default" : "migrate limit from datacenter or storage config",
22098 "description" : "Override I/O bandwidth limit (in KiB/s).",
22099 "minimum" : "0",
22100 "optional" : 1,
22101 "type" : "integer",
22102 "typetext" : "<integer> (0 - N)"
22103 },
22104 "delete" : {
22105 "default" : 0,
22106 "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.",
22107 "optional" : 1,
22108 "type" : "boolean",
22109 "typetext" : "<boolean>"
22110 },
22111 "node" : {
22112 "description" : "The cluster node name.",
22113 "format" : "pve-node",
22114 "type" : "string",
22115 "typetext" : "<string>"
22116 },
22117 "online" : {
22118 "description" : "Use online/live migration if VM is running. Ignored if VM is stopped.",
22119 "optional" : 1,
22120 "type" : "boolean",
22121 "typetext" : "<boolean>"
22122 },
22123 "target-bridge" : {
22124 "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.",
22125 "format" : "bridge-pair-list",
22126 "type" : "string",
22127 "typetext" : "<string>"
22128 },
22129 "target-endpoint" : {
22130 "description" : "Remote target endpoint",
22131 "format" : "proxmox-remote",
22132 "type" : "string",
22133 "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>]"
22134 },
22135 "target-storage" : {
22136 "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.",
22137 "format" : "storage-pair-list",
22138 "optional" : 0,
22139 "type" : "string",
22140 "typetext" : "<string>"
22141 },
22142 "target-vmid" : {
22143 "description" : "The (unique) ID of the VM.",
22144 "format" : "pve-vmid",
22145 "minimum" : 1,
22146 "optional" : 1,
22147 "type" : "integer",
22148 "typetext" : "<integer> (1 - N)"
22149 },
22150 "vmid" : {
22151 "description" : "The (unique) ID of the VM.",
22152 "format" : "pve-vmid",
22153 "minimum" : 1,
22154 "type" : "integer",
22155 "typetext" : "<integer> (1 - N)"
22156 }
22157 }
22158 },
22159 "permissions" : {
22160 "check" : [
22161 "perm",
22162 "/vms/{vmid}",
22163 [
22164 "VM.Migrate"
22165 ]
22166 ]
22167 },
22168 "protected" : 1,
22169 "proxyto" : "node",
22170 "returns" : {
22171 "description" : "the task ID.",
22172 "type" : "string"
22173 }
22174 }
22175 },
22176 "leaf" : 1,
22177 "path" : "/nodes/{node}/qemu/{vmid}/remote_migrate",
22178 "text" : "remote_migrate"
22179 },
56122987
DM
22180 {
22181 "info" : {
22182 "POST" : {
e9cd3bd4 22183 "allowtoken" : 1,
44660702 22184 "description" : "Execute Qemu monitor commands.",
56122987 22185 "method" : "POST",
44660702 22186 "name" : "monitor",
56122987 22187 "parameters" : {
7aacca6f 22188 "additionalProperties" : 0,
56122987 22189 "properties" : {
44660702
DM
22190 "command" : {
22191 "description" : "The monitor command.",
013dc89f
DM
22192 "type" : "string",
22193 "typetext" : "<string>"
44660702 22194 },
56122987 22195 "node" : {
44660702 22196 "description" : "The cluster node name.",
7aacca6f 22197 "format" : "pve-node",
013dc89f
DM
22198 "type" : "string",
22199 "typetext" : "<string>"
56122987
DM
22200 },
22201 "vmid" : {
44660702 22202 "description" : "The (unique) ID of the VM.",
56122987 22203 "format" : "pve-vmid",
7aacca6f 22204 "minimum" : 1,
4bd7df8b 22205 "type" : "integer",
013dc89f 22206 "typetext" : "<integer> (1 - N)"
56122987 22207 }
7aacca6f 22208 }
56122987 22209 },
56122987
DM
22210 "permissions" : {
22211 "check" : [
22212 "perm",
22213 "/vms/{vmid}",
22214 [
22215 "VM.Monitor"
22216 ]
32d876b5
DM
22217 ],
22218 "description" : "Sys.Modify is required for (sub)commands which are not read-only ('info *' and 'help')"
7aacca6f 22219 },
44660702
DM
22220 "protected" : 1,
22221 "proxyto" : "node",
22222 "returns" : {
22223 "type" : "string"
22224 }
56122987 22225 }
44660702
DM
22226 },
22227 "leaf" : 1,
22228 "path" : "/nodes/{node}/qemu/{vmid}/monitor",
22229 "text" : "monitor"
56122987
DM
22230 },
22231 {
56122987
DM
22232 "info" : {
22233 "PUT" : {
e9cd3bd4 22234 "allowtoken" : 1,
44660702
DM
22235 "description" : "Extend volume size.",
22236 "method" : "PUT",
22237 "name" : "resize_vm",
56122987 22238 "parameters" : {
44660702 22239 "additionalProperties" : 0,
56122987 22240 "properties" : {
44660702
DM
22241 "digest" : {
22242 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
22243 "maxLength" : 40,
22244 "optional" : 1,
013dc89f
DM
22245 "type" : "string",
22246 "typetext" : "<string>"
56122987 22247 },
56122987
DM
22248 "disk" : {
22249 "description" : "The disk you want to resize.",
22250 "enum" : [
22251 "ide0",
22252 "ide1",
22253 "ide2",
22254 "ide3",
22255 "scsi0",
22256 "scsi1",
22257 "scsi2",
22258 "scsi3",
22259 "scsi4",
22260 "scsi5",
22261 "scsi6",
22262 "scsi7",
22263 "scsi8",
22264 "scsi9",
22265 "scsi10",
22266 "scsi11",
22267 "scsi12",
22268 "scsi13",
e9cd3bd4
TL
22269 "scsi14",
22270 "scsi15",
22271 "scsi16",
22272 "scsi17",
22273 "scsi18",
22274 "scsi19",
22275 "scsi20",
22276 "scsi21",
22277 "scsi22",
22278 "scsi23",
22279 "scsi24",
22280 "scsi25",
22281 "scsi26",
22282 "scsi27",
22283 "scsi28",
22284 "scsi29",
22285 "scsi30",
56122987
DM
22286 "virtio0",
22287 "virtio1",
22288 "virtio2",
22289 "virtio3",
22290 "virtio4",
22291 "virtio5",
22292 "virtio6",
22293 "virtio7",
22294 "virtio8",
22295 "virtio9",
22296 "virtio10",
22297 "virtio11",
22298 "virtio12",
22299 "virtio13",
22300 "virtio14",
22301 "virtio15",
22302 "sata0",
22303 "sata1",
22304 "sata2",
22305 "sata3",
22306 "sata4",
2c0dde61 22307 "sata5",
5370fa8c
TL
22308 "efidisk0",
22309 "tpmstate0"
44660702
DM
22310 ],
22311 "type" : "string"
56122987 22312 },
44660702
DM
22313 "node" : {
22314 "description" : "The cluster node name.",
22315 "format" : "pve-node",
013dc89f
DM
22316 "type" : "string",
22317 "typetext" : "<string>"
7aacca6f 22318 },
44660702 22319 "size" : {
5d9c884c 22320 "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
22321 "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
22322 "type" : "string"
56122987
DM
22323 },
22324 "skiplock" : {
22325 "description" : "Ignore locks - only root is allowed to use this option.",
22326 "optional" : 1,
013dc89f
DM
22327 "type" : "boolean",
22328 "typetext" : "<boolean>"
56122987
DM
22329 },
22330 "vmid" : {
7aacca6f 22331 "description" : "The (unique) ID of the VM.",
56122987 22332 "format" : "pve-vmid",
44660702 22333 "minimum" : 1,
4bd7df8b 22334 "type" : "integer",
013dc89f 22335 "typetext" : "<integer> (1 - N)"
56122987
DM
22336 }
22337 }
22338 },
22339 "permissions" : {
22340 "check" : [
22341 "perm",
22342 "/vms/{vmid}",
22343 [
44660702 22344 "VM.Config.Disk"
56122987
DM
22345 ]
22346 ]
22347 },
7aacca6f 22348 "protected" : 1,
7aacca6f 22349 "proxyto" : "node",
44660702
DM
22350 "returns" : {
22351 "type" : "null"
22352 }
7aacca6f
DM
22353 }
22354 },
44660702
DM
22355 "leaf" : 1,
22356 "path" : "/nodes/{node}/qemu/{vmid}/resize",
22357 "text" : "resize"
22358 },
22359 {
56122987
DM
22360 "children" : [
22361 {
22362 "children" : [
22363 {
56122987 22364 "info" : {
44660702 22365 "GET" : {
e9cd3bd4 22366 "allowtoken" : 1,
44660702
DM
22367 "description" : "Get snapshot configuration",
22368 "method" : "GET",
22369 "name" : "get_snapshot_config",
56122987 22370 "parameters" : {
44660702 22371 "additionalProperties" : 0,
56122987 22372 "properties" : {
56122987 22373 "node" : {
44660702 22374 "description" : "The cluster node name.",
56122987 22375 "format" : "pve-node",
013dc89f
DM
22376 "type" : "string",
22377 "typetext" : "<string>"
7aacca6f
DM
22378 },
22379 "snapname" : {
44660702 22380 "description" : "The name of the snapshot.",
7aacca6f 22381 "format" : "pve-configid",
44660702 22382 "maxLength" : 40,
013dc89f
DM
22383 "type" : "string",
22384 "typetext" : "<string>"
7aacca6f
DM
22385 },
22386 "vmid" : {
44660702 22387 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
22388 "format" : "pve-vmid",
22389 "minimum" : 1,
4bd7df8b 22390 "type" : "integer",
013dc89f 22391 "typetext" : "<integer> (1 - N)"
56122987 22392 }
44660702 22393 }
56122987
DM
22394 },
22395 "permissions" : {
22396 "check" : [
22397 "perm",
22398 "/vms/{vmid}",
22399 [
2489d6df 22400 "VM.Snapshot",
e9cd3bd4
TL
22401 "VM.Snapshot.Rollback",
22402 "VM.Audit"
2489d6df
WB
22403 ],
22404 "any",
22405 1
56122987
DM
22406 ]
22407 },
44660702 22408 "proxyto" : "node",
56122987 22409 "returns" : {
44660702 22410 "type" : "object"
7aacca6f
DM
22411 }
22412 },
44660702 22413 "PUT" : {
e9cd3bd4 22414 "allowtoken" : 1,
44660702
DM
22415 "description" : "Update snapshot metadata.",
22416 "method" : "PUT",
22417 "name" : "update_snapshot_config",
56122987 22418 "parameters" : {
44660702 22419 "additionalProperties" : 0,
56122987 22420 "properties" : {
44660702
DM
22421 "description" : {
22422 "description" : "A textual description or comment.",
22423 "optional" : 1,
013dc89f
DM
22424 "type" : "string",
22425 "typetext" : "<string>"
44660702 22426 },
56122987 22427 "node" : {
7aacca6f 22428 "description" : "The cluster node name.",
44660702 22429 "format" : "pve-node",
013dc89f
DM
22430 "type" : "string",
22431 "typetext" : "<string>"
56122987 22432 },
56122987
DM
22433 "snapname" : {
22434 "description" : "The name of the snapshot.",
44660702 22435 "format" : "pve-configid",
7aacca6f 22436 "maxLength" : 40,
013dc89f
DM
22437 "type" : "string",
22438 "typetext" : "<string>"
7aacca6f
DM
22439 },
22440 "vmid" : {
22441 "description" : "The (unique) ID of the VM.",
44660702 22442 "format" : "pve-vmid",
7aacca6f 22443 "minimum" : 1,
4bd7df8b 22444 "type" : "integer",
013dc89f 22445 "typetext" : "<integer> (1 - N)"
56122987 22446 }
44660702 22447 }
56122987 22448 },
7aacca6f
DM
22449 "permissions" : {
22450 "check" : [
22451 "perm",
22452 "/vms/{vmid}",
22453 [
22454 "VM.Snapshot"
22455 ]
22456 ]
44660702
DM
22457 },
22458 "protected" : 1,
22459 "proxyto" : "node",
22460 "returns" : {
22461 "type" : "null"
7aacca6f 22462 }
56122987
DM
22463 }
22464 },
44660702 22465 "leaf" : 1,
7aacca6f 22466 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config",
44660702 22467 "text" : "config"
56122987
DM
22468 },
22469 {
56122987
DM
22470 "info" : {
22471 "POST" : {
e9cd3bd4 22472 "allowtoken" : 1,
44660702 22473 "description" : "Rollback VM state to specified snapshot.",
7aacca6f 22474 "method" : "POST",
44660702 22475 "name" : "rollback",
56122987
DM
22476 "parameters" : {
22477 "additionalProperties" : 0,
22478 "properties" : {
44660702
DM
22479 "node" : {
22480 "description" : "The cluster node name.",
22481 "format" : "pve-node",
013dc89f
DM
22482 "type" : "string",
22483 "typetext" : "<string>"
44660702 22484 },
56122987 22485 "snapname" : {
44660702 22486 "description" : "The name of the snapshot.",
56122987
DM
22487 "format" : "pve-configid",
22488 "maxLength" : 40,
013dc89f
DM
22489 "type" : "string",
22490 "typetext" : "<string>"
7aacca6f 22491 },
4e7f60c2
TL
22492 "start" : {
22493 "default" : 0,
22494 "description" : "Whether the VM should get started after rolling back successfully",
22495 "optional" : 1,
22496 "type" : "boolean",
22497 "typetext" : "<boolean>"
22498 },
56122987 22499 "vmid" : {
7aacca6f 22500 "description" : "The (unique) ID of the VM.",
44660702 22501 "format" : "pve-vmid",
56122987 22502 "minimum" : 1,
4bd7df8b 22503 "type" : "integer",
013dc89f 22504 "typetext" : "<integer> (1 - N)"
56122987
DM
22505 }
22506 }
22507 },
7aacca6f 22508 "permissions" : {
56122987
DM
22509 "check" : [
22510 "perm",
22511 "/vms/{vmid}",
22512 [
2489d6df
WB
22513 "VM.Snapshot",
22514 "VM.Snapshot.Rollback"
22515 ],
22516 "any",
22517 1
56122987
DM
22518 ]
22519 },
44660702 22520 "protected" : 1,
7aacca6f 22521 "proxyto" : "node",
44660702
DM
22522 "returns" : {
22523 "description" : "the task ID.",
22524 "type" : "string"
22525 }
56122987
DM
22526 }
22527 },
44660702
DM
22528 "leaf" : 1,
22529 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback",
7aacca6f 22530 "text" : "rollback"
56122987 22531 }
44660702
DM
22532 ],
22533 "info" : {
22534 "DELETE" : {
e9cd3bd4 22535 "allowtoken" : 1,
44660702
DM
22536 "description" : "Delete a VM snapshot.",
22537 "method" : "DELETE",
22538 "name" : "delsnapshot",
22539 "parameters" : {
22540 "additionalProperties" : 0,
22541 "properties" : {
22542 "force" : {
22543 "description" : "For removal from config file, even if removing disk snapshots fails.",
22544 "optional" : 1,
013dc89f
DM
22545 "type" : "boolean",
22546 "typetext" : "<boolean>"
44660702
DM
22547 },
22548 "node" : {
22549 "description" : "The cluster node name.",
22550 "format" : "pve-node",
013dc89f
DM
22551 "type" : "string",
22552 "typetext" : "<string>"
44660702
DM
22553 },
22554 "snapname" : {
22555 "description" : "The name of the snapshot.",
22556 "format" : "pve-configid",
22557 "maxLength" : 40,
013dc89f
DM
22558 "type" : "string",
22559 "typetext" : "<string>"
44660702
DM
22560 },
22561 "vmid" : {
22562 "description" : "The (unique) ID of the VM.",
22563 "format" : "pve-vmid",
22564 "minimum" : 1,
4bd7df8b 22565 "type" : "integer",
013dc89f 22566 "typetext" : "<integer> (1 - N)"
44660702
DM
22567 }
22568 }
22569 },
22570 "permissions" : {
22571 "check" : [
22572 "perm",
22573 "/vms/{vmid}",
22574 [
22575 "VM.Snapshot"
22576 ]
22577 ]
22578 },
22579 "protected" : 1,
22580 "proxyto" : "node",
22581 "returns" : {
22582 "description" : "the task ID.",
22583 "type" : "string"
22584 }
22585 },
22586 "GET" : {
e9cd3bd4 22587 "allowtoken" : 1,
44660702
DM
22588 "description" : "",
22589 "method" : "GET",
22590 "name" : "snapshot_cmd_idx",
22591 "parameters" : {
22592 "additionalProperties" : 0,
22593 "properties" : {
22594 "node" : {
22595 "description" : "The cluster node name.",
22596 "format" : "pve-node",
013dc89f
DM
22597 "type" : "string",
22598 "typetext" : "<string>"
44660702
DM
22599 },
22600 "snapname" : {
22601 "description" : "The name of the snapshot.",
22602 "format" : "pve-configid",
22603 "maxLength" : 40,
013dc89f
DM
22604 "type" : "string",
22605 "typetext" : "<string>"
44660702
DM
22606 },
22607 "vmid" : {
22608 "description" : "The (unique) ID of the VM.",
22609 "format" : "pve-vmid",
22610 "minimum" : 1,
4bd7df8b 22611 "type" : "integer",
013dc89f 22612 "typetext" : "<integer> (1 - N)"
44660702
DM
22613 }
22614 }
22615 },
22616 "permissions" : {
22617 "user" : "all"
22618 },
22619 "returns" : {
22620 "items" : {
22621 "properties" : {},
22622 "type" : "object"
22623 },
22624 "links" : [
22625 {
22626 "href" : "{cmd}",
22627 "rel" : "child"
22628 }
22629 ],
22630 "type" : "array"
22631 }
22632 }
22633 },
22634 "leaf" : 0,
22635 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
22636 "text" : "{snapname}"
56122987
DM
22637 }
22638 ],
44660702
DM
22639 "info" : {
22640 "GET" : {
e9cd3bd4 22641 "allowtoken" : 1,
44660702
DM
22642 "description" : "List all snapshots.",
22643 "method" : "GET",
22644 "name" : "snapshot_list",
22645 "parameters" : {
22646 "additionalProperties" : 0,
22647 "properties" : {
22648 "node" : {
22649 "description" : "The cluster node name.",
22650 "format" : "pve-node",
013dc89f
DM
22651 "type" : "string",
22652 "typetext" : "<string>"
44660702
DM
22653 },
22654 "vmid" : {
22655 "description" : "The (unique) ID of the VM.",
22656 "format" : "pve-vmid",
22657 "minimum" : 1,
4bd7df8b 22658 "type" : "integer",
013dc89f 22659 "typetext" : "<integer> (1 - N)"
44660702
DM
22660 }
22661 }
22662 },
22663 "permissions" : {
22664 "check" : [
22665 "perm",
22666 "/vms/{vmid}",
22667 [
22668 "VM.Audit"
22669 ]
22670 ]
22671 },
22672 "protected" : 1,
22673 "proxyto" : "node",
22674 "returns" : {
22675 "items" : {
4d47f125
TL
22676 "properties" : {
22677 "description" : {
22678 "description" : "Snapshot description.",
22679 "type" : "string"
22680 },
22681 "name" : {
22682 "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
22683 "type" : "string"
22684 },
22685 "parent" : {
22686 "description" : "Parent snapshot identifier.",
22687 "optional" : 1,
22688 "type" : "string"
22689 },
22690 "snaptime" : {
22691 "description" : "Snapshot creation time",
22692 "optional" : 1,
22693 "renderer" : "timestamp",
22694 "type" : "integer"
22695 },
22696 "vmstate" : {
22697 "description" : "Snapshot includes RAM.",
22698 "optional" : 1,
22699 "type" : "boolean"
22700 }
22701 },
44660702
DM
22702 "type" : "object"
22703 },
22704 "links" : [
22705 {
22706 "href" : "{name}",
22707 "rel" : "child"
22708 }
22709 ],
22710 "type" : "array"
22711 }
22712 },
22713 "POST" : {
e9cd3bd4 22714 "allowtoken" : 1,
44660702
DM
22715 "description" : "Snapshot a VM.",
22716 "method" : "POST",
22717 "name" : "snapshot",
22718 "parameters" : {
22719 "additionalProperties" : 0,
22720 "properties" : {
22721 "description" : {
22722 "description" : "A textual description or comment.",
22723 "optional" : 1,
013dc89f
DM
22724 "type" : "string",
22725 "typetext" : "<string>"
44660702
DM
22726 },
22727 "node" : {
22728 "description" : "The cluster node name.",
22729 "format" : "pve-node",
013dc89f
DM
22730 "type" : "string",
22731 "typetext" : "<string>"
44660702
DM
22732 },
22733 "snapname" : {
22734 "description" : "The name of the snapshot.",
22735 "format" : "pve-configid",
22736 "maxLength" : 40,
013dc89f
DM
22737 "type" : "string",
22738 "typetext" : "<string>"
44660702
DM
22739 },
22740 "vmid" : {
22741 "description" : "The (unique) ID of the VM.",
22742 "format" : "pve-vmid",
22743 "minimum" : 1,
4bd7df8b 22744 "type" : "integer",
013dc89f 22745 "typetext" : "<integer> (1 - N)"
44660702
DM
22746 },
22747 "vmstate" : {
22748 "description" : "Save the vmstate",
22749 "optional" : 1,
013dc89f
DM
22750 "type" : "boolean",
22751 "typetext" : "<boolean>"
44660702
DM
22752 }
22753 }
22754 },
22755 "permissions" : {
22756 "check" : [
22757 "perm",
22758 "/vms/{vmid}",
22759 [
22760 "VM.Snapshot"
22761 ]
22762 ]
22763 },
22764 "protected" : 1,
22765 "proxyto" : "node",
22766 "returns" : {
22767 "description" : "the task ID.",
22768 "type" : "string"
22769 }
22770 }
22771 },
22772 "leaf" : 0,
22773 "path" : "/nodes/{node}/qemu/{vmid}/snapshot",
7aacca6f 22774 "text" : "snapshot"
56122987
DM
22775 },
22776 {
56122987
DM
22777 "info" : {
22778 "POST" : {
e9cd3bd4 22779 "allowtoken" : 1,
44660702
DM
22780 "description" : "Create a Template.",
22781 "method" : "POST",
56122987 22782 "name" : "template",
56122987 22783 "parameters" : {
7aacca6f 22784 "additionalProperties" : 0,
56122987 22785 "properties" : {
56122987 22786 "disk" : {
56122987
DM
22787 "description" : "If you want to convert only 1 disk to base image.",
22788 "enum" : [
22789 "ide0",
22790 "ide1",
22791 "ide2",
22792 "ide3",
22793 "scsi0",
22794 "scsi1",
22795 "scsi2",
22796 "scsi3",
22797 "scsi4",
22798 "scsi5",
22799 "scsi6",
22800 "scsi7",
22801 "scsi8",
22802 "scsi9",
22803 "scsi10",
22804 "scsi11",
22805 "scsi12",
22806 "scsi13",
e9cd3bd4
TL
22807 "scsi14",
22808 "scsi15",
22809 "scsi16",
22810 "scsi17",
22811 "scsi18",
22812 "scsi19",
22813 "scsi20",
22814 "scsi21",
22815 "scsi22",
22816 "scsi23",
22817 "scsi24",
22818 "scsi25",
22819 "scsi26",
22820 "scsi27",
22821 "scsi28",
22822 "scsi29",
22823 "scsi30",
56122987
DM
22824 "virtio0",
22825 "virtio1",
22826 "virtio2",
22827 "virtio3",
22828 "virtio4",
22829 "virtio5",
22830 "virtio6",
22831 "virtio7",
22832 "virtio8",
22833 "virtio9",
22834 "virtio10",
22835 "virtio11",
22836 "virtio12",
22837 "virtio13",
22838 "virtio14",
22839 "virtio15",
22840 "sata0",
22841 "sata1",
22842 "sata2",
22843 "sata3",
22844 "sata4",
2c0dde61 22845 "sata5",
5370fa8c
TL
22846 "efidisk0",
22847 "tpmstate0"
56122987 22848 ],
7aacca6f 22849 "optional" : 1,
56122987
DM
22850 "type" : "string"
22851 },
44660702
DM
22852 "node" : {
22853 "description" : "The cluster node name.",
22854 "format" : "pve-node",
013dc89f
DM
22855 "type" : "string",
22856 "typetext" : "<string>"
44660702
DM
22857 },
22858 "vmid" : {
22859 "description" : "The (unique) ID of the VM.",
7aacca6f 22860 "format" : "pve-vmid",
44660702 22861 "minimum" : 1,
4bd7df8b 22862 "type" : "integer",
013dc89f 22863 "typetext" : "<integer> (1 - N)"
56122987 22864 }
7aacca6f 22865 }
56122987 22866 },
7aacca6f
DM
22867 "permissions" : {
22868 "check" : [
22869 "perm",
22870 "/vms/{vmid}",
22871 [
22872 "VM.Allocate"
22873 ]
22874 ],
22875 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
22876 },
44660702 22877 "protected" : 1,
7aacca6f 22878 "proxyto" : "node",
7aacca6f 22879 "returns" : {
5370fa8c
TL
22880 "description" : "the task ID.",
22881 "type" : "string"
7aacca6f 22882 }
56122987
DM
22883 }
22884 },
44660702 22885 "leaf" : 1,
7aacca6f 22886 "path" : "/nodes/{node}/qemu/{vmid}/template",
44660702 22887 "text" : "template"
81a3384d
TL
22888 },
22889 {
22890 "info" : {
22891 "POST" : {
22892 "allowtoken" : 1,
22893 "description" : "Migration tunnel endpoint - only for internal use by VM migration.",
22894 "method" : "POST",
22895 "name" : "mtunnel",
22896 "parameters" : {
22897 "additionalProperties" : 0,
22898 "properties" : {
22899 "bridges" : {
22900 "description" : "List of network bridges to check availability. Will be checked again for actually used bridges during migration.",
22901 "format" : "pve-bridge-id-list",
22902 "optional" : 1,
22903 "type" : "string",
22904 "typetext" : "<string>"
22905 },
22906 "node" : {
22907 "description" : "The cluster node name.",
22908 "format" : "pve-node",
22909 "type" : "string",
22910 "typetext" : "<string>"
22911 },
22912 "storages" : {
22913 "description" : "List of storages to check permission and availability. Will be checked again for all actually used storages during migration.",
22914 "format" : "pve-storage-id-list",
22915 "optional" : 1,
22916 "type" : "string",
22917 "typetext" : "<string>"
22918 },
22919 "vmid" : {
22920 "description" : "The (unique) ID of the VM.",
22921 "format" : "pve-vmid",
22922 "minimum" : 1,
22923 "type" : "integer",
22924 "typetext" : "<integer> (1 - N)"
22925 }
22926 }
22927 },
22928 "permissions" : {
22929 "check" : [
22930 "and",
22931 [
22932 "perm",
22933 "/vms/{vmid}",
22934 [
22935 "VM.Allocate"
22936 ]
22937 ],
22938 [
22939 "perm",
22940 "/",
22941 [
22942 "Sys.Incoming"
22943 ]
22944 ]
22945 ],
22946 "description" : "You need 'VM.Allocate' permissions on '/vms/{vmid}' and Sys.Incoming on '/'. Further permission checks happen during the actual migration."
22947 },
22948 "protected" : 1,
22949 "returns" : {
22950 "additionalProperties" : 0,
22951 "properties" : {
22952 "socket" : {
22953 "type" : "string"
22954 },
22955 "ticket" : {
22956 "type" : "string"
22957 },
22958 "upid" : {
22959 "type" : "string"
22960 }
22961 }
22962 }
22963 }
22964 },
22965 "leaf" : 1,
22966 "path" : "/nodes/{node}/qemu/{vmid}/mtunnel",
22967 "text" : "mtunnel"
22968 },
22969 {
22970 "info" : {
22971 "GET" : {
22972 "allowtoken" : 1,
22973 "description" : "Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.",
22974 "method" : "GET",
22975 "name" : "mtunnelwebsocket",
22976 "parameters" : {
22977 "additionalProperties" : 0,
22978 "properties" : {
22979 "node" : {
22980 "description" : "The cluster node name.",
22981 "format" : "pve-node",
22982 "type" : "string",
22983 "typetext" : "<string>"
22984 },
22985 "socket" : {
22986 "description" : "unix socket to forward to",
22987 "type" : "string",
22988 "typetext" : "<string>"
22989 },
22990 "ticket" : {
22991 "description" : "ticket return by initial 'mtunnel' API call, or retrieved via 'ticket' tunnel command",
22992 "type" : "string",
22993 "typetext" : "<string>"
22994 },
22995 "vmid" : {
22996 "description" : "The (unique) ID of the VM.",
22997 "format" : "pve-vmid",
22998 "minimum" : 1,
22999 "type" : "integer",
23000 "typetext" : "<integer> (1 - N)"
23001 }
23002 }
23003 },
23004 "permissions" : {
23005 "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.",
23006 "user" : "all"
23007 },
23008 "returns" : {
23009 "properties" : {
23010 "port" : {
23011 "optional" : 1,
23012 "type" : "string"
23013 },
23014 "socket" : {
23015 "optional" : 1,
23016 "type" : "string"
23017 }
23018 },
23019 "type" : "object"
23020 }
23021 }
23022 },
23023 "leaf" : 1,
23024 "path" : "/nodes/{node}/qemu/{vmid}/mtunnelwebsocket",
23025 "text" : "mtunnelwebsocket"
56122987
DM
23026 }
23027 ],
7aacca6f 23028 "info" : {
44660702 23029 "DELETE" : {
e9cd3bd4 23030 "allowtoken" : 1,
d2656385 23031 "description" : "Destroy the VM and all used/owned volumes. Removes any VM specific permissions and firewall rules",
44660702
DM
23032 "method" : "DELETE",
23033 "name" : "destroy_vm",
7aacca6f 23034 "parameters" : {
44660702 23035 "additionalProperties" : 0,
7aacca6f 23036 "properties" : {
d2656385 23037 "destroy-unreferenced-disks" : {
8f4d9c87 23038 "default" : 0,
d2656385
TL
23039 "description" : "If set, destroy additionally all disks not referenced in the config but with a matching VMID from all enabled storages.",
23040 "optional" : 1,
23041 "type" : "boolean",
23042 "typetext" : "<boolean>"
23043 },
7aacca6f 23044 "node" : {
44660702 23045 "description" : "The cluster node name.",
7aacca6f 23046 "format" : "pve-node",
013dc89f
DM
23047 "type" : "string",
23048 "typetext" : "<string>"
44660702 23049 },
1c532546 23050 "purge" : {
d2656385 23051 "description" : "Remove VMID from configurations, like backup & replication jobs and HA.",
1c532546
TL
23052 "optional" : 1,
23053 "type" : "boolean",
23054 "typetext" : "<boolean>"
23055 },
44660702
DM
23056 "skiplock" : {
23057 "description" : "Ignore locks - only root is allowed to use this option.",
23058 "optional" : 1,
013dc89f
DM
23059 "type" : "boolean",
23060 "typetext" : "<boolean>"
7aacca6f
DM
23061 },
23062 "vmid" : {
44660702 23063 "description" : "The (unique) ID of the VM.",
7aacca6f 23064 "format" : "pve-vmid",
44660702 23065 "minimum" : 1,
4bd7df8b 23066 "type" : "integer",
013dc89f 23067 "typetext" : "<integer> (1 - N)"
7aacca6f 23068 }
44660702 23069 }
7aacca6f 23070 },
7aacca6f
DM
23071 "permissions" : {
23072 "check" : [
23073 "perm",
23074 "/vms/{vmid}",
23075 [
23076 "VM.Allocate"
23077 ]
23078 ]
23079 },
44660702
DM
23080 "protected" : 1,
23081 "proxyto" : "node",
7aacca6f
DM
23082 "returns" : {
23083 "type" : "string"
44660702
DM
23084 }
23085 },
23086 "GET" : {
e9cd3bd4 23087 "allowtoken" : 1,
44660702
DM
23088 "description" : "Directory index",
23089 "method" : "GET",
23090 "name" : "vmdiridx",
7aacca6f 23091 "parameters" : {
44660702 23092 "additionalProperties" : 0,
7aacca6f 23093 "properties" : {
7aacca6f 23094 "node" : {
7aacca6f 23095 "description" : "The cluster node name.",
44660702 23096 "format" : "pve-node",
013dc89f
DM
23097 "type" : "string",
23098 "typetext" : "<string>"
44660702
DM
23099 },
23100 "vmid" : {
23101 "description" : "The (unique) ID of the VM.",
23102 "format" : "pve-vmid",
23103 "minimum" : 1,
4bd7df8b 23104 "type" : "integer",
013dc89f 23105 "typetext" : "<integer> (1 - N)"
7aacca6f 23106 }
44660702 23107 }
7aacca6f 23108 },
44660702
DM
23109 "permissions" : {
23110 "user" : "all"
23111 },
23112 "proxyto" : "node",
23113 "returns" : {
23114 "items" : {
23115 "properties" : {
23116 "subdir" : {
23117 "type" : "string"
23118 }
23119 },
23120 "type" : "object"
23121 },
23122 "links" : [
23123 {
23124 "href" : "{subdir}",
23125 "rel" : "child"
23126 }
23127 ],
23128 "type" : "array"
23129 }
7aacca6f 23130 }
44660702
DM
23131 },
23132 "leaf" : 0,
23133 "path" : "/nodes/{node}/qemu/{vmid}",
23134 "text" : "{vmid}"
56122987
DM
23135 }
23136 ],
23137 "info" : {
44660702 23138 "GET" : {
e9cd3bd4 23139 "allowtoken" : 1,
44660702
DM
23140 "description" : "Virtual machine index (per node).",
23141 "method" : "GET",
23142 "name" : "vmlist",
56122987 23143 "parameters" : {
44660702 23144 "additionalProperties" : 0,
56122987 23145 "properties" : {
44660702
DM
23146 "full" : {
23147 "description" : "Determine the full status of active VMs.",
56122987 23148 "optional" : 1,
013dc89f
DM
23149 "type" : "boolean",
23150 "typetext" : "<boolean>"
56122987 23151 },
44660702
DM
23152 "node" : {
23153 "description" : "The cluster node name.",
23154 "format" : "pve-node",
013dc89f
DM
23155 "type" : "string",
23156 "typetext" : "<string>"
44660702
DM
23157 }
23158 }
23159 },
23160 "permissions" : {
23161 "description" : "Only list VMs where you have VM.Audit permissons on /vms/<vmid>.",
23162 "user" : "all"
23163 },
23164 "protected" : 1,
23165 "proxyto" : "node",
23166 "returns" : {
23167 "items" : {
4d47f125
TL
23168 "properties" : {
23169 "cpus" : {
23170 "description" : "Maximum usable CPUs.",
23171 "optional" : 1,
23172 "type" : "number"
23173 },
95895385
TL
23174 "lock" : {
23175 "description" : "The current config lock, if any.",
23176 "optional" : 1,
23177 "type" : "string"
23178 },
4d47f125
TL
23179 "maxdisk" : {
23180 "description" : "Root disk size in bytes.",
23181 "optional" : 1,
23182 "renderer" : "bytes",
23183 "type" : "integer"
23184 },
23185 "maxmem" : {
23186 "description" : "Maximum memory in bytes.",
23187 "optional" : 1,
23188 "renderer" : "bytes",
23189 "type" : "integer"
23190 },
23191 "name" : {
23192 "description" : "VM name.",
23193 "optional" : 1,
23194 "type" : "string"
23195 },
23196 "pid" : {
23197 "description" : "PID of running qemu process.",
23198 "optional" : 1,
23199 "type" : "integer"
23200 },
23201 "qmpstatus" : {
23202 "description" : "Qemu QMP agent status.",
23203 "optional" : 1,
23204 "type" : "string"
23205 },
d2656385
TL
23206 "running-machine" : {
23207 "description" : "The currently running machine type (if running).",
23208 "optional" : 1,
23209 "type" : "string"
23210 },
23211 "running-qemu" : {
23212 "description" : "The currently running QEMU version (if running).",
23213 "optional" : 1,
23214 "type" : "string"
23215 },
4d47f125
TL
23216 "status" : {
23217 "description" : "Qemu process status.",
23218 "enum" : [
23219 "stopped",
23220 "running"
23221 ],
23222 "type" : "string"
23223 },
5c1699e5
TL
23224 "tags" : {
23225 "description" : "The current configured tags, if any",
23226 "optional" : 1,
23227 "type" : "string"
23228 },
4d47f125
TL
23229 "uptime" : {
23230 "description" : "Uptime.",
23231 "optional" : 1,
23232 "renderer" : "duration",
23233 "type" : "integer"
23234 },
23235 "vmid" : {
23236 "description" : "The (unique) ID of the VM.",
23237 "format" : "pve-vmid",
23238 "minimum" : 1,
23239 "type" : "integer"
23240 }
23241 },
44660702
DM
23242 "type" : "object"
23243 },
23244 "links" : [
23245 {
23246 "href" : "{vmid}",
23247 "rel" : "child"
23248 }
23249 ],
23250 "type" : "array"
23251 }
23252 },
23253 "POST" : {
e9cd3bd4 23254 "allowtoken" : 1,
44660702
DM
23255 "description" : "Create or restore a virtual machine.",
23256 "method" : "POST",
23257 "name" : "create_vm",
23258 "parameters" : {
23259 "additionalProperties" : 0,
23260 "properties" : {
7aacca6f 23261 "acpi" : {
7aacca6f 23262 "default" : 1,
44660702 23263 "description" : "Enable/disable ACPI.",
56122987 23264 "optional" : 1,
013dc89f
DM
23265 "type" : "boolean",
23266 "typetext" : "<boolean>"
56122987 23267 },
4e7f60c2 23268 "affinity" : {
81a3384d 23269 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
23270 "format" : "pve-cpuset",
23271 "optional" : 1,
23272 "type" : "string",
23273 "typetext" : "<string>"
23274 },
44660702 23275 "agent" : {
5370fa8c 23276 "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
4d47f125
TL
23277 "format" : {
23278 "enabled" : {
23279 "default" : 0,
23280 "default_key" : 1,
5370fa8c 23281 "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
4d47f125
TL
23282 "type" : "boolean"
23283 },
23284 "fstrim_cloned_disks" : {
23285 "default" : 0,
d2656385 23286 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
23287 "optional" : 1,
23288 "type" : "boolean"
5c1699e5
TL
23289 },
23290 "type" : {
23291 "default" : "virtio",
23292 "description" : "Select the agent type",
23293 "enum" : [
23294 "virtio",
23295 "isa"
23296 ],
23297 "optional" : 1,
23298 "type" : "string"
4d47f125
TL
23299 }
23300 },
7aacca6f 23301 "optional" : 1,
4d47f125 23302 "type" : "string",
5c1699e5 23303 "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
56122987 23304 },
e2d681b3
TL
23305 "arch" : {
23306 "description" : "Virtual processor architecture. Defaults to the host.",
23307 "enum" : [
23308 "x86_64",
23309 "aarch64"
23310 ],
23311 "optional" : 1,
23312 "type" : "string"
23313 },
44660702 23314 "archive" : {
c5aa7e14 23315 "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 23316 "maxLength" : 255,
56122987 23317 "optional" : 1,
013dc89f
DM
23318 "type" : "string",
23319 "typetext" : "<string>"
56122987 23320 },
44660702 23321 "args" : {
c2993fe5 23322 "description" : "Arbitrary arguments passed to kvm.",
56122987 23323 "optional" : 1,
c2993fe5 23324 "type" : "string",
013dc89f 23325 "typetext" : "<string>",
c2993fe5 23326 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
56122987 23327 },
1c532546
TL
23328 "audio0" : {
23329 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
23330 "format" : {
23331 "device" : {
23332 "description" : "Configure an audio device.",
23333 "enum" : [
23334 "ich9-intel-hda",
23335 "intel-hda",
23336 "AC97"
23337 ],
23338 "type" : "string"
23339 },
23340 "driver" : {
23341 "default" : "spice",
23342 "description" : "Driver backend for the audio device.",
23343 "enum" : [
d2656385
TL
23344 "spice",
23345 "none"
1c532546
TL
23346 ],
23347 "optional" : 1,
23348 "type" : "string"
23349 }
23350 },
23351 "optional" : 1,
23352 "type" : "string",
d2656385 23353 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 23354 },
44660702 23355 "autostart" : {
7aacca6f 23356 "default" : 0,
44660702
DM
23357 "description" : "Automatic restart after crash (currently ignored).",
23358 "optional" : 1,
013dc89f
DM
23359 "type" : "boolean",
23360 "typetext" : "<boolean>"
7aacca6f 23361 },
44660702
DM
23362 "balloon" : {
23363 "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
23364 "minimum" : 0,
56122987 23365 "optional" : 1,
4bd7df8b 23366 "type" : "integer",
013dc89f 23367 "typetext" : "<integer> (0 - N)"
56122987 23368 },
44660702
DM
23369 "bios" : {
23370 "default" : "seabios",
23371 "description" : "Select BIOS implementation.",
23372 "enum" : [
23373 "seabios",
23374 "ovmf"
23375 ],
56122987 23376 "optional" : 1,
44660702 23377 "type" : "string"
56122987 23378 },
44660702 23379 "boot" : {
5370fa8c 23380 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 23381 "format" : "pve-qm-boot",
56122987 23382 "optional" : 1,
4772952b
TL
23383 "type" : "string",
23384 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
56122987 23385 },
7aacca6f 23386 "bootdisk" : {
4772952b 23387 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
23388 "format" : "pve-qm-bootdisk",
23389 "optional" : 1,
7aacca6f 23390 "pattern" : "(ide|sata|scsi|virtio)\\d+",
44660702
DM
23391 "type" : "string"
23392 },
27a7acb2 23393 "bwlimit" : {
95895385
TL
23394 "default" : "restore limit from datacenter or storage config",
23395 "description" : "Override I/O bandwidth limit (in KiB/s).",
27a7acb2
DM
23396 "minimum" : "0",
23397 "optional" : 1,
23398 "type" : "integer",
23399 "typetext" : "<integer> (0 - N)"
23400 },
44660702
DM
23401 "cdrom" : {
23402 "description" : "This is an alias for option -ide2",
de0983cb 23403 "format" : "pve-qm-ide",
56122987 23404 "optional" : 1,
44660702 23405 "type" : "string",
013dc89f 23406 "typetext" : "<volume>"
56122987 23407 },
95895385
TL
23408 "cicustom" : {
23409 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
23410 "format" : "pve-qm-cicustom",
23411 "optional" : 1,
23412 "type" : "string",
5370fa8c 23413 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 23414 },
27a7acb2
DM
23415 "cipassword" : {
23416 "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.",
23417 "optional" : 1,
23418 "type" : "string",
23419 "typetext" : "<string>"
23420 },
23421 "citype" : {
23422 "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.",
23423 "enum" : [
23424 "configdrive2",
d2656385
TL
23425 "nocloud",
23426 "opennebula"
27a7acb2
DM
23427 ],
23428 "optional" : 1,
23429 "type" : "string"
23430 },
23431 "ciuser" : {
23432 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
23433 "optional" : 1,
23434 "type" : "string",
23435 "typetext" : "<string>"
23436 },
44660702
DM
23437 "cores" : {
23438 "default" : 1,
23439 "description" : "The number of cores per socket.",
7aacca6f 23440 "minimum" : 1,
44660702 23441 "optional" : 1,
4bd7df8b 23442 "type" : "integer",
013dc89f 23443 "typetext" : "<integer> (1 - N)"
7aacca6f 23444 },
44660702
DM
23445 "cpu" : {
23446 "description" : "Emulated CPU type.",
c5aa7e14 23447 "format" : "pve-vm-cpu-conf",
56122987 23448 "optional" : 1,
4bd7df8b 23449 "type" : "string",
04d22a9f 23450 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
56122987 23451 },
44660702 23452 "cpulimit" : {
7aacca6f 23453 "default" : 0,
c2993fe5 23454 "description" : "Limit of CPU usage.",
44660702
DM
23455 "maximum" : 128,
23456 "minimum" : 0,
7aacca6f 23457 "optional" : 1,
c2993fe5 23458 "type" : "number",
013dc89f 23459 "typetext" : "<number> (0 - 128)",
c2993fe5 23460 "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
23461 },
23462 "cpuunits" : {
5370fa8c
TL
23463 "default" : "cgroup v1: 1024, cgroup v2: 100",
23464 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 23465 "maximum" : 262144,
7af2edf9 23466 "minimum" : 1,
44660702 23467 "optional" : 1,
c2993fe5 23468 "type" : "integer",
7af2edf9 23469 "typetext" : "<integer> (1 - 262144)",
2489d6df 23470 "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
23471 },
23472 "description" : {
8f4d9c87
TL
23473 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
23474 "maxLength" : 8192,
56122987 23475 "optional" : 1,
013dc89f
DM
23476 "type" : "string",
23477 "typetext" : "<string>"
44660702 23478 },
4d47f125 23479 "efidisk0" : {
7af2edf9 23480 "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 23481 "format" : {
5370fa8c
TL
23482 "efitype" : {
23483 "default" : "2m",
23484 "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.",
23485 "enum" : [
23486 "2m",
23487 "4m"
23488 ],
23489 "optional" : 1,
23490 "type" : "string"
23491 },
4d47f125
TL
23492 "file" : {
23493 "default_key" : 1,
23494 "description" : "The drive's backing volume.",
23495 "format" : "pve-volume-id-or-qm-path",
23496 "format_description" : "volume",
23497 "type" : "string"
23498 },
23499 "format" : {
23500 "description" : "The drive's backing file's data format.",
23501 "enum" : [
23502 "raw",
23503 "cow",
23504 "qcow",
23505 "qed",
23506 "qcow2",
23507 "vmdk",
23508 "cloop"
23509 ],
23510 "optional" : 1,
23511 "type" : "string"
23512 },
7af2edf9
TL
23513 "import-from" : {
23514 "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!",
23515 "format" : "pve-volume-id-or-absolute-path",
23516 "format_description" : "source volume",
23517 "optional" : 1,
23518 "type" : "string"
23519 },
5370fa8c
TL
23520 "pre-enrolled-keys" : {
23521 "default" : 0,
23522 "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.",
23523 "optional" : 1,
23524 "type" : "boolean"
23525 },
4d47f125
TL
23526 "size" : {
23527 "description" : "Disk size. This is purely informational and has no effect.",
23528 "format" : "disk-size",
23529 "format_description" : "DiskSize",
23530 "optional" : 1,
23531 "type" : "string"
23532 },
23533 "volume" : {
23534 "alias" : "file"
23535 }
23536 },
23537 "optional" : 1,
23538 "type" : "string",
7af2edf9 23539 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125 23540 },
44660702
DM
23541 "force" : {
23542 "description" : "Allow to overwrite existing VM.",
23543 "optional" : 1,
23544 "requires" : "archive",
013dc89f
DM
23545 "type" : "boolean",
23546 "typetext" : "<boolean>"
44660702
DM
23547 },
23548 "freeze" : {
23549 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
23550 "optional" : 1,
013dc89f
DM
23551 "type" : "boolean",
23552 "typetext" : "<boolean>"
44660702 23553 },
5f26e15b
TL
23554 "hookscript" : {
23555 "description" : "Script that will be executed during various steps in the vms lifetime.",
23556 "format" : "pve-volume-id",
23557 "optional" : 1,
23558 "type" : "string",
23559 "typetext" : "<string>"
23560 },
44660702 23561 "hostpci[n]" : {
c2993fe5 23562 "description" : "Map host PCI devices into guest.",
44660702
DM
23563 "format" : "pve-qm-hostpci",
23564 "optional" : 1,
57b78691 23565 "type" : "string",
7af2edf9 23566 "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
bb4c8cf8 23567 "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
23568 },
23569 "hotplug" : {
23570 "default" : "network,disk,usb",
4e7f60c2 23571 "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
23572 "format" : "pve-hotplug-features",
23573 "optional" : 1,
013dc89f
DM
23574 "type" : "string",
23575 "typetext" : "<string>"
7aacca6f 23576 },
4bd7df8b
DM
23577 "hugepages" : {
23578 "description" : "Enable/disable hugepages memory.",
23579 "enum" : [
23580 "any",
23581 "2",
23582 "1024"
23583 ],
23584 "optional" : 1,
23585 "type" : "string"
23586 },
7aacca6f 23587 "ide[n]" : {
7af2edf9 23588 "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 23589 "format" : {
44660702
DM
23590 "aio" : {
23591 "description" : "AIO type to use.",
23592 "enum" : [
23593 "native",
8f4d9c87
TL
23594 "threads",
23595 "io_uring"
44660702 23596 ],
44660702
DM
23597 "optional" : 1,
23598 "type" : "string"
23599 },
23600 "backup" : {
23601 "description" : "Whether the drive should be included when making backups.",
44660702
DM
23602 "optional" : 1,
23603 "type" : "boolean"
23604 },
23605 "bps" : {
de0983cb 23606 "description" : "Maximum r/w speed in bytes per second.",
7aacca6f 23607 "format_description" : "bps",
56122987 23608 "optional" : 1,
44660702 23609 "type" : "integer"
56122987 23610 },
de0983cb
DM
23611 "bps_max_length" : {
23612 "description" : "Maximum length of I/O bursts in seconds.",
23613 "format_description" : "seconds",
23614 "minimum" : 1,
23615 "optional" : 1,
23616 "type" : "integer"
23617 },
44660702 23618 "bps_rd" : {
de0983cb 23619 "description" : "Maximum read speed in bytes per second.",
44660702 23620 "format_description" : "bps",
56122987 23621 "optional" : 1,
44660702 23622 "type" : "integer"
56122987 23623 },
de0983cb 23624 "bps_rd_length" : {
5d9c884c
DM
23625 "alias" : "bps_rd_max_length"
23626 },
23627 "bps_rd_max_length" : {
de0983cb
DM
23628 "description" : "Maximum length of read I/O bursts in seconds.",
23629 "format_description" : "seconds",
23630 "minimum" : 1,
23631 "optional" : 1,
23632 "type" : "integer"
23633 },
44660702 23634 "bps_wr" : {
de0983cb 23635 "description" : "Maximum write speed in bytes per second.",
44660702 23636 "format_description" : "bps",
56122987 23637 "optional" : 1,
44660702 23638 "type" : "integer"
56122987 23639 },
de0983cb 23640 "bps_wr_length" : {
5d9c884c
DM
23641 "alias" : "bps_wr_max_length"
23642 },
23643 "bps_wr_max_length" : {
de0983cb
DM
23644 "description" : "Maximum length of write I/O bursts in seconds.",
23645 "format_description" : "seconds",
23646 "minimum" : 1,
23647 "optional" : 1,
23648 "type" : "integer"
23649 },
44660702
DM
23650 "cache" : {
23651 "description" : "The drive's cache mode",
56122987 23652 "enum" : [
7aacca6f 23653 "none",
44660702
DM
23654 "writethrough",
23655 "writeback",
23656 "unsafe",
23657 "directsync"
56122987 23658 ],
56122987 23659 "optional" : 1,
44660702 23660 "type" : "string"
56122987 23661 },
44660702
DM
23662 "cyls" : {
23663 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
23664 "optional" : 1,
23665 "type" : "integer"
7aacca6f 23666 },
44660702
DM
23667 "detect_zeroes" : {
23668 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 23669 "optional" : 1,
44660702 23670 "type" : "boolean"
56122987 23671 },
44660702
DM
23672 "discard" : {
23673 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
23674 "enum" : [
23675 "ignore",
23676 "on"
23677 ],
56122987 23678 "optional" : 1,
44660702 23679 "type" : "string"
56122987 23680 },
7aacca6f 23681 "file" : {
44660702 23682 "default_key" : 1,
7aacca6f 23683 "description" : "The drive's backing volume.",
7aacca6f
DM
23684 "format" : "pve-volume-id-or-qm-path",
23685 "format_description" : "volume",
7aacca6f 23686 "type" : "string"
56122987 23687 },
44660702
DM
23688 "format" : {
23689 "description" : "The drive's backing file's data format.",
56122987 23690 "enum" : [
44660702
DM
23691 "raw",
23692 "cow",
23693 "qcow",
23694 "qed",
23695 "qcow2",
23696 "vmdk",
23697 "cloop"
7aacca6f 23698 ],
7aacca6f
DM
23699 "optional" : 1,
23700 "type" : "string"
56122987 23701 },
44660702
DM
23702 "heads" : {
23703 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 23704 "optional" : 1,
44660702 23705 "type" : "integer"
56122987 23706 },
7af2edf9
TL
23707 "import-from" : {
23708 "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!",
23709 "format" : "pve-volume-id-or-absolute-path",
23710 "format_description" : "source volume",
23711 "optional" : 1,
23712 "type" : "string"
23713 },
44660702 23714 "iops" : {
de0983cb 23715 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 23716 "format_description" : "iops",
56122987 23717 "optional" : 1,
44660702 23718 "type" : "integer"
56122987 23719 },
44660702 23720 "iops_max" : {
de0983cb 23721 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 23722 "format_description" : "iops",
56122987 23723 "optional" : 1,
44660702 23724 "type" : "integer"
56122987 23725 },
de0983cb
DM
23726 "iops_max_length" : {
23727 "description" : "Maximum length of I/O bursts in seconds.",
23728 "format_description" : "seconds",
23729 "minimum" : 1,
23730 "optional" : 1,
23731 "type" : "integer"
23732 },
7aacca6f 23733 "iops_rd" : {
de0983cb 23734 "description" : "Maximum read I/O in operations per second.",
44660702
DM
23735 "format_description" : "iops",
23736 "optional" : 1,
23737 "type" : "integer"
7aacca6f 23738 },
de0983cb 23739 "iops_rd_length" : {
5d9c884c 23740 "alias" : "iops_rd_max_length"
de0983cb 23741 },
44660702 23742 "iops_rd_max" : {
de0983cb 23743 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 23744 "format_description" : "iops",
56122987 23745 "optional" : 1,
44660702 23746 "type" : "integer"
56122987 23747 },
5d9c884c
DM
23748 "iops_rd_max_length" : {
23749 "description" : "Maximum length of read I/O bursts in seconds.",
23750 "format_description" : "seconds",
23751 "minimum" : 1,
23752 "optional" : 1,
23753 "type" : "integer"
23754 },
44660702 23755 "iops_wr" : {
de0983cb 23756 "description" : "Maximum write I/O in operations per second.",
44660702 23757 "format_description" : "iops",
56122987 23758 "optional" : 1,
44660702 23759 "type" : "integer"
7aacca6f 23760 },
de0983cb 23761 "iops_wr_length" : {
5d9c884c 23762 "alias" : "iops_wr_max_length"
de0983cb 23763 },
44660702 23764 "iops_wr_max" : {
de0983cb 23765 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 23766 "format_description" : "iops",
7aacca6f 23767 "optional" : 1,
44660702 23768 "type" : "integer"
56122987 23769 },
5d9c884c
DM
23770 "iops_wr_max_length" : {
23771 "description" : "Maximum length of write I/O bursts in seconds.",
23772 "format_description" : "seconds",
23773 "minimum" : 1,
23774 "optional" : 1,
23775 "type" : "integer"
23776 },
44660702 23777 "mbps" : {
de0983cb 23778 "description" : "Maximum r/w speed in megabytes per second.",
44660702 23779 "format_description" : "mbps",
7aacca6f 23780 "optional" : 1,
44660702 23781 "type" : "number"
56122987 23782 },
44660702 23783 "mbps_max" : {
de0983cb 23784 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
7aacca6f 23785 "format_description" : "mbps",
56122987 23786 "optional" : 1,
44660702 23787 "type" : "number"
56122987 23788 },
44660702 23789 "mbps_rd" : {
de0983cb 23790 "description" : "Maximum read speed in megabytes per second.",
44660702 23791 "format_description" : "mbps",
7aacca6f 23792 "optional" : 1,
44660702 23793 "type" : "number"
7aacca6f 23794 },
44660702 23795 "mbps_rd_max" : {
de0983cb 23796 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 23797 "format_description" : "mbps",
56122987 23798 "optional" : 1,
44660702 23799 "type" : "number"
56122987 23800 },
44660702 23801 "mbps_wr" : {
de0983cb 23802 "description" : "Maximum write speed in megabytes per second.",
44660702 23803 "format_description" : "mbps",
7aacca6f 23804 "optional" : 1,
44660702 23805 "type" : "number"
56122987 23806 },
44660702 23807 "mbps_wr_max" : {
de0983cb 23808 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 23809 "format_description" : "mbps",
56122987 23810 "optional" : 1,
44660702 23811 "type" : "number"
7aacca6f
DM
23812 },
23813 "media" : {
44660702
DM
23814 "default" : "disk",
23815 "description" : "The drive's media type.",
56122987 23816 "enum" : [
7aacca6f
DM
23817 "cdrom",
23818 "disk"
56122987 23819 ],
56122987 23820 "optional" : 1,
44660702 23821 "type" : "string"
56122987 23822 },
44660702
DM
23823 "model" : {
23824 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
23825 "format" : "urlencoded",
23826 "format_description" : "model",
23827 "maxLength" : 120,
56122987 23828 "optional" : 1,
44660702 23829 "type" : "string"
56122987 23830 },
5d9c884c
DM
23831 "replicate" : {
23832 "default" : 1,
23833 "description" : "Whether the drive should considered for replication jobs.",
23834 "optional" : 1,
23835 "type" : "boolean"
23836 },
7aacca6f 23837 "rerror" : {
7aacca6f
DM
23838 "description" : "Read error action.",
23839 "enum" : [
23840 "ignore",
23841 "report",
23842 "stop"
44660702 23843 ],
44660702
DM
23844 "optional" : 1,
23845 "type" : "string"
56122987 23846 },
44660702
DM
23847 "secs" : {
23848 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 23849 "optional" : 1,
44660702
DM
23850 "type" : "integer"
23851 },
23852 "serial" : {
23853 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
23854 "format" : "urlencoded",
23855 "format_description" : "serial",
23856 "maxLength" : 60,
23857 "optional" : 1,
23858 "type" : "string"
23859 },
27a7acb2
DM
23860 "shared" : {
23861 "default" : 0,
23862 "description" : "Mark this locally-managed volume as available on all nodes",
23863 "optional" : 1,
23864 "type" : "boolean",
23865 "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!"
23866 },
44660702
DM
23867 "size" : {
23868 "description" : "Disk size. This is purely informational and has no effect.",
23869 "format" : "disk-size",
f004f5b9 23870 "format_description" : "DiskSize",
44660702
DM
23871 "optional" : 1,
23872 "type" : "string"
7aacca6f
DM
23873 },
23874 "snapshot" : {
27a7acb2 23875 "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 23876 "optional" : 1,
44660702 23877 "type" : "boolean"
7aacca6f 23878 },
25203dc1
NC
23879 "ssd" : {
23880 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
23881 "optional" : 1,
23882 "type" : "boolean"
23883 },
44660702
DM
23884 "trans" : {
23885 "description" : "Force disk geometry bios translation mode.",
23886 "enum" : [
23887 "none",
23888 "lba",
23889 "auto"
23890 ],
7aacca6f 23891 "optional" : 1,
44660702
DM
23892 "type" : "string"
23893 },
23894 "volume" : {
23895 "alias" : "file"
23896 },
23897 "werror" : {
23898 "description" : "Write error action.",
23899 "enum" : [
23900 "enospc",
23901 "ignore",
23902 "report",
23903 "stop"
23904 ],
44660702
DM
23905 "optional" : 1,
23906 "type" : "string"
95895385
TL
23907 },
23908 "wwn" : {
23909 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
23910 "format_description" : "wwn",
23911 "optional" : 1,
23912 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
23913 "type" : "string"
56122987
DM
23914 }
23915 },
56122987 23916 "optional" : 1,
4bd7df8b 23917 "type" : "string",
7af2edf9 23918 "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
23919 },
23920 "ipconfig[n]" : {
d2656385 23921 "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
23922 "format" : "pve-qm-ipconfig",
23923 "optional" : 1,
23924 "type" : "string",
23925 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
56122987 23926 },
95895385
TL
23927 "ivshmem" : {
23928 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
23929 "format" : {
23930 "name" : {
23931 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
23932 "format_description" : "string",
23933 "optional" : 1,
23934 "pattern" : "[a-zA-Z0-9\\-]+",
23935 "type" : "string"
23936 },
23937 "size" : {
23938 "description" : "The size of the file in MB.",
23939 "minimum" : 1,
23940 "type" : "integer"
23941 }
23942 },
23943 "optional" : 1,
23944 "type" : "string",
23945 "typetext" : "size=<integer> [,name=<string>]"
23946 },
4772952b
TL
23947 "keephugepages" : {
23948 "default" : 0,
23949 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
23950 "optional" : 1,
23951 "type" : "boolean",
23952 "typetext" : "<boolean>"
23953 },
56122987 23954 "keyboard" : {
35a75dd3 23955 "default" : null,
7af2edf9 23956 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
56122987 23957 "enum" : [
44660702
DM
23958 "de",
23959 "de-ch",
7aacca6f 23960 "da",
56122987 23961 "en-gb",
44660702
DM
23962 "en-us",
23963 "es",
23964 "fi",
23965 "fr",
23966 "fr-be",
23967 "fr-ca",
23968 "fr-ch",
23969 "hu",
7aacca6f 23970 "is",
44660702
DM
23971 "it",
23972 "ja",
23973 "lt",
56122987 23974 "mk",
7aacca6f 23975 "nl",
56122987 23976 "no",
44660702 23977 "pl",
7aacca6f 23978 "pt",
44660702
DM
23979 "pt-br",
23980 "sv",
23981 "sl",
23982 "tr"
56122987 23983 ],
44660702
DM
23984 "optional" : 1,
23985 "type" : "string"
56122987 23986 },
44660702
DM
23987 "kvm" : {
23988 "default" : 1,
23989 "description" : "Enable/disable KVM hardware virtualization.",
7aacca6f 23990 "optional" : 1,
013dc89f
DM
23991 "type" : "boolean",
23992 "typetext" : "<boolean>"
7aacca6f 23993 },
d2656385
TL
23994 "live-restore" : {
23995 "description" : "Start the VM immediately from the backup and restore in background. PBS only.",
23996 "optional" : 1,
23997 "requires" : "archive",
23998 "type" : "boolean",
23999 "typetext" : "<boolean>"
24000 },
44660702 24001 "localtime" : {
5370fa8c 24002 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
56122987 24003 "optional" : 1,
013dc89f
DM
24004 "type" : "boolean",
24005 "typetext" : "<boolean>"
44660702
DM
24006 },
24007 "lock" : {
24008 "description" : "Lock/unlock the VM.",
7aacca6f 24009 "enum" : [
7aacca6f 24010 "backup",
5f26e15b
TL
24011 "clone",
24012 "create",
24013 "migrate",
24014 "rollback",
7aacca6f 24015 "snapshot",
95895385
TL
24016 "snapshot-delete",
24017 "suspending",
24018 "suspended"
7aacca6f 24019 ],
44660702
DM
24020 "optional" : 1,
24021 "type" : "string"
56122987 24022 },
44660702 24023 "machine" : {
4d47f125 24024 "description" : "Specifies the Qemu machine type.",
44660702
DM
24025 "maxLength" : 40,
24026 "optional" : 1,
5c1699e5 24027 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702
DM
24028 "type" : "string"
24029 },
24030 "memory" : {
24031 "default" : 512,
24032 "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
24033 "minimum" : 16,
24034 "optional" : 1,
4bd7df8b 24035 "type" : "integer",
013dc89f 24036 "typetext" : "<integer> (16 - N)"
44660702
DM
24037 },
24038 "migrate_downtime" : {
24039 "default" : 0.1,
24040 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
24041 "minimum" : 0,
24042 "optional" : 1,
4bd7df8b 24043 "type" : "number",
013dc89f 24044 "typetext" : "<number> (0 - N)"
44660702
DM
24045 },
24046 "migrate_speed" : {
56122987 24047 "default" : 0,
44660702
DM
24048 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
24049 "minimum" : 0,
56122987 24050 "optional" : 1,
4bd7df8b 24051 "type" : "integer",
013dc89f 24052 "typetext" : "<integer> (0 - N)"
56122987 24053 },
27a7acb2
DM
24054 "name" : {
24055 "description" : "Set a name for the VM. Only used on the configuration web interface.",
24056 "format" : "dns-name",
24057 "optional" : 1,
24058 "type" : "string",
24059 "typetext" : "<string>"
24060 },
24061 "nameserver" : {
de786b48 24062 "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 24063 "format" : "address-list",
44660702 24064 "optional" : 1,
013dc89f
DM
24065 "type" : "string",
24066 "typetext" : "<string>"
44660702
DM
24067 },
24068 "net[n]" : {
c2993fe5 24069 "description" : "Specify network devices.",
f004f5b9
DM
24070 "format" : {
24071 "bridge" : {
c2993fe5 24072 "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 24073 "format" : "pve-bridge-id",
f004f5b9
DM
24074 "format_description" : "bridge",
24075 "optional" : 1,
24076 "type" : "string"
24077 },
24078 "e1000" : {
24079 "alias" : "macaddr",
24080 "keyAlias" : "model"
24081 },
24082 "e1000-82540em" : {
24083 "alias" : "macaddr",
24084 "keyAlias" : "model"
24085 },
24086 "e1000-82544gc" : {
24087 "alias" : "macaddr",
24088 "keyAlias" : "model"
24089 },
24090 "e1000-82545em" : {
24091 "alias" : "macaddr",
24092 "keyAlias" : "model"
24093 },
5370fa8c
TL
24094 "e1000e" : {
24095 "alias" : "macaddr",
24096 "keyAlias" : "model"
24097 },
f004f5b9
DM
24098 "firewall" : {
24099 "description" : "Whether this interface should be protected by the firewall.",
24100 "optional" : 1,
24101 "type" : "boolean"
24102 },
24103 "i82551" : {
24104 "alias" : "macaddr",
24105 "keyAlias" : "model"
24106 },
24107 "i82557b" : {
24108 "alias" : "macaddr",
24109 "keyAlias" : "model"
24110 },
24111 "i82559er" : {
24112 "alias" : "macaddr",
24113 "keyAlias" : "model"
24114 },
24115 "link_down" : {
c2993fe5 24116 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
24117 "optional" : 1,
24118 "type" : "boolean"
24119 },
24120 "macaddr" : {
c2993fe5 24121 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 24122 "format" : "mac-addr",
f004f5b9 24123 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 24124 "optional" : 1,
95895385
TL
24125 "type" : "string",
24126 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
24127 },
24128 "model" : {
24129 "default_key" : 1,
c2993fe5 24130 "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 24131 "enum" : [
f004f5b9 24132 "e1000",
5370fa8c
TL
24133 "e1000-82540em",
24134 "e1000-82544gc",
24135 "e1000-82545em",
24136 "e1000e",
f004f5b9
DM
24137 "i82551",
24138 "i82557b",
24139 "i82559er",
5370fa8c
TL
24140 "ne2k_isa",
24141 "ne2k_pci",
24142 "pcnet",
24143 "rtl8139",
24144 "virtio",
24145 "vmxnet3"
f004f5b9 24146 ],
f004f5b9
DM
24147 "type" : "string"
24148 },
ac70d7d1
TL
24149 "mtu" : {
24150 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
24151 "maximum" : 65520,
24152 "minimum" : 1,
24153 "optional" : 1,
24154 "type" : "integer"
24155 },
f004f5b9
DM
24156 "ne2k_isa" : {
24157 "alias" : "macaddr",
24158 "keyAlias" : "model"
24159 },
24160 "ne2k_pci" : {
24161 "alias" : "macaddr",
24162 "keyAlias" : "model"
24163 },
24164 "pcnet" : {
24165 "alias" : "macaddr",
24166 "keyAlias" : "model"
24167 },
24168 "queues" : {
24169 "description" : "Number of packet queues to be used on the device.",
81a3384d 24170 "maximum" : 64,
f004f5b9
DM
24171 "minimum" : 0,
24172 "optional" : 1,
24173 "type" : "integer"
24174 },
24175 "rate" : {
c2993fe5 24176 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
24177 "minimum" : 0,
24178 "optional" : 1,
24179 "type" : "number"
24180 },
24181 "rtl8139" : {
24182 "alias" : "macaddr",
24183 "keyAlias" : "model"
24184 },
24185 "tag" : {
24186 "description" : "VLAN tag to apply to packets on this interface.",
24187 "maximum" : 4094,
c2993fe5 24188 "minimum" : 1,
f004f5b9
DM
24189 "optional" : 1,
24190 "type" : "integer"
24191 },
24192 "trunks" : {
24193 "description" : "VLAN trunks to pass through this interface.",
24194 "format_description" : "vlanid[;vlanid...]",
24195 "optional" : 1,
24196 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
24197 "type" : "string"
24198 },
24199 "virtio" : {
24200 "alias" : "macaddr",
24201 "keyAlias" : "model"
24202 },
24203 "vmxnet3" : {
24204 "alias" : "macaddr",
24205 "keyAlias" : "model"
24206 }
24207 },
44660702 24208 "optional" : 1,
4bd7df8b 24209 "type" : "string",
ac70d7d1 24210 "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
24211 },
24212 "node" : {
24213 "description" : "The cluster node name.",
24214 "format" : "pve-node",
013dc89f
DM
24215 "type" : "string",
24216 "typetext" : "<string>"
44660702
DM
24217 },
24218 "numa" : {
7aacca6f 24219 "default" : 0,
44660702
DM
24220 "description" : "Enable/disable NUMA.",
24221 "optional" : 1,
013dc89f
DM
24222 "type" : "boolean",
24223 "typetext" : "<boolean>"
56122987 24224 },
7aacca6f 24225 "numa[n]" : {
c2993fe5 24226 "description" : "NUMA topology.",
7aacca6f 24227 "format" : {
44660702 24228 "cpus" : {
c2993fe5 24229 "description" : "CPUs accessing this NUMA node.",
44660702
DM
24230 "format_description" : "id[-id];...",
24231 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
24232 "type" : "string"
24233 },
7aacca6f 24234 "hostnodes" : {
c2993fe5 24235 "description" : "Host NUMA nodes to use.",
44660702 24236 "format_description" : "id[-id];...",
7aacca6f 24237 "optional" : 1,
44660702
DM
24238 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
24239 "type" : "string"
7aacca6f 24240 },
44660702 24241 "memory" : {
c2993fe5 24242 "description" : "Amount of memory this NUMA node provides.",
44660702
DM
24243 "optional" : 1,
24244 "type" : "number"
7aacca6f
DM
24245 },
24246 "policy" : {
c2993fe5 24247 "description" : "NUMA allocation policy.",
7aacca6f
DM
24248 "enum" : [
24249 "preferred",
24250 "bind",
24251 "interleave"
24252 ],
7aacca6f 24253 "optional" : 1,
44660702 24254 "type" : "string"
7aacca6f
DM
24255 }
24256 },
56122987 24257 "optional" : 1,
4bd7df8b
DM
24258 "type" : "string",
24259 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
56122987 24260 },
44660702
DM
24261 "onboot" : {
24262 "default" : 0,
24263 "description" : "Specifies whether a VM will be started during system bootup.",
56122987 24264 "optional" : 1,
013dc89f
DM
24265 "type" : "boolean",
24266 "typetext" : "<boolean>"
56122987
DM
24267 },
24268 "ostype" : {
c2993fe5 24269 "description" : "Specify guest operating system.",
56122987
DM
24270 "enum" : [
24271 "other",
24272 "wxp",
24273 "w2k",
24274 "w2k3",
24275 "w2k8",
24276 "wvista",
24277 "win7",
24278 "win8",
32d876b5 24279 "win10",
5370fa8c 24280 "win11",
56122987
DM
24281 "l24",
24282 "l26",
24283 "solaris"
44660702 24284 ],
56122987 24285 "optional" : 1,
c2993fe5 24286 "type" : "string",
5370fa8c 24287 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 5.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
56122987 24288 },
44660702 24289 "parallel[n]" : {
c2993fe5 24290 "description" : "Map host parallel devices (n is 0 to 2).",
56122987 24291 "optional" : 1,
44660702 24292 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 24293 "type" : "string",
4772952b 24294 "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 24295 },
44660702
DM
24296 "pool" : {
24297 "description" : "Add the VM to the specified pool.",
24298 "format" : "pve-poolid",
56122987 24299 "optional" : 1,
013dc89f
DM
24300 "type" : "string",
24301 "typetext" : "<string>"
56122987 24302 },
44660702
DM
24303 "protection" : {
24304 "default" : 0,
c2993fe5 24305 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
56122987 24306 "optional" : 1,
013dc89f
DM
24307 "type" : "boolean",
24308 "typetext" : "<boolean>"
56122987 24309 },
44660702 24310 "reboot" : {
7aacca6f 24311 "default" : 1,
44660702
DM
24312 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
24313 "optional" : 1,
013dc89f
DM
24314 "type" : "boolean",
24315 "typetext" : "<boolean>"
56122987 24316 },
c5aa7e14
TL
24317 "rng0" : {
24318 "description" : "Configure a VirtIO-based Random Number Generator.",
24319 "format" : {
24320 "max_bytes" : {
24321 "default" : 1024,
5370fa8c 24322 "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
24323 "optional" : 1,
24324 "type" : "integer"
24325 },
24326 "period" : {
24327 "default" : 1000,
24328 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
24329 "optional" : 1,
24330 "type" : "integer"
24331 },
24332 "source" : {
24333 "default_key" : 1,
5370fa8c 24334 "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
24335 "enum" : [
24336 "/dev/urandom",
24337 "/dev/random",
24338 "/dev/hwrng"
24339 ],
24340 "type" : "string"
24341 }
24342 },
24343 "optional" : 1,
24344 "type" : "string",
24345 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
24346 },
56122987 24347 "sata[n]" : {
7af2edf9 24348 "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 24349 "format" : {
7aacca6f 24350 "aio" : {
44660702 24351 "description" : "AIO type to use.",
56122987 24352 "enum" : [
7aacca6f 24353 "native",
8f4d9c87
TL
24354 "threads",
24355 "io_uring"
56122987 24356 ],
7aacca6f 24357 "optional" : 1,
44660702 24358 "type" : "string"
7aacca6f
DM
24359 },
24360 "backup" : {
7aacca6f 24361 "description" : "Whether the drive should be included when making backups.",
7aacca6f 24362 "optional" : 1,
44660702 24363 "type" : "boolean"
56122987 24364 },
44660702 24365 "bps" : {
de0983cb 24366 "description" : "Maximum r/w speed in bytes per second.",
44660702 24367 "format_description" : "bps",
7aacca6f 24368 "optional" : 1,
44660702 24369 "type" : "integer"
56122987 24370 },
de0983cb
DM
24371 "bps_max_length" : {
24372 "description" : "Maximum length of I/O bursts in seconds.",
24373 "format_description" : "seconds",
24374 "minimum" : 1,
24375 "optional" : 1,
24376 "type" : "integer"
24377 },
44660702 24378 "bps_rd" : {
de0983cb 24379 "description" : "Maximum read speed in bytes per second.",
44660702 24380 "format_description" : "bps",
56122987 24381 "optional" : 1,
44660702 24382 "type" : "integer"
7aacca6f 24383 },
de0983cb 24384 "bps_rd_length" : {
5d9c884c
DM
24385 "alias" : "bps_rd_max_length"
24386 },
24387 "bps_rd_max_length" : {
de0983cb
DM
24388 "description" : "Maximum length of read I/O bursts in seconds.",
24389 "format_description" : "seconds",
24390 "minimum" : 1,
24391 "optional" : 1,
24392 "type" : "integer"
24393 },
44660702 24394 "bps_wr" : {
de0983cb 24395 "description" : "Maximum write speed in bytes per second.",
44660702 24396 "format_description" : "bps",
56122987 24397 "optional" : 1,
44660702 24398 "type" : "integer"
56122987 24399 },
de0983cb 24400 "bps_wr_length" : {
5d9c884c
DM
24401 "alias" : "bps_wr_max_length"
24402 },
24403 "bps_wr_max_length" : {
de0983cb
DM
24404 "description" : "Maximum length of write I/O bursts in seconds.",
24405 "format_description" : "seconds",
24406 "minimum" : 1,
24407 "optional" : 1,
24408 "type" : "integer"
24409 },
7aacca6f 24410 "cache" : {
7aacca6f
DM
24411 "description" : "The drive's cache mode",
24412 "enum" : [
24413 "none",
24414 "writethrough",
24415 "writeback",
24416 "unsafe",
24417 "directsync"
24418 ],
44660702
DM
24419 "optional" : 1,
24420 "type" : "string"
56122987 24421 },
44660702
DM
24422 "cyls" : {
24423 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
56122987 24424 "optional" : 1,
7aacca6f 24425 "type" : "integer"
56122987 24426 },
7aacca6f
DM
24427 "detect_zeroes" : {
24428 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 24429 "optional" : 1,
7aacca6f 24430 "type" : "boolean"
56122987 24431 },
44660702
DM
24432 "discard" : {
24433 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
24434 "enum" : [
24435 "ignore",
24436 "on"
24437 ],
56122987 24438 "optional" : 1,
44660702 24439 "type" : "string"
56122987 24440 },
44660702
DM
24441 "file" : {
24442 "default_key" : 1,
24443 "description" : "The drive's backing volume.",
24444 "format" : "pve-volume-id-or-qm-path",
24445 "format_description" : "volume",
24446 "type" : "string"
56122987
DM
24447 },
24448 "format" : {
44660702 24449 "description" : "The drive's backing file's data format.",
56122987
DM
24450 "enum" : [
24451 "raw",
24452 "cow",
24453 "qcow",
24454 "qed",
24455 "qcow2",
24456 "vmdk",
24457 "cloop"
24458 ],
56122987 24459 "optional" : 1,
44660702 24460 "type" : "string"
56122987 24461 },
7aacca6f 24462 "heads" : {
7aacca6f 24463 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
24464 "optional" : 1,
24465 "type" : "integer"
56122987 24466 },
7af2edf9
TL
24467 "import-from" : {
24468 "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!",
24469 "format" : "pve-volume-id-or-absolute-path",
24470 "format_description" : "source volume",
24471 "optional" : 1,
24472 "type" : "string"
24473 },
44660702 24474 "iops" : {
de0983cb 24475 "description" : "Maximum r/w I/O in operations per second.",
44660702
DM
24476 "format_description" : "iops",
24477 "optional" : 1,
24478 "type" : "integer"
56122987 24479 },
44660702 24480 "iops_max" : {
de0983cb 24481 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 24482 "format_description" : "iops",
56122987 24483 "optional" : 1,
44660702 24484 "type" : "integer"
56122987 24485 },
de0983cb
DM
24486 "iops_max_length" : {
24487 "description" : "Maximum length of I/O bursts in seconds.",
24488 "format_description" : "seconds",
24489 "minimum" : 1,
24490 "optional" : 1,
24491 "type" : "integer"
24492 },
44660702 24493 "iops_rd" : {
de0983cb 24494 "description" : "Maximum read I/O in operations per second.",
44660702 24495 "format_description" : "iops",
56122987 24496 "optional" : 1,
44660702 24497 "type" : "integer"
56122987 24498 },
de0983cb 24499 "iops_rd_length" : {
5d9c884c 24500 "alias" : "iops_rd_max_length"
de0983cb 24501 },
44660702 24502 "iops_rd_max" : {
de0983cb 24503 "description" : "Maximum unthrottled read I/O pool in operations per second.",
7aacca6f 24504 "format_description" : "iops",
56122987 24505 "optional" : 1,
44660702 24506 "type" : "integer"
56122987 24507 },
5d9c884c
DM
24508 "iops_rd_max_length" : {
24509 "description" : "Maximum length of read I/O bursts in seconds.",
24510 "format_description" : "seconds",
24511 "minimum" : 1,
24512 "optional" : 1,
24513 "type" : "integer"
24514 },
44660702 24515 "iops_wr" : {
de0983cb 24516 "description" : "Maximum write I/O in operations per second.",
44660702 24517 "format_description" : "iops",
7aacca6f 24518 "optional" : 1,
44660702 24519 "type" : "integer"
7aacca6f 24520 },
de0983cb 24521 "iops_wr_length" : {
5d9c884c 24522 "alias" : "iops_wr_max_length"
de0983cb 24523 },
44660702 24524 "iops_wr_max" : {
de0983cb 24525 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 24526 "format_description" : "iops",
56122987 24527 "optional" : 1,
7aacca6f 24528 "type" : "integer"
56122987 24529 },
5d9c884c
DM
24530 "iops_wr_max_length" : {
24531 "description" : "Maximum length of write I/O bursts in seconds.",
24532 "format_description" : "seconds",
24533 "minimum" : 1,
24534 "optional" : 1,
24535 "type" : "integer"
24536 },
44660702 24537 "mbps" : {
de0983cb 24538 "description" : "Maximum r/w speed in megabytes per second.",
44660702 24539 "format_description" : "mbps",
56122987 24540 "optional" : 1,
44660702 24541 "type" : "number"
56122987 24542 },
44660702 24543 "mbps_max" : {
de0983cb 24544 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 24545 "format_description" : "mbps",
7aacca6f 24546 "optional" : 1,
44660702 24547 "type" : "number"
7aacca6f 24548 },
44660702 24549 "mbps_rd" : {
de0983cb 24550 "description" : "Maximum read speed in megabytes per second.",
44660702 24551 "format_description" : "mbps",
7aacca6f 24552 "optional" : 1,
44660702 24553 "type" : "number"
7aacca6f 24554 },
44660702 24555 "mbps_rd_max" : {
de0983cb 24556 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 24557 "format_description" : "mbps",
7aacca6f 24558 "optional" : 1,
44660702 24559 "type" : "number"
7aacca6f 24560 },
44660702 24561 "mbps_wr" : {
de0983cb 24562 "description" : "Maximum write speed in megabytes per second.",
44660702 24563 "format_description" : "mbps",
7aacca6f 24564 "optional" : 1,
44660702 24565 "type" : "number"
7aacca6f
DM
24566 },
24567 "mbps_wr_max" : {
de0983cb 24568 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 24569 "format_description" : "mbps",
7aacca6f 24570 "optional" : 1,
44660702 24571 "type" : "number"
7aacca6f 24572 },
44660702
DM
24573 "media" : {
24574 "default" : "disk",
24575 "description" : "The drive's media type.",
56122987 24576 "enum" : [
44660702
DM
24577 "cdrom",
24578 "disk"
56122987 24579 ],
56122987 24580 "optional" : 1,
44660702 24581 "type" : "string"
56122987 24582 },
5d9c884c
DM
24583 "replicate" : {
24584 "default" : 1,
24585 "description" : "Whether the drive should considered for replication jobs.",
24586 "optional" : 1,
24587 "type" : "boolean"
24588 },
44660702
DM
24589 "rerror" : {
24590 "description" : "Read error action.",
7aacca6f
DM
24591 "enum" : [
24592 "ignore",
44660702
DM
24593 "report",
24594 "stop"
7aacca6f 24595 ],
56122987 24596 "optional" : 1,
44660702 24597 "type" : "string"
56122987 24598 },
44660702
DM
24599 "secs" : {
24600 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 24601 "optional" : 1,
44660702 24602 "type" : "integer"
56122987 24603 },
44660702
DM
24604 "serial" : {
24605 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
24606 "format" : "urlencoded",
24607 "format_description" : "serial",
24608 "maxLength" : 60,
24609 "optional" : 1,
24610 "type" : "string"
7aacca6f 24611 },
27a7acb2
DM
24612 "shared" : {
24613 "default" : 0,
24614 "description" : "Mark this locally-managed volume as available on all nodes",
24615 "optional" : 1,
24616 "type" : "boolean",
24617 "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!"
24618 },
7aacca6f
DM
24619 "size" : {
24620 "description" : "Disk size. This is purely informational and has no effect.",
44660702 24621 "format" : "disk-size",
f004f5b9 24622 "format_description" : "DiskSize",
56122987 24623 "optional" : 1,
44660702 24624 "type" : "string"
56122987 24625 },
44660702 24626 "snapshot" : {
27a7acb2 24627 "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 24628 "optional" : 1,
44660702 24629 "type" : "boolean"
56122987 24630 },
25203dc1
NC
24631 "ssd" : {
24632 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
24633 "optional" : 1,
24634 "type" : "boolean"
24635 },
44660702
DM
24636 "trans" : {
24637 "description" : "Force disk geometry bios translation mode.",
56122987 24638 "enum" : [
44660702
DM
24639 "none",
24640 "lba",
24641 "auto"
7aacca6f 24642 ],
44660702
DM
24643 "optional" : 1,
24644 "type" : "string"
24645 },
24646 "volume" : {
24647 "alias" : "file"
56122987
DM
24648 },
24649 "werror" : {
56122987
DM
24650 "description" : "Write error action.",
24651 "enum" : [
24652 "enospc",
24653 "ignore",
24654 "report",
24655 "stop"
24656 ],
56122987 24657 "optional" : 1,
44660702 24658 "type" : "string"
95895385
TL
24659 },
24660 "wwn" : {
24661 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
24662 "format_description" : "wwn",
24663 "optional" : 1,
24664 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
24665 "type" : "string"
44660702
DM
24666 }
24667 },
24668 "optional" : 1,
4bd7df8b 24669 "type" : "string",
7af2edf9 24670 "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
24671 },
24672 "scsi[n]" : {
7af2edf9 24673 "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
24674 "format" : {
24675 "aio" : {
24676 "description" : "AIO type to use.",
24677 "enum" : [
24678 "native",
8f4d9c87
TL
24679 "threads",
24680 "io_uring"
44660702 24681 ],
44660702
DM
24682 "optional" : 1,
24683 "type" : "string"
56122987 24684 },
7aacca6f 24685 "backup" : {
44660702 24686 "description" : "Whether the drive should be included when making backups.",
7aacca6f 24687 "optional" : 1,
44660702 24688 "type" : "boolean"
7aacca6f 24689 },
44660702 24690 "bps" : {
de0983cb 24691 "description" : "Maximum r/w speed in bytes per second.",
44660702 24692 "format_description" : "bps",
7aacca6f 24693 "optional" : 1,
44660702 24694 "type" : "integer"
7aacca6f 24695 },
de0983cb
DM
24696 "bps_max_length" : {
24697 "description" : "Maximum length of I/O bursts in seconds.",
24698 "format_description" : "seconds",
24699 "minimum" : 1,
24700 "optional" : 1,
24701 "type" : "integer"
24702 },
44660702 24703 "bps_rd" : {
de0983cb 24704 "description" : "Maximum read speed in bytes per second.",
44660702 24705 "format_description" : "bps",
56122987 24706 "optional" : 1,
44660702 24707 "type" : "integer"
56122987 24708 },
de0983cb 24709 "bps_rd_length" : {
5d9c884c
DM
24710 "alias" : "bps_rd_max_length"
24711 },
24712 "bps_rd_max_length" : {
de0983cb
DM
24713 "description" : "Maximum length of read I/O bursts in seconds.",
24714 "format_description" : "seconds",
24715 "minimum" : 1,
24716 "optional" : 1,
24717 "type" : "integer"
24718 },
44660702 24719 "bps_wr" : {
de0983cb 24720 "description" : "Maximum write speed in bytes per second.",
44660702 24721 "format_description" : "bps",
7aacca6f 24722 "optional" : 1,
44660702 24723 "type" : "integer"
56122987 24724 },
de0983cb 24725 "bps_wr_length" : {
5d9c884c
DM
24726 "alias" : "bps_wr_max_length"
24727 },
24728 "bps_wr_max_length" : {
de0983cb
DM
24729 "description" : "Maximum length of write I/O bursts in seconds.",
24730 "format_description" : "seconds",
24731 "minimum" : 1,
24732 "optional" : 1,
24733 "type" : "integer"
24734 },
44660702
DM
24735 "cache" : {
24736 "description" : "The drive's cache mode",
7aacca6f
DM
24737 "enum" : [
24738 "none",
44660702
DM
24739 "writethrough",
24740 "writeback",
24741 "unsafe",
24742 "directsync"
7aacca6f 24743 ],
56122987 24744 "optional" : 1,
44660702 24745 "type" : "string"
56122987 24746 },
7aacca6f
DM
24747 "cyls" : {
24748 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
24749 "optional" : 1,
44660702 24750 "type" : "integer"
7aacca6f 24751 },
44660702
DM
24752 "detect_zeroes" : {
24753 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 24754 "optional" : 1,
44660702 24755 "type" : "boolean"
56122987 24756 },
44660702
DM
24757 "discard" : {
24758 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
7aacca6f 24759 "enum" : [
44660702
DM
24760 "ignore",
24761 "on"
7aacca6f 24762 ],
7aacca6f 24763 "optional" : 1,
44660702 24764 "type" : "string"
56122987
DM
24765 },
24766 "file" : {
7aacca6f
DM
24767 "default_key" : 1,
24768 "description" : "The drive's backing volume.",
44660702
DM
24769 "format" : "pve-volume-id-or-qm-path",
24770 "format_description" : "volume",
7aacca6f 24771 "type" : "string"
56122987 24772 },
7aacca6f 24773 "format" : {
44660702 24774 "description" : "The drive's backing file's data format.",
56122987 24775 "enum" : [
7aacca6f
DM
24776 "raw",
24777 "cow",
24778 "qcow",
24779 "qed",
24780 "qcow2",
24781 "vmdk",
24782 "cloop"
56122987 24783 ],
44660702
DM
24784 "optional" : 1,
24785 "type" : "string"
56122987 24786 },
44660702
DM
24787 "heads" : {
24788 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
24789 "optional" : 1,
24790 "type" : "integer"
24791 },
7af2edf9
TL
24792 "import-from" : {
24793 "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!",
24794 "format" : "pve-volume-id-or-absolute-path",
24795 "format_description" : "source volume",
24796 "optional" : 1,
24797 "type" : "string"
24798 },
44660702 24799 "iops" : {
de0983cb 24800 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 24801 "format_description" : "iops",
56122987 24802 "optional" : 1,
44660702 24803 "type" : "integer"
56122987 24804 },
44660702 24805 "iops_max" : {
de0983cb 24806 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 24807 "format_description" : "iops",
7aacca6f 24808 "optional" : 1,
44660702 24809 "type" : "integer"
56122987 24810 },
de0983cb
DM
24811 "iops_max_length" : {
24812 "description" : "Maximum length of I/O bursts in seconds.",
24813 "format_description" : "seconds",
24814 "minimum" : 1,
24815 "optional" : 1,
24816 "type" : "integer"
24817 },
44660702 24818 "iops_rd" : {
de0983cb 24819 "description" : "Maximum read I/O in operations per second.",
44660702 24820 "format_description" : "iops",
56122987 24821 "optional" : 1,
44660702 24822 "type" : "integer"
56122987 24823 },
de0983cb 24824 "iops_rd_length" : {
5d9c884c 24825 "alias" : "iops_rd_max_length"
de0983cb 24826 },
44660702 24827 "iops_rd_max" : {
de0983cb 24828 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
24829 "format_description" : "iops",
24830 "optional" : 1,
24831 "type" : "integer"
56122987 24832 },
5d9c884c
DM
24833 "iops_rd_max_length" : {
24834 "description" : "Maximum length of read I/O bursts in seconds.",
24835 "format_description" : "seconds",
24836 "minimum" : 1,
24837 "optional" : 1,
24838 "type" : "integer"
24839 },
44660702 24840 "iops_wr" : {
de0983cb 24841 "description" : "Maximum write I/O in operations per second.",
44660702 24842 "format_description" : "iops",
56122987 24843 "optional" : 1,
44660702 24844 "type" : "integer"
56122987 24845 },
de0983cb 24846 "iops_wr_length" : {
5d9c884c 24847 "alias" : "iops_wr_max_length"
de0983cb 24848 },
44660702 24849 "iops_wr_max" : {
de0983cb 24850 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 24851 "format_description" : "iops",
56122987 24852 "optional" : 1,
56122987
DM
24853 "type" : "integer"
24854 },
5d9c884c
DM
24855 "iops_wr_max_length" : {
24856 "description" : "Maximum length of write I/O bursts in seconds.",
24857 "format_description" : "seconds",
24858 "minimum" : 1,
24859 "optional" : 1,
24860 "type" : "integer"
24861 },
44660702
DM
24862 "iothread" : {
24863 "description" : "Whether to use iothreads for this drive",
44660702
DM
24864 "optional" : 1,
24865 "type" : "boolean"
24866 },
24867 "mbps" : {
de0983cb 24868 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
24869 "format_description" : "mbps",
24870 "optional" : 1,
24871 "type" : "number"
24872 },
7aacca6f 24873 "mbps_max" : {
de0983cb 24874 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 24875 "format_description" : "mbps",
56122987 24876 "optional" : 1,
44660702 24877 "type" : "number"
56122987 24878 },
44660702 24879 "mbps_rd" : {
de0983cb 24880 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
24881 "format_description" : "mbps",
24882 "optional" : 1,
24883 "type" : "number"
56122987 24884 },
44660702 24885 "mbps_rd_max" : {
de0983cb 24886 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 24887 "format_description" : "mbps",
56122987 24888 "optional" : 1,
44660702 24889 "type" : "number"
56122987 24890 },
44660702 24891 "mbps_wr" : {
de0983cb 24892 "description" : "Maximum write speed in megabytes per second.",
44660702 24893 "format_description" : "mbps",
56122987 24894 "optional" : 1,
44660702 24895 "type" : "number"
56122987 24896 },
44660702 24897 "mbps_wr_max" : {
de0983cb 24898 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 24899 "format_description" : "mbps",
7aacca6f 24900 "optional" : 1,
44660702 24901 "type" : "number"
56122987 24902 },
7aacca6f 24903 "media" : {
44660702 24904 "default" : "disk",
7aacca6f
DM
24905 "description" : "The drive's media type.",
24906 "enum" : [
24907 "cdrom",
24908 "disk"
24909 ],
56122987 24910 "optional" : 1,
44660702 24911 "type" : "string"
56122987 24912 },
44660702
DM
24913 "queues" : {
24914 "description" : "Number of queues.",
44660702
DM
24915 "minimum" : 2,
24916 "optional" : 1,
24917 "type" : "integer"
56122987 24918 },
5d9c884c
DM
24919 "replicate" : {
24920 "default" : 1,
24921 "description" : "Whether the drive should considered for replication jobs.",
24922 "optional" : 1,
24923 "type" : "boolean"
24924 },
24925 "rerror" : {
24926 "description" : "Read error action.",
24927 "enum" : [
24928 "ignore",
24929 "report",
24930 "stop"
24931 ],
24932 "optional" : 1,
24933 "type" : "string"
24934 },
5370fa8c
TL
24935 "ro" : {
24936 "description" : "Whether the drive is read-only.",
24937 "optional" : 1,
24938 "type" : "boolean"
24939 },
52e44c50
FG
24940 "scsiblock" : {
24941 "default" : 0,
24942 "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",
24943 "optional" : 1,
24944 "type" : "boolean"
24945 },
7aacca6f 24946 "secs" : {
7aacca6f 24947 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
24948 "optional" : 1,
24949 "type" : "integer"
24950 },
24951 "serial" : {
24952 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
24953 "format" : "urlencoded",
24954 "format_description" : "serial",
24955 "maxLength" : 60,
24956 "optional" : 1,
24957 "type" : "string"
24958 },
27a7acb2
DM
24959 "shared" : {
24960 "default" : 0,
24961 "description" : "Mark this locally-managed volume as available on all nodes",
24962 "optional" : 1,
24963 "type" : "boolean",
24964 "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!"
24965 },
44660702
DM
24966 "size" : {
24967 "description" : "Disk size. This is purely informational and has no effect.",
24968 "format" : "disk-size",
f004f5b9 24969 "format_description" : "DiskSize",
44660702
DM
24970 "optional" : 1,
24971 "type" : "string"
24972 },
24973 "snapshot" : {
27a7acb2 24974 "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
24975 "optional" : 1,
24976 "type" : "boolean"
24977 },
25203dc1
NC
24978 "ssd" : {
24979 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
24980 "optional" : 1,
24981 "type" : "boolean"
24982 },
44660702
DM
24983 "trans" : {
24984 "description" : "Force disk geometry bios translation mode.",
24985 "enum" : [
24986 "none",
24987 "lba",
24988 "auto"
24989 ],
44660702
DM
24990 "optional" : 1,
24991 "type" : "string"
24992 },
24993 "volume" : {
24994 "alias" : "file"
24995 },
24996 "werror" : {
24997 "description" : "Write error action.",
24998 "enum" : [
24999 "enospc",
25000 "ignore",
25001 "report",
25002 "stop"
25003 ],
44660702
DM
25004 "optional" : 1,
25005 "type" : "string"
95895385
TL
25006 },
25007 "wwn" : {
25008 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
25009 "format_description" : "wwn",
25010 "optional" : 1,
25011 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
25012 "type" : "string"
56122987
DM
25013 }
25014 },
7aacca6f 25015 "optional" : 1,
4bd7df8b 25016 "type" : "string",
7af2edf9 25017 "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 25018 },
44660702
DM
25019 "scsihw" : {
25020 "default" : "lsi",
c2993fe5 25021 "description" : "SCSI controller model",
44660702
DM
25022 "enum" : [
25023 "lsi",
25024 "lsi53c810",
25025 "virtio-scsi-pci",
25026 "virtio-scsi-single",
25027 "megasas",
25028 "pvscsi"
25029 ],
7aacca6f 25030 "optional" : 1,
44660702 25031 "type" : "string"
7aacca6f 25032 },
27a7acb2 25033 "searchdomain" : {
de786b48 25034 "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
25035 "optional" : 1,
25036 "type" : "string",
25037 "typetext" : "<string>"
25038 },
44660702 25039 "serial[n]" : {
c2993fe5 25040 "description" : "Create a serial device inside the VM (n is 0 to 3)",
44660702
DM
25041 "optional" : 1,
25042 "pattern" : "(/dev/.+|socket)",
c2993fe5 25043 "type" : "string",
4772952b 25044 "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
25045 },
25046 "shares" : {
25047 "default" : 1000,
5da3d723 25048 "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
25049 "maximum" : 50000,
25050 "minimum" : 0,
25051 "optional" : 1,
4bd7df8b 25052 "type" : "integer",
013dc89f 25053 "typetext" : "<integer> (0 - 50000)"
44660702
DM
25054 },
25055 "smbios1" : {
25056 "description" : "Specify SMBIOS type 1 fields.",
25057 "format" : "pve-qm-smbios1",
1e3f8156 25058 "maxLength" : 512,
7aacca6f 25059 "optional" : 1,
4bd7df8b 25060 "type" : "string",
1e3f8156 25061 "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
25062 },
25063 "smp" : {
44660702 25064 "default" : 1,
7aacca6f 25065 "description" : "The number of CPUs. Please use option -sockets instead.",
44660702 25066 "minimum" : 1,
56122987 25067 "optional" : 1,
4bd7df8b 25068 "type" : "integer",
013dc89f 25069 "typetext" : "<integer> (1 - N)"
44660702
DM
25070 },
25071 "sockets" : {
7aacca6f 25072 "default" : 1,
44660702
DM
25073 "description" : "The number of CPU sockets.",
25074 "minimum" : 1,
25075 "optional" : 1,
4bd7df8b 25076 "type" : "integer",
013dc89f 25077 "typetext" : "<integer> (1 - N)"
7aacca6f 25078 },
1c532546
TL
25079 "spice_enhancements" : {
25080 "description" : "Configure additional enhancements for SPICE.",
25081 "format" : {
25082 "foldersharing" : {
25083 "default" : "0",
25084 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
25085 "optional" : 1,
25086 "type" : "boolean"
25087 },
25088 "videostreaming" : {
25089 "default" : "off",
25090 "description" : "Enable video streaming. Uses compression for detected video streams.",
25091 "enum" : [
25092 "off",
25093 "all",
25094 "filter"
25095 ],
25096 "optional" : 1,
25097 "type" : "string"
25098 }
25099 },
25100 "optional" : 1,
25101 "type" : "string",
25102 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
25103 },
27a7acb2
DM
25104 "sshkeys" : {
25105 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
25106 "format" : "urlencoded",
25107 "optional" : 1,
25108 "type" : "string",
25109 "typetext" : "<string>"
25110 },
5da3d723
TL
25111 "start" : {
25112 "default" : 0,
25113 "description" : "Start VM after it was created successfully.",
25114 "optional" : 1,
25115 "type" : "boolean",
25116 "typetext" : "<boolean>"
25117 },
44660702
DM
25118 "startdate" : {
25119 "default" : "now",
4772952b 25120 "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
25121 "optional" : 1,
25122 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
25123 "type" : "string",
25124 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
25125 },
25126 "startup" : {
25127 "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.",
25128 "format" : "pve-startup-order",
25129 "optional" : 1,
25130 "type" : "string",
25131 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
25132 },
25133 "storage" : {
25134 "description" : "Default storage.",
25135 "format" : "pve-storage-id",
7aacca6f 25136 "optional" : 1,
013dc89f
DM
25137 "type" : "string",
25138 "typetext" : "<string>"
56122987 25139 },
44660702
DM
25140 "tablet" : {
25141 "default" : 1,
c2993fe5 25142 "description" : "Enable/disable the USB tablet device.",
56122987 25143 "optional" : 1,
c2993fe5 25144 "type" : "boolean",
013dc89f 25145 "typetext" : "<boolean>",
4772952b 25146 "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 25147 },
5c1699e5
TL
25148 "tags" : {
25149 "description" : "Tags of the VM. This is only meta information.",
25150 "format" : "pve-tag-list",
25151 "optional" : 1,
25152 "type" : "string",
25153 "typetext" : "<string>"
25154 },
44660702
DM
25155 "tdf" : {
25156 "default" : 0,
25157 "description" : "Enable/disable time drift fix.",
25158 "optional" : 1,
013dc89f
DM
25159 "type" : "boolean",
25160 "typetext" : "<boolean>"
7aacca6f
DM
25161 },
25162 "template" : {
7aacca6f 25163 "default" : 0,
44660702 25164 "description" : "Enable/disable Template.",
7aacca6f 25165 "optional" : 1,
013dc89f
DM
25166 "type" : "boolean",
25167 "typetext" : "<boolean>"
7aacca6f 25168 },
5370fa8c 25169 "tpmstate0" : {
7af2edf9 25170 "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
25171 "format" : {
25172 "file" : {
25173 "default_key" : 1,
25174 "description" : "The drive's backing volume.",
25175 "format" : "pve-volume-id-or-qm-path",
25176 "format_description" : "volume",
25177 "type" : "string"
25178 },
7af2edf9
TL
25179 "import-from" : {
25180 "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!",
25181 "format" : "pve-volume-id-or-absolute-path",
25182 "format_description" : "source volume",
25183 "optional" : 1,
25184 "type" : "string"
25185 },
5370fa8c
TL
25186 "size" : {
25187 "description" : "Disk size. This is purely informational and has no effect.",
25188 "format" : "disk-size",
25189 "format_description" : "DiskSize",
25190 "optional" : 1,
25191 "type" : "string"
25192 },
25193 "version" : {
25194 "default" : "v2.0",
25195 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
25196 "enum" : [
25197 "v1.2",
25198 "v2.0"
25199 ],
25200 "optional" : 1,
25201 "type" : "string"
25202 },
25203 "volume" : {
25204 "alias" : "file"
25205 }
25206 },
25207 "optional" : 1,
25208 "type" : "string",
7af2edf9 25209 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 25210 },
44660702
DM
25211 "unique" : {
25212 "description" : "Assign a unique random ethernet address.",
7aacca6f 25213 "optional" : 1,
44660702 25214 "requires" : "archive",
013dc89f
DM
25215 "type" : "boolean",
25216 "typetext" : "<boolean>"
56122987 25217 },
44660702 25218 "unused[n]" : {
c2993fe5 25219 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
25220 "format" : {
25221 "file" : {
25222 "default_key" : 1,
25223 "description" : "The drive's backing volume.",
25224 "format" : "pve-volume-id",
25225 "format_description" : "volume",
25226 "type" : "string"
25227 },
25228 "volume" : {
25229 "alias" : "file"
25230 }
25231 },
7aacca6f 25232 "optional" : 1,
013dc89f 25233 "type" : "string",
c5aa7e14 25234 "typetext" : "[file=]<volume>"
44660702
DM
25235 },
25236 "usb[n]" : {
4e7f60c2 25237 "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 25238 "format" : {
7aacca6f
DM
25239 "host" : {
25240 "default_key" : 1,
4772952b 25241 "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n",
7aacca6f 25242 "format" : "pve-qm-usb-device",
44660702
DM
25243 "format_description" : "HOSTUSBDEVICE|spice",
25244 "type" : "string"
7aacca6f 25245 },
56122987 25246 "usb3" : {
c2993fe5 25247 "default" : 0,
4e7f60c2 25248 "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 25249 "optional" : 1,
56122987 25250 "type" : "boolean"
7aacca6f 25251 }
56122987 25252 },
56122987 25253 "optional" : 1,
4bd7df8b
DM
25254 "type" : "string",
25255 "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
56122987 25256 },
44660702
DM
25257 "vcpus" : {
25258 "default" : 0,
25259 "description" : "Number of hotplugged vcpus.",
25260 "minimum" : 1,
56122987 25261 "optional" : 1,
4bd7df8b 25262 "type" : "integer",
013dc89f 25263 "typetext" : "<integer> (1 - N)"
7aacca6f 25264 },
44660702 25265 "vga" : {
e2d681b3
TL
25266 "description" : "Configure the VGA hardware.",
25267 "format" : {
25268 "memory" : {
25269 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
25270 "maximum" : 512,
25271 "minimum" : 4,
25272 "optional" : 1,
25273 "type" : "integer"
25274 },
25275 "type" : {
25276 "default" : "std",
25277 "default_key" : 1,
25278 "description" : "Select the VGA type.",
25279 "enum" : [
25280 "cirrus",
25281 "qxl",
25282 "qxl2",
25283 "qxl3",
25284 "qxl4",
5f26e15b 25285 "none",
e2d681b3
TL
25286 "serial0",
25287 "serial1",
25288 "serial2",
25289 "serial3",
25290 "std",
25291 "virtio",
7af2edf9 25292 "virtio-gl",
e2d681b3
TL
25293 "vmware"
25294 ],
25295 "optional" : 1,
25296 "type" : "string"
25297 }
25298 },
44660702 25299 "optional" : 1,
c2993fe5 25300 "type" : "string",
e2d681b3
TL
25301 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
25302 "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 25303 },
44660702 25304 "virtio[n]" : {
7af2edf9 25305 "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
25306 "format" : {
25307 "aio" : {
25308 "description" : "AIO type to use.",
25309 "enum" : [
25310 "native",
8f4d9c87
TL
25311 "threads",
25312 "io_uring"
44660702 25313 ],
44660702
DM
25314 "optional" : 1,
25315 "type" : "string"
25316 },
25317 "backup" : {
25318 "description" : "Whether the drive should be included when making backups.",
44660702
DM
25319 "optional" : 1,
25320 "type" : "boolean"
25321 },
25322 "bps" : {
de0983cb 25323 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
25324 "format_description" : "bps",
25325 "optional" : 1,
25326 "type" : "integer"
25327 },
de0983cb
DM
25328 "bps_max_length" : {
25329 "description" : "Maximum length of I/O bursts in seconds.",
25330 "format_description" : "seconds",
25331 "minimum" : 1,
25332 "optional" : 1,
25333 "type" : "integer"
25334 },
44660702 25335 "bps_rd" : {
de0983cb 25336 "description" : "Maximum read speed in bytes per second.",
44660702
DM
25337 "format_description" : "bps",
25338 "optional" : 1,
25339 "type" : "integer"
25340 },
de0983cb 25341 "bps_rd_length" : {
5d9c884c
DM
25342 "alias" : "bps_rd_max_length"
25343 },
25344 "bps_rd_max_length" : {
de0983cb
DM
25345 "description" : "Maximum length of read I/O bursts in seconds.",
25346 "format_description" : "seconds",
25347 "minimum" : 1,
25348 "optional" : 1,
25349 "type" : "integer"
25350 },
44660702 25351 "bps_wr" : {
de0983cb 25352 "description" : "Maximum write speed in bytes per second.",
44660702
DM
25353 "format_description" : "bps",
25354 "optional" : 1,
25355 "type" : "integer"
25356 },
de0983cb 25357 "bps_wr_length" : {
5d9c884c
DM
25358 "alias" : "bps_wr_max_length"
25359 },
25360 "bps_wr_max_length" : {
de0983cb
DM
25361 "description" : "Maximum length of write I/O bursts in seconds.",
25362 "format_description" : "seconds",
25363 "minimum" : 1,
25364 "optional" : 1,
25365 "type" : "integer"
25366 },
44660702
DM
25367 "cache" : {
25368 "description" : "The drive's cache mode",
25369 "enum" : [
25370 "none",
25371 "writethrough",
25372 "writeback",
25373 "unsafe",
25374 "directsync"
25375 ],
44660702
DM
25376 "optional" : 1,
25377 "type" : "string"
25378 },
25379 "cyls" : {
25380 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
25381 "optional" : 1,
25382 "type" : "integer"
25383 },
25384 "detect_zeroes" : {
25385 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
25386 "optional" : 1,
25387 "type" : "boolean"
25388 },
25389 "discard" : {
25390 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
25391 "enum" : [
25392 "ignore",
25393 "on"
25394 ],
44660702
DM
25395 "optional" : 1,
25396 "type" : "string"
25397 },
25398 "file" : {
25399 "default_key" : 1,
25400 "description" : "The drive's backing volume.",
25401 "format" : "pve-volume-id-or-qm-path",
25402 "format_description" : "volume",
25403 "type" : "string"
25404 },
25405 "format" : {
25406 "description" : "The drive's backing file's data format.",
25407 "enum" : [
25408 "raw",
25409 "cow",
25410 "qcow",
25411 "qed",
25412 "qcow2",
25413 "vmdk",
25414 "cloop"
25415 ],
44660702
DM
25416 "optional" : 1,
25417 "type" : "string"
25418 },
25419 "heads" : {
25420 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
25421 "optional" : 1,
25422 "type" : "integer"
25423 },
7af2edf9
TL
25424 "import-from" : {
25425 "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!",
25426 "format" : "pve-volume-id-or-absolute-path",
25427 "format_description" : "source volume",
25428 "optional" : 1,
25429 "type" : "string"
25430 },
44660702 25431 "iops" : {
de0983cb 25432 "description" : "Maximum r/w I/O in operations per second.",
44660702
DM
25433 "format_description" : "iops",
25434 "optional" : 1,
25435 "type" : "integer"
25436 },
25437 "iops_max" : {
de0983cb 25438 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702
DM
25439 "format_description" : "iops",
25440 "optional" : 1,
25441 "type" : "integer"
25442 },
de0983cb
DM
25443 "iops_max_length" : {
25444 "description" : "Maximum length of I/O bursts in seconds.",
25445 "format_description" : "seconds",
25446 "minimum" : 1,
25447 "optional" : 1,
25448 "type" : "integer"
25449 },
44660702 25450 "iops_rd" : {
de0983cb 25451 "description" : "Maximum read I/O in operations per second.",
44660702
DM
25452 "format_description" : "iops",
25453 "optional" : 1,
25454 "type" : "integer"
25455 },
de0983cb 25456 "iops_rd_length" : {
5d9c884c 25457 "alias" : "iops_rd_max_length"
de0983cb 25458 },
44660702 25459 "iops_rd_max" : {
de0983cb 25460 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
25461 "format_description" : "iops",
25462 "optional" : 1,
25463 "type" : "integer"
25464 },
5d9c884c
DM
25465 "iops_rd_max_length" : {
25466 "description" : "Maximum length of read I/O bursts in seconds.",
25467 "format_description" : "seconds",
25468 "minimum" : 1,
25469 "optional" : 1,
25470 "type" : "integer"
25471 },
44660702 25472 "iops_wr" : {
de0983cb 25473 "description" : "Maximum write I/O in operations per second.",
44660702
DM
25474 "format_description" : "iops",
25475 "optional" : 1,
25476 "type" : "integer"
25477 },
de0983cb 25478 "iops_wr_length" : {
5d9c884c 25479 "alias" : "iops_wr_max_length"
de0983cb 25480 },
44660702 25481 "iops_wr_max" : {
de0983cb 25482 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
25483 "format_description" : "iops",
25484 "optional" : 1,
25485 "type" : "integer"
25486 },
5d9c884c
DM
25487 "iops_wr_max_length" : {
25488 "description" : "Maximum length of write I/O bursts in seconds.",
25489 "format_description" : "seconds",
25490 "minimum" : 1,
25491 "optional" : 1,
25492 "type" : "integer"
25493 },
44660702
DM
25494 "iothread" : {
25495 "description" : "Whether to use iothreads for this drive",
44660702
DM
25496 "optional" : 1,
25497 "type" : "boolean"
25498 },
25499 "mbps" : {
de0983cb 25500 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
25501 "format_description" : "mbps",
25502 "optional" : 1,
25503 "type" : "number"
25504 },
25505 "mbps_max" : {
de0983cb 25506 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
25507 "format_description" : "mbps",
25508 "optional" : 1,
25509 "type" : "number"
25510 },
25511 "mbps_rd" : {
de0983cb 25512 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
25513 "format_description" : "mbps",
25514 "optional" : 1,
25515 "type" : "number"
25516 },
25517 "mbps_rd_max" : {
de0983cb 25518 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
25519 "format_description" : "mbps",
25520 "optional" : 1,
25521 "type" : "number"
25522 },
25523 "mbps_wr" : {
de0983cb 25524 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
25525 "format_description" : "mbps",
25526 "optional" : 1,
25527 "type" : "number"
25528 },
25529 "mbps_wr_max" : {
de0983cb 25530 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
25531 "format_description" : "mbps",
25532 "optional" : 1,
25533 "type" : "number"
25534 },
25535 "media" : {
25536 "default" : "disk",
25537 "description" : "The drive's media type.",
25538 "enum" : [
25539 "cdrom",
25540 "disk"
25541 ],
44660702
DM
25542 "optional" : 1,
25543 "type" : "string"
25544 },
5d9c884c
DM
25545 "replicate" : {
25546 "default" : 1,
25547 "description" : "Whether the drive should considered for replication jobs.",
25548 "optional" : 1,
25549 "type" : "boolean"
25550 },
44660702
DM
25551 "rerror" : {
25552 "description" : "Read error action.",
25553 "enum" : [
25554 "ignore",
25555 "report",
25556 "stop"
25557 ],
44660702
DM
25558 "optional" : 1,
25559 "type" : "string"
25560 },
5370fa8c
TL
25561 "ro" : {
25562 "description" : "Whether the drive is read-only.",
25563 "optional" : 1,
25564 "type" : "boolean"
25565 },
44660702
DM
25566 "secs" : {
25567 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
25568 "optional" : 1,
25569 "type" : "integer"
25570 },
25571 "serial" : {
25572 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
25573 "format" : "urlencoded",
25574 "format_description" : "serial",
25575 "maxLength" : 60,
25576 "optional" : 1,
25577 "type" : "string"
25578 },
27a7acb2
DM
25579 "shared" : {
25580 "default" : 0,
25581 "description" : "Mark this locally-managed volume as available on all nodes",
25582 "optional" : 1,
25583 "type" : "boolean",
25584 "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!"
25585 },
44660702
DM
25586 "size" : {
25587 "description" : "Disk size. This is purely informational and has no effect.",
25588 "format" : "disk-size",
f004f5b9 25589 "format_description" : "DiskSize",
44660702
DM
25590 "optional" : 1,
25591 "type" : "string"
25592 },
25593 "snapshot" : {
27a7acb2 25594 "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
25595 "optional" : 1,
25596 "type" : "boolean"
25597 },
25598 "trans" : {
25599 "description" : "Force disk geometry bios translation mode.",
25600 "enum" : [
25601 "none",
25602 "lba",
25603 "auto"
25604 ],
44660702
DM
25605 "optional" : 1,
25606 "type" : "string"
25607 },
25608 "volume" : {
25609 "alias" : "file"
25610 },
25611 "werror" : {
25612 "description" : "Write error action.",
25613 "enum" : [
25614 "enospc",
25615 "ignore",
25616 "report",
25617 "stop"
25618 ],
44660702
DM
25619 "optional" : 1,
25620 "type" : "string"
25621 }
25622 },
25623 "optional" : 1,
4bd7df8b 25624 "type" : "string",
7af2edf9 25625 "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 25626 },
4d47f125
TL
25627 "vmgenid" : {
25628 "default" : "1 (autogenerated)",
25629 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
25630 "format_description" : "UUID",
25631 "optional" : 1,
25632 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
25633 "type" : "string",
4772952b 25634 "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 25635 },
44660702
DM
25636 "vmid" : {
25637 "description" : "The (unique) ID of the VM.",
25638 "format" : "pve-vmid",
25639 "minimum" : 1,
4bd7df8b 25640 "type" : "integer",
013dc89f 25641 "typetext" : "<integer> (1 - N)"
44660702 25642 },
2489d6df
WB
25643 "vmstatestorage" : {
25644 "description" : "Default storage for VM state volumes/files.",
25645 "format" : "pve-storage-id",
25646 "optional" : 1,
25647 "type" : "string",
25648 "typetext" : "<string>"
25649 },
44660702 25650 "watchdog" : {
c2993fe5 25651 "description" : "Create a virtual hardware watchdog device.",
44660702 25652 "format" : "pve-qm-watchdog",
7aacca6f 25653 "optional" : 1,
c2993fe5 25654 "type" : "string",
013dc89f 25655 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
c2993fe5 25656 "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 25657 }
44660702 25658 }
56122987 25659 },
56122987 25660 "permissions" : {
44660702
DM
25661 "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.",
25662 "user" : "all"
56122987 25663 },
44660702
DM
25664 "protected" : 1,
25665 "proxyto" : "node",
56122987 25666 "returns" : {
44660702 25667 "type" : "string"
7aacca6f 25668 }
56122987 25669 }
7aacca6f 25670 },
44660702 25671 "leaf" : 0,
7aacca6f 25672 "path" : "/nodes/{node}/qemu",
44660702 25673 "text" : "qemu"
56122987
DM
25674 },
25675 {
25676 "children" : [
25677 {
56122987
DM
25678 "children" : [
25679 {
56122987 25680 "info" : {
44660702 25681 "GET" : {
e9cd3bd4 25682 "allowtoken" : 1,
44660702
DM
25683 "description" : "Get container configuration.",
25684 "method" : "GET",
25685 "name" : "vm_config",
25686 "parameters" : {
25687 "additionalProperties" : 0,
25688 "properties" : {
1c532546
TL
25689 "current" : {
25690 "default" : 0,
25691 "description" : "Get current values (instead of pending values).",
25692 "optional" : 1,
25693 "type" : "boolean",
25694 "typetext" : "<boolean>"
25695 },
44660702
DM
25696 "node" : {
25697 "description" : "The cluster node name.",
25698 "format" : "pve-node",
013dc89f 25699 "type" : "string",
4d47f125
TL
25700 "typetext" : "<string>"
25701 },
5f26e15b
TL
25702 "snapshot" : {
25703 "description" : "Fetch config values from given snapshot.",
25704 "format" : "pve-configid",
25705 "maxLength" : 40,
25706 "optional" : 1,
25707 "type" : "string",
25708 "typetext" : "<string>"
25709 },
4d47f125
TL
25710 "vmid" : {
25711 "description" : "The (unique) ID of the VM.",
25712 "format" : "pve-vmid",
25713 "minimum" : 1,
25714 "type" : "integer",
25715 "typetext" : "<integer> (1 - N)"
25716 }
25717 }
25718 },
25719 "permissions" : {
25720 "check" : [
25721 "perm",
25722 "/vms/{vmid}",
25723 [
25724 "VM.Audit"
25725 ]
25726 ]
25727 },
25728 "proxyto" : "node",
25729 "returns" : {
25730 "properties" : {
25731 "arch" : {
25732 "default" : "amd64",
25733 "description" : "OS architecture type.",
25734 "enum" : [
25735 "amd64",
25736 "i386",
25737 "arm64",
25738 "armhf"
25739 ],
25740 "optional" : 1,
25741 "type" : "string"
25742 },
25743 "cmode" : {
25744 "default" : "tty",
25745 "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).",
25746 "enum" : [
25747 "shell",
25748 "console",
25749 "tty"
25750 ],
25751 "optional" : 1,
25752 "type" : "string"
25753 },
25754 "console" : {
25755 "default" : 1,
25756 "description" : "Attach a console device (/dev/console) to the container.",
25757 "optional" : 1,
25758 "type" : "boolean"
25759 },
25760 "cores" : {
25761 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 25762 "maximum" : 8192,
4d47f125
TL
25763 "minimum" : 1,
25764 "optional" : 1,
25765 "type" : "integer"
25766 },
25767 "cpulimit" : {
25768 "default" : 0,
25769 "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 25770 "maximum" : 8192,
4d47f125
TL
25771 "minimum" : 0,
25772 "optional" : 1,
25773 "type" : "number"
25774 },
25775 "cpuunits" : {
4e7f60c2
TL
25776 "default" : "cgroup v1: 1024, cgroup v2: 100",
25777 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
4d47f125
TL
25778 "maximum" : 500000,
25779 "minimum" : 0,
25780 "optional" : 1,
4e7f60c2
TL
25781 "type" : "integer",
25782 "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 25783 },
739d4d64
TL
25784 "debug" : {
25785 "default" : 0,
25786 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
25787 "optional" : 1,
25788 "type" : "boolean"
25789 },
4d47f125 25790 "description" : {
8f4d9c87
TL
25791 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
25792 "maxLength" : 8192,
4d47f125
TL
25793 "optional" : 1,
25794 "type" : "string"
25795 },
25796 "digest" : {
25797 "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
25798 "type" : "string"
25799 },
25800 "features" : {
25801 "description" : "Allow containers access to advanced features.",
25802 "format" : {
c5aa7e14
TL
25803 "force_rw_sys" : {
25804 "default" : 0,
25805 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
25806 "optional" : 1,
25807 "type" : "boolean"
25808 },
e2d681b3
TL
25809 "fuse" : {
25810 "default" : 0,
25811 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
25812 "optional" : 1,
25813 "type" : "boolean"
25814 },
4d47f125
TL
25815 "keyctl" : {
25816 "default" : 0,
25817 "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.",
25818 "optional" : 1,
25819 "type" : "boolean"
25820 },
c5aa7e14
TL
25821 "mknod" : {
25822 "default" : 0,
25823 "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.",
25824 "optional" : 1,
25825 "type" : "boolean"
25826 },
4d47f125
TL
25827 "mount" : {
25828 "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.",
25829 "format_description" : "fstype;fstype;...",
25830 "optional" : 1,
95895385 25831 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125
TL
25832 "type" : "string"
25833 },
25834 "nesting" : {
25835 "default" : 0,
25836 "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.",
25837 "optional" : 1,
25838 "type" : "boolean"
25839 }
25840 },
25841 "optional" : 1,
25842 "type" : "string"
25843 },
5f26e15b
TL
25844 "hookscript" : {
25845 "description" : "Script that will be exectued during various steps in the containers lifetime.",
25846 "format" : "pve-volume-id",
25847 "optional" : 1,
25848 "type" : "string"
25849 },
4d47f125
TL
25850 "hostname" : {
25851 "description" : "Set a host name for the container.",
25852 "format" : "dns-name",
25853 "maxLength" : 255,
25854 "optional" : 1,
25855 "type" : "string"
25856 },
25857 "lock" : {
4e7f60c2 25858 "description" : "Lock/unlock the container.",
4d47f125
TL
25859 "enum" : [
25860 "backup",
bb4c8cf8 25861 "create",
1c532546 25862 "destroyed",
4d47f125 25863 "disk",
bb4c8cf8 25864 "fstrim",
4d47f125
TL
25865 "migrate",
25866 "mounted",
25867 "rollback",
25868 "snapshot",
25869 "snapshot-delete"
25870 ],
25871 "optional" : 1,
25872 "type" : "string"
25873 },
25874 "lxc" : {
25875 "description" : "Array of lxc low-level configurations ([[key1, value1], [key2, value2] ...]).",
25876 "items" : {
25877 "items" : {
25878 "type" : "string"
25879 },
25880 "type" : "array"
25881 },
25882 "optional" : 1,
25883 "type" : "array"
25884 },
25885 "memory" : {
25886 "default" : 512,
4e7f60c2 25887 "description" : "Amount of RAM for the container in MB.",
4d47f125
TL
25888 "minimum" : 16,
25889 "optional" : 1,
25890 "type" : "integer"
25891 },
25892 "mp[n]" : {
d2656385 25893 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
4d47f125
TL
25894 "format" : {
25895 "acl" : {
25896 "description" : "Explicitly enable or disable ACL support.",
25897 "optional" : 1,
25898 "type" : "boolean"
25899 },
25900 "backup" : {
25901 "description" : "Whether to include the mount point in backups.",
25902 "optional" : 1,
25903 "type" : "boolean",
25904 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
25905 },
7cbed89a
TL
25906 "mountoptions" : {
25907 "description" : "Extra mount options for rootfs/mps.",
25908 "format_description" : "opt[;opt...]",
25909 "optional" : 1,
c30bb419 25910 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
25911 "type" : "string"
25912 },
4d47f125
TL
25913 "mp" : {
25914 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
25915 "format" : "pve-lxc-mp-string",
25916 "format_description" : "Path",
25917 "type" : "string",
25918 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
25919 },
25920 "quota" : {
25921 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
25922 "optional" : 1,
25923 "type" : "boolean"
25924 },
25925 "replicate" : {
25926 "default" : 1,
25927 "description" : "Will include this volume to a storage replica job.",
25928 "optional" : 1,
25929 "type" : "boolean"
25930 },
25931 "ro" : {
25932 "description" : "Read-only mount point",
25933 "optional" : 1,
25934 "type" : "boolean"
25935 },
25936 "shared" : {
25937 "default" : 0,
25938 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
25939 "optional" : 1,
25940 "type" : "boolean",
25941 "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!"
25942 },
25943 "size" : {
25944 "description" : "Volume size (read only value).",
25945 "format" : "disk-size",
25946 "format_description" : "DiskSize",
25947 "optional" : 1,
25948 "type" : "string"
25949 },
25950 "volume" : {
25951 "default_key" : 1,
25952 "description" : "Volume, device or directory to mount into the container.",
25953 "format" : "pve-lxc-mp-string",
25954 "format_description" : "volume",
25955 "type" : "string"
25956 }
25957 },
25958 "optional" : 1,
25959 "type" : "string"
25960 },
25961 "nameserver" : {
25962 "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 25963 "format" : "lxc-ip-with-ll-iface-list",
4d47f125
TL
25964 "optional" : 1,
25965 "type" : "string"
25966 },
25967 "net[n]" : {
25968 "description" : "Specifies network interfaces for the container.",
25969 "format" : {
25970 "bridge" : {
25971 "description" : "Bridge to attach the network device to.",
25972 "format_description" : "bridge",
25973 "optional" : 1,
25974 "pattern" : "[-_.\\w\\d]+",
25975 "type" : "string"
25976 },
25977 "firewall" : {
25978 "description" : "Controls whether this interface's firewall rules should be used.",
25979 "optional" : 1,
25980 "type" : "boolean"
25981 },
25982 "gw" : {
25983 "description" : "Default gateway for IPv4 traffic.",
25984 "format" : "ipv4",
25985 "format_description" : "GatewayIPv4",
25986 "optional" : 1,
25987 "type" : "string"
25988 },
25989 "gw6" : {
25990 "description" : "Default gateway for IPv6 traffic.",
25991 "format" : "ipv6",
25992 "format_description" : "GatewayIPv6",
25993 "optional" : 1,
25994 "type" : "string"
25995 },
25996 "hwaddr" : {
25997 "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 25998 "format" : "mac-addr",
4d47f125
TL
25999 "format_description" : "XX:XX:XX:XX:XX:XX",
26000 "optional" : 1,
95895385
TL
26001 "type" : "string",
26002 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
26003 },
26004 "ip" : {
26005 "description" : "IPv4 address in CIDR format.",
26006 "format" : "pve-ipv4-config",
26007 "format_description" : "(IPv4/CIDR|dhcp|manual)",
26008 "optional" : 1,
26009 "type" : "string"
26010 },
26011 "ip6" : {
26012 "description" : "IPv6 address in CIDR format.",
26013 "format" : "pve-ipv6-config",
26014 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
26015 "optional" : 1,
26016 "type" : "string"
26017 },
26018 "mtu" : {
26019 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 26020 "maximum" : 65535,
4d47f125
TL
26021 "minimum" : 64,
26022 "optional" : 1,
26023 "type" : "integer"
26024 },
26025 "name" : {
26026 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
26027 "format_description" : "string",
26028 "pattern" : "[-_.\\w\\d]+",
26029 "type" : "string"
26030 },
26031 "rate" : {
26032 "description" : "Apply rate limiting to the interface",
26033 "format_description" : "mbps",
26034 "optional" : 1,
26035 "type" : "number"
26036 },
26037 "tag" : {
26038 "description" : "VLAN tag for this interface.",
26039 "maximum" : 4094,
26040 "minimum" : 1,
26041 "optional" : 1,
26042 "type" : "integer"
26043 },
26044 "trunks" : {
26045 "description" : "VLAN ids to pass through the interface",
26046 "format_description" : "vlanid[;vlanid...]",
26047 "optional" : 1,
26048 "pattern" : "(?^:\\d+(?:;\\d+)*)",
26049 "type" : "string"
26050 },
26051 "type" : {
26052 "description" : "Network interface type.",
26053 "enum" : [
26054 "veth"
26055 ],
26056 "optional" : 1,
26057 "type" : "string"
26058 }
26059 },
26060 "optional" : 1,
26061 "type" : "string"
26062 },
26063 "onboot" : {
26064 "default" : 0,
4e7f60c2 26065 "description" : "Specifies whether a container will be started during system bootup.",
4d47f125
TL
26066 "optional" : 1,
26067 "type" : "boolean"
26068 },
26069 "ostype" : {
26070 "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.",
26071 "enum" : [
26072 "debian",
d2656385 26073 "devuan",
4d47f125
TL
26074 "ubuntu",
26075 "centos",
26076 "fedora",
26077 "opensuse",
26078 "archlinux",
26079 "alpine",
26080 "gentoo",
7af2edf9 26081 "nixos",
4d47f125
TL
26082 "unmanaged"
26083 ],
26084 "optional" : 1,
26085 "type" : "string"
26086 },
26087 "protection" : {
26088 "default" : 0,
26089 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
26090 "optional" : 1,
26091 "type" : "boolean"
26092 },
26093 "rootfs" : {
26094 "description" : "Use volume as container root.",
26095 "format" : {
26096 "acl" : {
26097 "description" : "Explicitly enable or disable ACL support.",
26098 "optional" : 1,
26099 "type" : "boolean"
26100 },
7cbed89a
TL
26101 "mountoptions" : {
26102 "description" : "Extra mount options for rootfs/mps.",
26103 "format_description" : "opt[;opt...]",
26104 "optional" : 1,
c30bb419 26105 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
26106 "type" : "string"
26107 },
4d47f125
TL
26108 "quota" : {
26109 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
26110 "optional" : 1,
26111 "type" : "boolean"
26112 },
26113 "replicate" : {
26114 "default" : 1,
26115 "description" : "Will include this volume to a storage replica job.",
26116 "optional" : 1,
26117 "type" : "boolean"
26118 },
26119 "ro" : {
26120 "description" : "Read-only mount point",
26121 "optional" : 1,
26122 "type" : "boolean"
26123 },
26124 "shared" : {
26125 "default" : 0,
26126 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
26127 "optional" : 1,
26128 "type" : "boolean",
26129 "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!"
26130 },
26131 "size" : {
26132 "description" : "Volume size (read only value).",
26133 "format" : "disk-size",
26134 "format_description" : "DiskSize",
26135 "optional" : 1,
26136 "type" : "string"
26137 },
26138 "volume" : {
26139 "default_key" : 1,
26140 "description" : "Volume, device or directory to mount into the container.",
26141 "format" : "pve-lxc-mp-string",
26142 "format_description" : "volume",
26143 "type" : "string"
26144 }
26145 },
26146 "optional" : 1,
26147 "type" : "string"
26148 },
26149 "searchdomain" : {
26150 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
26151 "format" : "dns-name-list",
26152 "optional" : 1,
26153 "type" : "string"
26154 },
26155 "startup" : {
26156 "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.",
26157 "format" : "pve-startup-order",
26158 "optional" : 1,
26159 "type" : "string",
26160 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
26161 },
26162 "swap" : {
26163 "default" : 512,
4e7f60c2 26164 "description" : "Amount of SWAP for the container in MB.",
4d47f125
TL
26165 "minimum" : 0,
26166 "optional" : 1,
26167 "type" : "integer"
26168 },
5c1699e5
TL
26169 "tags" : {
26170 "description" : "Tags of the Container. This is only meta information.",
26171 "format" : "pve-tag-list",
26172 "optional" : 1,
26173 "type" : "string"
26174 },
4d47f125
TL
26175 "template" : {
26176 "default" : 0,
26177 "description" : "Enable/disable Template.",
26178 "optional" : 1,
26179 "type" : "boolean"
44660702 26180 },
04d22a9f
TL
26181 "timezone" : {
26182 "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",
26183 "format" : "pve-ct-timezone",
26184 "optional" : 1,
26185 "type" : "string"
26186 },
4d47f125
TL
26187 "tty" : {
26188 "default" : 2,
26189 "description" : "Specify the number of tty available to the container",
26190 "maximum" : 6,
26191 "minimum" : 0,
26192 "optional" : 1,
26193 "type" : "integer"
26194 },
26195 "unprivileged" : {
26196 "default" : 0,
26197 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
26198 "optional" : 1,
26199 "type" : "boolean"
26200 },
26201 "unused[n]" : {
26202 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
26203 "format" : {
26204 "volume" : {
26205 "default_key" : 1,
26206 "description" : "The volume that is not used currently.",
26207 "format" : "pve-volume-id",
26208 "format_description" : "volume",
26209 "type" : "string"
26210 }
26211 },
4d47f125 26212 "optional" : 1,
44660702
DM
26213 "type" : "string"
26214 }
26215 },
26216 "type" : "object"
26217 }
26218 },
56122987 26219 "PUT" : {
e9cd3bd4 26220 "allowtoken" : 1,
44660702
DM
26221 "description" : "Set container options.",
26222 "method" : "PUT",
26223 "name" : "update_vm",
56122987 26224 "parameters" : {
44660702 26225 "additionalProperties" : 0,
56122987 26226 "properties" : {
44660702
DM
26227 "arch" : {
26228 "default" : "amd64",
26229 "description" : "OS architecture type.",
26230 "enum" : [
26231 "amd64",
4d47f125
TL
26232 "i386",
26233 "arm64",
26234 "armhf"
44660702 26235 ],
7aacca6f 26236 "optional" : 1,
44660702
DM
26237 "type" : "string"
26238 },
26239 "cmode" : {
7aacca6f 26240 "default" : "tty",
44660702 26241 "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
26242 "enum" : [
26243 "shell",
26244 "console",
26245 "tty"
26246 ],
44660702
DM
26247 "optional" : 1,
26248 "type" : "string"
7aacca6f 26249 },
44660702
DM
26250 "console" : {
26251 "default" : 1,
26252 "description" : "Attach a console device (/dev/console) to the container.",
7aacca6f 26253 "optional" : 1,
013dc89f
DM
26254 "type" : "boolean",
26255 "typetext" : "<boolean>"
7aacca6f 26256 },
de0983cb
DM
26257 "cores" : {
26258 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 26259 "maximum" : 8192,
de0983cb
DM
26260 "minimum" : 1,
26261 "optional" : 1,
26262 "type" : "integer",
4772952b 26263 "typetext" : "<integer> (1 - 8192)"
de0983cb 26264 },
44660702
DM
26265 "cpulimit" : {
26266 "default" : 0,
26267 "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 26268 "maximum" : 8192,
7aacca6f 26269 "minimum" : 0,
7aacca6f 26270 "optional" : 1,
4bd7df8b 26271 "type" : "number",
4772952b 26272 "typetext" : "<number> (0 - 8192)"
7aacca6f 26273 },
44660702 26274 "cpuunits" : {
4e7f60c2
TL
26275 "default" : "cgroup v1: 1024, cgroup v2: 100",
26276 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
44660702
DM
26277 "maximum" : 500000,
26278 "minimum" : 0,
26279 "optional" : 1,
4bd7df8b 26280 "type" : "integer",
4e7f60c2
TL
26281 "typetext" : "<integer> (0 - 500000)",
26282 "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 26283 },
739d4d64
TL
26284 "debug" : {
26285 "default" : 0,
26286 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
26287 "optional" : 1,
26288 "type" : "boolean",
26289 "typetext" : "<boolean>"
26290 },
44660702
DM
26291 "delete" : {
26292 "description" : "A list of settings you want to delete.",
26293 "format" : "pve-configid-list",
7aacca6f 26294 "optional" : 1,
013dc89f
DM
26295 "type" : "string",
26296 "typetext" : "<string>"
7aacca6f 26297 },
44660702 26298 "description" : {
8f4d9c87
TL
26299 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
26300 "maxLength" : 8192,
7aacca6f 26301 "optional" : 1,
013dc89f
DM
26302 "type" : "string",
26303 "typetext" : "<string>"
7aacca6f 26304 },
44660702
DM
26305 "digest" : {
26306 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
26307 "maxLength" : 40,
7aacca6f 26308 "optional" : 1,
013dc89f
DM
26309 "type" : "string",
26310 "typetext" : "<string>"
7aacca6f 26311 },
4d47f125
TL
26312 "features" : {
26313 "description" : "Allow containers access to advanced features.",
26314 "format" : {
c5aa7e14
TL
26315 "force_rw_sys" : {
26316 "default" : 0,
26317 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
26318 "optional" : 1,
26319 "type" : "boolean"
26320 },
e2d681b3
TL
26321 "fuse" : {
26322 "default" : 0,
26323 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
26324 "optional" : 1,
26325 "type" : "boolean"
26326 },
4d47f125
TL
26327 "keyctl" : {
26328 "default" : 0,
26329 "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.",
26330 "optional" : 1,
26331 "type" : "boolean"
26332 },
c5aa7e14
TL
26333 "mknod" : {
26334 "default" : 0,
26335 "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.",
26336 "optional" : 1,
26337 "type" : "boolean"
26338 },
4d47f125
TL
26339 "mount" : {
26340 "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.",
26341 "format_description" : "fstype;fstype;...",
26342 "optional" : 1,
95895385 26343 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125
TL
26344 "type" : "string"
26345 },
26346 "nesting" : {
26347 "default" : 0,
26348 "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.",
26349 "optional" : 1,
26350 "type" : "boolean"
26351 }
26352 },
26353 "optional" : 1,
26354 "type" : "string",
c5aa7e14 26355 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
4d47f125 26356 },
5f26e15b
TL
26357 "hookscript" : {
26358 "description" : "Script that will be exectued during various steps in the containers lifetime.",
26359 "format" : "pve-volume-id",
26360 "optional" : 1,
26361 "type" : "string",
26362 "typetext" : "<string>"
26363 },
44660702
DM
26364 "hostname" : {
26365 "description" : "Set a host name for the container.",
26366 "format" : "dns-name",
26367 "maxLength" : 255,
56122987 26368 "optional" : 1,
013dc89f
DM
26369 "type" : "string",
26370 "typetext" : "<string>"
44660702
DM
26371 },
26372 "lock" : {
4e7f60c2 26373 "description" : "Lock/unlock the container.",
44660702 26374 "enum" : [
44660702 26375 "backup",
bb4c8cf8 26376 "create",
1c532546 26377 "destroyed",
4d47f125 26378 "disk",
bb4c8cf8 26379 "fstrim",
4d47f125
TL
26380 "migrate",
26381 "mounted",
26382 "rollback",
44660702 26383 "snapshot",
4d47f125 26384 "snapshot-delete"
44660702
DM
26385 ],
26386 "optional" : 1,
26387 "type" : "string"
26388 },
26389 "memory" : {
26390 "default" : 512,
4e7f60c2 26391 "description" : "Amount of RAM for the container in MB.",
44660702
DM
26392 "minimum" : 16,
26393 "optional" : 1,
4bd7df8b 26394 "type" : "integer",
013dc89f 26395 "typetext" : "<integer> (16 - N)"
7aacca6f
DM
26396 },
26397 "mp[n]" : {
d2656385 26398 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
7aacca6f 26399 "format" : {
7aacca6f
DM
26400 "acl" : {
26401 "description" : "Explicitly enable or disable ACL support.",
7aacca6f 26402 "optional" : 1,
44660702 26403 "type" : "boolean"
7aacca6f
DM
26404 },
26405 "backup" : {
de0983cb 26406 "description" : "Whether to include the mount point in backups.",
7aacca6f 26407 "optional" : 1,
4bd7df8b 26408 "type" : "boolean",
de0983cb 26409 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
7aacca6f 26410 },
7cbed89a
TL
26411 "mountoptions" : {
26412 "description" : "Extra mount options for rootfs/mps.",
26413 "format_description" : "opt[;opt...]",
26414 "optional" : 1,
c30bb419 26415 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
26416 "type" : "string"
26417 },
7aacca6f 26418 "mp" : {
de0983cb 26419 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
7aacca6f 26420 "format" : "pve-lxc-mp-string",
44660702 26421 "format_description" : "Path",
4bd7df8b 26422 "type" : "string",
de0983cb 26423 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
44660702 26424 },
5d9c884c
DM
26425 "quota" : {
26426 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
26427 "optional" : 1,
26428 "type" : "boolean"
26429 },
26430 "replicate" : {
26431 "default" : 1,
26432 "description" : "Will include this volume to a storage replica job.",
44660702
DM
26433 "optional" : 1,
26434 "type" : "boolean"
26435 },
26436 "ro" : {
de0983cb 26437 "description" : "Read-only mount point",
44660702
DM
26438 "optional" : 1,
26439 "type" : "boolean"
26440 },
de0983cb
DM
26441 "shared" : {
26442 "default" : 0,
26443 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
26444 "optional" : 1,
26445 "type" : "boolean",
26446 "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!"
26447 },
44660702
DM
26448 "size" : {
26449 "description" : "Volume size (read only value).",
26450 "format" : "disk-size",
26451 "format_description" : "DiskSize",
26452 "optional" : 1,
26453 "type" : "string"
26454 },
26455 "volume" : {
26456 "default_key" : 1,
26457 "description" : "Volume, device or directory to mount into the container.",
26458 "format" : "pve-lxc-mp-string",
26459 "format_description" : "volume",
26460 "type" : "string"
26461 }
26462 },
7aacca6f 26463 "optional" : 1,
4bd7df8b 26464 "type" : "string",
7cbed89a 26465 "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 26466 },
44660702
DM
26467 "nameserver" : {
26468 "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 26469 "format" : "lxc-ip-with-ll-iface-list",
56122987 26470 "optional" : 1,
013dc89f
DM
26471 "type" : "string",
26472 "typetext" : "<string>"
56122987
DM
26473 },
26474 "net[n]" : {
44660702 26475 "description" : "Specifies network interfaces for the container.",
56122987 26476 "format" : {
44660702
DM
26477 "bridge" : {
26478 "description" : "Bridge to attach the network device to.",
f004f5b9 26479 "format_description" : "bridge",
56122987 26480 "optional" : 1,
44660702
DM
26481 "pattern" : "[-_.\\w\\d]+",
26482 "type" : "string"
56122987 26483 },
44660702
DM
26484 "firewall" : {
26485 "description" : "Controls whether this interface's firewall rules should be used.",
56122987 26486 "optional" : 1,
44660702 26487 "type" : "boolean"
56122987 26488 },
44660702
DM
26489 "gw" : {
26490 "description" : "Default gateway for IPv4 traffic.",
26491 "format" : "ipv4",
26492 "format_description" : "GatewayIPv4",
56122987 26493 "optional" : 1,
44660702 26494 "type" : "string"
56122987
DM
26495 },
26496 "gw6" : {
7aacca6f 26497 "description" : "Default gateway for IPv6 traffic.",
44660702
DM
26498 "format" : "ipv6",
26499 "format_description" : "GatewayIPv6",
7aacca6f 26500 "optional" : 1,
56122987
DM
26501 "type" : "string"
26502 },
44660702 26503 "hwaddr" : {
f004f5b9 26504 "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 26505 "format" : "mac-addr",
f004f5b9 26506 "format_description" : "XX:XX:XX:XX:XX:XX",
44660702 26507 "optional" : 1,
95895385
TL
26508 "type" : "string",
26509 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
44660702
DM
26510 },
26511 "ip" : {
26512 "description" : "IPv4 address in CIDR format.",
26513 "format" : "pve-ipv4-config",
2489d6df 26514 "format_description" : "(IPv4/CIDR|dhcp|manual)",
56122987 26515 "optional" : 1,
44660702 26516 "type" : "string"
56122987 26517 },
7aacca6f 26518 "ip6" : {
7aacca6f
DM
26519 "description" : "IPv6 address in CIDR format.",
26520 "format" : "pve-ipv6-config",
2489d6df 26521 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
7aacca6f 26522 "optional" : 1,
44660702 26523 "type" : "string"
56122987 26524 },
44660702
DM
26525 "mtu" : {
26526 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 26527 "maximum" : 65535,
44660702 26528 "minimum" : 64,
56122987 26529 "optional" : 1,
44660702 26530 "type" : "integer"
56122987
DM
26531 },
26532 "name" : {
44660702 26533 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
f004f5b9 26534 "format_description" : "string",
56122987 26535 "pattern" : "[-_.\\w\\d]+",
44660702 26536 "type" : "string"
56122987 26537 },
44660702
DM
26538 "rate" : {
26539 "description" : "Apply rate limiting to the interface",
26540 "format_description" : "mbps",
56122987 26541 "optional" : 1,
44660702 26542 "type" : "number"
7aacca6f 26543 },
44660702
DM
26544 "tag" : {
26545 "description" : "VLAN tag for this interface.",
4bd7df8b
DM
26546 "maximum" : 4094,
26547 "minimum" : 1,
56122987 26548 "optional" : 1,
7aacca6f 26549 "type" : "integer"
56122987 26550 },
44660702
DM
26551 "trunks" : {
26552 "description" : "VLAN ids to pass through the interface",
26553 "format_description" : "vlanid[;vlanid...]",
26554 "optional" : 1,
26555 "pattern" : "(?^:\\d+(?:;\\d+)*)",
26556 "type" : "string"
26557 },
26558 "type" : {
26559 "description" : "Network interface type.",
26560 "enum" : [
26561 "veth"
26562 ],
56122987 26563 "optional" : 1,
44660702 26564 "type" : "string"
56122987
DM
26565 }
26566 },
7aacca6f 26567 "optional" : 1,
4bd7df8b 26568 "type" : "string",
2489d6df 26569 "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
56122987 26570 },
44660702
DM
26571 "node" : {
26572 "description" : "The cluster node name.",
26573 "format" : "pve-node",
013dc89f
DM
26574 "type" : "string",
26575 "typetext" : "<string>"
56122987 26576 },
44660702
DM
26577 "onboot" : {
26578 "default" : 0,
4e7f60c2 26579 "description" : "Specifies whether a container will be started during system bootup.",
56122987 26580 "optional" : 1,
013dc89f
DM
26581 "type" : "boolean",
26582 "typetext" : "<boolean>"
56122987 26583 },
44660702
DM
26584 "ostype" : {
26585 "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.",
26586 "enum" : [
26587 "debian",
d2656385 26588 "devuan",
44660702
DM
26589 "ubuntu",
26590 "centos",
26591 "fedora",
26592 "opensuse",
26593 "archlinux",
26594 "alpine",
57b78691 26595 "gentoo",
7af2edf9 26596 "nixos",
44660702
DM
26597 "unmanaged"
26598 ],
56122987 26599 "optional" : 1,
44660702 26600 "type" : "string"
56122987 26601 },
44660702
DM
26602 "protection" : {
26603 "default" : 0,
26604 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
56122987 26605 "optional" : 1,
013dc89f
DM
26606 "type" : "boolean",
26607 "typetext" : "<boolean>"
56122987 26608 },
1c532546
TL
26609 "revert" : {
26610 "description" : "Revert a pending change.",
26611 "format" : "pve-configid-list",
26612 "optional" : 1,
26613 "type" : "string",
26614 "typetext" : "<string>"
26615 },
7aacca6f
DM
26616 "rootfs" : {
26617 "description" : "Use volume as container root.",
56122987
DM
26618 "format" : {
26619 "acl" : {
44660702 26620 "description" : "Explicitly enable or disable ACL support.",
7aacca6f
DM
26621 "optional" : 1,
26622 "type" : "boolean"
56122987 26623 },
7cbed89a
TL
26624 "mountoptions" : {
26625 "description" : "Extra mount options for rootfs/mps.",
26626 "format_description" : "opt[;opt...]",
26627 "optional" : 1,
c30bb419 26628 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
26629 "type" : "string"
26630 },
44660702
DM
26631 "quota" : {
26632 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
44660702
DM
26633 "optional" : 1,
26634 "type" : "boolean"
26635 },
5d9c884c
DM
26636 "replicate" : {
26637 "default" : 1,
26638 "description" : "Will include this volume to a storage replica job.",
26639 "optional" : 1,
26640 "type" : "boolean"
26641 },
44660702 26642 "ro" : {
de0983cb 26643 "description" : "Read-only mount point",
56122987 26644 "optional" : 1,
44660702
DM
26645 "type" : "boolean"
26646 },
de0983cb
DM
26647 "shared" : {
26648 "default" : 0,
26649 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
26650 "optional" : 1,
26651 "type" : "boolean",
26652 "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!"
26653 },
44660702 26654 "size" : {
7aacca6f 26655 "description" : "Volume size (read only value).",
44660702 26656 "format" : "disk-size",
56122987 26657 "format_description" : "DiskSize",
56122987 26658 "optional" : 1,
44660702 26659 "type" : "string"
7aacca6f
DM
26660 },
26661 "volume" : {
7aacca6f
DM
26662 "default_key" : 1,
26663 "description" : "Volume, device or directory to mount into the container.",
44660702
DM
26664 "format" : "pve-lxc-mp-string",
26665 "format_description" : "volume",
7aacca6f 26666 "type" : "string"
56122987 26667 }
44660702
DM
26668 },
26669 "optional" : 1,
4bd7df8b 26670 "type" : "string",
7cbed89a 26671 "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
26672 },
26673 "searchdomain" : {
26674 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
26675 "format" : "dns-name-list",
26676 "optional" : 1,
013dc89f
DM
26677 "type" : "string",
26678 "typetext" : "<string>"
44660702
DM
26679 },
26680 "startup" : {
26681 "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.",
26682 "format" : "pve-startup-order",
26683 "optional" : 1,
26684 "type" : "string",
26685 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
26686 },
26687 "swap" : {
26688 "default" : 512,
4e7f60c2 26689 "description" : "Amount of SWAP for the container in MB.",
44660702
DM
26690 "minimum" : 0,
26691 "optional" : 1,
4bd7df8b 26692 "type" : "integer",
013dc89f 26693 "typetext" : "<integer> (0 - N)"
56122987 26694 },
5c1699e5
TL
26695 "tags" : {
26696 "description" : "Tags of the Container. This is only meta information.",
26697 "format" : "pve-tag-list",
26698 "optional" : 1,
26699 "type" : "string",
26700 "typetext" : "<string>"
26701 },
56122987 26702 "template" : {
44660702 26703 "default" : 0,
7aacca6f 26704 "description" : "Enable/disable Template.",
56122987 26705 "optional" : 1,
013dc89f
DM
26706 "type" : "boolean",
26707 "typetext" : "<boolean>"
56122987 26708 },
04d22a9f
TL
26709 "timezone" : {
26710 "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",
26711 "format" : "pve-ct-timezone",
26712 "optional" : 1,
26713 "type" : "string",
26714 "typetext" : "<string>"
26715 },
44660702
DM
26716 "tty" : {
26717 "default" : 2,
26718 "description" : "Specify the number of tty available to the container",
26719 "maximum" : 6,
26720 "minimum" : 0,
26721 "optional" : 1,
4bd7df8b 26722 "type" : "integer",
013dc89f 26723 "typetext" : "<integer> (0 - 6)"
56122987 26724 },
44660702
DM
26725 "unprivileged" : {
26726 "default" : 0,
26727 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
56122987 26728 "optional" : 1,
013dc89f
DM
26729 "type" : "boolean",
26730 "typetext" : "<boolean>"
56122987 26731 },
44660702 26732 "unused[n]" : {
c2993fe5 26733 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
26734 "format" : {
26735 "volume" : {
26736 "default_key" : 1,
26737 "description" : "The volume that is not used currently.",
26738 "format" : "pve-volume-id",
26739 "format_description" : "volume",
26740 "type" : "string"
26741 }
26742 },
56122987 26743 "optional" : 1,
013dc89f 26744 "type" : "string",
c5aa7e14 26745 "typetext" : "[volume=]<volume>"
44660702
DM
26746 },
26747 "vmid" : {
26748 "description" : "The (unique) ID of the VM.",
26749 "format" : "pve-vmid",
26750 "minimum" : 1,
4bd7df8b 26751 "type" : "integer",
013dc89f 26752 "typetext" : "<integer> (1 - N)"
56122987 26753 }
44660702 26754 }
56122987 26755 },
56122987
DM
26756 "permissions" : {
26757 "check" : [
26758 "perm",
26759 "/vms/{vmid}",
26760 [
26761 "VM.Config.Disk",
26762 "VM.Config.CPU",
26763 "VM.Config.Memory",
26764 "VM.Config.Network",
26765 "VM.Config.Options"
26766 ],
26767 "any",
26768 1
52e44c50
FG
26769 ],
26770 "description" : "non-volume mount points in rootfs and mp[n] are restricted to root@pam"
56122987 26771 },
44660702
DM
26772 "protected" : 1,
26773 "proxyto" : "node",
56122987
DM
26774 "returns" : {
26775 "type" : "null"
7aacca6f 26776 }
56122987 26777 }
7aacca6f 26778 },
44660702 26779 "leaf" : 1,
7aacca6f 26780 "path" : "/nodes/{node}/lxc/{vmid}/config",
44660702 26781 "text" : "config"
56122987
DM
26782 },
26783 {
56122987
DM
26784 "children" : [
26785 {
26786 "info" : {
26787 "GET" : {
e9cd3bd4 26788 "allowtoken" : 1,
44660702 26789 "description" : "Get virtual machine status.",
7aacca6f 26790 "method" : "GET",
44660702 26791 "name" : "vm_status",
56122987 26792 "parameters" : {
44660702 26793 "additionalProperties" : 0,
56122987 26794 "properties" : {
56122987 26795 "node" : {
44660702 26796 "description" : "The cluster node name.",
56122987 26797 "format" : "pve-node",
013dc89f
DM
26798 "type" : "string",
26799 "typetext" : "<string>"
7aacca6f
DM
26800 },
26801 "vmid" : {
26802 "description" : "The (unique) ID of the VM.",
44660702 26803 "format" : "pve-vmid",
7aacca6f 26804 "minimum" : 1,
4bd7df8b 26805 "type" : "integer",
013dc89f 26806 "typetext" : "<integer> (1 - N)"
56122987 26807 }
44660702 26808 }
7aacca6f
DM
26809 },
26810 "permissions" : {
26811 "check" : [
26812 "perm",
26813 "/vms/{vmid}",
26814 [
4d47f125
TL
26815 "VM.Audit"
26816 ]
26817 ]
26818 },
26819 "protected" : 1,
26820 "proxyto" : "node",
26821 "returns" : {
26822 "properties" : {
26823 "cpus" : {
26824 "description" : "Maximum usable CPUs.",
26825 "optional" : 1,
26826 "type" : "number"
26827 },
26828 "ha" : {
26829 "description" : "HA manager service status.",
26830 "type" : "object"
26831 },
95895385
TL
26832 "lock" : {
26833 "description" : "The current config lock, if any.",
26834 "optional" : 1,
26835 "type" : "string"
26836 },
4d47f125
TL
26837 "maxdisk" : {
26838 "description" : "Root disk size in bytes.",
26839 "optional" : 1,
26840 "renderer" : "bytes",
26841 "type" : "integer"
26842 },
26843 "maxmem" : {
26844 "description" : "Maximum memory in bytes.",
26845 "optional" : 1,
26846 "renderer" : "bytes",
26847 "type" : "integer"
26848 },
26849 "maxswap" : {
26850 "description" : "Maximum SWAP memory in bytes.",
26851 "optional" : 1,
26852 "renderer" : "bytes",
26853 "type" : "integer"
26854 },
26855 "name" : {
26856 "description" : "Container name.",
26857 "optional" : 1,
26858 "type" : "string"
26859 },
26860 "status" : {
26861 "description" : "LXC Container status.",
26862 "enum" : [
26863 "stopped",
26864 "running"
26865 ],
26866 "type" : "string"
26867 },
5c1699e5
TL
26868 "tags" : {
26869 "description" : "The current configured tags, if any.",
26870 "optional" : 1,
26871 "type" : "string"
26872 },
4d47f125
TL
26873 "uptime" : {
26874 "description" : "Uptime.",
26875 "optional" : 1,
26876 "renderer" : "duration",
26877 "type" : "integer"
26878 },
26879 "vmid" : {
26880 "description" : "The (unique) ID of the VM.",
26881 "format" : "pve-vmid",
26882 "minimum" : 1,
26883 "type" : "integer"
26884 }
26885 },
26886 "type" : "object"
26887 }
26888 }
26889 },
26890 "leaf" : 1,
26891 "path" : "/nodes/{node}/lxc/{vmid}/status/current",
26892 "text" : "current"
26893 },
26894 {
26895 "info" : {
26896 "POST" : {
e9cd3bd4 26897 "allowtoken" : 1,
4d47f125
TL
26898 "description" : "Start the container.",
26899 "method" : "POST",
26900 "name" : "vm_start",
26901 "parameters" : {
26902 "additionalProperties" : 0,
26903 "properties" : {
739d4d64
TL
26904 "debug" : {
26905 "default" : 0,
26906 "description" : "If set, enables very verbose debug log-level on start.",
26907 "optional" : 1,
26908 "type" : "boolean",
26909 "typetext" : "<boolean>"
26910 },
4d47f125
TL
26911 "node" : {
26912 "description" : "The cluster node name.",
26913 "format" : "pve-node",
26914 "type" : "string",
26915 "typetext" : "<string>"
26916 },
26917 "skiplock" : {
26918 "description" : "Ignore locks - only root is allowed to use this option.",
26919 "optional" : 1,
26920 "type" : "boolean",
26921 "typetext" : "<boolean>"
26922 },
26923 "vmid" : {
26924 "description" : "The (unique) ID of the VM.",
26925 "format" : "pve-vmid",
26926 "minimum" : 1,
26927 "type" : "integer",
26928 "typetext" : "<integer> (1 - N)"
26929 }
26930 }
26931 },
26932 "permissions" : {
26933 "check" : [
26934 "perm",
26935 "/vms/{vmid}",
26936 [
26937 "VM.PowerMgmt"
26938 ]
26939 ]
26940 },
26941 "protected" : 1,
26942 "proxyto" : "node",
26943 "returns" : {
26944 "type" : "string"
26945 }
26946 }
26947 },
26948 "leaf" : 1,
26949 "path" : "/nodes/{node}/lxc/{vmid}/status/start",
26950 "text" : "start"
26951 },
26952 {
26953 "info" : {
26954 "POST" : {
e9cd3bd4 26955 "allowtoken" : 1,
4d47f125
TL
26956 "description" : "Stop the container. This will abruptly stop all processes running in the container.",
26957 "method" : "POST",
26958 "name" : "vm_stop",
26959 "parameters" : {
26960 "additionalProperties" : 0,
26961 "properties" : {
26962 "node" : {
26963 "description" : "The cluster node name.",
26964 "format" : "pve-node",
26965 "type" : "string",
26966 "typetext" : "<string>"
26967 },
26968 "skiplock" : {
26969 "description" : "Ignore locks - only root is allowed to use this option.",
26970 "optional" : 1,
26971 "type" : "boolean",
26972 "typetext" : "<boolean>"
26973 },
26974 "vmid" : {
26975 "description" : "The (unique) ID of the VM.",
26976 "format" : "pve-vmid",
26977 "minimum" : 1,
26978 "type" : "integer",
26979 "typetext" : "<integer> (1 - N)"
26980 }
26981 }
26982 },
26983 "permissions" : {
26984 "check" : [
26985 "perm",
26986 "/vms/{vmid}",
26987 [
26988 "VM.PowerMgmt"
26989 ]
26990 ]
26991 },
26992 "protected" : 1,
26993 "proxyto" : "node",
26994 "returns" : {
26995 "type" : "string"
26996 }
26997 }
26998 },
26999 "leaf" : 1,
27000 "path" : "/nodes/{node}/lxc/{vmid}/status/stop",
27001 "text" : "stop"
27002 },
27003 {
27004 "info" : {
27005 "POST" : {
e9cd3bd4 27006 "allowtoken" : 1,
4d47f125
TL
27007 "description" : "Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.",
27008 "method" : "POST",
27009 "name" : "vm_shutdown",
27010 "parameters" : {
27011 "additionalProperties" : 0,
27012 "properties" : {
27013 "forceStop" : {
27014 "default" : 0,
27015 "description" : "Make sure the Container stops.",
27016 "optional" : 1,
27017 "type" : "boolean",
27018 "typetext" : "<boolean>"
27019 },
27020 "node" : {
27021 "description" : "The cluster node name.",
27022 "format" : "pve-node",
27023 "type" : "string",
27024 "typetext" : "<string>"
27025 },
27026 "timeout" : {
27027 "default" : 60,
27028 "description" : "Wait maximal timeout seconds.",
27029 "minimum" : 0,
27030 "optional" : 1,
27031 "type" : "integer",
27032 "typetext" : "<integer> (0 - N)"
27033 },
27034 "vmid" : {
27035 "description" : "The (unique) ID of the VM.",
27036 "format" : "pve-vmid",
27037 "minimum" : 1,
27038 "type" : "integer",
27039 "typetext" : "<integer> (1 - N)"
27040 }
27041 }
27042 },
27043 "permissions" : {
27044 "check" : [
27045 "perm",
27046 "/vms/{vmid}",
27047 [
27048 "VM.PowerMgmt"
7aacca6f
DM
27049 ]
27050 ]
27051 },
44660702 27052 "protected" : 1,
7aacca6f 27053 "proxyto" : "node",
44660702 27054 "returns" : {
4d47f125 27055 "type" : "string"
44660702 27056 }
56122987
DM
27057 }
27058 },
44660702 27059 "leaf" : 1,
4d47f125
TL
27060 "path" : "/nodes/{node}/lxc/{vmid}/status/shutdown",
27061 "text" : "shutdown"
56122987
DM
27062 },
27063 {
56122987
DM
27064 "info" : {
27065 "POST" : {
e9cd3bd4 27066 "allowtoken" : 1,
5370fa8c 27067 "description" : "Suspend the container. This is experimental.",
44660702 27068 "method" : "POST",
4d47f125 27069 "name" : "vm_suspend",
56122987
DM
27070 "parameters" : {
27071 "additionalProperties" : 0,
27072 "properties" : {
56122987 27073 "node" : {
7aacca6f 27074 "description" : "The cluster node name.",
44660702 27075 "format" : "pve-node",
013dc89f
DM
27076 "type" : "string",
27077 "typetext" : "<string>"
56122987
DM
27078 },
27079 "vmid" : {
7aacca6f 27080 "description" : "The (unique) ID of the VM.",
44660702 27081 "format" : "pve-vmid",
56122987 27082 "minimum" : 1,
4bd7df8b 27083 "type" : "integer",
013dc89f 27084 "typetext" : "<integer> (1 - N)"
56122987
DM
27085 }
27086 }
27087 },
27088 "permissions" : {
27089 "check" : [
27090 "perm",
27091 "/vms/{vmid}",
27092 [
27093 "VM.PowerMgmt"
27094 ]
27095 ]
27096 },
44660702 27097 "protected" : 1,
7aacca6f 27098 "proxyto" : "node",
44660702
DM
27099 "returns" : {
27100 "type" : "string"
27101 }
27102 }
27103 },
27104 "leaf" : 1,
4d47f125
TL
27105 "path" : "/nodes/{node}/lxc/{vmid}/status/suspend",
27106 "text" : "suspend"
44660702
DM
27107 },
27108 {
27109 "info" : {
27110 "POST" : {
e9cd3bd4 27111 "allowtoken" : 1,
4d47f125 27112 "description" : "Resume the container.",
7aacca6f 27113 "method" : "POST",
4d47f125 27114 "name" : "vm_resume",
7aacca6f 27115 "parameters" : {
44660702 27116 "additionalProperties" : 0,
7aacca6f 27117 "properties" : {
44660702
DM
27118 "node" : {
27119 "description" : "The cluster node name.",
27120 "format" : "pve-node",
013dc89f
DM
27121 "type" : "string",
27122 "typetext" : "<string>"
44660702 27123 },
7aacca6f 27124 "vmid" : {
44660702 27125 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
27126 "format" : "pve-vmid",
27127 "minimum" : 1,
4bd7df8b 27128 "type" : "integer",
013dc89f 27129 "typetext" : "<integer> (1 - N)"
7aacca6f 27130 }
44660702
DM
27131 }
27132 },
27133 "permissions" : {
27134 "check" : [
27135 "perm",
27136 "/vms/{vmid}",
27137 [
27138 "VM.PowerMgmt"
27139 ]
27140 ]
7aacca6f 27141 },
44660702
DM
27142 "protected" : 1,
27143 "proxyto" : "node",
27144 "returns" : {
27145 "type" : "string"
27146 }
56122987 27147 }
7aacca6f 27148 },
7aacca6f 27149 "leaf" : 1,
4d47f125
TL
27150 "path" : "/nodes/{node}/lxc/{vmid}/status/resume",
27151 "text" : "resume"
5c1699e5
TL
27152 },
27153 {
27154 "info" : {
27155 "POST" : {
e9cd3bd4 27156 "allowtoken" : 1,
5c1699e5
TL
27157 "description" : "Reboot the container by shutting it down, and starting it again. Applies pending changes.",
27158 "method" : "POST",
27159 "name" : "vm_reboot",
27160 "parameters" : {
27161 "additionalProperties" : 0,
27162 "properties" : {
27163 "node" : {
27164 "description" : "The cluster node name.",
27165 "format" : "pve-node",
27166 "type" : "string",
27167 "typetext" : "<string>"
27168 },
27169 "timeout" : {
27170 "description" : "Wait maximal timeout seconds for the shutdown.",
27171 "minimum" : 0,
27172 "optional" : 1,
27173 "type" : "integer",
27174 "typetext" : "<integer> (0 - N)"
27175 },
27176 "vmid" : {
27177 "description" : "The (unique) ID of the VM.",
27178 "format" : "pve-vmid",
27179 "minimum" : 1,
27180 "type" : "integer",
27181 "typetext" : "<integer> (1 - N)"
27182 }
27183 }
27184 },
27185 "permissions" : {
27186 "check" : [
27187 "perm",
27188 "/vms/{vmid}",
27189 [
27190 "VM.PowerMgmt"
27191 ]
27192 ]
27193 },
27194 "protected" : 1,
27195 "proxyto" : "node",
27196 "returns" : {
27197 "type" : "string"
27198 }
27199 }
27200 },
27201 "leaf" : 1,
27202 "path" : "/nodes/{node}/lxc/{vmid}/status/reboot",
27203 "text" : "reboot"
4d47f125
TL
27204 }
27205 ],
27206 "info" : {
27207 "GET" : {
e9cd3bd4 27208 "allowtoken" : 1,
4d47f125
TL
27209 "description" : "Directory index",
27210 "method" : "GET",
27211 "name" : "vmcmdidx",
27212 "parameters" : {
27213 "additionalProperties" : 0,
27214 "properties" : {
27215 "node" : {
27216 "description" : "The cluster node name.",
27217 "format" : "pve-node",
27218 "type" : "string",
27219 "typetext" : "<string>"
27220 },
27221 "vmid" : {
27222 "description" : "The (unique) ID of the VM.",
27223 "format" : "pve-vmid",
27224 "minimum" : 1,
27225 "type" : "integer",
27226 "typetext" : "<integer> (1 - N)"
27227 }
27228 }
27229 },
27230 "permissions" : {
27231 "user" : "all"
27232 },
27233 "proxyto" : "node",
27234 "returns" : {
27235 "items" : {
27236 "properties" : {
27237 "subdir" : {
27238 "type" : "string"
27239 }
27240 },
27241 "type" : "object"
27242 },
27243 "links" : [
27244 {
27245 "href" : "{subdir}",
27246 "rel" : "child"
27247 }
27248 ],
27249 "type" : "array"
27250 }
27251 }
27252 },
27253 "leaf" : 0,
27254 "path" : "/nodes/{node}/lxc/{vmid}/status",
27255 "text" : "status"
27256 },
27257 {
27258 "children" : [
56122987 27259 {
4d47f125
TL
27260 "children" : [
27261 {
27262 "info" : {
27263 "POST" : {
e9cd3bd4 27264 "allowtoken" : 1,
4d47f125
TL
27265 "description" : "Rollback LXC state to specified snapshot.",
27266 "method" : "POST",
27267 "name" : "rollback",
27268 "parameters" : {
27269 "additionalProperties" : 0,
27270 "properties" : {
27271 "node" : {
27272 "description" : "The cluster node name.",
27273 "format" : "pve-node",
27274 "type" : "string",
27275 "typetext" : "<string>"
27276 },
27277 "snapname" : {
27278 "description" : "The name of the snapshot.",
27279 "format" : "pve-configid",
27280 "maxLength" : 40,
27281 "type" : "string",
27282 "typetext" : "<string>"
27283 },
4e7f60c2
TL
27284 "start" : {
27285 "default" : 0,
27286 "description" : "Whether the container should get started after rolling back successfully",
27287 "optional" : 1,
27288 "type" : "boolean",
27289 "typetext" : "<boolean>"
27290 },
4d47f125
TL
27291 "vmid" : {
27292 "description" : "The (unique) ID of the VM.",
27293 "format" : "pve-vmid",
27294 "minimum" : 1,
27295 "type" : "integer",
27296 "typetext" : "<integer> (1 - N)"
27297 }
27298 }
27299 },
27300 "permissions" : {
27301 "check" : [
27302 "perm",
27303 "/vms/{vmid}",
27304 [
27305 "VM.Snapshot",
27306 "VM.Snapshot.Rollback"
27307 ],
27308 "any",
27309 1
27310 ]
27311 },
27312 "protected" : 1,
27313 "proxyto" : "node",
27314 "returns" : {
27315 "description" : "the task ID.",
27316 "type" : "string"
27317 }
27318 }
27319 },
27320 "leaf" : 1,
27321 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback",
27322 "text" : "rollback"
27323 },
27324 {
27325 "info" : {
27326 "GET" : {
e9cd3bd4 27327 "allowtoken" : 1,
4d47f125
TL
27328 "description" : "Get snapshot configuration",
27329 "method" : "GET",
27330 "name" : "get_snapshot_config",
27331 "parameters" : {
27332 "additionalProperties" : 0,
27333 "properties" : {
27334 "node" : {
27335 "description" : "The cluster node name.",
27336 "format" : "pve-node",
27337 "type" : "string",
27338 "typetext" : "<string>"
27339 },
27340 "snapname" : {
27341 "description" : "The name of the snapshot.",
27342 "format" : "pve-configid",
27343 "maxLength" : 40,
27344 "type" : "string",
27345 "typetext" : "<string>"
27346 },
27347 "vmid" : {
27348 "description" : "The (unique) ID of the VM.",
27349 "format" : "pve-vmid",
27350 "minimum" : 1,
27351 "type" : "integer",
27352 "typetext" : "<integer> (1 - N)"
27353 }
27354 }
27355 },
27356 "permissions" : {
27357 "check" : [
27358 "perm",
27359 "/vms/{vmid}",
27360 [
27361 "VM.Snapshot",
c5aa7e14
TL
27362 "VM.Snapshot.Rollback",
27363 "VM.Audit"
4d47f125
TL
27364 ],
27365 "any",
27366 1
27367 ]
27368 },
27369 "proxyto" : "node",
27370 "returns" : {
27371 "type" : "object"
27372 }
27373 },
27374 "PUT" : {
e9cd3bd4 27375 "allowtoken" : 1,
4d47f125
TL
27376 "description" : "Update snapshot metadata.",
27377 "method" : "PUT",
27378 "name" : "update_snapshot_config",
27379 "parameters" : {
27380 "additionalProperties" : 0,
27381 "properties" : {
27382 "description" : {
27383 "description" : "A textual description or comment.",
27384 "optional" : 1,
27385 "type" : "string",
27386 "typetext" : "<string>"
27387 },
27388 "node" : {
27389 "description" : "The cluster node name.",
27390 "format" : "pve-node",
27391 "type" : "string",
27392 "typetext" : "<string>"
27393 },
27394 "snapname" : {
27395 "description" : "The name of the snapshot.",
27396 "format" : "pve-configid",
27397 "maxLength" : 40,
27398 "type" : "string",
27399 "typetext" : "<string>"
27400 },
27401 "vmid" : {
27402 "description" : "The (unique) ID of the VM.",
27403 "format" : "pve-vmid",
27404 "minimum" : 1,
27405 "type" : "integer",
27406 "typetext" : "<integer> (1 - N)"
27407 }
27408 }
27409 },
27410 "permissions" : {
27411 "check" : [
27412 "perm",
27413 "/vms/{vmid}",
27414 [
27415 "VM.Snapshot"
27416 ]
27417 ]
27418 },
27419 "protected" : 1,
27420 "proxyto" : "node",
27421 "returns" : {
27422 "type" : "null"
27423 }
27424 }
27425 },
27426 "leaf" : 1,
27427 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config",
27428 "text" : "config"
27429 }
27430 ],
56122987 27431 "info" : {
4d47f125 27432 "DELETE" : {
e9cd3bd4 27433 "allowtoken" : 1,
4d47f125
TL
27434 "description" : "Delete a LXC snapshot.",
27435 "method" : "DELETE",
27436 "name" : "delsnapshot",
56122987 27437 "parameters" : {
44660702 27438 "additionalProperties" : 0,
56122987 27439 "properties" : {
4d47f125
TL
27440 "force" : {
27441 "description" : "For removal from config file, even if removing disk snapshots fails.",
7aacca6f 27442 "optional" : 1,
013dc89f
DM
27443 "type" : "boolean",
27444 "typetext" : "<boolean>"
44660702
DM
27445 },
27446 "node" : {
27447 "description" : "The cluster node name.",
27448 "format" : "pve-node",
013dc89f
DM
27449 "type" : "string",
27450 "typetext" : "<string>"
7aacca6f 27451 },
4d47f125
TL
27452 "snapname" : {
27453 "description" : "The name of the snapshot.",
27454 "format" : "pve-configid",
27455 "maxLength" : 40,
27456 "type" : "string",
27457 "typetext" : "<string>"
56122987
DM
27458 },
27459 "vmid" : {
7aacca6f 27460 "description" : "The (unique) ID of the VM.",
44660702
DM
27461 "format" : "pve-vmid",
27462 "minimum" : 1,
4bd7df8b 27463 "type" : "integer",
013dc89f 27464 "typetext" : "<integer> (1 - N)"
56122987 27465 }
44660702 27466 }
56122987
DM
27467 },
27468 "permissions" : {
27469 "check" : [
27470 "perm",
27471 "/vms/{vmid}",
27472 [
4d47f125 27473 "VM.Snapshot"
56122987
DM
27474 ]
27475 ]
27476 },
44660702
DM
27477 "protected" : 1,
27478 "proxyto" : "node",
7aacca6f 27479 "returns" : {
4d47f125 27480 "description" : "the task ID.",
7aacca6f
DM
27481 "type" : "string"
27482 }
4d47f125
TL
27483 },
27484 "GET" : {
e9cd3bd4 27485 "allowtoken" : 1,
4d47f125
TL
27486 "description" : "",
27487 "method" : "GET",
27488 "name" : "snapshot_cmd_idx",
56122987
DM
27489 "parameters" : {
27490 "additionalProperties" : 0,
27491 "properties" : {
44660702
DM
27492 "node" : {
27493 "description" : "The cluster node name.",
27494 "format" : "pve-node",
013dc89f
DM
27495 "type" : "string",
27496 "typetext" : "<string>"
44660702 27497 },
4d47f125
TL
27498 "snapname" : {
27499 "description" : "The name of the snapshot.",
27500 "format" : "pve-configid",
27501 "maxLength" : 40,
013dc89f
DM
27502 "type" : "string",
27503 "typetext" : "<string>"
56122987
DM
27504 },
27505 "vmid" : {
7aacca6f 27506 "description" : "The (unique) ID of the VM.",
56122987 27507 "format" : "pve-vmid",
44660702 27508 "minimum" : 1,
4bd7df8b 27509 "type" : "integer",
013dc89f 27510 "typetext" : "<integer> (1 - N)"
56122987 27511 }
44660702
DM
27512 }
27513 },
27514 "permissions" : {
4d47f125 27515 "user" : "all"
56122987 27516 },
44660702 27517 "returns" : {
4d47f125
TL
27518 "items" : {
27519 "properties" : {},
27520 "type" : "object"
27521 },
27522 "links" : [
27523 {
27524 "href" : "{cmd}",
27525 "rel" : "child"
27526 }
27527 ],
27528 "type" : "array"
44660702 27529 }
7aacca6f
DM
27530 }
27531 },
4d47f125
TL
27532 "leaf" : 0,
27533 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}",
27534 "text" : "{snapname}"
7aacca6f
DM
27535 }
27536 ],
27537 "info" : {
27538 "GET" : {
e9cd3bd4 27539 "allowtoken" : 1,
4d47f125 27540 "description" : "List all snapshots.",
44660702 27541 "method" : "GET",
4d47f125 27542 "name" : "list",
7aacca6f
DM
27543 "parameters" : {
27544 "additionalProperties" : 0,
27545 "properties" : {
27546 "node" : {
27547 "description" : "The cluster node name.",
44660702 27548 "format" : "pve-node",
013dc89f
DM
27549 "type" : "string",
27550 "typetext" : "<string>"
56122987 27551 },
7aacca6f 27552 "vmid" : {
44660702 27553 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
27554 "format" : "pve-vmid",
27555 "minimum" : 1,
4bd7df8b 27556 "type" : "integer",
013dc89f 27557 "typetext" : "<integer> (1 - N)"
7aacca6f 27558 }
56122987
DM
27559 }
27560 },
44660702 27561 "permissions" : {
4d47f125
TL
27562 "check" : [
27563 "perm",
27564 "/vms/{vmid}",
27565 [
27566 "VM.Audit"
27567 ]
27568 ]
44660702 27569 },
4d47f125 27570 "protected" : 1,
44660702 27571 "proxyto" : "node",
7aacca6f 27572 "returns" : {
7aacca6f
DM
27573 "items" : {
27574 "properties" : {
4d47f125
TL
27575 "description" : {
27576 "description" : "Snapshot description.",
7aacca6f 27577 "type" : "string"
4d47f125
TL
27578 },
27579 "name" : {
27580 "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
27581 "type" : "string"
27582 },
27583 "parent" : {
27584 "description" : "Parent snapshot identifier.",
27585 "optional" : 1,
27586 "type" : "string"
27587 },
27588 "snaptime" : {
27589 "description" : "Snapshot creation time",
27590 "optional" : 1,
27591 "renderer" : "timestamp",
27592 "type" : "integer"
7aacca6f
DM
27593 }
27594 },
27595 "type" : "object"
27596 },
27597 "links" : [
27598 {
4d47f125 27599 "href" : "{name}",
44660702 27600 "rel" : "child"
7aacca6f 27601 }
44660702
DM
27602 ],
27603 "type" : "array"
7aacca6f 27604 }
4d47f125
TL
27605 },
27606 "POST" : {
e9cd3bd4 27607 "allowtoken" : 1,
4d47f125
TL
27608 "description" : "Snapshot a container.",
27609 "method" : "POST",
27610 "name" : "snapshot",
27611 "parameters" : {
27612 "additionalProperties" : 0,
27613 "properties" : {
27614 "description" : {
27615 "description" : "A textual description or comment.",
27616 "optional" : 1,
27617 "type" : "string",
27618 "typetext" : "<string>"
27619 },
27620 "node" : {
27621 "description" : "The cluster node name.",
27622 "format" : "pve-node",
27623 "type" : "string",
27624 "typetext" : "<string>"
27625 },
27626 "snapname" : {
27627 "description" : "The name of the snapshot.",
27628 "format" : "pve-configid",
27629 "maxLength" : 40,
27630 "type" : "string",
27631 "typetext" : "<string>"
27632 },
27633 "vmid" : {
27634 "description" : "The (unique) ID of the VM.",
27635 "format" : "pve-vmid",
27636 "minimum" : 1,
27637 "type" : "integer",
27638 "typetext" : "<integer> (1 - N)"
27639 }
27640 }
27641 },
27642 "permissions" : {
27643 "check" : [
27644 "perm",
27645 "/vms/{vmid}",
27646 [
27647 "VM.Snapshot"
27648 ]
27649 ]
27650 },
27651 "protected" : 1,
27652 "proxyto" : "node",
27653 "returns" : {
27654 "description" : "the task ID.",
27655 "type" : "string"
27656 }
7aacca6f 27657 }
44660702
DM
27658 },
27659 "leaf" : 0,
4d47f125
TL
27660 "path" : "/nodes/{node}/lxc/{vmid}/snapshot",
27661 "text" : "snapshot"
7aacca6f
DM
27662 },
27663 {
7aacca6f 27664 "children" : [
56122987 27665 {
7aacca6f
DM
27666 "children" : [
27667 {
27668 "info" : {
4d47f125 27669 "DELETE" : {
e9cd3bd4 27670 "allowtoken" : 1,
4d47f125
TL
27671 "description" : "Delete rule.",
27672 "method" : "DELETE",
27673 "name" : "delete_rule",
7aacca6f 27674 "parameters" : {
44660702 27675 "additionalProperties" : 0,
7aacca6f 27676 "properties" : {
4d47f125
TL
27677 "digest" : {
27678 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
27679 "maxLength" : 40,
27680 "optional" : 1,
27681 "type" : "string",
27682 "typetext" : "<string>"
27683 },
44660702
DM
27684 "node" : {
27685 "description" : "The cluster node name.",
27686 "format" : "pve-node",
013dc89f
DM
27687 "type" : "string",
27688 "typetext" : "<string>"
44660702 27689 },
4d47f125
TL
27690 "pos" : {
27691 "description" : "Update rule at position <pos>.",
27692 "minimum" : 0,
27693 "optional" : 1,
27694 "type" : "integer",
27695 "typetext" : "<integer> (0 - N)"
7aacca6f 27696 },
7aacca6f 27697 "vmid" : {
44660702 27698 "description" : "The (unique) ID of the VM.",
7aacca6f 27699 "format" : "pve-vmid",
44660702 27700 "minimum" : 1,
4bd7df8b 27701 "type" : "integer",
013dc89f 27702 "typetext" : "<integer> (1 - N)"
7aacca6f 27703 }
44660702
DM
27704 }
27705 },
27706 "permissions" : {
27707 "check" : [
27708 "perm",
27709 "/vms/{vmid}",
27710 [
4d47f125
TL
27711 "VM.Config.Network"
27712 ]
44660702 27713 ]
7aacca6f 27714 },
44660702 27715 "protected" : 1,
4d47f125 27716 "proxyto" : null,
44660702 27717 "returns" : {
4d47f125 27718 "type" : "null"
44660702 27719 }
4d47f125 27720 },
7aacca6f 27721 "GET" : {
e9cd3bd4 27722 "allowtoken" : 1,
4d47f125 27723 "description" : "Get single rule data.",
44660702 27724 "method" : "GET",
4d47f125 27725 "name" : "get_rule",
7aacca6f
DM
27726 "parameters" : {
27727 "additionalProperties" : 0,
4d47f125
TL
27728 "properties" : {
27729 "node" : {
27730 "description" : "The cluster node name.",
27731 "format" : "pve-node",
013dc89f
DM
27732 "type" : "string",
27733 "typetext" : "<string>"
44660702 27734 },
4d47f125
TL
27735 "pos" : {
27736 "description" : "Update rule at position <pos>.",
27737 "minimum" : 0,
27738 "optional" : 1,
27739 "type" : "integer",
27740 "typetext" : "<integer> (0 - N)"
27741 },
44660702
DM
27742 "vmid" : {
27743 "description" : "The (unique) ID of the VM.",
27744 "format" : "pve-vmid",
27745 "minimum" : 1,
4bd7df8b 27746 "type" : "integer",
013dc89f 27747 "typetext" : "<integer> (1 - N)"
7aacca6f
DM
27748 }
27749 }
27750 },
27751 "permissions" : {
27752 "check" : [
27753 "perm",
27754 "/vms/{vmid}",
27755 [
4d47f125
TL
27756 "VM.Audit"
27757 ]
7aacca6f
DM
27758 ]
27759 },
4d47f125 27760 "proxyto" : null,
44660702 27761 "returns" : {
4d47f125 27762 "properties" : {
e2d681b3
TL
27763 "action" : {
27764 "type" : "string"
27765 },
27766 "comment" : {
27767 "optional" : 1,
27768 "type" : "string"
27769 },
27770 "dest" : {
27771 "optional" : 1,
27772 "type" : "string"
27773 },
27774 "dport" : {
27775 "optional" : 1,
27776 "type" : "string"
27777 },
27778 "enable" : {
27779 "optional" : 1,
27780 "type" : "integer"
27781 },
4772952b
TL
27782 "icmp-type" : {
27783 "optional" : 1,
27784 "type" : "string"
27785 },
e2d681b3
TL
27786 "iface" : {
27787 "optional" : 1,
27788 "type" : "string"
27789 },
27790 "ipversion" : {
27791 "optional" : 1,
27792 "type" : "integer"
27793 },
95895385
TL
27794 "log" : {
27795 "description" : "Log level for firewall rule",
27796 "enum" : [
27797 "emerg",
27798 "alert",
27799 "crit",
27800 "err",
27801 "warning",
27802 "notice",
27803 "info",
27804 "debug",
27805 "nolog"
27806 ],
27807 "optional" : 1,
27808 "type" : "string"
27809 },
e2d681b3
TL
27810 "macro" : {
27811 "optional" : 1,
5f26e15b 27812 "type" : "string"
e2d681b3 27813 },
4d47f125
TL
27814 "pos" : {
27815 "type" : "integer"
e2d681b3
TL
27816 },
27817 "proto" : {
27818 "optional" : 1,
27819 "type" : "string"
27820 },
27821 "source" : {
27822 "optional" : 1,
27823 "type" : "string"
27824 },
27825 "sport" : {
27826 "optional" : 1,
27827 "type" : "string"
27828 },
27829 "type" : {
27830 "type" : "string"
4d47f125
TL
27831 }
27832 },
44660702
DM
27833 "type" : "object"
27834 }
7aacca6f
DM
27835 },
27836 "PUT" : {
e9cd3bd4 27837 "allowtoken" : 1,
4d47f125 27838 "description" : "Modify rule data.",
44660702 27839 "method" : "PUT",
4d47f125 27840 "name" : "update_rule",
7aacca6f
DM
27841 "parameters" : {
27842 "additionalProperties" : 0,
27843 "properties" : {
4d47f125
TL
27844 "action" : {
27845 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
27846 "maxLength" : 20,
27847 "minLength" : 2,
27848 "optional" : 1,
27849 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
27850 "type" : "string"
27851 },
27852 "comment" : {
27853 "description" : "Descriptive comment.",
27854 "optional" : 1,
27855 "type" : "string",
27856 "typetext" : "<string>"
27857 },
27858 "delete" : {
27859 "description" : "A list of settings you want to delete.",
27860 "format" : "pve-configid-list",
27861 "optional" : 1,
27862 "type" : "string",
27863 "typetext" : "<string>"
27864 },
27865 "dest" : {
27866 "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.",
27867 "format" : "pve-fw-addr-spec",
0695fdaf 27868 "maxLength" : 512,
4d47f125
TL
27869 "optional" : 1,
27870 "type" : "string",
27871 "typetext" : "<string>"
27872 },
27873 "digest" : {
27874 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
27875 "maxLength" : 40,
27876 "optional" : 1,
27877 "type" : "string",
27878 "typetext" : "<string>"
27879 },
27880 "dport" : {
27881 "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.",
27882 "format" : "pve-fw-dport-spec",
27883 "optional" : 1,
27884 "type" : "string",
27885 "typetext" : "<string>"
27886 },
27887 "enable" : {
27888 "description" : "Flag to enable/disable a rule.",
27889 "minimum" : 0,
27890 "optional" : 1,
27891 "type" : "integer",
27892 "typetext" : "<integer> (0 - N)"
27893 },
4772952b
TL
27894 "icmp-type" : {
27895 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
27896 "format" : "pve-fw-icmp-type-spec",
27897 "optional" : 1,
27898 "type" : "string",
27899 "typetext" : "<string>"
27900 },
4d47f125
TL
27901 "iface" : {
27902 "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.",
27903 "format" : "pve-iface",
27904 "maxLength" : 20,
27905 "minLength" : 2,
27906 "optional" : 1,
27907 "type" : "string",
27908 "typetext" : "<string>"
27909 },
95895385
TL
27910 "log" : {
27911 "description" : "Log level for firewall rule.",
27912 "enum" : [
27913 "emerg",
27914 "alert",
27915 "crit",
27916 "err",
27917 "warning",
27918 "notice",
27919 "info",
27920 "debug",
27921 "nolog"
27922 ],
27923 "optional" : 1,
27924 "type" : "string"
27925 },
4d47f125
TL
27926 "macro" : {
27927 "description" : "Use predefined standard macro.",
27928 "maxLength" : 128,
44660702 27929 "optional" : 1,
013dc89f
DM
27930 "type" : "string",
27931 "typetext" : "<string>"
44660702 27932 },
4d47f125
TL
27933 "moveto" : {
27934 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
27935 "minimum" : 0,
27936 "optional" : 1,
27937 "type" : "integer",
27938 "typetext" : "<integer> (0 - N)"
27939 },
7aacca6f 27940 "node" : {
7aacca6f 27941 "description" : "The cluster node name.",
44660702 27942 "format" : "pve-node",
013dc89f
DM
27943 "type" : "string",
27944 "typetext" : "<string>"
7aacca6f 27945 },
4d47f125
TL
27946 "pos" : {
27947 "description" : "Update rule at position <pos>.",
27948 "minimum" : 0,
27949 "optional" : 1,
27950 "type" : "integer",
27951 "typetext" : "<integer> (0 - N)"
27952 },
27953 "proto" : {
27954 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
27955 "format" : "pve-fw-protocol-spec",
27956 "optional" : 1,
27957 "type" : "string",
27958 "typetext" : "<string>"
27959 },
27960 "source" : {
27961 "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.",
27962 "format" : "pve-fw-addr-spec",
0695fdaf 27963 "maxLength" : 512,
4d47f125
TL
27964 "optional" : 1,
27965 "type" : "string",
27966 "typetext" : "<string>"
27967 },
27968 "sport" : {
27969 "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.",
27970 "format" : "pve-fw-sport-spec",
27971 "optional" : 1,
013dc89f
DM
27972 "type" : "string",
27973 "typetext" : "<string>"
7aacca6f 27974 },
4d47f125
TL
27975 "type" : {
27976 "description" : "Rule type.",
27977 "enum" : [
27978 "in",
27979 "out",
27980 "group"
27981 ],
27982 "optional" : 1,
27983 "type" : "string"
27984 },
7aacca6f 27985 "vmid" : {
44660702 27986 "description" : "The (unique) ID of the VM.",
7aacca6f 27987 "format" : "pve-vmid",
44660702 27988 "minimum" : 1,
4bd7df8b 27989 "type" : "integer",
013dc89f 27990 "typetext" : "<integer> (1 - N)"
7aacca6f
DM
27991 }
27992 }
27993 },
7aacca6f
DM
27994 "permissions" : {
27995 "check" : [
27996 "perm",
27997 "/vms/{vmid}",
27998 [
4d47f125 27999 "VM.Config.Network"
7aacca6f
DM
28000 ]
28001 ]
28002 },
4d47f125
TL
28003 "protected" : 1,
28004 "proxyto" : null,
28005 "returns" : {
28006 "type" : "null"
28007 }
28008 }
28009 },
28010 "leaf" : 1,
28011 "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}",
28012 "text" : "{pos}"
28013 }
28014 ],
28015 "info" : {
28016 "GET" : {
e9cd3bd4 28017 "allowtoken" : 1,
4d47f125
TL
28018 "description" : "List rules.",
28019 "method" : "GET",
28020 "name" : "get_rules",
28021 "parameters" : {
28022 "additionalProperties" : 0,
28023 "properties" : {
28024 "node" : {
28025 "description" : "The cluster node name.",
28026 "format" : "pve-node",
28027 "type" : "string",
28028 "typetext" : "<string>"
28029 },
28030 "vmid" : {
28031 "description" : "The (unique) ID of the VM.",
28032 "format" : "pve-vmid",
28033 "minimum" : 1,
28034 "type" : "integer",
28035 "typetext" : "<integer> (1 - N)"
28036 }
28037 }
28038 },
28039 "permissions" : {
28040 "check" : [
28041 "perm",
28042 "/vms/{vmid}",
28043 [
28044 "VM.Audit"
28045 ]
28046 ]
28047 },
28048 "proxyto" : null,
28049 "returns" : {
28050 "items" : {
28051 "properties" : {
28052 "pos" : {
28053 "type" : "integer"
28054 }
28055 },
28056 "type" : "object"
28057 },
28058 "links" : [
28059 {
28060 "href" : "{pos}",
28061 "rel" : "child"
28062 }
28063 ],
28064 "type" : "array"
28065 }
28066 },
28067 "POST" : {
e9cd3bd4 28068 "allowtoken" : 1,
4d47f125
TL
28069 "description" : "Create new rule.",
28070 "method" : "POST",
28071 "name" : "create_rule",
28072 "parameters" : {
28073 "additionalProperties" : 0,
28074 "properties" : {
28075 "action" : {
28076 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
28077 "maxLength" : 20,
28078 "minLength" : 2,
28079 "optional" : 0,
28080 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28081 "type" : "string"
28082 },
28083 "comment" : {
28084 "description" : "Descriptive comment.",
28085 "optional" : 1,
28086 "type" : "string",
28087 "typetext" : "<string>"
28088 },
28089 "dest" : {
28090 "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.",
28091 "format" : "pve-fw-addr-spec",
0695fdaf 28092 "maxLength" : 512,
4d47f125
TL
28093 "optional" : 1,
28094 "type" : "string",
28095 "typetext" : "<string>"
28096 },
28097 "digest" : {
28098 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28099 "maxLength" : 40,
28100 "optional" : 1,
28101 "type" : "string",
28102 "typetext" : "<string>"
28103 },
28104 "dport" : {
28105 "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.",
28106 "format" : "pve-fw-dport-spec",
28107 "optional" : 1,
28108 "type" : "string",
28109 "typetext" : "<string>"
28110 },
28111 "enable" : {
28112 "description" : "Flag to enable/disable a rule.",
28113 "minimum" : 0,
28114 "optional" : 1,
28115 "type" : "integer",
28116 "typetext" : "<integer> (0 - N)"
28117 },
4772952b
TL
28118 "icmp-type" : {
28119 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
28120 "format" : "pve-fw-icmp-type-spec",
28121 "optional" : 1,
28122 "type" : "string",
28123 "typetext" : "<string>"
28124 },
4d47f125
TL
28125 "iface" : {
28126 "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.",
28127 "format" : "pve-iface",
28128 "maxLength" : 20,
28129 "minLength" : 2,
28130 "optional" : 1,
28131 "type" : "string",
28132 "typetext" : "<string>"
28133 },
95895385
TL
28134 "log" : {
28135 "description" : "Log level for firewall rule.",
28136 "enum" : [
28137 "emerg",
28138 "alert",
28139 "crit",
28140 "err",
28141 "warning",
28142 "notice",
28143 "info",
28144 "debug",
28145 "nolog"
28146 ],
28147 "optional" : 1,
28148 "type" : "string"
28149 },
4d47f125
TL
28150 "macro" : {
28151 "description" : "Use predefined standard macro.",
28152 "maxLength" : 128,
44660702 28153 "optional" : 1,
4d47f125
TL
28154 "type" : "string",
28155 "typetext" : "<string>"
44660702
DM
28156 },
28157 "node" : {
28158 "description" : "The cluster node name.",
28159 "format" : "pve-node",
013dc89f
DM
28160 "type" : "string",
28161 "typetext" : "<string>"
7aacca6f 28162 },
4d47f125
TL
28163 "pos" : {
28164 "description" : "Update rule at position <pos>.",
28165 "minimum" : 0,
28166 "optional" : 1,
28167 "type" : "integer",
28168 "typetext" : "<integer> (0 - N)"
28169 },
28170 "proto" : {
28171 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
28172 "format" : "pve-fw-protocol-spec",
28173 "optional" : 1,
28174 "type" : "string",
28175 "typetext" : "<string>"
28176 },
28177 "source" : {
28178 "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.",
28179 "format" : "pve-fw-addr-spec",
0695fdaf 28180 "maxLength" : 512,
4d47f125 28181 "optional" : 1,
013dc89f
DM
28182 "type" : "string",
28183 "typetext" : "<string>"
44660702 28184 },
4d47f125
TL
28185 "sport" : {
28186 "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.",
28187 "format" : "pve-fw-sport-spec",
28188 "optional" : 1,
28189 "type" : "string",
28190 "typetext" : "<string>"
28191 },
28192 "type" : {
28193 "description" : "Rule type.",
28194 "enum" : [
28195 "in",
28196 "out",
28197 "group"
28198 ],
28199 "optional" : 0,
28200 "type" : "string"
28201 },
44660702
DM
28202 "vmid" : {
28203 "description" : "The (unique) ID of the VM.",
28204 "format" : "pve-vmid",
28205 "minimum" : 1,
4bd7df8b 28206 "type" : "integer",
013dc89f 28207 "typetext" : "<integer> (1 - N)"
56122987 28208 }
44660702 28209 }
7aacca6f 28210 },
56122987
DM
28211 "permissions" : {
28212 "check" : [
28213 "perm",
28214 "/vms/{vmid}",
28215 [
4d47f125 28216 "VM.Config.Network"
56122987
DM
28217 ]
28218 ]
28219 },
44660702 28220 "protected" : 1,
4d47f125 28221 "proxyto" : null,
44660702 28222 "returns" : {
4d47f125 28223 "type" : "null"
44660702
DM
28224 }
28225 }
28226 },
28227 "leaf" : 0,
4d47f125
TL
28228 "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules",
28229 "text" : "rules"
7aacca6f 28230 },
56122987 28231 {
56122987
DM
28232 "children" : [
28233 {
56122987 28234 "info" : {
44660702 28235 "DELETE" : {
e9cd3bd4 28236 "allowtoken" : 1,
4d47f125 28237 "description" : "Remove IP or Network alias.",
44660702 28238 "method" : "DELETE",
4d47f125 28239 "name" : "remove_alias",
56122987 28240 "parameters" : {
44660702 28241 "additionalProperties" : 0,
56122987 28242 "properties" : {
44660702
DM
28243 "digest" : {
28244 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28245 "maxLength" : 40,
7aacca6f 28246 "optional" : 1,
013dc89f
DM
28247 "type" : "string",
28248 "typetext" : "<string>"
7aacca6f 28249 },
4d47f125
TL
28250 "name" : {
28251 "description" : "Alias name.",
28252 "maxLength" : 64,
28253 "minLength" : 2,
28254 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28255 "type" : "string"
28256 },
7aacca6f 28257 "node" : {
44660702 28258 "description" : "The cluster node name.",
7aacca6f 28259 "format" : "pve-node",
013dc89f
DM
28260 "type" : "string",
28261 "typetext" : "<string>"
44660702 28262 },
44660702
DM
28263 "vmid" : {
28264 "description" : "The (unique) ID of the VM.",
28265 "format" : "pve-vmid",
28266 "minimum" : 1,
4bd7df8b 28267 "type" : "integer",
013dc89f 28268 "typetext" : "<integer> (1 - N)"
56122987 28269 }
44660702 28270 }
56122987 28271 },
56122987
DM
28272 "permissions" : {
28273 "check" : [
28274 "perm",
28275 "/vms/{vmid}",
28276 [
44660702 28277 "VM.Config.Network"
56122987
DM
28278 ]
28279 ]
28280 },
44660702 28281 "protected" : 1,
44660702
DM
28282 "returns" : {
28283 "type" : "null"
28284 }
7aacca6f 28285 },
44660702 28286 "GET" : {
e9cd3bd4 28287 "allowtoken" : 1,
4d47f125 28288 "description" : "Read alias.",
44660702 28289 "method" : "GET",
4d47f125 28290 "name" : "read_alias",
56122987 28291 "parameters" : {
44660702 28292 "additionalProperties" : 0,
56122987 28293 "properties" : {
4d47f125
TL
28294 "name" : {
28295 "description" : "Alias name.",
28296 "maxLength" : 64,
28297 "minLength" : 2,
28298 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28299 "type" : "string"
28300 },
7aacca6f 28301 "node" : {
7aacca6f 28302 "description" : "The cluster node name.",
44660702 28303 "format" : "pve-node",
013dc89f
DM
28304 "type" : "string",
28305 "typetext" : "<string>"
56122987 28306 },
7aacca6f 28307 "vmid" : {
44660702 28308 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
28309 "format" : "pve-vmid",
28310 "minimum" : 1,
4bd7df8b 28311 "type" : "integer",
013dc89f 28312 "typetext" : "<integer> (1 - N)"
56122987 28313 }
44660702 28314 }
56122987 28315 },
7aacca6f
DM
28316 "permissions" : {
28317 "check" : [
28318 "perm",
28319 "/vms/{vmid}",
28320 [
44660702 28321 "VM.Audit"
7aacca6f
DM
28322 ]
28323 ]
28324 },
7aacca6f 28325 "returns" : {
44660702 28326 "type" : "object"
7aacca6f 28327 }
56122987 28328 },
44660702 28329 "PUT" : {
e9cd3bd4 28330 "allowtoken" : 1,
4d47f125 28331 "description" : "Update IP or Network alias.",
44660702 28332 "method" : "PUT",
4d47f125 28333 "name" : "update_alias",
56122987
DM
28334 "parameters" : {
28335 "additionalProperties" : 0,
28336 "properties" : {
4d47f125
TL
28337 "cidr" : {
28338 "description" : "Network/IP specification in CIDR format.",
28339 "format" : "IPorCIDR",
013dc89f
DM
28340 "type" : "string",
28341 "typetext" : "<string>"
44660702 28342 },
4d47f125 28343 "comment" : {
44660702 28344 "optional" : 1,
013dc89f
DM
28345 "type" : "string",
28346 "typetext" : "<string>"
44660702
DM
28347 },
28348 "digest" : {
28349 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28350 "maxLength" : 40,
28351 "optional" : 1,
013dc89f
DM
28352 "type" : "string",
28353 "typetext" : "<string>"
44660702 28354 },
4d47f125
TL
28355 "name" : {
28356 "description" : "Alias name.",
28357 "maxLength" : 64,
44660702 28358 "minLength" : 2,
4d47f125
TL
28359 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28360 "type" : "string"
44660702 28361 },
7aacca6f
DM
28362 "node" : {
28363 "description" : "The cluster node name.",
44660702 28364 "format" : "pve-node",
013dc89f
DM
28365 "type" : "string",
28366 "typetext" : "<string>"
56122987 28367 },
4d47f125
TL
28368 "rename" : {
28369 "description" : "Rename an existing alias.",
28370 "maxLength" : 64,
28371 "minLength" : 2,
7aacca6f 28372 "optional" : 1,
4d47f125 28373 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
28374 "type" : "string"
28375 },
28376 "vmid" : {
28377 "description" : "The (unique) ID of the VM.",
28378 "format" : "pve-vmid",
28379 "minimum" : 1,
4bd7df8b 28380 "type" : "integer",
013dc89f 28381 "typetext" : "<integer> (1 - N)"
56122987
DM
28382 }
28383 }
28384 },
56122987
DM
28385 "permissions" : {
28386 "check" : [
28387 "perm",
28388 "/vms/{vmid}",
28389 [
7aacca6f 28390 "VM.Config.Network"
56122987
DM
28391 ]
28392 ]
28393 },
44660702 28394 "protected" : 1,
56122987 28395 "returns" : {
7aacca6f
DM
28396 "type" : "null"
28397 }
56122987 28398 }
44660702
DM
28399 },
28400 "leaf" : 1,
4d47f125
TL
28401 "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}",
28402 "text" : "{name}"
56122987
DM
28403 }
28404 ],
28405 "info" : {
7aacca6f 28406 "GET" : {
e9cd3bd4 28407 "allowtoken" : 1,
4d47f125 28408 "description" : "List aliases",
44660702 28409 "method" : "GET",
4d47f125 28410 "name" : "get_aliases",
7aacca6f 28411 "parameters" : {
44660702 28412 "additionalProperties" : 0,
7aacca6f
DM
28413 "properties" : {
28414 "node" : {
7aacca6f 28415 "description" : "The cluster node name.",
44660702 28416 "format" : "pve-node",
013dc89f
DM
28417 "type" : "string",
28418 "typetext" : "<string>"
7aacca6f
DM
28419 },
28420 "vmid" : {
28421 "description" : "The (unique) ID of the VM.",
44660702 28422 "format" : "pve-vmid",
7aacca6f 28423 "minimum" : 1,
4bd7df8b 28424 "type" : "integer",
013dc89f 28425 "typetext" : "<integer> (1 - N)"
7aacca6f 28426 }
44660702 28427 }
56122987 28428 },
56122987
DM
28429 "permissions" : {
28430 "check" : [
28431 "perm",
28432 "/vms/{vmid}",
28433 [
7aacca6f 28434 "VM.Audit"
56122987
DM
28435 ]
28436 ]
28437 },
7aacca6f 28438 "returns" : {
7aacca6f
DM
28439 "items" : {
28440 "properties" : {
4d47f125
TL
28441 "cidr" : {
28442 "type" : "string"
28443 },
28444 "comment" : {
28445 "optional" : 1,
28446 "type" : "string"
28447 },
28448 "digest" : {
28449 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28450 "maxLength" : 40,
28451 "optional" : 0,
28452 "type" : "string"
28453 },
28454 "name" : {
28455 "type" : "string"
7aacca6f
DM
28456 }
28457 },
28458 "type" : "object"
28459 },
28460 "links" : [
28461 {
4d47f125 28462 "href" : "{name}",
44660702 28463 "rel" : "child"
7aacca6f 28464 }
44660702
DM
28465 ],
28466 "type" : "array"
28467 }
7aacca6f
DM
28468 },
28469 "POST" : {
e9cd3bd4 28470 "allowtoken" : 1,
4d47f125 28471 "description" : "Create IP or Network Alias.",
44660702 28472 "method" : "POST",
4d47f125 28473 "name" : "create_alias",
56122987 28474 "parameters" : {
44660702 28475 "additionalProperties" : 0,
56122987 28476 "properties" : {
4d47f125
TL
28477 "cidr" : {
28478 "description" : "Network/IP specification in CIDR format.",
28479 "format" : "IPorCIDR",
013dc89f 28480 "type" : "string",
4d47f125
TL
28481 "typetext" : "<string>"
28482 },
28483 "comment" : {
44660702 28484 "optional" : 1,
013dc89f
DM
28485 "type" : "string",
28486 "typetext" : "<string>"
7aacca6f 28487 },
4d47f125
TL
28488 "name" : {
28489 "description" : "Alias name.",
28490 "maxLength" : 64,
28491 "minLength" : 2,
28492 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
28493 "type" : "string"
28494 },
4d47f125
TL
28495 "node" : {
28496 "description" : "The cluster node name.",
28497 "format" : "pve-node",
28498 "type" : "string",
28499 "typetext" : "<string>"
28500 },
44660702
DM
28501 "vmid" : {
28502 "description" : "The (unique) ID of the VM.",
28503 "format" : "pve-vmid",
28504 "minimum" : 1,
4bd7df8b 28505 "type" : "integer",
013dc89f 28506 "typetext" : "<integer> (1 - N)"
44660702
DM
28507 }
28508 }
28509 },
28510 "permissions" : {
28511 "check" : [
28512 "perm",
28513 "/vms/{vmid}",
28514 [
28515 "VM.Config.Network"
28516 ]
28517 ]
28518 },
28519 "protected" : 1,
44660702
DM
28520 "returns" : {
28521 "type" : "null"
28522 }
28523 }
28524 },
28525 "leaf" : 0,
4d47f125
TL
28526 "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases",
28527 "text" : "aliases"
44660702
DM
28528 },
28529 {
28530 "children" : [
28531 {
4d47f125
TL
28532 "children" : [
28533 {
28534 "info" : {
28535 "DELETE" : {
e9cd3bd4 28536 "allowtoken" : 1,
4d47f125
TL
28537 "description" : "Remove IP or Network from IPSet.",
28538 "method" : "DELETE",
28539 "name" : "remove_ip",
28540 "parameters" : {
28541 "additionalProperties" : 0,
28542 "properties" : {
28543 "cidr" : {
28544 "description" : "Network/IP specification in CIDR format.",
28545 "format" : "IPorCIDRorAlias",
28546 "type" : "string",
28547 "typetext" : "<string>"
28548 },
28549 "digest" : {
28550 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28551 "maxLength" : 40,
28552 "optional" : 1,
28553 "type" : "string",
28554 "typetext" : "<string>"
28555 },
28556 "name" : {
28557 "description" : "IP set name.",
28558 "maxLength" : 64,
28559 "minLength" : 2,
28560 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28561 "type" : "string"
28562 },
28563 "node" : {
28564 "description" : "The cluster node name.",
28565 "format" : "pve-node",
28566 "type" : "string",
28567 "typetext" : "<string>"
28568 },
28569 "vmid" : {
28570 "description" : "The (unique) ID of the VM.",
28571 "format" : "pve-vmid",
28572 "minimum" : 1,
28573 "type" : "integer",
28574 "typetext" : "<integer> (1 - N)"
28575 }
28576 }
28577 },
28578 "permissions" : {
28579 "check" : [
28580 "perm",
28581 "/vms/{vmid}",
28582 [
28583 "VM.Config.Network"
28584 ]
28585 ]
28586 },
28587 "protected" : 1,
28588 "returns" : {
28589 "type" : "null"
28590 }
28591 },
28592 "GET" : {
e9cd3bd4 28593 "allowtoken" : 1,
4d47f125
TL
28594 "description" : "Read IP or Network settings from IPSet.",
28595 "method" : "GET",
28596 "name" : "read_ip",
28597 "parameters" : {
28598 "additionalProperties" : 0,
28599 "properties" : {
28600 "cidr" : {
28601 "description" : "Network/IP specification in CIDR format.",
28602 "format" : "IPorCIDRorAlias",
28603 "type" : "string",
28604 "typetext" : "<string>"
28605 },
28606 "name" : {
28607 "description" : "IP set name.",
28608 "maxLength" : 64,
28609 "minLength" : 2,
28610 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28611 "type" : "string"
28612 },
28613 "node" : {
28614 "description" : "The cluster node name.",
28615 "format" : "pve-node",
28616 "type" : "string",
28617 "typetext" : "<string>"
28618 },
28619 "vmid" : {
28620 "description" : "The (unique) ID of the VM.",
28621 "format" : "pve-vmid",
28622 "minimum" : 1,
28623 "type" : "integer",
28624 "typetext" : "<integer> (1 - N)"
28625 }
28626 }
28627 },
28628 "permissions" : {
28629 "check" : [
28630 "perm",
28631 "/vms/{vmid}",
28632 [
28633 "VM.Audit"
28634 ]
28635 ]
28636 },
28637 "protected" : 1,
28638 "returns" : {
28639 "type" : "object"
28640 }
28641 },
28642 "PUT" : {
e9cd3bd4 28643 "allowtoken" : 1,
4d47f125
TL
28644 "description" : "Update IP or Network settings",
28645 "method" : "PUT",
28646 "name" : "update_ip",
28647 "parameters" : {
28648 "additionalProperties" : 0,
28649 "properties" : {
28650 "cidr" : {
28651 "description" : "Network/IP specification in CIDR format.",
28652 "format" : "IPorCIDRorAlias",
28653 "type" : "string",
28654 "typetext" : "<string>"
28655 },
28656 "comment" : {
28657 "optional" : 1,
28658 "type" : "string",
28659 "typetext" : "<string>"
28660 },
28661 "digest" : {
28662 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28663 "maxLength" : 40,
28664 "optional" : 1,
28665 "type" : "string",
28666 "typetext" : "<string>"
28667 },
28668 "name" : {
28669 "description" : "IP set name.",
28670 "maxLength" : 64,
28671 "minLength" : 2,
28672 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28673 "type" : "string"
28674 },
28675 "node" : {
28676 "description" : "The cluster node name.",
28677 "format" : "pve-node",
28678 "type" : "string",
28679 "typetext" : "<string>"
28680 },
28681 "nomatch" : {
28682 "optional" : 1,
28683 "type" : "boolean",
28684 "typetext" : "<boolean>"
28685 },
28686 "vmid" : {
28687 "description" : "The (unique) ID of the VM.",
28688 "format" : "pve-vmid",
28689 "minimum" : 1,
28690 "type" : "integer",
28691 "typetext" : "<integer> (1 - N)"
28692 }
28693 }
28694 },
28695 "permissions" : {
28696 "check" : [
28697 "perm",
28698 "/vms/{vmid}",
28699 [
28700 "VM.Config.Network"
28701 ]
28702 ]
28703 },
28704 "protected" : 1,
28705 "returns" : {
28706 "type" : "null"
28707 }
28708 }
28709 },
28710 "leaf" : 1,
28711 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}",
28712 "text" : "{cidr}"
28713 }
28714 ],
44660702
DM
28715 "info" : {
28716 "DELETE" : {
e9cd3bd4 28717 "allowtoken" : 1,
4d47f125 28718 "description" : "Delete IPSet",
44660702 28719 "method" : "DELETE",
4d47f125 28720 "name" : "delete_ipset",
56122987 28721 "parameters" : {
44660702 28722 "additionalProperties" : 0,
56122987 28723 "properties" : {
81a3384d
TL
28724 "force" : {
28725 "description" : "Delete all members of the IPSet, if there are any.",
28726 "optional" : 1,
28727 "type" : "boolean",
28728 "typetext" : "<boolean>"
28729 },
7aacca6f 28730 "name" : {
4d47f125 28731 "description" : "IP set name.",
7aacca6f 28732 "maxLength" : 64,
7aacca6f
DM
28733 "minLength" : 2,
28734 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 28735 "type" : "string"
7aacca6f
DM
28736 },
28737 "node" : {
44660702 28738 "description" : "The cluster node name.",
56122987 28739 "format" : "pve-node",
013dc89f
DM
28740 "type" : "string",
28741 "typetext" : "<string>"
7aacca6f 28742 },
56122987 28743 "vmid" : {
44660702 28744 "description" : "The (unique) ID of the VM.",
56122987 28745 "format" : "pve-vmid",
44660702 28746 "minimum" : 1,
4bd7df8b 28747 "type" : "integer",
013dc89f 28748 "typetext" : "<integer> (1 - N)"
56122987 28749 }
44660702 28750 }
56122987 28751 },
56122987
DM
28752 "permissions" : {
28753 "check" : [
28754 "perm",
28755 "/vms/{vmid}",
28756 [
7aacca6f 28757 "VM.Config.Network"
56122987
DM
28758 ]
28759 ]
28760 },
44660702 28761 "protected" : 1,
56122987 28762 "returns" : {
7aacca6f 28763 "type" : "null"
44660702 28764 }
56122987 28765 },
44660702 28766 "GET" : {
e9cd3bd4 28767 "allowtoken" : 1,
4d47f125 28768 "description" : "List IPSet content",
44660702 28769 "method" : "GET",
4d47f125 28770 "name" : "get_ipset",
44660702
DM
28771 "parameters" : {
28772 "additionalProperties" : 0,
28773 "properties" : {
28774 "name" : {
4d47f125 28775 "description" : "IP set name.",
44660702
DM
28776 "maxLength" : 64,
28777 "minLength" : 2,
28778 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28779 "type" : "string"
28780 },
28781 "node" : {
28782 "description" : "The cluster node name.",
28783 "format" : "pve-node",
013dc89f
DM
28784 "type" : "string",
28785 "typetext" : "<string>"
44660702
DM
28786 },
28787 "vmid" : {
28788 "description" : "The (unique) ID of the VM.",
28789 "format" : "pve-vmid",
28790 "minimum" : 1,
4bd7df8b 28791 "type" : "integer",
013dc89f 28792 "typetext" : "<integer> (1 - N)"
44660702 28793 }
4d47f125
TL
28794 }
28795 },
28796 "permissions" : {
28797 "check" : [
28798 "perm",
28799 "/vms/{vmid}",
28800 [
28801 "VM.Audit"
28802 ]
28803 ]
28804 },
28805 "returns" : {
28806 "items" : {
28807 "properties" : {
28808 "cidr" : {
28809 "type" : "string"
28810 },
28811 "comment" : {
28812 "optional" : 1,
28813 "type" : "string"
28814 },
28815 "digest" : {
28816 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28817 "maxLength" : 40,
28818 "optional" : 0,
28819 "type" : "string"
28820 },
28821 "nomatch" : {
28822 "optional" : 1,
28823 "type" : "boolean"
28824 }
28825 },
28826 "type" : "object"
28827 },
28828 "links" : [
28829 {
28830 "href" : "{cidr}",
28831 "rel" : "child"
28832 }
28833 ],
28834 "type" : "array"
44660702
DM
28835 }
28836 },
4d47f125 28837 "POST" : {
e9cd3bd4 28838 "allowtoken" : 1,
4d47f125
TL
28839 "description" : "Add IP or Network to IPSet.",
28840 "method" : "POST",
28841 "name" : "create_ip",
56122987
DM
28842 "parameters" : {
28843 "additionalProperties" : 0,
28844 "properties" : {
44660702
DM
28845 "cidr" : {
28846 "description" : "Network/IP specification in CIDR format.",
4d47f125 28847 "format" : "IPorCIDRorAlias",
013dc89f
DM
28848 "type" : "string",
28849 "typetext" : "<string>"
44660702
DM
28850 },
28851 "comment" : {
28852 "optional" : 1,
013dc89f
DM
28853 "type" : "string",
28854 "typetext" : "<string>"
44660702 28855 },
56122987 28856 "name" : {
4d47f125 28857 "description" : "IP set name.",
44660702
DM
28858 "maxLength" : 64,
28859 "minLength" : 2,
7aacca6f 28860 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 28861 "type" : "string"
56122987
DM
28862 },
28863 "node" : {
28864 "description" : "The cluster node name.",
44660702 28865 "format" : "pve-node",
013dc89f
DM
28866 "type" : "string",
28867 "typetext" : "<string>"
44660702 28868 },
4d47f125 28869 "nomatch" : {
44660702 28870 "optional" : 1,
4d47f125
TL
28871 "type" : "boolean",
28872 "typetext" : "<boolean>"
56122987 28873 },
7aacca6f 28874 "vmid" : {
7aacca6f 28875 "description" : "The (unique) ID of the VM.",
44660702 28876 "format" : "pve-vmid",
7aacca6f 28877 "minimum" : 1,
4bd7df8b 28878 "type" : "integer",
013dc89f 28879 "typetext" : "<integer> (1 - N)"
56122987
DM
28880 }
28881 }
28882 },
44660702
DM
28883 "permissions" : {
28884 "check" : [
28885 "perm",
28886 "/vms/{vmid}",
28887 [
28888 "VM.Config.Network"
28889 ]
28890 ]
7aacca6f 28891 },
44660702
DM
28892 "protected" : 1,
28893 "returns" : {
28894 "type" : "null"
7aacca6f
DM
28895 }
28896 }
28897 },
4d47f125
TL
28898 "leaf" : 0,
28899 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}",
44660702
DM
28900 "text" : "{name}"
28901 }
28902 ],
28903 "info" : {
28904 "GET" : {
e9cd3bd4 28905 "allowtoken" : 1,
4d47f125 28906 "description" : "List IPSets",
44660702 28907 "method" : "GET",
4d47f125 28908 "name" : "ipset_index",
56122987
DM
28909 "parameters" : {
28910 "additionalProperties" : 0,
28911 "properties" : {
28912 "node" : {
44660702 28913 "description" : "The cluster node name.",
56122987 28914 "format" : "pve-node",
013dc89f
DM
28915 "type" : "string",
28916 "typetext" : "<string>"
56122987
DM
28917 },
28918 "vmid" : {
7aacca6f 28919 "description" : "The (unique) ID of the VM.",
44660702 28920 "format" : "pve-vmid",
7aacca6f 28921 "minimum" : 1,
4bd7df8b 28922 "type" : "integer",
013dc89f 28923 "typetext" : "<integer> (1 - N)"
56122987
DM
28924 }
28925 }
28926 },
44660702
DM
28927 "permissions" : {
28928 "check" : [
28929 "perm",
28930 "/vms/{vmid}",
28931 [
28932 "VM.Audit"
28933 ]
28934 ]
28935 },
56122987
DM
28936 "returns" : {
28937 "items" : {
56122987 28938 "properties" : {
44660702
DM
28939 "comment" : {
28940 "optional" : 1,
56122987
DM
28941 "type" : "string"
28942 },
56122987 28943 "digest" : {
56122987 28944 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702
DM
28945 "maxLength" : 40,
28946 "optional" : 0,
28947 "type" : "string"
28948 },
28949 "name" : {
4d47f125
TL
28950 "description" : "IP set name.",
28951 "maxLength" : 64,
28952 "minLength" : 2,
28953 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 28954 "type" : "string"
56122987 28955 }
44660702
DM
28956 },
28957 "type" : "object"
28958 },
28959 "links" : [
28960 {
28961 "href" : "{name}",
28962 "rel" : "child"
56122987 28963 }
4d47f125
TL
28964 ],
28965 "type" : "array"
28966 }
28967 },
28968 "POST" : {
e9cd3bd4 28969 "allowtoken" : 1,
4d47f125
TL
28970 "description" : "Create new IPSet",
28971 "method" : "POST",
28972 "name" : "create_ipset",
28973 "parameters" : {
28974 "additionalProperties" : 0,
28975 "properties" : {
28976 "comment" : {
28977 "optional" : 1,
28978 "type" : "string",
28979 "typetext" : "<string>"
28980 },
28981 "digest" : {
28982 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28983 "maxLength" : 40,
28984 "optional" : 1,
28985 "type" : "string",
28986 "typetext" : "<string>"
28987 },
28988 "name" : {
28989 "description" : "IP set name.",
28990 "maxLength" : 64,
28991 "minLength" : 2,
28992 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28993 "type" : "string"
28994 },
28995 "node" : {
28996 "description" : "The cluster node name.",
28997 "format" : "pve-node",
28998 "type" : "string",
28999 "typetext" : "<string>"
29000 },
29001 "rename" : {
29002 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
29003 "maxLength" : 64,
29004 "minLength" : 2,
29005 "optional" : 1,
29006 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
29007 "type" : "string"
29008 },
29009 "vmid" : {
29010 "description" : "The (unique) ID of the VM.",
29011 "format" : "pve-vmid",
29012 "minimum" : 1,
29013 "type" : "integer",
29014 "typetext" : "<integer> (1 - N)"
29015 }
29016 }
29017 },
29018 "permissions" : {
29019 "check" : [
29020 "perm",
29021 "/vms/{vmid}",
29022 [
29023 "VM.Config.Network"
29024 ]
29025 ]
29026 },
29027 "protected" : 1,
29028 "returns" : {
29029 "type" : "null"
29030 }
29031 }
29032 },
29033 "leaf" : 0,
29034 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset",
29035 "text" : "ipset"
29036 },
29037 {
29038 "info" : {
29039 "GET" : {
e9cd3bd4 29040 "allowtoken" : 1,
4d47f125
TL
29041 "description" : "Get VM firewall options.",
29042 "method" : "GET",
29043 "name" : "get_options",
29044 "parameters" : {
29045 "additionalProperties" : 0,
29046 "properties" : {
29047 "node" : {
29048 "description" : "The cluster node name.",
29049 "format" : "pve-node",
29050 "type" : "string",
29051 "typetext" : "<string>"
29052 },
29053 "vmid" : {
29054 "description" : "The (unique) ID of the VM.",
29055 "format" : "pve-vmid",
29056 "minimum" : 1,
29057 "type" : "integer",
29058 "typetext" : "<integer> (1 - N)"
29059 }
29060 }
29061 },
29062 "permissions" : {
29063 "check" : [
29064 "perm",
29065 "/vms/{vmid}",
29066 [
29067 "VM.Audit"
29068 ]
29069 ]
29070 },
29071 "proxyto" : "node",
29072 "returns" : {
29073 "properties" : {
29074 "dhcp" : {
5c1699e5 29075 "default" : 0,
4d47f125
TL
29076 "description" : "Enable DHCP.",
29077 "optional" : 1,
29078 "type" : "boolean"
29079 },
29080 "enable" : {
5c1699e5 29081 "default" : 0,
4d47f125
TL
29082 "description" : "Enable/disable firewall rules.",
29083 "optional" : 1,
29084 "type" : "boolean"
29085 },
29086 "ipfilter" : {
29087 "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.",
29088 "optional" : 1,
29089 "type" : "boolean"
29090 },
29091 "log_level_in" : {
29092 "description" : "Log level for incoming traffic.",
29093 "enum" : [
29094 "emerg",
29095 "alert",
29096 "crit",
29097 "err",
29098 "warning",
29099 "notice",
29100 "info",
29101 "debug",
29102 "nolog"
29103 ],
29104 "optional" : 1,
29105 "type" : "string"
29106 },
29107 "log_level_out" : {
29108 "description" : "Log level for outgoing traffic.",
29109 "enum" : [
29110 "emerg",
29111 "alert",
29112 "crit",
29113 "err",
29114 "warning",
29115 "notice",
29116 "info",
29117 "debug",
29118 "nolog"
29119 ],
29120 "optional" : 1,
29121 "type" : "string"
29122 },
29123 "macfilter" : {
de786b48 29124 "default" : 1,
4d47f125
TL
29125 "description" : "Enable/disable MAC address filter.",
29126 "optional" : 1,
29127 "type" : "boolean"
29128 },
29129 "ndp" : {
5c1699e5
TL
29130 "default" : 0,
29131 "description" : "Enable NDP (Neighbor Discovery Protocol).",
4d47f125
TL
29132 "optional" : 1,
29133 "type" : "boolean"
29134 },
29135 "policy_in" : {
29136 "description" : "Input policy.",
29137 "enum" : [
29138 "ACCEPT",
29139 "REJECT",
29140 "DROP"
29141 ],
29142 "optional" : 1,
29143 "type" : "string"
29144 },
29145 "policy_out" : {
29146 "description" : "Output policy.",
29147 "enum" : [
29148 "ACCEPT",
29149 "REJECT",
29150 "DROP"
29151 ],
29152 "optional" : 1,
29153 "type" : "string"
29154 },
29155 "radv" : {
29156 "description" : "Allow sending Router Advertisement.",
29157 "optional" : 1,
29158 "type" : "boolean"
29159 }
29160 },
29161 "type" : "object"
7aacca6f
DM
29162 }
29163 },
4d47f125 29164 "PUT" : {
e9cd3bd4 29165 "allowtoken" : 1,
4d47f125
TL
29166 "description" : "Set Firewall options.",
29167 "method" : "PUT",
29168 "name" : "set_options",
7aacca6f
DM
29169 "parameters" : {
29170 "additionalProperties" : 0,
29171 "properties" : {
4d47f125
TL
29172 "delete" : {
29173 "description" : "A list of settings you want to delete.",
29174 "format" : "pve-configid-list",
7aacca6f 29175 "optional" : 1,
013dc89f
DM
29176 "type" : "string",
29177 "typetext" : "<string>"
7aacca6f 29178 },
4d47f125 29179 "dhcp" : {
5c1699e5 29180 "default" : 0,
4d47f125
TL
29181 "description" : "Enable DHCP.",
29182 "optional" : 1,
29183 "type" : "boolean",
29184 "typetext" : "<boolean>"
7aacca6f 29185 },
4d47f125
TL
29186 "digest" : {
29187 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29188 "maxLength" : 40,
29189 "optional" : 1,
013dc89f
DM
29190 "type" : "string",
29191 "typetext" : "<string>"
7aacca6f 29192 },
4d47f125 29193 "enable" : {
5c1699e5 29194 "default" : 0,
4d47f125
TL
29195 "description" : "Enable/disable firewall rules.",
29196 "optional" : 1,
29197 "type" : "boolean",
29198 "typetext" : "<boolean>"
29199 },
29200 "ipfilter" : {
29201 "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.",
29202 "optional" : 1,
29203 "type" : "boolean",
29204 "typetext" : "<boolean>"
56122987 29205 },
4d47f125
TL
29206 "log_level_in" : {
29207 "description" : "Log level for incoming traffic.",
29208 "enum" : [
29209 "emerg",
29210 "alert",
29211 "crit",
29212 "err",
29213 "warning",
29214 "notice",
29215 "info",
29216 "debug",
29217 "nolog"
29218 ],
29219 "optional" : 1,
29220 "type" : "string"
44660702 29221 },
4d47f125
TL
29222 "log_level_out" : {
29223 "description" : "Log level for outgoing traffic.",
29224 "enum" : [
29225 "emerg",
29226 "alert",
29227 "crit",
29228 "err",
29229 "warning",
29230 "notice",
29231 "info",
29232 "debug",
29233 "nolog"
29234 ],
29235 "optional" : 1,
29236 "type" : "string"
44660702 29237 },
4d47f125 29238 "macfilter" : {
de786b48 29239 "default" : 1,
4d47f125
TL
29240 "description" : "Enable/disable MAC address filter.",
29241 "optional" : 1,
29242 "type" : "boolean",
29243 "typetext" : "<boolean>"
7aacca6f 29244 },
4d47f125 29245 "ndp" : {
5c1699e5
TL
29246 "default" : 0,
29247 "description" : "Enable NDP (Neighbor Discovery Protocol).",
4d47f125
TL
29248 "optional" : 1,
29249 "type" : "boolean",
29250 "typetext" : "<boolean>"
7aacca6f 29251 },
4d47f125
TL
29252 "node" : {
29253 "description" : "The cluster node name.",
29254 "format" : "pve-node",
29255 "type" : "string",
29256 "typetext" : "<string>"
29257 },
29258 "policy_in" : {
29259 "description" : "Input policy.",
29260 "enum" : [
29261 "ACCEPT",
29262 "REJECT",
29263 "DROP"
44660702 29264 ],
4d47f125
TL
29265 "optional" : 1,
29266 "type" : "string"
29267 },
29268 "policy_out" : {
29269 "description" : "Output policy.",
29270 "enum" : [
29271 "ACCEPT",
29272 "REJECT",
29273 "DROP"
29274 ],
29275 "optional" : 1,
29276 "type" : "string"
29277 },
29278 "radv" : {
29279 "description" : "Allow sending Router Advertisement.",
29280 "optional" : 1,
29281 "type" : "boolean",
29282 "typetext" : "<boolean>"
29283 },
29284 "vmid" : {
29285 "description" : "The (unique) ID of the VM.",
29286 "format" : "pve-vmid",
29287 "minimum" : 1,
29288 "type" : "integer",
29289 "typetext" : "<integer> (1 - N)"
44660702 29290 }
4d47f125
TL
29291 }
29292 },
29293 "permissions" : {
29294 "check" : [
29295 "perm",
29296 "/vms/{vmid}",
29297 [
29298 "VM.Config.Network"
29299 ]
29300 ]
29301 },
29302 "protected" : 1,
29303 "proxyto" : "node",
29304 "returns" : {
29305 "type" : "null"
29306 }
29307 }
29308 },
29309 "leaf" : 1,
29310 "path" : "/nodes/{node}/lxc/{vmid}/firewall/options",
29311 "text" : "options"
29312 },
29313 {
29314 "info" : {
29315 "GET" : {
e9cd3bd4 29316 "allowtoken" : 1,
4d47f125
TL
29317 "description" : "Read firewall log",
29318 "method" : "GET",
29319 "name" : "log",
29320 "parameters" : {
29321 "additionalProperties" : 0,
29322 "properties" : {
29323 "limit" : {
29324 "minimum" : 0,
29325 "optional" : 1,
29326 "type" : "integer",
29327 "typetext" : "<integer> (0 - N)"
44660702 29328 },
4d47f125
TL
29329 "node" : {
29330 "description" : "The cluster node name.",
29331 "format" : "pve-node",
29332 "type" : "string",
29333 "typetext" : "<string>"
44660702 29334 },
4d47f125
TL
29335 "start" : {
29336 "minimum" : 0,
29337 "optional" : 1,
29338 "type" : "integer",
29339 "typetext" : "<integer> (0 - N)"
29340 },
29341 "vmid" : {
29342 "description" : "The (unique) ID of the VM.",
29343 "format" : "pve-vmid",
29344 "minimum" : 1,
29345 "type" : "integer",
29346 "typetext" : "<integer> (1 - N)"
44660702
DM
29347 }
29348 }
29349 },
4d47f125
TL
29350 "permissions" : {
29351 "check" : [
29352 "perm",
29353 "/vms/{vmid}",
29354 [
29355 "VM.Console"
29356 ]
29357 ]
29358 },
29359 "protected" : 1,
29360 "proxyto" : "node",
29361 "returns" : {
29362 "items" : {
29363 "properties" : {
29364 "n" : {
29365 "description" : "Line number",
29366 "type" : "integer"
29367 },
29368 "t" : {
29369 "description" : "Line text",
29370 "type" : "string"
29371 }
29372 },
29373 "type" : "object"
29374 },
29375 "type" : "array"
29376 }
44660702 29377 }
4d47f125
TL
29378 },
29379 "leaf" : 1,
29380 "path" : "/nodes/{node}/lxc/{vmid}/firewall/log",
29381 "text" : "log"
29382 },
29383 {
44660702
DM
29384 "info" : {
29385 "GET" : {
e9cd3bd4 29386 "allowtoken" : 1,
4d47f125 29387 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
44660702 29388 "method" : "GET",
4d47f125 29389 "name" : "refs",
44660702
DM
29390 "parameters" : {
29391 "additionalProperties" : 0,
29392 "properties" : {
29393 "node" : {
29394 "description" : "The cluster node name.",
29395 "format" : "pve-node",
013dc89f
DM
29396 "type" : "string",
29397 "typetext" : "<string>"
44660702 29398 },
4d47f125
TL
29399 "type" : {
29400 "description" : "Only list references of specified type.",
29401 "enum" : [
29402 "alias",
29403 "ipset"
29404 ],
29405 "optional" : 1,
29406 "type" : "string"
29407 },
44660702
DM
29408 "vmid" : {
29409 "description" : "The (unique) ID of the VM.",
29410 "format" : "pve-vmid",
29411 "minimum" : 1,
4bd7df8b 29412 "type" : "integer",
013dc89f 29413 "typetext" : "<integer> (1 - N)"
44660702
DM
29414 }
29415 }
29416 },
4d47f125
TL
29417 "permissions" : {
29418 "check" : [
29419 "perm",
29420 "/vms/{vmid}",
29421 [
29422 "VM.Audit"
29423 ]
29424 ]
29425 },
29426 "returns" : {
29427 "items" : {
29428 "properties" : {
29429 "comment" : {
29430 "optional" : 1,
29431 "type" : "string"
29432 },
29433 "name" : {
29434 "type" : "string"
29435 },
29436 "type" : {
29437 "enum" : [
29438 "alias",
29439 "ipset"
29440 ],
29441 "type" : "string"
29442 }
29443 },
29444 "type" : "object"
29445 },
29446 "type" : "array"
29447 }
29448 }
29449 },
29450 "leaf" : 1,
29451 "path" : "/nodes/{node}/lxc/{vmid}/firewall/refs",
29452 "text" : "refs"
29453 }
29454 ],
29455 "info" : {
29456 "GET" : {
e9cd3bd4 29457 "allowtoken" : 1,
4d47f125
TL
29458 "description" : "Directory index.",
29459 "method" : "GET",
29460 "name" : "index",
29461 "parameters" : {
29462 "additionalProperties" : 0,
29463 "properties" : {
29464 "node" : {
29465 "description" : "The cluster node name.",
29466 "format" : "pve-node",
29467 "type" : "string",
29468 "typetext" : "<string>"
29469 },
29470 "vmid" : {
29471 "description" : "The (unique) ID of the VM.",
29472 "format" : "pve-vmid",
29473 "minimum" : 1,
29474 "type" : "integer",
29475 "typetext" : "<integer> (1 - N)"
29476 }
29477 }
29478 },
29479 "permissions" : {
29480 "user" : "all"
29481 },
29482 "returns" : {
29483 "items" : {
29484 "properties" : {},
29485 "type" : "object"
29486 },
29487 "links" : [
29488 {
29489 "href" : "{name}",
29490 "rel" : "child"
29491 }
29492 ],
29493 "type" : "array"
29494 }
29495 }
29496 },
29497 "leaf" : 0,
29498 "path" : "/nodes/{node}/lxc/{vmid}/firewall",
29499 "text" : "firewall"
29500 },
29501 {
29502 "info" : {
29503 "GET" : {
e9cd3bd4 29504 "allowtoken" : 1,
4d47f125
TL
29505 "description" : "Read VM RRD statistics (returns PNG)",
29506 "method" : "GET",
29507 "name" : "rrd",
29508 "parameters" : {
29509 "additionalProperties" : 0,
29510 "properties" : {
29511 "cf" : {
29512 "description" : "The RRD consolidation function",
29513 "enum" : [
29514 "AVERAGE",
29515 "MAX"
29516 ],
29517 "optional" : 1,
29518 "type" : "string"
29519 },
29520 "ds" : {
29521 "description" : "The list of datasources you want to display.",
29522 "format" : "pve-configid-list",
29523 "type" : "string",
29524 "typetext" : "<string>"
29525 },
29526 "node" : {
29527 "description" : "The cluster node name.",
29528 "format" : "pve-node",
29529 "type" : "string",
29530 "typetext" : "<string>"
29531 },
29532 "timeframe" : {
29533 "description" : "Specify the time frame you are interested in.",
29534 "enum" : [
29535 "hour",
29536 "day",
29537 "week",
29538 "month",
29539 "year"
29540 ],
29541 "type" : "string"
29542 },
29543 "vmid" : {
29544 "description" : "The (unique) ID of the VM.",
29545 "format" : "pve-vmid",
29546 "minimum" : 1,
29547 "type" : "integer",
29548 "typetext" : "<integer> (1 - N)"
29549 }
29550 }
29551 },
29552 "permissions" : {
29553 "check" : [
29554 "perm",
29555 "/vms/{vmid}",
29556 [
29557 "VM.Audit"
29558 ]
29559 ]
29560 },
29561 "protected" : 1,
29562 "returns" : {
29563 "properties" : {
29564 "filename" : {
29565 "type" : "string"
29566 }
29567 },
29568 "type" : "object"
29569 }
29570 }
29571 },
29572 "leaf" : 1,
29573 "path" : "/nodes/{node}/lxc/{vmid}/rrd",
29574 "text" : "rrd"
29575 },
29576 {
29577 "info" : {
29578 "GET" : {
e9cd3bd4 29579 "allowtoken" : 1,
4d47f125
TL
29580 "description" : "Read VM RRD statistics",
29581 "method" : "GET",
29582 "name" : "rrddata",
29583 "parameters" : {
29584 "additionalProperties" : 0,
29585 "properties" : {
29586 "cf" : {
29587 "description" : "The RRD consolidation function",
29588 "enum" : [
29589 "AVERAGE",
29590 "MAX"
29591 ],
29592 "optional" : 1,
29593 "type" : "string"
29594 },
29595 "node" : {
29596 "description" : "The cluster node name.",
29597 "format" : "pve-node",
29598 "type" : "string",
29599 "typetext" : "<string>"
44660702 29600 },
4d47f125
TL
29601 "timeframe" : {
29602 "description" : "Specify the time frame you are interested in.",
29603 "enum" : [
29604 "hour",
29605 "day",
29606 "week",
29607 "month",
29608 "year"
44660702 29609 ],
4d47f125
TL
29610 "type" : "string"
29611 },
29612 "vmid" : {
29613 "description" : "The (unique) ID of the VM.",
29614 "format" : "pve-vmid",
29615 "minimum" : 1,
29616 "type" : "integer",
29617 "typetext" : "<integer> (1 - N)"
44660702 29618 }
4d47f125
TL
29619 }
29620 },
29621 "permissions" : {
29622 "check" : [
29623 "perm",
29624 "/vms/{vmid}",
29625 [
29626 "VM.Audit"
29627 ]
29628 ]
29629 },
29630 "protected" : 1,
29631 "returns" : {
29632 "items" : {
29633 "properties" : {},
29634 "type" : "object"
44660702 29635 },
4d47f125
TL
29636 "type" : "array"
29637 }
29638 }
29639 },
29640 "leaf" : 1,
29641 "path" : "/nodes/{node}/lxc/{vmid}/rrddata",
29642 "text" : "rrddata"
29643 },
29644 {
29645 "info" : {
29646 "POST" : {
e9cd3bd4 29647 "allowtoken" : 1,
4d47f125
TL
29648 "description" : "Creates a TCP VNC proxy connections.",
29649 "method" : "POST",
29650 "name" : "vncproxy",
29651 "parameters" : {
29652 "additionalProperties" : 0,
29653 "properties" : {
29654 "height" : {
29655 "description" : "sets the height of the console in pixels.",
29656 "maximum" : 2160,
29657 "minimum" : 16,
29658 "optional" : 1,
29659 "type" : "integer",
29660 "typetext" : "<integer> (16 - 2160)"
44660702 29661 },
4d47f125
TL
29662 "node" : {
29663 "description" : "The cluster node name.",
29664 "format" : "pve-node",
29665 "type" : "string",
29666 "typetext" : "<string>"
44660702 29667 },
4d47f125
TL
29668 "vmid" : {
29669 "description" : "The (unique) ID of the VM.",
29670 "format" : "pve-vmid",
29671 "minimum" : 1,
29672 "type" : "integer",
29673 "typetext" : "<integer> (1 - N)"
29674 },
29675 "websocket" : {
29676 "description" : "use websocket instead of standard VNC.",
29677 "optional" : 1,
29678 "type" : "boolean",
29679 "typetext" : "<boolean>"
29680 },
29681 "width" : {
29682 "description" : "sets the width of the console in pixels.",
29683 "maximum" : 4096,
29684 "minimum" : 16,
29685 "optional" : 1,
29686 "type" : "integer",
29687 "typetext" : "<integer> (16 - 4096)"
56122987
DM
29688 }
29689 }
44660702 29690 },
4d47f125
TL
29691 "permissions" : {
29692 "check" : [
29693 "perm",
29694 "/vms/{vmid}",
29695 [
29696 "VM.Console"
29697 ]
29698 ]
29699 },
29700 "protected" : 1,
29701 "returns" : {
29702 "additionalProperties" : 0,
29703 "properties" : {
29704 "cert" : {
29705 "type" : "string"
44660702 29706 },
4d47f125
TL
29707 "port" : {
29708 "type" : "integer"
29709 },
29710 "ticket" : {
29711 "type" : "string"
29712 },
29713 "upid" : {
29714 "type" : "string"
29715 },
29716 "user" : {
29717 "type" : "string"
29718 }
29719 }
29720 }
29721 }
29722 },
29723 "leaf" : 1,
29724 "path" : "/nodes/{node}/lxc/{vmid}/vncproxy",
29725 "text" : "vncproxy"
29726 },
29727 {
29728 "info" : {
29729 "POST" : {
e9cd3bd4 29730 "allowtoken" : 1,
4d47f125
TL
29731 "description" : "Creates a TCP proxy connection.",
29732 "method" : "POST",
29733 "name" : "termproxy",
29734 "parameters" : {
29735 "additionalProperties" : 0,
29736 "properties" : {
29737 "node" : {
29738 "description" : "The cluster node name.",
29739 "format" : "pve-node",
29740 "type" : "string",
29741 "typetext" : "<string>"
44660702 29742 },
4d47f125
TL
29743 "vmid" : {
29744 "description" : "The (unique) ID of the VM.",
29745 "format" : "pve-vmid",
29746 "minimum" : 1,
29747 "type" : "integer",
29748 "typetext" : "<integer> (1 - N)"
44660702 29749 }
4d47f125
TL
29750 }
29751 },
29752 "permissions" : {
29753 "check" : [
29754 "perm",
29755 "/vms/{vmid}",
29756 [
29757 "VM.Console"
29758 ]
29759 ]
29760 },
29761 "protected" : 1,
29762 "returns" : {
29763 "additionalProperties" : 0,
29764 "properties" : {
29765 "port" : {
29766 "type" : "integer"
56122987 29767 },
4d47f125
TL
29768 "ticket" : {
29769 "type" : "string"
7aacca6f 29770 },
4d47f125
TL
29771 "upid" : {
29772 "type" : "string"
29773 },
29774 "user" : {
29775 "type" : "string"
29776 }
29777 }
29778 }
29779 }
29780 },
29781 "leaf" : 1,
29782 "path" : "/nodes/{node}/lxc/{vmid}/termproxy",
29783 "text" : "termproxy"
29784 },
29785 {
29786 "info" : {
29787 "GET" : {
e9cd3bd4 29788 "allowtoken" : 1,
4d47f125
TL
29789 "description" : "Opens a weksocket for VNC traffic.",
29790 "method" : "GET",
29791 "name" : "vncwebsocket",
29792 "parameters" : {
29793 "additionalProperties" : 0,
29794 "properties" : {
29795 "node" : {
29796 "description" : "The cluster node name.",
29797 "format" : "pve-node",
29798 "type" : "string",
29799 "typetext" : "<string>"
29800 },
29801 "port" : {
29802 "description" : "Port number returned by previous vncproxy call.",
29803 "maximum" : 5999,
29804 "minimum" : 5900,
29805 "type" : "integer",
29806 "typetext" : "<integer> (5900 - 5999)"
29807 },
29808 "vmid" : {
29809 "description" : "The (unique) ID of the VM.",
29810 "format" : "pve-vmid",
29811 "minimum" : 1,
29812 "type" : "integer",
29813 "typetext" : "<integer> (1 - N)"
29814 },
29815 "vncticket" : {
29816 "description" : "Ticket from previous call to vncproxy.",
29817 "maxLength" : 512,
29818 "type" : "string",
29819 "typetext" : "<string>"
56122987
DM
29820 }
29821 }
29822 },
4d47f125
TL
29823 "permissions" : {
29824 "check" : [
29825 "perm",
29826 "/vms/{vmid}",
29827 [
29828 "VM.Console"
29829 ]
29830 ],
29831 "description" : "You also need to pass a valid ticket (vncticket)."
29832 },
29833 "returns" : {
29834 "properties" : {
29835 "port" : {
29836 "type" : "string"
29837 }
29838 },
29839 "type" : "object"
29840 }
29841 }
29842 },
29843 "leaf" : 1,
29844 "path" : "/nodes/{node}/lxc/{vmid}/vncwebsocket",
29845 "text" : "vncwebsocket"
29846 },
29847 {
29848 "info" : {
29849 "POST" : {
e9cd3bd4 29850 "allowtoken" : 1,
4d47f125
TL
29851 "description" : "Returns a SPICE configuration to connect to the CT.",
29852 "method" : "POST",
29853 "name" : "spiceproxy",
29854 "parameters" : {
29855 "additionalProperties" : 0,
29856 "properties" : {
29857 "node" : {
29858 "description" : "The cluster node name.",
29859 "format" : "pve-node",
29860 "type" : "string",
29861 "typetext" : "<string>"
56122987 29862 },
4d47f125
TL
29863 "proxy" : {
29864 "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).",
29865 "format" : "address",
29866 "optional" : 1,
29867 "type" : "string",
29868 "typetext" : "<string>"
44660702 29869 },
4d47f125
TL
29870 "vmid" : {
29871 "description" : "The (unique) ID of the VM.",
29872 "format" : "pve-vmid",
29873 "minimum" : 1,
29874 "type" : "integer",
29875 "typetext" : "<integer> (1 - N)"
44660702 29876 }
56122987
DM
29877 }
29878 },
4d47f125
TL
29879 "permissions" : {
29880 "check" : [
29881 "perm",
29882 "/vms/{vmid}",
29883 [
29884 "VM.Console"
29885 ]
29886 ]
29887 },
29888 "protected" : 1,
29889 "proxyto" : "node",
29890 "returns" : {
29891 "additionalProperties" : 1,
29892 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
29893 "properties" : {
29894 "host" : {
29895 "type" : "string"
29896 },
29897 "password" : {
29898 "type" : "string"
29899 },
29900 "proxy" : {
29901 "type" : "string"
29902 },
29903 "tls-port" : {
29904 "type" : "integer"
29905 },
29906 "type" : {
29907 "type" : "string"
29908 }
29909 }
29910 }
29911 }
29912 },
29913 "leaf" : 1,
29914 "path" : "/nodes/{node}/lxc/{vmid}/spiceproxy",
29915 "text" : "spiceproxy"
29916 },
81a3384d
TL
29917 {
29918 "info" : {
29919 "POST" : {
29920 "allowtoken" : 1,
29921 "description" : "Migrate the container to another cluster. Creates a new migration task. EXPERIMENTAL feature!",
29922 "method" : "POST",
29923 "name" : "remote_migrate_vm",
29924 "parameters" : {
29925 "additionalProperties" : 0,
29926 "properties" : {
29927 "bwlimit" : {
29928 "default" : "migrate limit from datacenter or storage config",
29929 "description" : "Override I/O bandwidth limit (in KiB/s).",
29930 "minimum" : "0",
29931 "optional" : 1,
29932 "type" : "number",
29933 "typetext" : "<number> (0 - N)"
29934 },
29935 "delete" : {
29936 "default" : 0,
29937 "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.",
29938 "optional" : 1,
29939 "type" : "boolean",
29940 "typetext" : "<boolean>"
29941 },
29942 "node" : {
29943 "description" : "The cluster node name.",
29944 "format" : "pve-node",
29945 "type" : "string",
29946 "typetext" : "<string>"
29947 },
29948 "online" : {
29949 "description" : "Use online/live migration.",
29950 "optional" : 1,
29951 "type" : "boolean",
29952 "typetext" : "<boolean>"
29953 },
29954 "restart" : {
29955 "description" : "Use restart migration",
29956 "optional" : 1,
29957 "type" : "boolean",
29958 "typetext" : "<boolean>"
29959 },
29960 "target-bridge" : {
29961 "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.",
29962 "format" : "bridge-pair-list",
29963 "type" : "string",
29964 "typetext" : "<string>"
29965 },
29966 "target-endpoint" : {
29967 "description" : "Remote target endpoint",
29968 "format" : "proxmox-remote",
29969 "type" : "string",
29970 "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>]"
29971 },
29972 "target-storage" : {
29973 "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.",
29974 "format" : "storage-pair-list",
29975 "optional" : 0,
29976 "type" : "string",
29977 "typetext" : "<string>"
29978 },
29979 "target-vmid" : {
29980 "description" : "The (unique) ID of the VM.",
29981 "format" : "pve-vmid",
29982 "minimum" : 1,
29983 "optional" : 1,
29984 "type" : "integer",
29985 "typetext" : "<integer> (1 - N)"
29986 },
29987 "timeout" : {
29988 "default" : 180,
29989 "description" : "Timeout in seconds for shutdown for restart migration",
29990 "optional" : 1,
29991 "type" : "integer",
29992 "typetext" : "<integer>"
29993 },
29994 "vmid" : {
29995 "description" : "The (unique) ID of the VM.",
29996 "format" : "pve-vmid",
29997 "minimum" : 1,
29998 "type" : "integer",
29999 "typetext" : "<integer> (1 - N)"
30000 }
30001 }
30002 },
30003 "permissions" : {
30004 "check" : [
30005 "perm",
30006 "/vms/{vmid}",
30007 [
30008 "VM.Migrate"
30009 ]
30010 ]
30011 },
30012 "protected" : 1,
30013 "proxyto" : "node",
30014 "returns" : {
30015 "description" : "the task ID.",
30016 "type" : "string"
30017 }
30018 }
30019 },
30020 "leaf" : 1,
30021 "path" : "/nodes/{node}/lxc/{vmid}/remote_migrate",
30022 "text" : "remote_migrate"
30023 },
4d47f125
TL
30024 {
30025 "info" : {
30026 "POST" : {
e9cd3bd4 30027 "allowtoken" : 1,
4d47f125
TL
30028 "description" : "Migrate the container to another node. Creates a new migration task.",
30029 "method" : "POST",
30030 "name" : "migrate_vm",
30031 "parameters" : {
30032 "additionalProperties" : 0,
30033 "properties" : {
95895385
TL
30034 "bwlimit" : {
30035 "default" : "migrate limit from datacenter or storage config",
30036 "description" : "Override I/O bandwidth limit (in KiB/s).",
30037 "minimum" : "0",
30038 "optional" : 1,
30039 "type" : "number",
30040 "typetext" : "<number> (0 - N)"
30041 },
4d47f125
TL
30042 "node" : {
30043 "description" : "The cluster node name.",
30044 "format" : "pve-node",
30045 "type" : "string",
30046 "typetext" : "<string>"
44660702 30047 },
4d47f125
TL
30048 "online" : {
30049 "description" : "Use online/live migration.",
30050 "optional" : 1,
30051 "type" : "boolean",
30052 "typetext" : "<boolean>"
30053 },
30054 "restart" : {
30055 "description" : "Use restart migration",
30056 "optional" : 1,
30057 "type" : "boolean",
30058 "typetext" : "<boolean>"
30059 },
30060 "target" : {
30061 "description" : "Target node.",
30062 "format" : "pve-node",
30063 "type" : "string",
30064 "typetext" : "<string>"
30065 },
c30bb419
TL
30066 "target-storage" : {
30067 "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.",
30068 "format" : "storage-pair-list",
30069 "optional" : 1,
30070 "type" : "string",
30071 "typetext" : "<string>"
30072 },
4d47f125
TL
30073 "timeout" : {
30074 "default" : 180,
30075 "description" : "Timeout in seconds for shutdown for restart migration",
30076 "optional" : 1,
30077 "type" : "integer",
30078 "typetext" : "<integer>"
30079 },
30080 "vmid" : {
30081 "description" : "The (unique) ID of the VM.",
30082 "format" : "pve-vmid",
30083 "minimum" : 1,
30084 "type" : "integer",
30085 "typetext" : "<integer> (1 - N)"
56122987
DM
30086 }
30087 }
30088 },
4d47f125
TL
30089 "permissions" : {
30090 "check" : [
30091 "perm",
30092 "/vms/{vmid}",
30093 [
30094 "VM.Migrate"
30095 ]
30096 ]
30097 },
30098 "protected" : 1,
30099 "proxyto" : "node",
30100 "returns" : {
30101 "description" : "the task ID.",
30102 "type" : "string"
30103 }
56122987 30104 }
4d47f125
TL
30105 },
30106 "leaf" : 1,
30107 "path" : "/nodes/{node}/lxc/{vmid}/migrate",
30108 "text" : "migrate"
30109 },
30110 {
56122987
DM
30111 "info" : {
30112 "GET" : {
e9cd3bd4 30113 "allowtoken" : 1,
4d47f125 30114 "description" : "Check if feature for virtual machine is available.",
44660702 30115 "method" : "GET",
4d47f125 30116 "name" : "vm_feature",
56122987 30117 "parameters" : {
44660702 30118 "additionalProperties" : 0,
56122987 30119 "properties" : {
4d47f125
TL
30120 "feature" : {
30121 "description" : "Feature to check.",
30122 "enum" : [
30123 "snapshot",
30124 "clone",
30125 "copy"
30126 ],
30127 "type" : "string"
30128 },
56122987 30129 "node" : {
44660702 30130 "description" : "The cluster node name.",
56122987 30131 "format" : "pve-node",
013dc89f
DM
30132 "type" : "string",
30133 "typetext" : "<string>"
44660702 30134 },
4d47f125
TL
30135 "snapname" : {
30136 "description" : "The name of the snapshot.",
30137 "format" : "pve-configid",
30138 "maxLength" : 40,
30139 "optional" : 1,
30140 "type" : "string",
30141 "typetext" : "<string>"
30142 },
44660702
DM
30143 "vmid" : {
30144 "description" : "The (unique) ID of the VM.",
30145 "format" : "pve-vmid",
30146 "minimum" : 1,
4bd7df8b 30147 "type" : "integer",
013dc89f 30148 "typetext" : "<integer> (1 - N)"
56122987 30149 }
44660702
DM
30150 }
30151 },
30152 "permissions" : {
4d47f125
TL
30153 "check" : [
30154 "perm",
30155 "/vms/{vmid}",
30156 [
30157 "VM.Audit"
30158 ]
30159 ]
56122987 30160 },
4d47f125
TL
30161 "protected" : 1,
30162 "proxyto" : "node",
56122987 30163 "returns" : {
4d47f125
TL
30164 "properties" : {
30165 "hasFeature" : {
30166 "type" : "boolean"
30167 }
7aacca6f 30168 },
4d47f125
TL
30169 "type" : "object"
30170 }
30171 }
30172 },
30173 "leaf" : 1,
30174 "path" : "/nodes/{node}/lxc/{vmid}/feature",
30175 "text" : "feature"
30176 },
30177 {
30178 "info" : {
30179 "POST" : {
e9cd3bd4 30180 "allowtoken" : 1,
4d47f125
TL
30181 "description" : "Create a Template.",
30182 "method" : "POST",
30183 "name" : "template",
30184 "parameters" : {
30185 "additionalProperties" : 0,
30186 "properties" : {
30187 "node" : {
30188 "description" : "The cluster node name.",
30189 "format" : "pve-node",
30190 "type" : "string",
30191 "typetext" : "<string>"
30192 },
30193 "vmid" : {
30194 "description" : "The (unique) ID of the VM.",
30195 "format" : "pve-vmid",
30196 "minimum" : 1,
30197 "type" : "integer",
30198 "typetext" : "<integer> (1 - N)"
56122987 30199 }
4d47f125
TL
30200 }
30201 },
30202 "permissions" : {
30203 "check" : [
30204 "perm",
30205 "/vms/{vmid}",
30206 [
30207 "VM.Allocate"
30208 ]
44660702 30209 ],
4d47f125
TL
30210 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
30211 },
30212 "protected" : 1,
30213 "proxyto" : "node",
30214 "returns" : {
30215 "type" : "null"
56122987
DM
30216 }
30217 }
30218 },
4d47f125
TL
30219 "leaf" : 1,
30220 "path" : "/nodes/{node}/lxc/{vmid}/template",
30221 "text" : "template"
56122987
DM
30222 },
30223 {
56122987 30224 "info" : {
4d47f125 30225 "POST" : {
e9cd3bd4 30226 "allowtoken" : 1,
4d47f125
TL
30227 "description" : "Create a container clone/copy",
30228 "method" : "POST",
30229 "name" : "clone_vm",
56122987 30230 "parameters" : {
7aacca6f 30231 "additionalProperties" : 0,
56122987 30232 "properties" : {
95895385
TL
30233 "bwlimit" : {
30234 "default" : "clone limit from datacenter or storage config",
30235 "description" : "Override I/O bandwidth limit (in KiB/s).",
30236 "minimum" : "0",
30237 "optional" : 1,
30238 "type" : "number",
30239 "typetext" : "<number> (0 - N)"
30240 },
4d47f125
TL
30241 "description" : {
30242 "description" : "Description for the new CT.",
44660702 30243 "optional" : 1,
4d47f125
TL
30244 "type" : "string",
30245 "typetext" : "<string>"
44660702 30246 },
4d47f125
TL
30247 "full" : {
30248 "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.",
30249 "optional" : 1,
30250 "type" : "boolean",
30251 "typetext" : "<boolean>"
30252 },
30253 "hostname" : {
30254 "description" : "Set a hostname for the new CT.",
30255 "format" : "dns-name",
30256 "optional" : 1,
013dc89f
DM
30257 "type" : "string",
30258 "typetext" : "<string>"
44660702 30259 },
4d47f125
TL
30260 "newid" : {
30261 "description" : "VMID for the clone.",
30262 "format" : "pve-vmid",
30263 "minimum" : 1,
30264 "type" : "integer",
30265 "typetext" : "<integer> (1 - N)"
30266 },
7aacca6f
DM
30267 "node" : {
30268 "description" : "The cluster node name.",
44660702 30269 "format" : "pve-node",
013dc89f
DM
30270 "type" : "string",
30271 "typetext" : "<string>"
56122987 30272 },
4d47f125
TL
30273 "pool" : {
30274 "description" : "Add the new CT to the specified pool.",
30275 "format" : "pve-poolid",
30276 "optional" : 1,
30277 "type" : "string",
30278 "typetext" : "<string>"
30279 },
30280 "snapname" : {
30281 "description" : "The name of the snapshot.",
30282 "format" : "pve-configid",
30283 "maxLength" : 40,
30284 "optional" : 1,
30285 "type" : "string",
30286 "typetext" : "<string>"
30287 },
30288 "storage" : {
30289 "description" : "Target storage for full clone.",
30290 "format" : "pve-storage-id",
30291 "optional" : 1,
30292 "type" : "string",
30293 "typetext" : "<string>"
30294 },
30295 "target" : {
30296 "description" : "Target node. Only allowed if the original VM is on shared storage.",
30297 "format" : "pve-node",
30298 "optional" : 1,
30299 "type" : "string",
30300 "typetext" : "<string>"
30301 },
7aacca6f 30302 "vmid" : {
44660702 30303 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
30304 "format" : "pve-vmid",
30305 "minimum" : 1,
4bd7df8b 30306 "type" : "integer",
013dc89f 30307 "typetext" : "<integer> (1 - N)"
56122987 30308 }
7aacca6f
DM
30309 }
30310 },
30311 "permissions" : {
30312 "check" : [
4d47f125 30313 "and",
7aacca6f 30314 [
4d47f125
TL
30315 "perm",
30316 "/vms/{vmid}",
30317 [
30318 "VM.Clone"
30319 ]
30320 ],
30321 [
30322 "or",
30323 [
30324 "perm",
30325 "/vms/{newid}",
30326 [
30327 "VM.Allocate"
30328 ]
30329 ],
30330 [
30331 "perm",
30332 "/pool/{pool}",
30333 [
30334 "VM.Allocate"
30335 ],
30336 "require_param",
30337 "pool"
30338 ]
7aacca6f 30339 ]
4d47f125
TL
30340 ],
30341 "description" : "You need 'VM.Clone' permissions on /vms/{vmid}, and 'VM.Allocate' permissions on /vms/{newid} (or on the VM pool /pool/{pool}). You also need 'Datastore.AllocateSpace' on any used storage."
56122987 30342 },
44660702 30343 "protected" : 1,
4d47f125 30344 "proxyto" : "node",
7aacca6f 30345 "returns" : {
4d47f125 30346 "type" : "string"
7aacca6f 30347 }
56122987 30348 }
7aacca6f 30349 },
44660702 30350 "leaf" : 1,
4d47f125
TL
30351 "path" : "/nodes/{node}/lxc/{vmid}/clone",
30352 "text" : "clone"
56122987
DM
30353 },
30354 {
56122987 30355 "info" : {
4d47f125 30356 "PUT" : {
e9cd3bd4 30357 "allowtoken" : 1,
4d47f125
TL
30358 "description" : "Resize a container mount point.",
30359 "method" : "PUT",
30360 "name" : "resize_vm",
56122987 30361 "parameters" : {
7aacca6f 30362 "additionalProperties" : 0,
56122987 30363 "properties" : {
4d47f125
TL
30364 "digest" : {
30365 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
30366 "maxLength" : 40,
30367 "optional" : 1,
30368 "type" : "string",
30369 "typetext" : "<string>"
30370 },
30371 "disk" : {
30372 "description" : "The disk you want to resize.",
44660702 30373 "enum" : [
4d47f125
TL
30374 "rootfs",
30375 "mp0",
30376 "mp1",
30377 "mp2",
30378 "mp3",
30379 "mp4",
30380 "mp5",
30381 "mp6",
30382 "mp7",
30383 "mp8",
30384 "mp9",
30385 "mp10",
30386 "mp11",
30387 "mp12",
30388 "mp13",
30389 "mp14",
30390 "mp15",
30391 "mp16",
30392 "mp17",
30393 "mp18",
30394 "mp19",
30395 "mp20",
30396 "mp21",
30397 "mp22",
30398 "mp23",
30399 "mp24",
30400 "mp25",
30401 "mp26",
30402 "mp27",
30403 "mp28",
30404 "mp29",
30405 "mp30",
30406 "mp31",
30407 "mp32",
30408 "mp33",
30409 "mp34",
30410 "mp35",
30411 "mp36",
30412 "mp37",
30413 "mp38",
30414 "mp39",
30415 "mp40",
30416 "mp41",
30417 "mp42",
30418 "mp43",
30419 "mp44",
30420 "mp45",
30421 "mp46",
30422 "mp47",
30423 "mp48",
30424 "mp49",
30425 "mp50",
30426 "mp51",
30427 "mp52",
30428 "mp53",
30429 "mp54",
30430 "mp55",
30431 "mp56",
30432 "mp57",
30433 "mp58",
30434 "mp59",
30435 "mp60",
30436 "mp61",
30437 "mp62",
30438 "mp63",
30439 "mp64",
30440 "mp65",
30441 "mp66",
30442 "mp67",
30443 "mp68",
30444 "mp69",
30445 "mp70",
30446 "mp71",
30447 "mp72",
30448 "mp73",
30449 "mp74",
30450 "mp75",
30451 "mp76",
30452 "mp77",
30453 "mp78",
30454 "mp79",
30455 "mp80",
30456 "mp81",
30457 "mp82",
30458 "mp83",
30459 "mp84",
30460 "mp85",
30461 "mp86",
30462 "mp87",
30463 "mp88",
30464 "mp89",
30465 "mp90",
30466 "mp91",
30467 "mp92",
30468 "mp93",
30469 "mp94",
30470 "mp95",
30471 "mp96",
30472 "mp97",
30473 "mp98",
30474 "mp99",
30475 "mp100",
30476 "mp101",
30477 "mp102",
30478 "mp103",
30479 "mp104",
30480 "mp105",
30481 "mp106",
30482 "mp107",
30483 "mp108",
30484 "mp109",
30485 "mp110",
30486 "mp111",
30487 "mp112",
30488 "mp113",
30489 "mp114",
30490 "mp115",
30491 "mp116",
30492 "mp117",
30493 "mp118",
30494 "mp119",
30495 "mp120",
30496 "mp121",
30497 "mp122",
30498 "mp123",
30499 "mp124",
30500 "mp125",
30501 "mp126",
30502 "mp127",
30503 "mp128",
30504 "mp129",
30505 "mp130",
30506 "mp131",
30507 "mp132",
30508 "mp133",
30509 "mp134",
30510 "mp135",
30511 "mp136",
30512 "mp137",
30513 "mp138",
30514 "mp139",
30515 "mp140",
30516 "mp141",
30517 "mp142",
30518 "mp143",
30519 "mp144",
30520 "mp145",
30521 "mp146",
30522 "mp147",
30523 "mp148",
30524 "mp149",
30525 "mp150",
30526 "mp151",
30527 "mp152",
30528 "mp153",
30529 "mp154",
30530 "mp155",
30531 "mp156",
30532 "mp157",
30533 "mp158",
30534 "mp159",
30535 "mp160",
30536 "mp161",
30537 "mp162",
30538 "mp163",
30539 "mp164",
30540 "mp165",
30541 "mp166",
30542 "mp167",
30543 "mp168",
30544 "mp169",
30545 "mp170",
30546 "mp171",
30547 "mp172",
30548 "mp173",
30549 "mp174",
30550 "mp175",
30551 "mp176",
30552 "mp177",
30553 "mp178",
30554 "mp179",
30555 "mp180",
30556 "mp181",
30557 "mp182",
30558 "mp183",
30559 "mp184",
30560 "mp185",
30561 "mp186",
30562 "mp187",
30563 "mp188",
30564 "mp189",
30565 "mp190",
30566 "mp191",
30567 "mp192",
30568 "mp193",
30569 "mp194",
30570 "mp195",
30571 "mp196",
30572 "mp197",
30573 "mp198",
30574 "mp199",
30575 "mp200",
30576 "mp201",
30577 "mp202",
30578 "mp203",
30579 "mp204",
30580 "mp205",
30581 "mp206",
30582 "mp207",
30583 "mp208",
30584 "mp209",
30585 "mp210",
30586 "mp211",
30587 "mp212",
30588 "mp213",
30589 "mp214",
30590 "mp215",
30591 "mp216",
30592 "mp217",
30593 "mp218",
30594 "mp219",
30595 "mp220",
30596 "mp221",
30597 "mp222",
30598 "mp223",
30599 "mp224",
30600 "mp225",
30601 "mp226",
30602 "mp227",
30603 "mp228",
30604 "mp229",
30605 "mp230",
30606 "mp231",
30607 "mp232",
30608 "mp233",
30609 "mp234",
30610 "mp235",
30611 "mp236",
30612 "mp237",
30613 "mp238",
30614 "mp239",
30615 "mp240",
30616 "mp241",
30617 "mp242",
30618 "mp243",
30619 "mp244",
30620 "mp245",
30621 "mp246",
30622 "mp247",
30623 "mp248",
30624 "mp249",
30625 "mp250",
30626 "mp251",
30627 "mp252",
30628 "mp253",
30629 "mp254",
30630 "mp255"
44660702 30631 ],
44660702
DM
30632 "type" : "string"
30633 },
7aacca6f 30634 "node" : {
44660702 30635 "description" : "The cluster node name.",
7aacca6f 30636 "format" : "pve-node",
013dc89f
DM
30637 "type" : "string",
30638 "typetext" : "<string>"
7aacca6f 30639 },
4d47f125
TL
30640 "size" : {
30641 "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.",
30642 "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
44660702 30643 "type" : "string"
7aacca6f
DM
30644 },
30645 "vmid" : {
30646 "description" : "The (unique) ID of the VM.",
44660702 30647 "format" : "pve-vmid",
7aacca6f 30648 "minimum" : 1,
4bd7df8b 30649 "type" : "integer",
013dc89f 30650 "typetext" : "<integer> (1 - N)"
56122987 30651 }
56122987
DM
30652 }
30653 },
56122987
DM
30654 "permissions" : {
30655 "check" : [
30656 "perm",
30657 "/vms/{vmid}",
30658 [
4d47f125
TL
30659 "VM.Config.Disk"
30660 ],
30661 "any",
30662 1
56122987
DM
30663 ]
30664 },
7aacca6f 30665 "protected" : 1,
4d47f125 30666 "proxyto" : "node",
7aacca6f 30667 "returns" : {
4d47f125
TL
30668 "description" : "the task ID.",
30669 "type" : "string"
44660702 30670 }
56122987
DM
30671 }
30672 },
44660702 30673 "leaf" : 1,
4d47f125
TL
30674 "path" : "/nodes/{node}/lxc/{vmid}/resize",
30675 "text" : "resize"
56122987
DM
30676 },
30677 {
30678 "info" : {
30679 "POST" : {
e9cd3bd4 30680 "allowtoken" : 1,
5370fa8c 30681 "description" : "Move a rootfs-/mp-volume to a different storage or to a different container.",
44660702 30682 "method" : "POST",
4d47f125 30683 "name" : "move_volume",
7aacca6f 30684 "parameters" : {
44660702 30685 "additionalProperties" : 0,
7aacca6f 30686 "properties" : {
95895385
TL
30687 "bwlimit" : {
30688 "default" : "clone limit from datacenter or storage config",
30689 "description" : "Override I/O bandwidth limit (in KiB/s).",
30690 "minimum" : "0",
30691 "optional" : 1,
30692 "type" : "number",
30693 "typetext" : "<number> (0 - N)"
30694 },
4d47f125
TL
30695 "delete" : {
30696 "default" : 0,
30697 "description" : "Delete the original volume after successful copy. By default the original is kept as an unused volume entry.",
5d9c884c 30698 "optional" : 1,
4d47f125
TL
30699 "type" : "boolean",
30700 "typetext" : "<boolean>"
30701 },
30702 "digest" : {
5370fa8c 30703 "description" : "Prevent changes if current configuration file has different SHA1 \" .\n\t\t \"digest. This can be used to prevent concurrent modifications.",
4d47f125
TL
30704 "maxLength" : 40,
30705 "optional" : 1,
30706 "type" : "string",
30707 "typetext" : "<string>"
5d9c884c 30708 },
44660702
DM
30709 "node" : {
30710 "description" : "The cluster node name.",
30711 "format" : "pve-node",
013dc89f
DM
30712 "type" : "string",
30713 "typetext" : "<string>"
44660702 30714 },
4d47f125
TL
30715 "storage" : {
30716 "description" : "Target Storage.",
30717 "format" : "pve-storage-id",
5370fa8c 30718 "optional" : 1,
4d47f125
TL
30719 "type" : "string",
30720 "typetext" : "<string>"
30721 },
5370fa8c
TL
30722 "target-digest" : {
30723 "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.",
30724 "maxLength" : 40,
30725 "optional" : 1,
30726 "type" : "string",
30727 "typetext" : "<string>"
30728 },
30729 "target-vmid" : {
44660702 30730 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
30731 "format" : "pve-vmid",
30732 "minimum" : 1,
5370fa8c 30733 "optional" : 1,
4bd7df8b 30734 "type" : "integer",
013dc89f 30735 "typetext" : "<integer> (1 - N)"
7aacca6f 30736 },
5370fa8c
TL
30737 "target-volume" : {
30738 "description" : "The config key the volume will be moved to. Default is the source volume key.",
4d47f125
TL
30739 "enum" : [
30740 "rootfs",
30741 "mp0",
30742 "mp1",
30743 "mp2",
30744 "mp3",
30745 "mp4",
30746 "mp5",
30747 "mp6",
30748 "mp7",
30749 "mp8",
30750 "mp9",
30751 "mp10",
30752 "mp11",
30753 "mp12",
30754 "mp13",
30755 "mp14",
30756 "mp15",
30757 "mp16",
30758 "mp17",
30759 "mp18",
30760 "mp19",
30761 "mp20",
30762 "mp21",
30763 "mp22",
30764 "mp23",
30765 "mp24",
30766 "mp25",
30767 "mp26",
30768 "mp27",
30769 "mp28",
30770 "mp29",
30771 "mp30",
30772 "mp31",
30773 "mp32",
30774 "mp33",
30775 "mp34",
30776 "mp35",
30777 "mp36",
30778 "mp37",
30779 "mp38",
30780 "mp39",
30781 "mp40",
30782 "mp41",
30783 "mp42",
30784 "mp43",
30785 "mp44",
30786 "mp45",
30787 "mp46",
30788 "mp47",
30789 "mp48",
30790 "mp49",
30791 "mp50",
30792 "mp51",
30793 "mp52",
30794 "mp53",
30795 "mp54",
30796 "mp55",
30797 "mp56",
30798 "mp57",
30799 "mp58",
30800 "mp59",
30801 "mp60",
30802 "mp61",
30803 "mp62",
30804 "mp63",
30805 "mp64",
30806 "mp65",
30807 "mp66",
30808 "mp67",
30809 "mp68",
30810 "mp69",
30811 "mp70",
30812 "mp71",
30813 "mp72",
30814 "mp73",
30815 "mp74",
30816 "mp75",
30817 "mp76",
30818 "mp77",
30819 "mp78",
30820 "mp79",
30821 "mp80",
30822 "mp81",
30823 "mp82",
30824 "mp83",
30825 "mp84",
30826 "mp85",
30827 "mp86",
30828 "mp87",
30829 "mp88",
30830 "mp89",
30831 "mp90",
30832 "mp91",
30833 "mp92",
30834 "mp93",
30835 "mp94",
30836 "mp95",
30837 "mp96",
30838 "mp97",
30839 "mp98",
30840 "mp99",
30841 "mp100",
30842 "mp101",
30843 "mp102",
30844 "mp103",
30845 "mp104",
30846 "mp105",
30847 "mp106",
30848 "mp107",
30849 "mp108",
30850 "mp109",
30851 "mp110",
30852 "mp111",
30853 "mp112",
30854 "mp113",
30855 "mp114",
30856 "mp115",
30857 "mp116",
30858 "mp117",
30859 "mp118",
30860 "mp119",
30861 "mp120",
30862 "mp121",
30863 "mp122",
30864 "mp123",
30865 "mp124",
30866 "mp125",
30867 "mp126",
30868 "mp127",
30869 "mp128",
30870 "mp129",
30871 "mp130",
30872 "mp131",
30873 "mp132",
30874 "mp133",
30875 "mp134",
30876 "mp135",
30877 "mp136",
30878 "mp137",
30879 "mp138",
30880 "mp139",
30881 "mp140",
30882 "mp141",
30883 "mp142",
30884 "mp143",
30885 "mp144",
30886 "mp145",
30887 "mp146",
30888 "mp147",
30889 "mp148",
30890 "mp149",
30891 "mp150",
30892 "mp151",
30893 "mp152",
30894 "mp153",
30895 "mp154",
30896 "mp155",
30897 "mp156",
30898 "mp157",
30899 "mp158",
30900 "mp159",
30901 "mp160",
30902 "mp161",
30903 "mp162",
30904 "mp163",
30905 "mp164",
30906 "mp165",
30907 "mp166",
30908 "mp167",
30909 "mp168",
30910 "mp169",
30911 "mp170",
30912 "mp171",
30913 "mp172",
30914 "mp173",
30915 "mp174",
30916 "mp175",
30917 "mp176",
30918 "mp177",
30919 "mp178",
30920 "mp179",
30921 "mp180",
30922 "mp181",
30923 "mp182",
30924 "mp183",
30925 "mp184",
30926 "mp185",
30927 "mp186",
30928 "mp187",
30929 "mp188",
30930 "mp189",
30931 "mp190",
30932 "mp191",
30933 "mp192",
30934 "mp193",
30935 "mp194",
30936 "mp195",
30937 "mp196",
30938 "mp197",
30939 "mp198",
30940 "mp199",
30941 "mp200",
30942 "mp201",
30943 "mp202",
30944 "mp203",
30945 "mp204",
30946 "mp205",
30947 "mp206",
30948 "mp207",
30949 "mp208",
30950 "mp209",
30951 "mp210",
30952 "mp211",
30953 "mp212",
30954 "mp213",
30955 "mp214",
30956 "mp215",
30957 "mp216",
30958 "mp217",
30959 "mp218",
30960 "mp219",
30961 "mp220",
30962 "mp221",
30963 "mp222",
30964 "mp223",
30965 "mp224",
30966 "mp225",
30967 "mp226",
30968 "mp227",
30969 "mp228",
30970 "mp229",
30971 "mp230",
30972 "mp231",
30973 "mp232",
30974 "mp233",
30975 "mp234",
30976 "mp235",
30977 "mp236",
30978 "mp237",
30979 "mp238",
30980 "mp239",
30981 "mp240",
30982 "mp241",
30983 "mp242",
30984 "mp243",
30985 "mp244",
30986 "mp245",
30987 "mp246",
30988 "mp247",
30989 "mp248",
30990 "mp249",
30991 "mp250",
30992 "mp251",
30993 "mp252",
30994 "mp253",
30995 "mp254",
5370fa8c
TL
30996 "mp255",
30997 "unused0",
30998 "unused1",
30999 "unused2",
31000 "unused3",
31001 "unused4",
31002 "unused5",
31003 "unused6",
31004 "unused7",
31005 "unused8",
31006 "unused9",
31007 "unused10",
31008 "unused11",
31009 "unused12",
31010 "unused13",
31011 "unused14",
31012 "unused15",
31013 "unused16",
31014 "unused17",
31015 "unused18",
31016 "unused19",
31017 "unused20",
31018 "unused21",
31019 "unused22",
31020 "unused23",
31021 "unused24",
31022 "unused25",
31023 "unused26",
31024 "unused27",
31025 "unused28",
31026 "unused29",
31027 "unused30",
31028 "unused31",
31029 "unused32",
31030 "unused33",
31031 "unused34",
31032 "unused35",
31033 "unused36",
31034 "unused37",
31035 "unused38",
31036 "unused39",
31037 "unused40",
31038 "unused41",
31039 "unused42",
31040 "unused43",
31041 "unused44",
31042 "unused45",
31043 "unused46",
31044 "unused47",
31045 "unused48",
31046 "unused49",
31047 "unused50",
31048 "unused51",
31049 "unused52",
31050 "unused53",
31051 "unused54",
31052 "unused55",
31053 "unused56",
31054 "unused57",
31055 "unused58",
31056 "unused59",
31057 "unused60",
31058 "unused61",
31059 "unused62",
31060 "unused63",
31061 "unused64",
31062 "unused65",
31063 "unused66",
31064 "unused67",
31065 "unused68",
31066 "unused69",
31067 "unused70",
31068 "unused71",
31069 "unused72",
31070 "unused73",
31071 "unused74",
31072 "unused75",
31073 "unused76",
31074 "unused77",
31075 "unused78",
31076 "unused79",
31077 "unused80",
31078 "unused81",
31079 "unused82",
31080 "unused83",
31081 "unused84",
31082 "unused85",
31083 "unused86",
31084 "unused87",
31085 "unused88",
31086 "unused89",
31087 "unused90",
31088 "unused91",
31089 "unused92",
31090 "unused93",
31091 "unused94",
31092 "unused95",
31093 "unused96",
31094 "unused97",
31095 "unused98",
31096 "unused99",
31097 "unused100",
31098 "unused101",
31099 "unused102",
31100 "unused103",
31101 "unused104",
31102 "unused105",
31103 "unused106",
31104 "unused107",
31105 "unused108",
31106 "unused109",
31107 "unused110",
31108 "unused111",
31109 "unused112",
31110 "unused113",
31111 "unused114",
31112 "unused115",
31113 "unused116",
31114 "unused117",
31115 "unused118",
31116 "unused119",
31117 "unused120",
31118 "unused121",
31119 "unused122",
31120 "unused123",
31121 "unused124",
31122 "unused125",
31123 "unused126",
31124 "unused127",
31125 "unused128",
31126 "unused129",
31127 "unused130",
31128 "unused131",
31129 "unused132",
31130 "unused133",
31131 "unused134",
31132 "unused135",
31133 "unused136",
31134 "unused137",
31135 "unused138",
31136 "unused139",
31137 "unused140",
31138 "unused141",
31139 "unused142",
31140 "unused143",
31141 "unused144",
31142 "unused145",
31143 "unused146",
31144 "unused147",
31145 "unused148",
31146 "unused149",
31147 "unused150",
31148 "unused151",
31149 "unused152",
31150 "unused153",
31151 "unused154",
31152 "unused155",
31153 "unused156",
31154 "unused157",
31155 "unused158",
31156 "unused159",
31157 "unused160",
31158 "unused161",
31159 "unused162",
31160 "unused163",
31161 "unused164",
31162 "unused165",
31163 "unused166",
31164 "unused167",
31165 "unused168",
31166 "unused169",
31167 "unused170",
31168 "unused171",
31169 "unused172",
31170 "unused173",
31171 "unused174",
31172 "unused175",
31173 "unused176",
31174 "unused177",
31175 "unused178",
31176 "unused179",
31177 "unused180",
31178 "unused181",
31179 "unused182",
31180 "unused183",
31181 "unused184",
31182 "unused185",
31183 "unused186",
31184 "unused187",
31185 "unused188",
31186 "unused189",
31187 "unused190",
31188 "unused191",
31189 "unused192",
31190 "unused193",
31191 "unused194",
31192 "unused195",
31193 "unused196",
31194 "unused197",
31195 "unused198",
31196 "unused199",
31197 "unused200",
31198 "unused201",
31199 "unused202",
31200 "unused203",
31201 "unused204",
31202 "unused205",
31203 "unused206",
31204 "unused207",
31205 "unused208",
31206 "unused209",
31207 "unused210",
31208 "unused211",
31209 "unused212",
31210 "unused213",
31211 "unused214",
31212 "unused215",
31213 "unused216",
31214 "unused217",
31215 "unused218",
31216 "unused219",
31217 "unused220",
31218 "unused221",
31219 "unused222",
31220 "unused223",
31221 "unused224",
31222 "unused225",
31223 "unused226",
31224 "unused227",
31225 "unused228",
31226 "unused229",
31227 "unused230",
31228 "unused231",
31229 "unused232",
31230 "unused233",
31231 "unused234",
31232 "unused235",
31233 "unused236",
31234 "unused237",
31235 "unused238",
31236 "unused239",
31237 "unused240",
31238 "unused241",
31239 "unused242",
31240 "unused243",
31241 "unused244",
31242 "unused245",
31243 "unused246",
31244 "unused247",
31245 "unused248",
31246 "unused249",
31247 "unused250",
31248 "unused251",
31249 "unused252",
31250 "unused253",
31251 "unused254",
31252 "unused255"
31253 ],
31254 "optional" : 1,
31255 "type" : "string"
31256 },
31257 "vmid" : {
31258 "description" : "The (unique) ID of the VM.",
31259 "format" : "pve-vmid",
31260 "minimum" : 1,
31261 "type" : "integer",
31262 "typetext" : "<integer> (1 - N)"
31263 },
31264 "volume" : {
31265 "description" : "Volume which will be moved.",
31266 "enum" : [
31267 "rootfs",
31268 "mp0",
31269 "mp1",
31270 "mp2",
31271 "mp3",
31272 "mp4",
31273 "mp5",
31274 "mp6",
31275 "mp7",
31276 "mp8",
31277 "mp9",
31278 "mp10",
31279 "mp11",
31280 "mp12",
31281 "mp13",
31282 "mp14",
31283 "mp15",
31284 "mp16",
31285 "mp17",
31286 "mp18",
31287 "mp19",
31288 "mp20",
31289 "mp21",
31290 "mp22",
31291 "mp23",
31292 "mp24",
31293 "mp25",
31294 "mp26",
31295 "mp27",
31296 "mp28",
31297 "mp29",
31298 "mp30",
31299 "mp31",
31300 "mp32",
31301 "mp33",
31302 "mp34",
31303 "mp35",
31304 "mp36",
31305 "mp37",
31306 "mp38",
31307 "mp39",
31308 "mp40",
31309 "mp41",
31310 "mp42",
31311 "mp43",
31312 "mp44",
31313 "mp45",
31314 "mp46",
31315 "mp47",
31316 "mp48",
31317 "mp49",
31318 "mp50",
31319 "mp51",
31320 "mp52",
31321 "mp53",
31322 "mp54",
31323 "mp55",
31324 "mp56",
31325 "mp57",
31326 "mp58",
31327 "mp59",
31328 "mp60",
31329 "mp61",
31330 "mp62",
31331 "mp63",
31332 "mp64",
31333 "mp65",
31334 "mp66",
31335 "mp67",
31336 "mp68",
31337 "mp69",
31338 "mp70",
31339 "mp71",
31340 "mp72",
31341 "mp73",
31342 "mp74",
31343 "mp75",
31344 "mp76",
31345 "mp77",
31346 "mp78",
31347 "mp79",
31348 "mp80",
31349 "mp81",
31350 "mp82",
31351 "mp83",
31352 "mp84",
31353 "mp85",
31354 "mp86",
31355 "mp87",
31356 "mp88",
31357 "mp89",
31358 "mp90",
31359 "mp91",
31360 "mp92",
31361 "mp93",
31362 "mp94",
31363 "mp95",
31364 "mp96",
31365 "mp97",
31366 "mp98",
31367 "mp99",
31368 "mp100",
31369 "mp101",
31370 "mp102",
31371 "mp103",
31372 "mp104",
31373 "mp105",
31374 "mp106",
31375 "mp107",
31376 "mp108",
31377 "mp109",
31378 "mp110",
31379 "mp111",
31380 "mp112",
31381 "mp113",
31382 "mp114",
31383 "mp115",
31384 "mp116",
31385 "mp117",
31386 "mp118",
31387 "mp119",
31388 "mp120",
31389 "mp121",
31390 "mp122",
31391 "mp123",
31392 "mp124",
31393 "mp125",
31394 "mp126",
31395 "mp127",
31396 "mp128",
31397 "mp129",
31398 "mp130",
31399 "mp131",
31400 "mp132",
31401 "mp133",
31402 "mp134",
31403 "mp135",
31404 "mp136",
31405 "mp137",
31406 "mp138",
31407 "mp139",
31408 "mp140",
31409 "mp141",
31410 "mp142",
31411 "mp143",
31412 "mp144",
31413 "mp145",
31414 "mp146",
31415 "mp147",
31416 "mp148",
31417 "mp149",
31418 "mp150",
31419 "mp151",
31420 "mp152",
31421 "mp153",
31422 "mp154",
31423 "mp155",
31424 "mp156",
31425 "mp157",
31426 "mp158",
31427 "mp159",
31428 "mp160",
31429 "mp161",
31430 "mp162",
31431 "mp163",
31432 "mp164",
31433 "mp165",
31434 "mp166",
31435 "mp167",
31436 "mp168",
31437 "mp169",
31438 "mp170",
31439 "mp171",
31440 "mp172",
31441 "mp173",
31442 "mp174",
31443 "mp175",
31444 "mp176",
31445 "mp177",
31446 "mp178",
31447 "mp179",
31448 "mp180",
31449 "mp181",
31450 "mp182",
31451 "mp183",
31452 "mp184",
31453 "mp185",
31454 "mp186",
31455 "mp187",
31456 "mp188",
31457 "mp189",
31458 "mp190",
31459 "mp191",
31460 "mp192",
31461 "mp193",
31462 "mp194",
31463 "mp195",
31464 "mp196",
31465 "mp197",
31466 "mp198",
31467 "mp199",
31468 "mp200",
31469 "mp201",
31470 "mp202",
31471 "mp203",
31472 "mp204",
31473 "mp205",
31474 "mp206",
31475 "mp207",
31476 "mp208",
31477 "mp209",
31478 "mp210",
31479 "mp211",
31480 "mp212",
31481 "mp213",
31482 "mp214",
31483 "mp215",
31484 "mp216",
31485 "mp217",
31486 "mp218",
31487 "mp219",
31488 "mp220",
31489 "mp221",
31490 "mp222",
31491 "mp223",
31492 "mp224",
31493 "mp225",
31494 "mp226",
31495 "mp227",
31496 "mp228",
31497 "mp229",
31498 "mp230",
31499 "mp231",
31500 "mp232",
31501 "mp233",
31502 "mp234",
31503 "mp235",
31504 "mp236",
31505 "mp237",
31506 "mp238",
31507 "mp239",
31508 "mp240",
31509 "mp241",
31510 "mp242",
31511 "mp243",
31512 "mp244",
31513 "mp245",
31514 "mp246",
31515 "mp247",
31516 "mp248",
31517 "mp249",
31518 "mp250",
31519 "mp251",
31520 "mp252",
31521 "mp253",
31522 "mp254",
31523 "mp255",
31524 "unused0",
31525 "unused1",
31526 "unused2",
31527 "unused3",
31528 "unused4",
31529 "unused5",
31530 "unused6",
31531 "unused7",
31532 "unused8",
31533 "unused9",
31534 "unused10",
31535 "unused11",
31536 "unused12",
31537 "unused13",
31538 "unused14",
31539 "unused15",
31540 "unused16",
31541 "unused17",
31542 "unused18",
31543 "unused19",
31544 "unused20",
31545 "unused21",
31546 "unused22",
31547 "unused23",
31548 "unused24",
31549 "unused25",
31550 "unused26",
31551 "unused27",
31552 "unused28",
31553 "unused29",
31554 "unused30",
31555 "unused31",
31556 "unused32",
31557 "unused33",
31558 "unused34",
31559 "unused35",
31560 "unused36",
31561 "unused37",
31562 "unused38",
31563 "unused39",
31564 "unused40",
31565 "unused41",
31566 "unused42",
31567 "unused43",
31568 "unused44",
31569 "unused45",
31570 "unused46",
31571 "unused47",
31572 "unused48",
31573 "unused49",
31574 "unused50",
31575 "unused51",
31576 "unused52",
31577 "unused53",
31578 "unused54",
31579 "unused55",
31580 "unused56",
31581 "unused57",
31582 "unused58",
31583 "unused59",
31584 "unused60",
31585 "unused61",
31586 "unused62",
31587 "unused63",
31588 "unused64",
31589 "unused65",
31590 "unused66",
31591 "unused67",
31592 "unused68",
31593 "unused69",
31594 "unused70",
31595 "unused71",
31596 "unused72",
31597 "unused73",
31598 "unused74",
31599 "unused75",
31600 "unused76",
31601 "unused77",
31602 "unused78",
31603 "unused79",
31604 "unused80",
31605 "unused81",
31606 "unused82",
31607 "unused83",
31608 "unused84",
31609 "unused85",
31610 "unused86",
31611 "unused87",
31612 "unused88",
31613 "unused89",
31614 "unused90",
31615 "unused91",
31616 "unused92",
31617 "unused93",
31618 "unused94",
31619 "unused95",
31620 "unused96",
31621 "unused97",
31622 "unused98",
31623 "unused99",
31624 "unused100",
31625 "unused101",
31626 "unused102",
31627 "unused103",
31628 "unused104",
31629 "unused105",
31630 "unused106",
31631 "unused107",
31632 "unused108",
31633 "unused109",
31634 "unused110",
31635 "unused111",
31636 "unused112",
31637 "unused113",
31638 "unused114",
31639 "unused115",
31640 "unused116",
31641 "unused117",
31642 "unused118",
31643 "unused119",
31644 "unused120",
31645 "unused121",
31646 "unused122",
31647 "unused123",
31648 "unused124",
31649 "unused125",
31650 "unused126",
31651 "unused127",
31652 "unused128",
31653 "unused129",
31654 "unused130",
31655 "unused131",
31656 "unused132",
31657 "unused133",
31658 "unused134",
31659 "unused135",
31660 "unused136",
31661 "unused137",
31662 "unused138",
31663 "unused139",
31664 "unused140",
31665 "unused141",
31666 "unused142",
31667 "unused143",
31668 "unused144",
31669 "unused145",
31670 "unused146",
31671 "unused147",
31672 "unused148",
31673 "unused149",
31674 "unused150",
31675 "unused151",
31676 "unused152",
31677 "unused153",
31678 "unused154",
31679 "unused155",
31680 "unused156",
31681 "unused157",
31682 "unused158",
31683 "unused159",
31684 "unused160",
31685 "unused161",
31686 "unused162",
31687 "unused163",
31688 "unused164",
31689 "unused165",
31690 "unused166",
31691 "unused167",
31692 "unused168",
31693 "unused169",
31694 "unused170",
31695 "unused171",
31696 "unused172",
31697 "unused173",
31698 "unused174",
31699 "unused175",
31700 "unused176",
31701 "unused177",
31702 "unused178",
31703 "unused179",
31704 "unused180",
31705 "unused181",
31706 "unused182",
31707 "unused183",
31708 "unused184",
31709 "unused185",
31710 "unused186",
31711 "unused187",
31712 "unused188",
31713 "unused189",
31714 "unused190",
31715 "unused191",
31716 "unused192",
31717 "unused193",
31718 "unused194",
31719 "unused195",
31720 "unused196",
31721 "unused197",
31722 "unused198",
31723 "unused199",
31724 "unused200",
31725 "unused201",
31726 "unused202",
31727 "unused203",
31728 "unused204",
31729 "unused205",
31730 "unused206",
31731 "unused207",
31732 "unused208",
31733 "unused209",
31734 "unused210",
31735 "unused211",
31736 "unused212",
31737 "unused213",
31738 "unused214",
31739 "unused215",
31740 "unused216",
31741 "unused217",
31742 "unused218",
31743 "unused219",
31744 "unused220",
31745 "unused221",
31746 "unused222",
31747 "unused223",
31748 "unused224",
31749 "unused225",
31750 "unused226",
31751 "unused227",
31752 "unused228",
31753 "unused229",
31754 "unused230",
31755 "unused231",
31756 "unused232",
31757 "unused233",
31758 "unused234",
31759 "unused235",
31760 "unused236",
31761 "unused237",
31762 "unused238",
31763 "unused239",
31764 "unused240",
31765 "unused241",
31766 "unused242",
31767 "unused243",
31768 "unused244",
31769 "unused245",
31770 "unused246",
31771 "unused247",
31772 "unused248",
31773 "unused249",
31774 "unused250",
31775 "unused251",
31776 "unused252",
31777 "unused253",
31778 "unused254",
31779 "unused255"
4d47f125
TL
31780 ],
31781 "type" : "string"
7aacca6f 31782 }
44660702 31783 }
7aacca6f 31784 },
56122987
DM
31785 "permissions" : {
31786 "check" : [
5370fa8c
TL
31787 "perm",
31788 "/vms/{vmid}",
4d47f125 31789 [
5370fa8c 31790 "VM.Config.Disk"
56122987 31791 ]
4d47f125 31792 ],
5370fa8c 31793 "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
31794 },
31795 "protected" : 1,
31796 "proxyto" : "node",
31797 "returns" : {
31798 "type" : "string"
31799 }
31800 }
31801 },
31802 "leaf" : 1,
31803 "path" : "/nodes/{node}/lxc/{vmid}/move_volume",
31804 "text" : "move_volume"
1c532546
TL
31805 },
31806 {
31807 "info" : {
31808 "GET" : {
e9cd3bd4 31809 "allowtoken" : 1,
1c532546
TL
31810 "description" : "Get container configuration, including pending changes.",
31811 "method" : "GET",
31812 "name" : "vm_pending",
31813 "parameters" : {
31814 "additionalProperties" : 0,
31815 "properties" : {
31816 "node" : {
31817 "description" : "The cluster node name.",
31818 "format" : "pve-node",
31819 "type" : "string",
31820 "typetext" : "<string>"
31821 },
31822 "vmid" : {
31823 "description" : "The (unique) ID of the VM.",
31824 "format" : "pve-vmid",
31825 "minimum" : 1,
31826 "type" : "integer",
31827 "typetext" : "<integer> (1 - N)"
31828 }
31829 }
31830 },
31831 "permissions" : {
31832 "check" : [
31833 "perm",
31834 "/vms/{vmid}",
31835 [
31836 "VM.Audit"
31837 ]
31838 ]
31839 },
31840 "proxyto" : "node",
31841 "returns" : {
31842 "items" : {
31843 "properties" : {
31844 "delete" : {
31845 "description" : "Indicates a pending delete request if present and not 0.",
31846 "maximum" : 2,
31847 "minimum" : 0,
31848 "optional" : 1,
31849 "type" : "integer"
31850 },
31851 "key" : {
31852 "description" : "Configuration option name.",
31853 "type" : "string"
31854 },
31855 "pending" : {
31856 "description" : "Pending value.",
31857 "optional" : 1,
31858 "type" : "string"
31859 },
31860 "value" : {
31861 "description" : "Current value.",
31862 "optional" : 1,
31863 "type" : "string"
31864 }
31865 },
31866 "type" : "object"
31867 },
31868 "type" : "array"
31869 }
31870 }
31871 },
31872 "leaf" : 1,
31873 "path" : "/nodes/{node}/lxc/{vmid}/pending",
31874 "text" : "pending"
81a3384d
TL
31875 },
31876 {
31877 "info" : {
31878 "POST" : {
31879 "allowtoken" : 1,
31880 "description" : "Migration tunnel endpoint - only for internal use by CT migration.",
31881 "method" : "POST",
31882 "name" : "mtunnel",
31883 "parameters" : {
31884 "additionalProperties" : 0,
31885 "properties" : {
31886 "bridges" : {
31887 "description" : "List of network bridges to check availability. Will be checked again for actually used bridges during migration.",
31888 "format" : "pve-bridge-id-list",
31889 "optional" : 1,
31890 "type" : "string",
31891 "typetext" : "<string>"
31892 },
31893 "node" : {
31894 "description" : "The cluster node name.",
31895 "format" : "pve-node",
31896 "type" : "string",
31897 "typetext" : "<string>"
31898 },
31899 "storages" : {
31900 "description" : "List of storages to check permission and availability. Will be checked again for all actually used storages during migration.",
31901 "format" : "pve-storage-id-list",
31902 "optional" : 1,
31903 "type" : "string",
31904 "typetext" : "<string>"
31905 },
31906 "vmid" : {
31907 "description" : "The (unique) ID of the VM.",
31908 "format" : "pve-vmid",
31909 "minimum" : 1,
31910 "type" : "integer",
31911 "typetext" : "<integer> (1 - N)"
31912 }
31913 }
31914 },
31915 "permissions" : {
31916 "check" : [
31917 "and",
31918 [
31919 "perm",
31920 "/vms/{vmid}",
31921 [
31922 "VM.Allocate"
31923 ]
31924 ],
31925 [
31926 "perm",
31927 "/",
31928 [
31929 "Sys.Incoming"
31930 ]
31931 ]
31932 ],
31933 "description" : "You need 'VM.Allocate' permissions on '/vms/{vmid}' and Sys.Incoming on '/'. Further permission checks happen during the actual migration."
31934 },
31935 "protected" : 1,
31936 "returns" : {
31937 "additionalProperties" : 0,
31938 "properties" : {
31939 "socket" : {
31940 "type" : "string"
31941 },
31942 "ticket" : {
31943 "type" : "string"
31944 },
31945 "upid" : {
31946 "type" : "string"
31947 }
31948 }
31949 }
31950 }
31951 },
31952 "leaf" : 1,
31953 "path" : "/nodes/{node}/lxc/{vmid}/mtunnel",
31954 "text" : "mtunnel"
31955 },
31956 {
31957 "info" : {
31958 "GET" : {
31959 "allowtoken" : 1,
31960 "description" : "Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.",
31961 "method" : "GET",
31962 "name" : "mtunnelwebsocket",
31963 "parameters" : {
31964 "additionalProperties" : 0,
31965 "properties" : {
31966 "node" : {
31967 "description" : "The cluster node name.",
31968 "format" : "pve-node",
31969 "type" : "string",
31970 "typetext" : "<string>"
31971 },
31972 "socket" : {
31973 "description" : "unix socket to forward to",
31974 "type" : "string",
31975 "typetext" : "<string>"
31976 },
31977 "ticket" : {
31978 "description" : "ticket return by initial 'mtunnel' API call, or retrieved via 'ticket' tunnel command",
31979 "type" : "string",
31980 "typetext" : "<string>"
31981 },
31982 "vmid" : {
31983 "description" : "The (unique) ID of the VM.",
31984 "format" : "pve-vmid",
31985 "minimum" : 1,
31986 "type" : "integer",
31987 "typetext" : "<integer> (1 - N)"
31988 }
31989 }
31990 },
31991 "permissions" : {
31992 "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.",
31993 "user" : "all"
31994 },
31995 "returns" : {
31996 "properties" : {
31997 "port" : {
31998 "optional" : 1,
31999 "type" : "string"
32000 },
32001 "socket" : {
32002 "optional" : 1,
32003 "type" : "string"
32004 }
32005 },
32006 "type" : "object"
32007 }
32008 }
32009 },
32010 "leaf" : 1,
32011 "path" : "/nodes/{node}/lxc/{vmid}/mtunnelwebsocket",
32012 "text" : "mtunnelwebsocket"
4d47f125
TL
32013 }
32014 ],
32015 "info" : {
32016 "DELETE" : {
e9cd3bd4 32017 "allowtoken" : 1,
4d47f125
TL
32018 "description" : "Destroy the container (also delete all uses files).",
32019 "method" : "DELETE",
32020 "name" : "destroy_vm",
32021 "parameters" : {
32022 "additionalProperties" : 0,
32023 "properties" : {
d2656385
TL
32024 "destroy-unreferenced-disks" : {
32025 "description" : "If set, destroy additionally all disks with the VMID from all enabled storages which are not referenced in the config.",
32026 "optional" : 1,
32027 "type" : "boolean",
32028 "typetext" : "<boolean>"
32029 },
c5aa7e14
TL
32030 "force" : {
32031 "default" : 0,
32032 "description" : "Force destroy, even if running.",
32033 "optional" : 1,
32034 "type" : "boolean",
32035 "typetext" : "<boolean>"
32036 },
4d47f125
TL
32037 "node" : {
32038 "description" : "The cluster node name.",
32039 "format" : "pve-node",
32040 "type" : "string",
32041 "typetext" : "<string>"
32042 },
1c532546 32043 "purge" : {
c5aa7e14
TL
32044 "default" : 0,
32045 "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
32046 "optional" : 1,
32047 "type" : "boolean",
32048 "typetext" : "<boolean>"
32049 },
4d47f125
TL
32050 "vmid" : {
32051 "description" : "The (unique) ID of the VM.",
32052 "format" : "pve-vmid",
32053 "minimum" : 1,
32054 "type" : "integer",
32055 "typetext" : "<integer> (1 - N)"
32056 }
32057 }
32058 },
32059 "permissions" : {
32060 "check" : [
32061 "perm",
32062 "/vms/{vmid}",
32063 [
32064 "VM.Allocate"
32065 ]
32066 ]
32067 },
32068 "protected" : 1,
32069 "proxyto" : "node",
32070 "returns" : {
32071 "type" : "string"
32072 }
32073 },
32074 "GET" : {
e9cd3bd4 32075 "allowtoken" : 1,
4d47f125
TL
32076 "description" : "Directory index",
32077 "method" : "GET",
32078 "name" : "vmdiridx",
32079 "parameters" : {
32080 "additionalProperties" : 0,
32081 "properties" : {
32082 "node" : {
32083 "description" : "The cluster node name.",
32084 "format" : "pve-node",
32085 "type" : "string",
32086 "typetext" : "<string>"
56122987 32087 },
4d47f125
TL
32088 "vmid" : {
32089 "description" : "The (unique) ID of the VM.",
32090 "format" : "pve-vmid",
32091 "minimum" : 1,
32092 "type" : "integer",
32093 "typetext" : "<integer> (1 - N)"
56122987
DM
32094 }
32095 }
32096 },
4d47f125
TL
32097 "permissions" : {
32098 "user" : "all"
32099 },
32100 "proxyto" : "node",
32101 "returns" : {
32102 "items" : {
32103 "properties" : {
32104 "subdir" : {
32105 "type" : "string"
35a75dd3
DM
32106 }
32107 },
4d47f125
TL
32108 "type" : "object"
32109 },
32110 "links" : [
32111 {
32112 "href" : "{subdir}",
32113 "rel" : "child"
35a75dd3 32114 }
4d47f125
TL
32115 ],
32116 "type" : "array"
32117 }
32118 }
32119 },
32120 "leaf" : 0,
32121 "path" : "/nodes/{node}/lxc/{vmid}",
32122 "text" : "{vmid}"
32123 }
32124 ],
32125 "info" : {
32126 "GET" : {
e9cd3bd4 32127 "allowtoken" : 1,
4d47f125
TL
32128 "description" : "LXC container index (per node).",
32129 "method" : "GET",
32130 "name" : "vmlist",
32131 "parameters" : {
32132 "additionalProperties" : 0,
32133 "properties" : {
32134 "node" : {
32135 "description" : "The cluster node name.",
32136 "format" : "pve-node",
32137 "type" : "string",
32138 "typetext" : "<string>"
32139 }
32140 }
32141 },
32142 "permissions" : {
32143 "description" : "Only list CTs where you have VM.Audit permissons on /vms/<vmid>.",
32144 "user" : "all"
32145 },
32146 "protected" : 1,
32147 "proxyto" : "node",
32148 "returns" : {
32149 "items" : {
32150 "properties" : {
32151 "cpus" : {
32152 "description" : "Maximum usable CPUs.",
32153 "optional" : 1,
32154 "type" : "number"
32155 },
95895385
TL
32156 "lock" : {
32157 "description" : "The current config lock, if any.",
32158 "optional" : 1,
32159 "type" : "string"
32160 },
4d47f125
TL
32161 "maxdisk" : {
32162 "description" : "Root disk size in bytes.",
32163 "optional" : 1,
32164 "renderer" : "bytes",
32165 "type" : "integer"
32166 },
32167 "maxmem" : {
32168 "description" : "Maximum memory in bytes.",
32169 "optional" : 1,
32170 "renderer" : "bytes",
32171 "type" : "integer"
32172 },
32173 "maxswap" : {
32174 "description" : "Maximum SWAP memory in bytes.",
32175 "optional" : 1,
32176 "renderer" : "bytes",
32177 "type" : "integer"
32178 },
32179 "name" : {
32180 "description" : "Container name.",
32181 "optional" : 1,
32182 "type" : "string"
32183 },
32184 "status" : {
32185 "description" : "LXC Container status.",
32186 "enum" : [
32187 "stopped",
32188 "running"
32189 ],
32190 "type" : "string"
32191 },
5c1699e5
TL
32192 "tags" : {
32193 "description" : "The current configured tags, if any.",
32194 "optional" : 1,
32195 "type" : "string"
32196 },
4d47f125
TL
32197 "uptime" : {
32198 "description" : "Uptime.",
32199 "optional" : 1,
32200 "renderer" : "duration",
32201 "type" : "integer"
32202 },
32203 "vmid" : {
32204 "description" : "The (unique) ID of the VM.",
32205 "format" : "pve-vmid",
32206 "minimum" : 1,
32207 "type" : "integer"
35a75dd3
DM
32208 }
32209 },
4d47f125 32210 "type" : "object"
35a75dd3 32211 },
4d47f125
TL
32212 "links" : [
32213 {
32214 "href" : "{vmid}",
32215 "rel" : "child"
32216 }
32217 ],
32218 "type" : "array"
32219 }
32220 },
32221 "POST" : {
e9cd3bd4 32222 "allowtoken" : 1,
4d47f125
TL
32223 "description" : "Create or restore a container.",
32224 "method" : "POST",
32225 "name" : "create_vm",
32226 "parameters" : {
32227 "additionalProperties" : 0,
32228 "properties" : {
32229 "arch" : {
32230 "default" : "amd64",
32231 "description" : "OS architecture type.",
32232 "enum" : [
32233 "amd64",
32234 "i386",
32235 "arm64",
32236 "armhf"
32237 ],
32238 "optional" : 1,
32239 "type" : "string"
32240 },
32241 "bwlimit" : {
95895385
TL
32242 "default" : "restore limit from datacenter or storage config",
32243 "description" : "Override I/O bandwidth limit (in KiB/s).",
4d47f125
TL
32244 "minimum" : "0",
32245 "optional" : 1,
32246 "type" : "number",
32247 "typetext" : "<number> (0 - N)"
32248 },
32249 "cmode" : {
32250 "default" : "tty",
32251 "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).",
32252 "enum" : [
32253 "shell",
32254 "console",
32255 "tty"
32256 ],
32257 "optional" : 1,
32258 "type" : "string"
32259 },
32260 "console" : {
32261 "default" : 1,
32262 "description" : "Attach a console device (/dev/console) to the container.",
32263 "optional" : 1,
32264 "type" : "boolean",
32265 "typetext" : "<boolean>"
32266 },
32267 "cores" : {
32268 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 32269 "maximum" : 8192,
4d47f125
TL
32270 "minimum" : 1,
32271 "optional" : 1,
32272 "type" : "integer",
4772952b 32273 "typetext" : "<integer> (1 - 8192)"
4d47f125
TL
32274 },
32275 "cpulimit" : {
32276 "default" : 0,
32277 "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 32278 "maximum" : 8192,
4d47f125
TL
32279 "minimum" : 0,
32280 "optional" : 1,
32281 "type" : "number",
4772952b 32282 "typetext" : "<number> (0 - 8192)"
4d47f125
TL
32283 },
32284 "cpuunits" : {
4e7f60c2
TL
32285 "default" : "cgroup v1: 1024, cgroup v2: 100",
32286 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
4d47f125
TL
32287 "maximum" : 500000,
32288 "minimum" : 0,
32289 "optional" : 1,
32290 "type" : "integer",
4e7f60c2
TL
32291 "typetext" : "<integer> (0 - 500000)",
32292 "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 32293 },
739d4d64
TL
32294 "debug" : {
32295 "default" : 0,
32296 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
32297 "optional" : 1,
32298 "type" : "boolean",
32299 "typetext" : "<boolean>"
32300 },
4d47f125 32301 "description" : {
8f4d9c87
TL
32302 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
32303 "maxLength" : 8192,
4d47f125
TL
32304 "optional" : 1,
32305 "type" : "string",
32306 "typetext" : "<string>"
32307 },
32308 "features" : {
32309 "description" : "Allow containers access to advanced features.",
32310 "format" : {
c5aa7e14
TL
32311 "force_rw_sys" : {
32312 "default" : 0,
32313 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
32314 "optional" : 1,
32315 "type" : "boolean"
32316 },
e2d681b3
TL
32317 "fuse" : {
32318 "default" : 0,
32319 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
32320 "optional" : 1,
32321 "type" : "boolean"
32322 },
4d47f125
TL
32323 "keyctl" : {
32324 "default" : 0,
32325 "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.",
32326 "optional" : 1,
32327 "type" : "boolean"
7aacca6f 32328 },
c5aa7e14
TL
32329 "mknod" : {
32330 "default" : 0,
32331 "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.",
32332 "optional" : 1,
32333 "type" : "boolean"
32334 },
4d47f125
TL
32335 "mount" : {
32336 "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.",
32337 "format_description" : "fstype;fstype;...",
32338 "optional" : 1,
95895385 32339 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125 32340 "type" : "string"
56122987 32341 },
4d47f125
TL
32342 "nesting" : {
32343 "default" : 0,
32344 "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.",
32345 "optional" : 1,
32346 "type" : "boolean"
44660702 32347 }
4d47f125
TL
32348 },
32349 "optional" : 1,
32350 "type" : "string",
c5aa7e14 32351 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
56122987 32352 },
4d47f125
TL
32353 "force" : {
32354 "description" : "Allow to overwrite existing container.",
32355 "optional" : 1,
32356 "type" : "boolean",
32357 "typetext" : "<boolean>"
32358 },
5f26e15b
TL
32359 "hookscript" : {
32360 "description" : "Script that will be exectued during various steps in the containers lifetime.",
32361 "format" : "pve-volume-id",
32362 "optional" : 1,
32363 "type" : "string",
32364 "typetext" : "<string>"
32365 },
4d47f125
TL
32366 "hostname" : {
32367 "description" : "Set a host name for the container.",
32368 "format" : "dns-name",
32369 "maxLength" : 255,
32370 "optional" : 1,
32371 "type" : "string",
32372 "typetext" : "<string>"
32373 },
32374 "ignore-unpack-errors" : {
32375 "description" : "Ignore errors when extracting the template.",
32376 "optional" : 1,
32377 "type" : "boolean",
32378 "typetext" : "<boolean>"
32379 },
32380 "lock" : {
4e7f60c2 32381 "description" : "Lock/unlock the container.",
4d47f125
TL
32382 "enum" : [
32383 "backup",
bb4c8cf8 32384 "create",
1c532546 32385 "destroyed",
4d47f125 32386 "disk",
bb4c8cf8 32387 "fstrim",
4d47f125
TL
32388 "migrate",
32389 "mounted",
32390 "rollback",
32391 "snapshot",
32392 "snapshot-delete"
32393 ],
32394 "optional" : 1,
32395 "type" : "string"
32396 },
32397 "memory" : {
32398 "default" : 512,
4e7f60c2 32399 "description" : "Amount of RAM for the container in MB.",
4d47f125
TL
32400 "minimum" : 16,
32401 "optional" : 1,
32402 "type" : "integer",
32403 "typetext" : "<integer> (16 - N)"
32404 },
32405 "mp[n]" : {
d2656385 32406 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
4d47f125
TL
32407 "format" : {
32408 "acl" : {
32409 "description" : "Explicitly enable or disable ACL support.",
32410 "optional" : 1,
32411 "type" : "boolean"
56122987 32412 },
4d47f125
TL
32413 "backup" : {
32414 "description" : "Whether to include the mount point in backups.",
32415 "optional" : 1,
32416 "type" : "boolean",
32417 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
56122987 32418 },
7cbed89a
TL
32419 "mountoptions" : {
32420 "description" : "Extra mount options for rootfs/mps.",
32421 "format_description" : "opt[;opt...]",
32422 "optional" : 1,
c30bb419 32423 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
32424 "type" : "string"
32425 },
4d47f125
TL
32426 "mp" : {
32427 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
32428 "format" : "pve-lxc-mp-string",
32429 "format_description" : "Path",
32430 "type" : "string",
32431 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
7aacca6f 32432 },
4d47f125
TL
32433 "quota" : {
32434 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
32435 "optional" : 1,
32436 "type" : "boolean"
32437 },
32438 "replicate" : {
32439 "default" : 1,
32440 "description" : "Will include this volume to a storage replica job.",
32441 "optional" : 1,
32442 "type" : "boolean"
32443 },
32444 "ro" : {
32445 "description" : "Read-only mount point",
32446 "optional" : 1,
32447 "type" : "boolean"
32448 },
32449 "shared" : {
32450 "default" : 0,
32451 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
32452 "optional" : 1,
32453 "type" : "boolean",
32454 "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 32455 },
4d47f125
TL
32456 "size" : {
32457 "description" : "Volume size (read only value).",
32458 "format" : "disk-size",
32459 "format_description" : "DiskSize",
32460 "optional" : 1,
32461 "type" : "string"
32462 },
32463 "volume" : {
32464 "default_key" : 1,
32465 "description" : "Volume, device or directory to mount into the container.",
32466 "format" : "pve-lxc-mp-string",
32467 "format_description" : "volume",
44660702
DM
32468 "type" : "string"
32469 }
4d47f125
TL
32470 },
32471 "optional" : 1,
32472 "type" : "string",
7cbed89a 32473 "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 32474 },
4d47f125
TL
32475 "nameserver" : {
32476 "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 32477 "format" : "lxc-ip-with-ll-iface-list",
4d47f125
TL
32478 "optional" : 1,
32479 "type" : "string",
32480 "typetext" : "<string>"
32481 },
32482 "net[n]" : {
32483 "description" : "Specifies network interfaces for the container.",
32484 "format" : {
32485 "bridge" : {
32486 "description" : "Bridge to attach the network device to.",
32487 "format_description" : "bridge",
32488 "optional" : 1,
32489 "pattern" : "[-_.\\w\\d]+",
32490 "type" : "string"
56122987 32491 },
4d47f125
TL
32492 "firewall" : {
32493 "description" : "Controls whether this interface's firewall rules should be used.",
32494 "optional" : 1,
32495 "type" : "boolean"
56122987 32496 },
4d47f125
TL
32497 "gw" : {
32498 "description" : "Default gateway for IPv4 traffic.",
32499 "format" : "ipv4",
32500 "format_description" : "GatewayIPv4",
32501 "optional" : 1,
32502 "type" : "string"
32503 },
32504 "gw6" : {
32505 "description" : "Default gateway for IPv6 traffic.",
32506 "format" : "ipv6",
32507 "format_description" : "GatewayIPv6",
32508 "optional" : 1,
32509 "type" : "string"
32510 },
32511 "hwaddr" : {
32512 "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 32513 "format" : "mac-addr",
4d47f125
TL
32514 "format_description" : "XX:XX:XX:XX:XX:XX",
32515 "optional" : 1,
95895385
TL
32516 "type" : "string",
32517 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
32518 },
32519 "ip" : {
32520 "description" : "IPv4 address in CIDR format.",
32521 "format" : "pve-ipv4-config",
32522 "format_description" : "(IPv4/CIDR|dhcp|manual)",
32523 "optional" : 1,
32524 "type" : "string"
32525 },
32526 "ip6" : {
32527 "description" : "IPv6 address in CIDR format.",
32528 "format" : "pve-ipv6-config",
32529 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
32530 "optional" : 1,
32531 "type" : "string"
32532 },
32533 "mtu" : {
32534 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 32535 "maximum" : 65535,
4d47f125
TL
32536 "minimum" : 64,
32537 "optional" : 1,
32538 "type" : "integer"
32539 },
32540 "name" : {
32541 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
32542 "format_description" : "string",
32543 "pattern" : "[-_.\\w\\d]+",
32544 "type" : "string"
32545 },
32546 "rate" : {
32547 "description" : "Apply rate limiting to the interface",
32548 "format_description" : "mbps",
32549 "optional" : 1,
32550 "type" : "number"
32551 },
32552 "tag" : {
32553 "description" : "VLAN tag for this interface.",
32554 "maximum" : 4094,
32555 "minimum" : 1,
32556 "optional" : 1,
32557 "type" : "integer"
32558 },
32559 "trunks" : {
32560 "description" : "VLAN ids to pass through the interface",
32561 "format_description" : "vlanid[;vlanid...]",
32562 "optional" : 1,
32563 "pattern" : "(?^:\\d+(?:;\\d+)*)",
32564 "type" : "string"
32565 },
32566 "type" : {
32567 "description" : "Network interface type.",
32568 "enum" : [
32569 "veth"
32570 ],
32571 "optional" : 1,
32572 "type" : "string"
7aacca6f 32573 }
4d47f125
TL
32574 },
32575 "optional" : 1,
32576 "type" : "string",
32577 "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
56122987 32578 },
4d47f125
TL
32579 "node" : {
32580 "description" : "The cluster node name.",
32581 "format" : "pve-node",
32582 "type" : "string",
32583 "typetext" : "<string>"
32584 },
32585 "onboot" : {
32586 "default" : 0,
4e7f60c2 32587 "description" : "Specifies whether a container will be started during system bootup.",
4d47f125
TL
32588 "optional" : 1,
32589 "type" : "boolean",
32590 "typetext" : "<boolean>"
32591 },
32592 "ostemplate" : {
32593 "description" : "The OS template or backup file.",
32594 "maxLength" : 255,
32595 "type" : "string",
32596 "typetext" : "<string>"
32597 },
32598 "ostype" : {
32599 "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.",
32600 "enum" : [
32601 "debian",
d2656385 32602 "devuan",
4d47f125
TL
32603 "ubuntu",
32604 "centos",
32605 "fedora",
32606 "opensuse",
32607 "archlinux",
32608 "alpine",
32609 "gentoo",
7af2edf9 32610 "nixos",
4d47f125
TL
32611 "unmanaged"
32612 ],
32613 "optional" : 1,
32614 "type" : "string"
32615 },
32616 "password" : {
32617 "description" : "Sets root password inside container.",
32618 "minLength" : 5,
32619 "optional" : 1,
32620 "type" : "string",
32621 "typetext" : "<string>"
32622 },
32623 "pool" : {
32624 "description" : "Add the VM to the specified pool.",
32625 "format" : "pve-poolid",
32626 "optional" : 1,
32627 "type" : "string",
32628 "typetext" : "<string>"
32629 },
32630 "protection" : {
32631 "default" : 0,
32632 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
32633 "optional" : 1,
32634 "type" : "boolean",
32635 "typetext" : "<boolean>"
32636 },
32637 "restore" : {
32638 "description" : "Mark this as restore task.",
32639 "optional" : 1,
32640 "type" : "boolean",
32641 "typetext" : "<boolean>"
32642 },
32643 "rootfs" : {
32644 "description" : "Use volume as container root.",
32645 "format" : {
32646 "acl" : {
32647 "description" : "Explicitly enable or disable ACL support.",
32648 "optional" : 1,
32649 "type" : "boolean"
56122987 32650 },
7cbed89a
TL
32651 "mountoptions" : {
32652 "description" : "Extra mount options for rootfs/mps.",
32653 "format_description" : "opt[;opt...]",
32654 "optional" : 1,
c30bb419 32655 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
32656 "type" : "string"
32657 },
4d47f125
TL
32658 "quota" : {
32659 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
32660 "optional" : 1,
32661 "type" : "boolean"
7aacca6f 32662 },
4d47f125
TL
32663 "replicate" : {
32664 "default" : 1,
32665 "description" : "Will include this volume to a storage replica job.",
32666 "optional" : 1,
32667 "type" : "boolean"
32668 },
32669 "ro" : {
32670 "description" : "Read-only mount point",
32671 "optional" : 1,
32672 "type" : "boolean"
32673 },
32674 "shared" : {
32675 "default" : 0,
32676 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
32677 "optional" : 1,
32678 "type" : "boolean",
32679 "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!"
32680 },
32681 "size" : {
32682 "description" : "Volume size (read only value).",
32683 "format" : "disk-size",
32684 "format_description" : "DiskSize",
32685 "optional" : 1,
32686 "type" : "string"
32687 },
32688 "volume" : {
32689 "default_key" : 1,
32690 "description" : "Volume, device or directory to mount into the container.",
32691 "format" : "pve-lxc-mp-string",
32692 "format_description" : "volume",
32693 "type" : "string"
56122987 32694 }
4d47f125
TL
32695 },
32696 "optional" : 1,
32697 "type" : "string",
7cbed89a 32698 "typetext" : "[volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
56122987 32699 },
4d47f125
TL
32700 "searchdomain" : {
32701 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
32702 "format" : "dns-name-list",
32703 "optional" : 1,
32704 "type" : "string",
32705 "typetext" : "<string>"
32706 },
32707 "ssh-public-keys" : {
32708 "description" : "Setup public SSH keys (one key per line, OpenSSH format).",
32709 "optional" : 1,
32710 "type" : "string",
32711 "typetext" : "<string>"
32712 },
32713 "start" : {
32714 "default" : 0,
32715 "description" : "Start the CT after its creation finished successfully.",
32716 "optional" : 1,
32717 "type" : "boolean",
32718 "typetext" : "<boolean>"
32719 },
32720 "startup" : {
32721 "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.",
32722 "format" : "pve-startup-order",
32723 "optional" : 1,
32724 "type" : "string",
32725 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
32726 },
32727 "storage" : {
32728 "default" : "local",
32729 "description" : "Default Storage.",
32730 "format" : "pve-storage-id",
32731 "optional" : 1,
32732 "type" : "string",
32733 "typetext" : "<string>"
32734 },
32735 "swap" : {
32736 "default" : 512,
4e7f60c2 32737 "description" : "Amount of SWAP for the container in MB.",
4d47f125
TL
32738 "minimum" : 0,
32739 "optional" : 1,
32740 "type" : "integer",
32741 "typetext" : "<integer> (0 - N)"
32742 },
5c1699e5
TL
32743 "tags" : {
32744 "description" : "Tags of the Container. This is only meta information.",
32745 "format" : "pve-tag-list",
32746 "optional" : 1,
32747 "type" : "string",
32748 "typetext" : "<string>"
32749 },
4d47f125
TL
32750 "template" : {
32751 "default" : 0,
32752 "description" : "Enable/disable Template.",
32753 "optional" : 1,
32754 "type" : "boolean",
32755 "typetext" : "<boolean>"
32756 },
04d22a9f
TL
32757 "timezone" : {
32758 "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",
32759 "format" : "pve-ct-timezone",
32760 "optional" : 1,
32761 "type" : "string",
32762 "typetext" : "<string>"
32763 },
4d47f125
TL
32764 "tty" : {
32765 "default" : 2,
32766 "description" : "Specify the number of tty available to the container",
32767 "maximum" : 6,
32768 "minimum" : 0,
32769 "optional" : 1,
32770 "type" : "integer",
32771 "typetext" : "<integer> (0 - 6)"
32772 },
95895385
TL
32773 "unique" : {
32774 "description" : "Assign a unique random ethernet address.",
32775 "optional" : 1,
32776 "requires" : "restore",
32777 "type" : "boolean",
32778 "typetext" : "<boolean>"
32779 },
4d47f125
TL
32780 "unprivileged" : {
32781 "default" : 0,
32782 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
32783 "optional" : 1,
32784 "type" : "boolean",
32785 "typetext" : "<boolean>"
32786 },
32787 "unused[n]" : {
32788 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
32789 "format" : {
32790 "volume" : {
32791 "default_key" : 1,
32792 "description" : "The volume that is not used currently.",
32793 "format" : "pve-volume-id",
32794 "format_description" : "volume",
32795 "type" : "string"
32796 }
32797 },
4d47f125
TL
32798 "optional" : 1,
32799 "type" : "string",
c5aa7e14 32800 "typetext" : "[volume=]<volume>"
4d47f125
TL
32801 },
32802 "vmid" : {
32803 "description" : "The (unique) ID of the VM.",
32804 "format" : "pve-vmid",
32805 "minimum" : 1,
32806 "type" : "integer",
32807 "typetext" : "<integer> (1 - N)"
32808 }
32809 }
32810 },
32811 "permissions" : {
32812 "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.",
32813 "user" : "all"
32814 },
32815 "protected" : 1,
32816 "proxyto" : "node",
32817 "returns" : {
32818 "type" : "string"
32819 }
32820 }
32821 },
32822 "leaf" : 0,
32823 "path" : "/nodes/{node}/lxc",
32824 "text" : "lxc"
32825 },
32826 {
32827 "children" : [
32828 {
32829 "children" : [
56122987 32830 {
4d47f125
TL
32831 "children" : [
32832 {
32833 "info" : {
32834 "POST" : {
e9cd3bd4 32835 "allowtoken" : 1,
4d47f125
TL
32836 "description" : "ceph osd in",
32837 "method" : "POST",
32838 "name" : "in",
32839 "parameters" : {
32840 "additionalProperties" : 0,
32841 "properties" : {
32842 "node" : {
32843 "description" : "The cluster node name.",
32844 "format" : "pve-node",
32845 "type" : "string",
32846 "typetext" : "<string>"
32847 },
32848 "osdid" : {
32849 "description" : "OSD ID",
32850 "type" : "integer",
32851 "typetext" : "<integer>"
32852 }
32853 }
27a7acb2 32854 },
4d47f125
TL
32855 "permissions" : {
32856 "check" : [
32857 "perm",
32858 "/",
32859 [
32860 "Sys.Modify"
32861 ]
32862 ]
44660702 32863 },
4d47f125
TL
32864 "protected" : 1,
32865 "proxyto" : "node",
32866 "returns" : {
32867 "type" : "null"
7aacca6f
DM
32868 }
32869 }
56122987 32870 },
4d47f125
TL
32871 "leaf" : 1,
32872 "path" : "/nodes/{node}/ceph/osd/{osdid}/in",
32873 "text" : "in"
32874 },
32875 {
32876 "info" : {
32877 "POST" : {
e9cd3bd4 32878 "allowtoken" : 1,
4d47f125
TL
32879 "description" : "ceph osd out",
32880 "method" : "POST",
32881 "name" : "out",
32882 "parameters" : {
32883 "additionalProperties" : 0,
32884 "properties" : {
32885 "node" : {
32886 "description" : "The cluster node name.",
32887 "format" : "pve-node",
32888 "type" : "string",
32889 "typetext" : "<string>"
32890 },
32891 "osdid" : {
32892 "description" : "OSD ID",
32893 "type" : "integer",
32894 "typetext" : "<integer>"
32895 }
32896 }
32897 },
32898 "permissions" : {
32899 "check" : [
56122987 32900 "perm",
4d47f125 32901 "/",
56122987 32902 [
4d47f125 32903 "Sys.Modify"
56122987 32904 ]
56122987 32905 ]
44660702 32906 },
4d47f125
TL
32907 "protected" : 1,
32908 "proxyto" : "node",
32909 "returns" : {
32910 "type" : "null"
56122987 32911 }
44660702 32912 }
56122987 32913 },
4d47f125
TL
32914 "leaf" : 1,
32915 "path" : "/nodes/{node}/ceph/osd/{osdid}/out",
32916 "text" : "out"
7cbed89a
TL
32917 },
32918 {
32919 "info" : {
32920 "POST" : {
e9cd3bd4 32921 "allowtoken" : 1,
7cbed89a
TL
32922 "description" : "Instruct the OSD to scrub.",
32923 "method" : "POST",
32924 "name" : "scrub",
32925 "parameters" : {
32926 "additionalProperties" : 0,
32927 "properties" : {
32928 "deep" : {
32929 "default" : 0,
32930 "description" : "If set, instructs a deep scrub instead of a normal one.",
32931 "optional" : 1,
32932 "type" : "boolean",
32933 "typetext" : "<boolean>"
32934 },
32935 "node" : {
32936 "description" : "The cluster node name.",
32937 "format" : "pve-node",
32938 "type" : "string",
32939 "typetext" : "<string>"
32940 },
32941 "osdid" : {
32942 "description" : "OSD ID",
32943 "type" : "integer",
32944 "typetext" : "<integer>"
32945 }
32946 }
32947 },
32948 "permissions" : {
32949 "check" : [
32950 "perm",
32951 "/",
32952 [
32953 "Sys.Modify"
32954 ]
32955 ]
32956 },
32957 "protected" : 1,
32958 "proxyto" : "node",
32959 "returns" : {
32960 "type" : "null"
32961 }
32962 }
32963 },
32964 "leaf" : 1,
32965 "path" : "/nodes/{node}/ceph/osd/{osdid}/scrub",
32966 "text" : "scrub"
56122987 32967 }
4d47f125 32968 ],
27a7acb2 32969 "info" : {
4d47f125 32970 "DELETE" : {
e9cd3bd4 32971 "allowtoken" : 1,
4d47f125
TL
32972 "description" : "Destroy OSD",
32973 "method" : "DELETE",
32974 "name" : "destroyosd",
27a7acb2
DM
32975 "parameters" : {
32976 "additionalProperties" : 0,
32977 "properties" : {
4d47f125 32978 "cleanup" : {
27a7acb2 32979 "default" : 0,
4d47f125 32980 "description" : "If set, we remove partition table entries.",
27a7acb2 32981 "optional" : 1,
4d47f125
TL
32982 "type" : "boolean",
32983 "typetext" : "<boolean>"
32984 },
32985 "node" : {
32986 "description" : "The cluster node name.",
32987 "format" : "pve-node",
32988 "type" : "string",
32989 "typetext" : "<string>"
32990 },
32991 "osdid" : {
32992 "description" : "OSD ID",
32993 "type" : "integer",
32994 "typetext" : "<integer>"
32995 }
32996 }
27a7acb2
DM
32997 },
32998 "protected" : 1,
32999 "proxyto" : "node",
33000 "returns" : {
33001 "type" : "string"
33002 }
33003 }
33004 },
4d47f125
TL
33005 "leaf" : 0,
33006 "path" : "/nodes/{node}/ceph/osd/{osdid}",
33007 "text" : "{osdid}"
56122987
DM
33008 }
33009 ],
33010 "info" : {
4d47f125 33011 "GET" : {
e9cd3bd4 33012 "allowtoken" : 1,
4d47f125
TL
33013 "description" : "Get Ceph osd list/tree.",
33014 "method" : "GET",
33015 "name" : "index",
44660702
DM
33016 "parameters" : {
33017 "additionalProperties" : 0,
33018 "properties" : {
33019 "node" : {
33020 "description" : "The cluster node name.",
33021 "format" : "pve-node",
013dc89f
DM
33022 "type" : "string",
33023 "typetext" : "<string>"
44660702
DM
33024 }
33025 }
33026 },
7aacca6f
DM
33027 "permissions" : {
33028 "check" : [
33029 "perm",
4d47f125 33030 "/",
7aacca6f 33031 [
4d47f125
TL
33032 "Sys.Audit",
33033 "Datastore.Audit"
33034 ],
33035 "any",
33036 1
33037 ]
33038 },
33039 "protected" : 1,
33040 "proxyto" : "node",
33041 "returns" : {
33042 "type" : "object"
33043 }
33044 },
33045 "POST" : {
e9cd3bd4 33046 "allowtoken" : 1,
4d47f125
TL
33047 "description" : "Create OSD",
33048 "method" : "POST",
33049 "name" : "createosd",
33050 "parameters" : {
33051 "additionalProperties" : 0,
33052 "properties" : {
739d4d64
TL
33053 "crush-device-class" : {
33054 "description" : "Set the device class of the OSD in crush.",
33055 "optional" : 1,
33056 "type" : "string",
33057 "typetext" : "<string>"
33058 },
1e3f8156
TL
33059 "db_dev" : {
33060 "description" : "Block device name for block.db.",
44660702 33061 "optional" : 1,
4bd7df8b 33062 "type" : "string",
4d47f125 33063 "typetext" : "<string>"
44660702 33064 },
0695fdaf 33065 "db_dev_size" : {
1e3f8156
TL
33066 "default" : "bluestore_block_db_size or 10% of OSD size",
33067 "description" : "Size in GiB for block.db.",
33068 "minimum" : 1,
7aacca6f 33069 "optional" : 1,
1e3f8156
TL
33070 "requires" : "db_dev",
33071 "type" : "number",
33072 "typetext" : "<number> (1 - N)",
33073 "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 33074 },
1e3f8156
TL
33075 "dev" : {
33076 "description" : "Block device name.",
4d47f125
TL
33077 "type" : "string",
33078 "typetext" : "<string>"
5d9c884c 33079 },
1e3f8156
TL
33080 "encrypted" : {
33081 "default" : 0,
33082 "description" : "Enables encryption of the OSD.",
33083 "optional" : 1,
33084 "type" : "boolean",
33085 "typetext" : "<boolean>"
33086 },
4d47f125
TL
33087 "node" : {
33088 "description" : "The cluster node name.",
33089 "format" : "pve-node",
33090 "type" : "string",
33091 "typetext" : "<string>"
7aacca6f 33092 },
4d47f125 33093 "wal_dev" : {
1e3f8156 33094 "description" : "Block device name for block.wal.",
de0983cb 33095 "optional" : 1,
4d47f125
TL
33096 "type" : "string",
33097 "typetext" : "<string>"
1e3f8156 33098 },
0695fdaf 33099 "wal_dev_size" : {
1e3f8156
TL
33100 "default" : "bluestore_block_wal_size or 1% of OSD size",
33101 "description" : "Size in GiB for block.wal.",
33102 "minimum" : 0.5,
33103 "optional" : 1,
33104 "requires" : "wal_dev",
33105 "type" : "number",
33106 "typetext" : "<number> (0.5 - N)",
33107 "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
33108 }
33109 }
33110 },
33111 "protected" : 1,
33112 "proxyto" : "node",
33113 "returns" : {
33114 "type" : "string"
33115 }
33116 }
33117 },
33118 "leaf" : 0,
33119 "path" : "/nodes/{node}/ceph/osd",
33120 "text" : "osd"
33121 },
e2d681b3
TL
33122 {
33123 "children" : [
33124 {
33125 "info" : {
33126 "DELETE" : {
e9cd3bd4 33127 "allowtoken" : 1,
e2d681b3
TL
33128 "description" : "Destroy Ceph Metadata Server",
33129 "method" : "DELETE",
33130 "name" : "destroymds",
33131 "parameters" : {
33132 "additionalProperties" : 0,
33133 "properties" : {
33134 "name" : {
33135 "description" : "The name (ID) of the mds",
33136 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
33137 "type" : "string"
33138 },
33139 "node" : {
33140 "description" : "The cluster node name.",
33141 "format" : "pve-node",
33142 "type" : "string",
33143 "typetext" : "<string>"
33144 }
33145 }
33146 },
33147 "permissions" : {
33148 "check" : [
33149 "perm",
33150 "/",
33151 [
33152 "Sys.Modify"
33153 ]
33154 ]
33155 },
33156 "protected" : 1,
33157 "proxyto" : "node",
33158 "returns" : {
33159 "type" : "string"
33160 }
33161 },
33162 "POST" : {
e9cd3bd4 33163 "allowtoken" : 1,
e2d681b3
TL
33164 "description" : "Create Ceph Metadata Server (MDS)",
33165 "method" : "POST",
33166 "name" : "createmds",
33167 "parameters" : {
33168 "additionalProperties" : 0,
33169 "properties" : {
33170 "hotstandby" : {
33171 "default" : "0",
33172 "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.",
33173 "optional" : 1,
33174 "type" : "boolean",
33175 "typetext" : "<boolean>"
33176 },
33177 "name" : {
33178 "default" : "nodename",
33179 "description" : "The ID for the mds, when omitted the same as the nodename",
c5aa7e14 33180 "maxLength" : 200,
e2d681b3
TL
33181 "optional" : 1,
33182 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
33183 "type" : "string"
33184 },
33185 "node" : {
33186 "description" : "The cluster node name.",
33187 "format" : "pve-node",
33188 "type" : "string",
33189 "typetext" : "<string>"
33190 }
33191 }
33192 },
33193 "permissions" : {
33194 "check" : [
33195 "perm",
33196 "/",
33197 [
33198 "Sys.Modify"
33199 ]
33200 ]
33201 },
33202 "protected" : 1,
33203 "proxyto" : "node",
33204 "returns" : {
33205 "type" : "string"
33206 }
33207 }
33208 },
33209 "leaf" : 1,
33210 "path" : "/nodes/{node}/ceph/mds/{name}",
33211 "text" : "{name}"
33212 }
33213 ],
33214 "info" : {
33215 "GET" : {
e9cd3bd4 33216 "allowtoken" : 1,
e2d681b3
TL
33217 "description" : "MDS directory index.",
33218 "method" : "GET",
33219 "name" : "index",
33220 "parameters" : {
33221 "additionalProperties" : 0,
33222 "properties" : {
33223 "node" : {
33224 "description" : "The cluster node name.",
33225 "format" : "pve-node",
33226 "type" : "string",
33227 "typetext" : "<string>"
33228 }
33229 }
33230 },
33231 "permissions" : {
33232 "check" : [
33233 "perm",
33234 "/",
33235 [
33236 "Sys.Audit",
33237 "Datastore.Audit"
33238 ],
33239 "any",
33240 1
33241 ]
33242 },
33243 "protected" : 1,
33244 "proxyto" : "node",
33245 "returns" : {
33246 "items" : {
33247 "properties" : {
33248 "addr" : {
33249 "optional" : 1,
33250 "type" : "string"
33251 },
33252 "host" : {
33253 "optional" : 1,
33254 "type" : "string"
33255 },
33256 "name" : {
33257 "description" : "The name (ID) for the MDS"
33258 },
33259 "rank" : {
33260 "optional" : 1,
33261 "type" : "integer"
33262 },
33263 "standby_replay" : {
33264 "description" : "If true, the standby MDS is polling the active MDS for faster recovery (hot standby).",
33265 "optional" : 1,
33266 "type" : "boolean"
33267 },
33268 "state" : {
33269 "description" : "State of the MDS",
33270 "type" : "string"
33271 }
33272 },
33273 "type" : "object"
33274 },
33275 "links" : [
33276 {
33277 "href" : "{name}",
33278 "rel" : "child"
33279 }
33280 ],
33281 "type" : "array"
33282 }
33283 }
33284 },
33285 "leaf" : 0,
33286 "path" : "/nodes/{node}/ceph/mds",
33287 "text" : "mds"
33288 },
33289 {
33290 "children" : [
33291 {
33292 "info" : {
5f26e15b 33293 "DELETE" : {
e9cd3bd4 33294 "allowtoken" : 1,
5f26e15b
TL
33295 "description" : "Destroy Ceph Manager.",
33296 "method" : "DELETE",
33297 "name" : "destroymgr",
e2d681b3
TL
33298 "parameters" : {
33299 "additionalProperties" : 0,
33300 "properties" : {
5f26e15b
TL
33301 "id" : {
33302 "description" : "The ID of the manager",
33303 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
33304 "type" : "string"
e2d681b3
TL
33305 },
33306 "node" : {
33307 "description" : "The cluster node name.",
33308 "format" : "pve-node",
33309 "type" : "string",
33310 "typetext" : "<string>"
e2d681b3
TL
33311 }
33312 }
33313 },
33314 "permissions" : {
33315 "check" : [
33316 "perm",
33317 "/",
33318 [
33319 "Sys.Modify"
33320 ]
33321 ]
33322 },
33323 "protected" : 1,
33324 "proxyto" : "node",
33325 "returns" : {
33326 "type" : "string"
33327 }
1e3f8156
TL
33328 },
33329 "POST" : {
e9cd3bd4 33330 "allowtoken" : 1,
1e3f8156
TL
33331 "description" : "Create Ceph Manager",
33332 "method" : "POST",
33333 "name" : "createmgr",
33334 "parameters" : {
33335 "additionalProperties" : 0,
33336 "properties" : {
33337 "id" : {
33338 "description" : "The ID for the manager, when omitted the same as the nodename",
c5aa7e14 33339 "maxLength" : 200,
1e3f8156
TL
33340 "optional" : 1,
33341 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
33342 "type" : "string"
33343 },
33344 "node" : {
33345 "description" : "The cluster node name.",
33346 "format" : "pve-node",
33347 "type" : "string",
33348 "typetext" : "<string>"
33349 }
33350 }
33351 },
33352 "permissions" : {
33353 "check" : [
33354 "perm",
33355 "/",
33356 [
33357 "Sys.Modify"
33358 ]
33359 ]
33360 },
33361 "protected" : 1,
33362 "proxyto" : "node",
33363 "returns" : {
33364 "type" : "string"
33365 }
e2d681b3
TL
33366 }
33367 },
33368 "leaf" : 1,
5f26e15b
TL
33369 "path" : "/nodes/{node}/ceph/mgr/{id}",
33370 "text" : "{id}"
e2d681b3
TL
33371 }
33372 ],
33373 "info" : {
1e3f8156 33374 "GET" : {
e9cd3bd4 33375 "allowtoken" : 1,
1e3f8156
TL
33376 "description" : "MGR directory index.",
33377 "method" : "GET",
33378 "name" : "index",
e2d681b3
TL
33379 "parameters" : {
33380 "additionalProperties" : 0,
33381 "properties" : {
33382 "node" : {
33383 "description" : "The cluster node name.",
33384 "format" : "pve-node",
33385 "type" : "string",
33386 "typetext" : "<string>"
33387 }
33388 }
33389 },
33390 "permissions" : {
33391 "check" : [
33392 "perm",
33393 "/",
33394 [
1e3f8156
TL
33395 "Sys.Audit",
33396 "Datastore.Audit"
33397 ],
33398 "any",
33399 1
e2d681b3
TL
33400 ]
33401 },
33402 "protected" : 1,
5f26e15b 33403 "proxyto" : "node",
e2d681b3 33404 "returns" : {
1e3f8156
TL
33405 "items" : {
33406 "properties" : {
33407 "addr" : {
33408 "optional" : 1,
33409 "type" : "string"
33410 },
33411 "host" : {
33412 "optional" : 1,
33413 "type" : "string"
33414 },
33415 "name" : {
33416 "description" : "The name (ID) for the MGR"
33417 },
33418 "state" : {
33419 "description" : "State of the MGR",
33420 "type" : "string"
33421 }
33422 },
33423 "type" : "object"
33424 },
33425 "links" : [
33426 {
33427 "href" : "{name}",
33428 "rel" : "child"
33429 }
33430 ],
33431 "type" : "array"
e2d681b3
TL
33432 }
33433 }
33434 },
33435 "leaf" : 0,
5f26e15b
TL
33436 "path" : "/nodes/{node}/ceph/mgr",
33437 "text" : "mgr"
e2d681b3 33438 },
4d47f125 33439 {
5f26e15b
TL
33440 "children" : [
33441 {
33442 "info" : {
33443 "DELETE" : {
e9cd3bd4 33444 "allowtoken" : 1,
5f26e15b
TL
33445 "description" : "Destroy Ceph Monitor and Manager.",
33446 "method" : "DELETE",
33447 "name" : "destroymon",
33448 "parameters" : {
33449 "additionalProperties" : 0,
33450 "properties" : {
1e3f8156
TL
33451 "monid" : {
33452 "description" : "Monitor ID",
33453 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
33454 "type" : "string"
33455 },
33456 "node" : {
33457 "description" : "The cluster node name.",
33458 "format" : "pve-node",
33459 "type" : "string",
33460 "typetext" : "<string>"
33461 }
33462 }
33463 },
33464 "permissions" : {
33465 "check" : [
33466 "perm",
33467 "/",
33468 [
33469 "Sys.Modify"
33470 ]
33471 ]
33472 },
33473 "protected" : 1,
33474 "proxyto" : "node",
33475 "returns" : {
33476 "type" : "string"
33477 }
33478 },
33479 "POST" : {
e9cd3bd4 33480 "allowtoken" : 1,
1e3f8156
TL
33481 "description" : "Create Ceph Monitor and Manager",
33482 "method" : "POST",
33483 "name" : "createmon",
33484 "parameters" : {
33485 "additionalProperties" : 0,
33486 "properties" : {
33487 "mon-address" : {
0695fdaf
TL
33488 "description" : "Overwrites autodetected monitor IP address(es). Must be in the public network(s) of Ceph.",
33489 "format" : "ip-list",
5f26e15b 33490 "optional" : 1,
1e3f8156
TL
33491 "type" : "string",
33492 "typetext" : "<string>"
5f26e15b
TL
33493 },
33494 "monid" : {
1e3f8156 33495 "description" : "The ID for the monitor, when omitted the same as the nodename",
c5aa7e14 33496 "maxLength" : 200,
1e3f8156 33497 "optional" : 1,
5f26e15b
TL
33498 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
33499 "type" : "string"
33500 },
33501 "node" : {
33502 "description" : "The cluster node name.",
33503 "format" : "pve-node",
33504 "type" : "string",
33505 "typetext" : "<string>"
33506 }
33507 }
33508 },
33509 "permissions" : {
33510 "check" : [
33511 "perm",
33512 "/",
33513 [
33514 "Sys.Modify"
33515 ]
33516 ]
33517 },
33518 "protected" : 1,
33519 "proxyto" : "node",
33520 "returns" : {
7aacca6f 33521 "type" : "string"
56122987 33522 }
4d47f125 33523 }
56122987 33524 },
5f26e15b
TL
33525 "leaf" : 1,
33526 "path" : "/nodes/{node}/ceph/mon/{monid}",
33527 "text" : "{monid}"
33528 }
33529 ],
33530 "info" : {
33531 "GET" : {
e9cd3bd4 33532 "allowtoken" : 1,
5f26e15b
TL
33533 "description" : "Get Ceph monitor list.",
33534 "method" : "GET",
33535 "name" : "listmon",
33536 "parameters" : {
33537 "additionalProperties" : 0,
33538 "properties" : {
33539 "node" : {
33540 "description" : "The cluster node name.",
33541 "format" : "pve-node",
33542 "type" : "string",
33543 "typetext" : "<string>"
33544 }
33545 }
33546 },
4d47f125
TL
33547 "permissions" : {
33548 "check" : [
33549 "perm",
33550 "/",
33551 [
33552 "Sys.Audit",
33553 "Datastore.Audit"
33554 ],
33555 "any",
33556 1
33557 ]
56122987 33558 },
4d47f125
TL
33559 "protected" : 1,
33560 "proxyto" : "node",
33561 "returns" : {
33562 "items" : {
33563 "properties" : {
5f26e15b 33564 "addr" : {
1e3f8156
TL
33565 "optional" : 1,
33566 "type" : "string"
33567 },
33568 "host" : {
33569 "optional" : 1,
4d47f125
TL
33570 "type" : "string"
33571 },
5f26e15b 33572 "name" : {
4d47f125
TL
33573 "type" : "string"
33574 }
7aacca6f 33575 },
4d47f125
TL
33576 "type" : "object"
33577 },
5f26e15b
TL
33578 "links" : [
33579 {
33580 "href" : "{name}",
33581 "rel" : "child"
33582 }
33583 ],
4d47f125
TL
33584 "type" : "array"
33585 }
4d47f125
TL
33586 }
33587 },
5f26e15b
TL
33588 "leaf" : 0,
33589 "path" : "/nodes/{node}/ceph/mon",
33590 "text" : "mon"
4d47f125
TL
33591 },
33592 {
33593 "children" : [
33594 {
33595 "info" : {
5f26e15b 33596 "POST" : {
e9cd3bd4 33597 "allowtoken" : 1,
5f26e15b
TL
33598 "description" : "Create a Ceph filesystem",
33599 "method" : "POST",
33600 "name" : "createfs",
4d47f125
TL
33601 "parameters" : {
33602 "additionalProperties" : 0,
33603 "properties" : {
5f26e15b 33604 "add-storage" : {
4d47f125 33605 "default" : 0,
5f26e15b 33606 "description" : "Configure the created CephFS as storage for this cluster.",
4d47f125
TL
33607 "optional" : 1,
33608 "type" : "boolean",
33609 "typetext" : "<boolean>"
33610 },
5f26e15b
TL
33611 "name" : {
33612 "default" : "cephfs",
33613 "description" : "The ceph filesystem name.",
33614 "optional" : 1,
33615 "type" : "string",
33616 "typetext" : "<string>"
4d47f125
TL
33617 },
33618 "node" : {
33619 "description" : "The cluster node name.",
33620 "format" : "pve-node",
33621 "type" : "string",
33622 "typetext" : "<string>"
5f26e15b
TL
33623 },
33624 "pg_num" : {
33625 "default" : 128,
33626 "description" : "Number of placement groups for the backing data pool. The metadata pool will use a quarter of this.",
33627 "maximum" : 32768,
33628 "minimum" : 8,
33629 "optional" : 1,
33630 "type" : "integer",
33631 "typetext" : "<integer> (8 - 32768)"
4d47f125
TL
33632 }
33633 }
7aacca6f 33634 },
4d47f125
TL
33635 "permissions" : {
33636 "check" : [
33637 "perm",
33638 "/",
33639 [
33640 "Sys.Modify"
33641 ]
33642 ]
7aacca6f 33643 },
4d47f125
TL
33644 "protected" : 1,
33645 "proxyto" : "node",
33646 "returns" : {
44660702 33647 "type" : "string"
4d47f125
TL
33648 }
33649 }
33650 },
33651 "leaf" : 1,
5f26e15b
TL
33652 "path" : "/nodes/{node}/ceph/fs/{name}",
33653 "text" : "{name}"
4d47f125
TL
33654 }
33655 ],
33656 "info" : {
33657 "GET" : {
e9cd3bd4 33658 "allowtoken" : 1,
5f26e15b 33659 "description" : "Directory index.",
4d47f125 33660 "method" : "GET",
5f26e15b 33661 "name" : "index",
4d47f125
TL
33662 "parameters" : {
33663 "additionalProperties" : 0,
33664 "properties" : {
33665 "node" : {
33666 "description" : "The cluster node name.",
33667 "format" : "pve-node",
33668 "type" : "string",
33669 "typetext" : "<string>"
33670 }
33671 }
33672 },
33673 "permissions" : {
33674 "check" : [
33675 "perm",
33676 "/",
33677 [
33678 "Sys.Audit",
33679 "Datastore.Audit"
33680 ],
33681 "any",
33682 1
33683 ]
33684 },
33685 "protected" : 1,
95895385 33686 "proxyto" : "node",
4d47f125
TL
33687 "returns" : {
33688 "items" : {
33689 "properties" : {
5f26e15b
TL
33690 "data_pool" : {
33691 "description" : "The name of the data pool.",
33692 "type" : "string"
33693 },
33694 "metadata_pool" : {
33695 "description" : "The name of the metadata pool.",
4d47f125
TL
33696 "type" : "string"
33697 },
33698 "name" : {
5f26e15b 33699 "description" : "The ceph filesystem name.",
4d47f125
TL
33700 "type" : "string"
33701 }
7aacca6f 33702 },
4d47f125
TL
33703 "type" : "object"
33704 },
33705 "links" : [
33706 {
33707 "href" : "{name}",
33708 "rel" : "child"
33709 }
33710 ],
33711 "type" : "array"
33712 }
5f26e15b
TL
33713 }
33714 },
33715 "leaf" : 0,
33716 "path" : "/nodes/{node}/ceph/fs",
33717 "text" : "fs"
33718 },
d2656385
TL
33719 {
33720 "children" : [
33721 {
33722 "info" : {
33723 "DELETE" : {
33724 "allowtoken" : 1,
33725 "description" : "Destroy pool",
33726 "method" : "DELETE",
33727 "name" : "destroypool",
33728 "parameters" : {
33729 "additionalProperties" : 0,
33730 "properties" : {
33731 "force" : {
33732 "default" : 0,
33733 "description" : "If true, destroys pool even if in use",
33734 "optional" : 1,
33735 "type" : "boolean",
33736 "typetext" : "<boolean>"
33737 },
33738 "name" : {
33739 "description" : "The name of the pool. It must be unique.",
33740 "type" : "string",
33741 "typetext" : "<string>"
33742 },
33743 "node" : {
33744 "description" : "The cluster node name.",
33745 "format" : "pve-node",
33746 "type" : "string",
33747 "typetext" : "<string>"
33748 },
7af2edf9
TL
33749 "remove_ecprofile" : {
33750 "default" : 1,
33751 "description" : "Remove the erasure code profile. Defaults to true, if applicable.",
33752 "optional" : 1,
33753 "type" : "boolean",
33754 "typetext" : "<boolean>"
33755 },
d2656385
TL
33756 "remove_storages" : {
33757 "default" : 0,
33758 "description" : "Remove all pveceph-managed storages configured for this pool",
33759 "optional" : 1,
33760 "type" : "boolean",
33761 "typetext" : "<boolean>"
33762 }
33763 }
33764 },
33765 "permissions" : {
33766 "check" : [
33767 "perm",
33768 "/",
33769 [
33770 "Sys.Modify"
33771 ]
33772 ]
33773 },
33774 "protected" : 1,
33775 "proxyto" : "node",
33776 "returns" : {
33777 "type" : "string"
33778 }
33779 },
33780 "GET" : {
33781 "allowtoken" : 1,
33782 "description" : "List pool settings.",
33783 "method" : "GET",
33784 "name" : "getpool",
33785 "parameters" : {
33786 "additionalProperties" : 0,
33787 "properties" : {
33788 "name" : {
33789 "description" : "The name of the pool. It must be unique.",
33790 "type" : "string",
33791 "typetext" : "<string>"
33792 },
33793 "node" : {
33794 "description" : "The cluster node name.",
33795 "format" : "pve-node",
33796 "type" : "string",
33797 "typetext" : "<string>"
33798 },
33799 "verbose" : {
33800 "default" : 0,
33801 "description" : "If enabled, will display additional data(eg. statistics).",
33802 "optional" : 1,
33803 "type" : "boolean",
33804 "typetext" : "<boolean>"
33805 }
33806 }
33807 },
33808 "permissions" : {
33809 "check" : [
33810 "perm",
33811 "/",
33812 [
33813 "Sys.Audit",
33814 "Datastore.Audit"
33815 ],
33816 "any",
33817 1
33818 ]
33819 },
33820 "protected" : 1,
33821 "proxyto" : "node",
33822 "returns" : {
33823 "properties" : {
33824 "application" : {
33825 "default" : "rbd",
33826 "description" : "The application of the pool.",
33827 "enum" : [
33828 "rbd",
33829 "cephfs",
33830 "rgw"
33831 ],
33832 "optional" : 1,
33833 "title" : "Application",
33834 "type" : "string"
33835 },
33836 "application_list" : {
33837 "optional" : 1,
33838 "title" : "Application",
33839 "type" : "array"
33840 },
33841 "autoscale_status" : {
33842 "optional" : 1,
33843 "title" : "Autoscale Status",
33844 "type" : "object"
33845 },
33846 "crush_rule" : {
33847 "description" : "The rule to use for mapping object placement in the cluster.",
33848 "optional" : 1,
33849 "title" : "Crush Rule Name",
33850 "type" : "string"
33851 },
33852 "fast_read" : {
33853 "title" : "Fast Read",
33854 "type" : "boolean"
33855 },
33856 "hashpspool" : {
33857 "title" : "hashpspool",
33858 "type" : "boolean"
33859 },
33860 "id" : {
33861 "title" : "ID",
33862 "type" : "integer"
33863 },
33864 "min_size" : {
33865 "default" : 2,
33866 "description" : "Minimum number of replicas per object",
33867 "maximum" : 7,
33868 "minimum" : 1,
33869 "optional" : 1,
33870 "title" : "Min Size",
33871 "type" : "integer"
33872 },
33873 "name" : {
33874 "description" : "The name of the pool. It must be unique.",
33875 "title" : "Name",
33876 "type" : "string"
33877 },
33878 "nodeep-scrub" : {
33879 "title" : "nodeep-scrub",
33880 "type" : "boolean"
33881 },
33882 "nodelete" : {
33883 "title" : "nodelete",
33884 "type" : "boolean"
33885 },
33886 "nopgchange" : {
33887 "title" : "nopgchange",
33888 "type" : "boolean"
33889 },
33890 "noscrub" : {
33891 "title" : "noscrub",
33892 "type" : "boolean"
33893 },
33894 "nosizechange" : {
33895 "title" : "nosizechange",
33896 "type" : "boolean"
33897 },
33898 "pg_autoscale_mode" : {
33899 "default" : "warn",
33900 "description" : "The automatic PG scaling mode of the pool.",
33901 "enum" : [
33902 "on",
33903 "off",
33904 "warn"
33905 ],
33906 "optional" : 1,
33907 "title" : "PG Autoscale Mode",
33908 "type" : "string"
33909 },
33910 "pg_num" : {
33911 "default" : 128,
33912 "description" : "Number of placement groups.",
33913 "maximum" : 32768,
33914 "minimum" : 1,
33915 "optional" : 1,
33916 "title" : "PG Num",
33917 "type" : "integer"
33918 },
33919 "pg_num_min" : {
33920 "description" : "Minimal number of placement groups.",
33921 "maximum" : 32768,
33922 "optional" : 1,
33923 "title" : "min. PG Num",
33924 "type" : "integer"
33925 },
33926 "pgp_num" : {
33927 "title" : "PGP num",
33928 "type" : "integer"
33929 },
33930 "size" : {
33931 "default" : 3,
33932 "description" : "Number of replicas per object",
33933 "maximum" : 7,
33934 "minimum" : 1,
33935 "optional" : 1,
33936 "title" : "Size",
33937 "type" : "integer"
33938 },
33939 "statistics" : {
33940 "optional" : 1,
33941 "title" : "Statistics",
33942 "type" : "object"
33943 },
33944 "target_size" : {
33945 "description" : "The estimated target size of the pool for the PG autoscaler.",
33946 "optional" : 1,
33947 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
33948 "title" : "PG Autoscale Target Size",
33949 "type" : "string"
33950 },
33951 "target_size_ratio" : {
33952 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
33953 "optional" : 1,
33954 "title" : "PG Autoscale Target Ratio",
33955 "type" : "number"
33956 },
33957 "use_gmt_hitset" : {
33958 "title" : "use_gmt_hitset",
33959 "type" : "boolean"
33960 },
33961 "write_fadvise_dontneed" : {
33962 "title" : "write_fadvise_dontneed",
33963 "type" : "boolean"
33964 }
33965 },
33966 "type" : "object"
33967 }
33968 },
33969 "PUT" : {
33970 "allowtoken" : 1,
33971 "description" : "Change POOL settings",
33972 "method" : "PUT",
33973 "name" : "setpool",
33974 "parameters" : {
33975 "additionalProperties" : 0,
33976 "properties" : {
33977 "application" : {
33978 "description" : "The application of the pool.",
33979 "enum" : [
33980 "rbd",
33981 "cephfs",
33982 "rgw"
33983 ],
33984 "optional" : 1,
33985 "title" : "Application",
33986 "type" : "string"
33987 },
33988 "crush_rule" : {
33989 "description" : "The rule to use for mapping object placement in the cluster.",
33990 "optional" : 1,
33991 "title" : "Crush Rule Name",
33992 "type" : "string",
33993 "typetext" : "<string>"
33994 },
33995 "min_size" : {
33996 "description" : "Minimum number of replicas per object",
33997 "maximum" : 7,
33998 "minimum" : 1,
33999 "optional" : 1,
34000 "title" : "Min Size",
34001 "type" : "integer",
34002 "typetext" : "<integer> (1 - 7)"
34003 },
34004 "name" : {
34005 "description" : "The name of the pool. It must be unique.",
34006 "title" : "Name",
34007 "type" : "string",
34008 "typetext" : "<string>"
34009 },
34010 "node" : {
34011 "description" : "The cluster node name.",
34012 "format" : "pve-node",
34013 "type" : "string",
34014 "typetext" : "<string>"
34015 },
34016 "pg_autoscale_mode" : {
34017 "description" : "The automatic PG scaling mode of the pool.",
34018 "enum" : [
34019 "on",
34020 "off",
34021 "warn"
34022 ],
34023 "optional" : 1,
34024 "title" : "PG Autoscale Mode",
34025 "type" : "string"
34026 },
34027 "pg_num" : {
34028 "description" : "Number of placement groups.",
34029 "maximum" : 32768,
34030 "minimum" : 1,
34031 "optional" : 1,
34032 "title" : "PG Num",
34033 "type" : "integer",
34034 "typetext" : "<integer> (1 - 32768)"
34035 },
34036 "pg_num_min" : {
34037 "description" : "Minimal number of placement groups.",
34038 "maximum" : 32768,
34039 "optional" : 1,
34040 "title" : "min. PG Num",
34041 "type" : "integer",
34042 "typetext" : "<integer> (-N - 32768)"
34043 },
34044 "size" : {
34045 "description" : "Number of replicas per object",
34046 "maximum" : 7,
34047 "minimum" : 1,
34048 "optional" : 1,
34049 "title" : "Size",
34050 "type" : "integer",
34051 "typetext" : "<integer> (1 - 7)"
34052 },
34053 "target_size" : {
34054 "description" : "The estimated target size of the pool for the PG autoscaler.",
34055 "optional" : 1,
34056 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
34057 "title" : "PG Autoscale Target Size",
34058 "type" : "string"
34059 },
34060 "target_size_ratio" : {
34061 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
34062 "optional" : 1,
34063 "title" : "PG Autoscale Target Ratio",
34064 "type" : "number",
34065 "typetext" : "<number>"
34066 }
34067 }
34068 },
34069 "permissions" : {
34070 "check" : [
34071 "perm",
34072 "/",
34073 [
34074 "Sys.Modify"
34075 ]
34076 ]
34077 },
34078 "protected" : 1,
34079 "proxyto" : "node",
34080 "returns" : {
34081 "type" : "string"
34082 }
34083 }
34084 },
34085 "leaf" : 1,
34086 "path" : "/nodes/{node}/ceph/pools/{name}",
34087 "text" : "{name}"
34088 }
34089 ],
34090 "info" : {
34091 "GET" : {
34092 "allowtoken" : 1,
34093 "description" : "List all pools.",
34094 "method" : "GET",
34095 "name" : "lspools",
34096 "parameters" : {
34097 "additionalProperties" : 0,
34098 "properties" : {
34099 "node" : {
34100 "description" : "The cluster node name.",
34101 "format" : "pve-node",
34102 "type" : "string",
34103 "typetext" : "<string>"
34104 }
34105 }
34106 },
34107 "permissions" : {
34108 "check" : [
34109 "perm",
34110 "/",
34111 [
34112 "Sys.Audit",
34113 "Datastore.Audit"
34114 ],
34115 "any",
34116 1
34117 ]
34118 },
34119 "protected" : 1,
34120 "proxyto" : "node",
34121 "returns" : {
34122 "items" : {
34123 "properties" : {
81a3384d
TL
34124 "application_metadata" : {
34125 "optional" : 1,
34126 "title" : "Associated Applications",
34127 "type" : "object"
34128 },
d2656385
TL
34129 "autoscale_status" : {
34130 "optional" : 1,
34131 "title" : "Autoscale Status",
34132 "type" : "object"
34133 },
34134 "bytes_used" : {
34135 "title" : "Used",
34136 "type" : "integer"
34137 },
34138 "crush_rule" : {
34139 "title" : "Crush Rule",
34140 "type" : "integer"
34141 },
34142 "crush_rule_name" : {
34143 "title" : "Crush Rule Name",
34144 "type" : "string"
34145 },
34146 "min_size" : {
34147 "title" : "Min Size",
34148 "type" : "integer"
34149 },
34150 "percent_used" : {
34151 "title" : "%-Used",
34152 "type" : "number"
34153 },
34154 "pg_autoscale_mode" : {
34155 "optional" : 1,
34156 "title" : "PG Autoscale Mode",
34157 "type" : "string"
34158 },
34159 "pg_num" : {
34160 "title" : "PG Num",
34161 "type" : "integer"
34162 },
34163 "pg_num_final" : {
34164 "optional" : 1,
34165 "title" : "Optimal PG Num",
34166 "type" : "integer"
34167 },
34168 "pg_num_min" : {
34169 "optional" : 1,
34170 "title" : "min. PG Num",
34171 "type" : "integer"
34172 },
34173 "pool" : {
34174 "title" : "ID",
34175 "type" : "integer"
34176 },
34177 "pool_name" : {
34178 "title" : "Name",
34179 "type" : "string"
34180 },
34181 "size" : {
34182 "title" : "Size",
34183 "type" : "integer"
34184 },
34185 "target_size" : {
34186 "optional" : 1,
34187 "title" : "PG Autoscale Target Size",
34188 "type" : "integer"
34189 },
34190 "target_size_ratio" : {
34191 "optional" : 1,
34192 "title" : "PG Autoscale Target Ratio",
34193 "type" : "number"
e6d66c2f
TL
34194 },
34195 "type" : {
34196 "enum" : [
34197 "replicated",
34198 "erasure",
34199 "unknown"
34200 ],
34201 "title" : "Type",
34202 "type" : "string"
d2656385
TL
34203 }
34204 },
34205 "type" : "object"
34206 },
34207 "links" : [
34208 {
34209 "href" : "{pool_name}",
34210 "rel" : "child"
34211 }
34212 ],
34213 "type" : "array"
34214 }
34215 },
34216 "POST" : {
34217 "allowtoken" : 1,
7af2edf9 34218 "description" : "Create Ceph pool",
d2656385
TL
34219 "method" : "POST",
34220 "name" : "createpool",
34221 "parameters" : {
34222 "additionalProperties" : 0,
34223 "properties" : {
34224 "add_storages" : {
e6d66c2f
TL
34225 "default" : "0; for erasure coded pools: 1",
34226 "description" : "Configure VM and CT storage using the new pool.",
d2656385
TL
34227 "optional" : 1,
34228 "type" : "boolean",
34229 "typetext" : "<boolean>"
34230 },
34231 "application" : {
34232 "default" : "rbd",
34233 "description" : "The application of the pool.",
34234 "enum" : [
34235 "rbd",
34236 "cephfs",
34237 "rgw"
34238 ],
34239 "optional" : 1,
34240 "title" : "Application",
34241 "type" : "string"
34242 },
34243 "crush_rule" : {
34244 "description" : "The rule to use for mapping object placement in the cluster.",
34245 "optional" : 1,
34246 "title" : "Crush Rule Name",
34247 "type" : "string",
34248 "typetext" : "<string>"
34249 },
7af2edf9 34250 "erasure-coding" : {
460359c5 34251 "description" : "Create an erasure coded pool for RBD with an accompaning replicated pool for metadata storage. With EC, the common ceph options 'size', 'min_size' and 'crush_rule' parameters will be applied to the metadata pool.",
7af2edf9
TL
34252 "format" : {
34253 "device-class" : {
34254 "description" : "CRUSH device class. Will create an erasure coded pool plus a replicated pool for metadata.",
34255 "format_description" : "class",
34256 "optional" : 1,
34257 "type" : "string"
34258 },
34259 "failure-domain" : {
e6d66c2f 34260 "default" : "host",
7af2edf9
TL
34261 "description" : "CRUSH failure domain. Default is 'host'. Will create an erasure coded pool plus a replicated pool for metadata.",
34262 "format_description" : "domain",
34263 "optional" : 1,
34264 "type" : "string"
34265 },
34266 "k" : {
34267 "description" : "Number of data chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
e6d66c2f 34268 "minimum" : 2,
7af2edf9
TL
34269 "type" : "integer"
34270 },
34271 "m" : {
34272 "description" : "Number of coding chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
34273 "minimum" : 1,
34274 "type" : "integer"
34275 },
34276 "profile" : {
34277 "description" : "Override the erasure code (EC) profile to use. Will create an erasure coded pool plus a replicated pool for metadata.",
34278 "format_description" : "profile",
34279 "optional" : 1,
34280 "type" : "string"
34281 }
34282 },
34283 "optional" : 1,
34284 "type" : "string",
34285 "typetext" : "k=<integer> ,m=<integer> [,device-class=<class>] [,failure-domain=<domain>] [,profile=<profile>]"
34286 },
d2656385
TL
34287 "min_size" : {
34288 "default" : 2,
34289 "description" : "Minimum number of replicas per object",
34290 "maximum" : 7,
34291 "minimum" : 1,
34292 "optional" : 1,
34293 "title" : "Min Size",
34294 "type" : "integer",
34295 "typetext" : "<integer> (1 - 7)"
34296 },
34297 "name" : {
34298 "description" : "The name of the pool. It must be unique.",
34299 "title" : "Name",
34300 "type" : "string",
34301 "typetext" : "<string>"
34302 },
34303 "node" : {
34304 "description" : "The cluster node name.",
34305 "format" : "pve-node",
34306 "type" : "string",
34307 "typetext" : "<string>"
34308 },
34309 "pg_autoscale_mode" : {
34310 "default" : "warn",
34311 "description" : "The automatic PG scaling mode of the pool.",
34312 "enum" : [
34313 "on",
34314 "off",
34315 "warn"
34316 ],
34317 "optional" : 1,
34318 "title" : "PG Autoscale Mode",
34319 "type" : "string"
34320 },
34321 "pg_num" : {
34322 "default" : 128,
34323 "description" : "Number of placement groups.",
34324 "maximum" : 32768,
34325 "minimum" : 1,
34326 "optional" : 1,
34327 "title" : "PG Num",
34328 "type" : "integer",
34329 "typetext" : "<integer> (1 - 32768)"
34330 },
34331 "pg_num_min" : {
34332 "description" : "Minimal number of placement groups.",
34333 "maximum" : 32768,
34334 "optional" : 1,
34335 "title" : "min. PG Num",
34336 "type" : "integer",
34337 "typetext" : "<integer> (-N - 32768)"
34338 },
34339 "size" : {
34340 "default" : 3,
34341 "description" : "Number of replicas per object",
34342 "maximum" : 7,
34343 "minimum" : 1,
34344 "optional" : 1,
34345 "title" : "Size",
34346 "type" : "integer",
34347 "typetext" : "<integer> (1 - 7)"
34348 },
34349 "target_size" : {
34350 "description" : "The estimated target size of the pool for the PG autoscaler.",
34351 "optional" : 1,
34352 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
34353 "title" : "PG Autoscale Target Size",
34354 "type" : "string"
34355 },
34356 "target_size_ratio" : {
34357 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
34358 "optional" : 1,
34359 "title" : "PG Autoscale Target Ratio",
34360 "type" : "number",
34361 "typetext" : "<number>"
34362 }
34363 }
34364 },
34365 "permissions" : {
34366 "check" : [
34367 "perm",
34368 "/",
34369 [
34370 "Sys.Modify"
34371 ]
34372 ]
34373 },
34374 "protected" : 1,
34375 "proxyto" : "node",
34376 "returns" : {
34377 "type" : "string"
34378 }
34379 }
34380 },
34381 "leaf" : 0,
34382 "path" : "/nodes/{node}/ceph/pools",
34383 "text" : "pools"
34384 },
5f26e15b
TL
34385 {
34386 "info" : {
34387 "GET" : {
e9cd3bd4 34388 "allowtoken" : 1,
5f26e15b
TL
34389 "description" : "Get Ceph configuration.",
34390 "method" : "GET",
34391 "name" : "config",
34392 "parameters" : {
34393 "additionalProperties" : 0,
34394 "properties" : {
4d47f125
TL
34395 "node" : {
34396 "description" : "The cluster node name.",
34397 "format" : "pve-node",
34398 "type" : "string",
34399 "typetext" : "<string>"
7aacca6f 34400 }
4d47f125 34401 }
44660702 34402 },
4d47f125
TL
34403 "permissions" : {
34404 "check" : [
34405 "perm",
34406 "/",
34407 [
5f26e15b
TL
34408 "Sys.Audit",
34409 "Datastore.Audit"
34410 ],
34411 "any",
34412 1
4d47f125 34413 ]
56122987 34414 },
95895385 34415 "proxyto" : "node",
4d47f125 34416 "returns" : {
7aacca6f 34417 "type" : "string"
4d47f125
TL
34418 }
34419 }
34420 },
5f26e15b
TL
34421 "leaf" : 1,
34422 "path" : "/nodes/{node}/ceph/config",
34423 "text" : "config"
4d47f125 34424 },
7cbed89a
TL
34425 {
34426 "info" : {
34427 "GET" : {
e9cd3bd4 34428 "allowtoken" : 1,
7cbed89a
TL
34429 "description" : "Get Ceph configuration database.",
34430 "method" : "GET",
34431 "name" : "configdb",
34432 "parameters" : {
34433 "additionalProperties" : 0,
34434 "properties" : {
34435 "node" : {
34436 "description" : "The cluster node name.",
34437 "format" : "pve-node",
34438 "type" : "string",
34439 "typetext" : "<string>"
34440 }
34441 }
34442 },
34443 "permissions" : {
34444 "check" : [
34445 "perm",
34446 "/",
34447 [
34448 "Sys.Audit",
34449 "Datastore.Audit"
34450 ],
34451 "any",
34452 1
34453 ]
34454 },
34455 "protected" : 1,
34456 "proxyto" : "node",
34457 "returns" : {
34458 "items" : {
34459 "properties" : {
34460 "can_update_at_runtime" : {
34461 "type" : "boolean"
34462 },
34463 "level" : {
34464 "type" : "string"
34465 },
34466 "mask" : {
34467 "type" : "string"
34468 },
34469 "name" : {
34470 "type" : "string"
34471 },
34472 "section" : {
34473 "type" : "string"
34474 },
34475 "value" : {
34476 "type" : "string"
34477 }
34478 },
34479 "type" : "object"
34480 },
34481 "type" : "array"
34482 }
34483 }
34484 },
34485 "leaf" : 1,
34486 "path" : "/nodes/{node}/ceph/configdb",
34487 "text" : "configdb"
34488 },
4d47f125
TL
34489 {
34490 "info" : {
34491 "POST" : {
e9cd3bd4 34492 "allowtoken" : 1,
4d47f125
TL
34493 "description" : "Create initial ceph default configuration and setup symlinks.",
34494 "method" : "POST",
34495 "name" : "init",
34496 "parameters" : {
34497 "additionalProperties" : 0,
34498 "properties" : {
e2d681b3
TL
34499 "cluster-network" : {
34500 "description" : "Declare a separate cluster network, OSDs will routeheartbeat, object replication and recovery traffic over it",
34501 "format" : "CIDR",
34502 "maxLength" : 128,
34503 "optional" : 1,
34504 "requires" : "network",
34505 "type" : "string",
34506 "typetext" : "<string>"
34507 },
4d47f125
TL
34508 "disable_cephx" : {
34509 "default" : 0,
1e3f8156 34510 "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 34511 "optional" : 1,
4d47f125
TL
34512 "type" : "boolean",
34513 "typetext" : "<boolean>"
56122987 34514 },
4d47f125
TL
34515 "min_size" : {
34516 "default" : 2,
34517 "description" : "Minimum number of available replicas per object to allow I/O",
34518 "maximum" : 7,
34519 "minimum" : 1,
7aacca6f 34520 "optional" : 1,
4d47f125
TL
34521 "type" : "integer",
34522 "typetext" : "<integer> (1 - 7)"
7aacca6f 34523 },
4d47f125
TL
34524 "network" : {
34525 "description" : "Use specific network for all ceph related traffic",
34526 "format" : "CIDR",
34527 "maxLength" : 128,
5d9c884c 34528 "optional" : 1,
4d47f125
TL
34529 "type" : "string",
34530 "typetext" : "<string>"
5d9c884c 34531 },
4d47f125
TL
34532 "node" : {
34533 "description" : "The cluster node name.",
34534 "format" : "pve-node",
34535 "type" : "string",
34536 "typetext" : "<string>"
7aacca6f 34537 },
4d47f125
TL
34538 "pg_bits" : {
34539 "default" : 6,
34540 "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.",
34541 "maximum" : 14,
34542 "minimum" : 6,
de0983cb 34543 "optional" : 1,
4d47f125
TL
34544 "type" : "integer",
34545 "typetext" : "<integer> (6 - 14)"
de0983cb 34546 },
44660702 34547 "size" : {
4d47f125
TL
34548 "default" : 3,
34549 "description" : "Targeted number of replicas per object",
34550 "maximum" : 7,
34551 "minimum" : 1,
7aacca6f 34552 "optional" : 1,
4d47f125
TL
34553 "type" : "integer",
34554 "typetext" : "<integer> (1 - 7)"
56122987 34555 }
4d47f125 34556 }
44660702 34557 },
4d47f125
TL
34558 "permissions" : {
34559 "check" : [
34560 "perm",
34561 "/",
34562 [
34563 "Sys.Modify"
34564 ]
34565 ]
5da3d723 34566 },
4d47f125
TL
34567 "protected" : 1,
34568 "proxyto" : "node",
34569 "returns" : {
34570 "type" : "null"
34571 }
34572 }
34573 },
34574 "leaf" : 1,
34575 "path" : "/nodes/{node}/ceph/init",
34576 "text" : "init"
34577 },
4d47f125
TL
34578 {
34579 "info" : {
34580 "POST" : {
e9cd3bd4 34581 "allowtoken" : 1,
4d47f125
TL
34582 "description" : "Stop ceph services.",
34583 "method" : "POST",
34584 "name" : "stop",
34585 "parameters" : {
34586 "additionalProperties" : 0,
34587 "properties" : {
34588 "node" : {
34589 "description" : "The cluster node name.",
34590 "format" : "pve-node",
34591 "type" : "string",
34592 "typetext" : "<string>"
34593 },
34594 "service" : {
e2d681b3 34595 "default" : "ceph.target",
4d47f125
TL
34596 "description" : "Ceph service name.",
34597 "optional" : 1,
c5aa7e14 34598 "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
4d47f125
TL
34599 "type" : "string"
34600 }
34601 }
7aacca6f 34602 },
4d47f125
TL
34603 "permissions" : {
34604 "check" : [
34605 "perm",
34606 "/",
34607 [
34608 "Sys.Modify"
34609 ]
34610 ]
7aacca6f 34611 },
4d47f125
TL
34612 "protected" : 1,
34613 "proxyto" : "node",
34614 "returns" : {
34615 "type" : "string"
34616 }
34617 }
34618 },
34619 "leaf" : 1,
34620 "path" : "/nodes/{node}/ceph/stop",
34621 "text" : "stop"
34622 },
34623 {
34624 "info" : {
34625 "POST" : {
e9cd3bd4 34626 "allowtoken" : 1,
4d47f125
TL
34627 "description" : "Start ceph services.",
34628 "method" : "POST",
34629 "name" : "start",
34630 "parameters" : {
34631 "additionalProperties" : 0,
34632 "properties" : {
34633 "node" : {
34634 "description" : "The cluster node name.",
34635 "format" : "pve-node",
34636 "type" : "string",
34637 "typetext" : "<string>"
34638 },
34639 "service" : {
e2d681b3 34640 "default" : "ceph.target",
4d47f125
TL
34641 "description" : "Ceph service name.",
34642 "optional" : 1,
c5aa7e14 34643 "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
4d47f125
TL
34644 "type" : "string"
34645 }
34646 }
44660702 34647 },
4d47f125
TL
34648 "permissions" : {
34649 "check" : [
34650 "perm",
34651 "/",
34652 [
34653 "Sys.Modify"
34654 ]
34655 ]
44660702 34656 },
4d47f125
TL
34657 "protected" : 1,
34658 "proxyto" : "node",
34659 "returns" : {
34660 "type" : "string"
44660702 34661 }
7aacca6f
DM
34662 }
34663 },
4d47f125
TL
34664 "leaf" : 1,
34665 "path" : "/nodes/{node}/ceph/start",
34666 "text" : "start"
34667 },
e2d681b3
TL
34668 {
34669 "info" : {
34670 "POST" : {
e9cd3bd4 34671 "allowtoken" : 1,
e2d681b3
TL
34672 "description" : "Restart ceph services.",
34673 "method" : "POST",
34674 "name" : "restart",
34675 "parameters" : {
34676 "additionalProperties" : 0,
34677 "properties" : {
34678 "node" : {
34679 "description" : "The cluster node name.",
34680 "format" : "pve-node",
34681 "type" : "string",
34682 "typetext" : "<string>"
34683 },
34684 "service" : {
34685 "default" : "ceph.target",
34686 "description" : "Ceph service name.",
34687 "optional" : 1,
c5aa7e14 34688 "pattern" : "(mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
e2d681b3
TL
34689 "type" : "string"
34690 }
34691 }
34692 },
34693 "permissions" : {
34694 "check" : [
34695 "perm",
34696 "/",
34697 [
34698 "Sys.Modify"
34699 ]
34700 ]
34701 },
34702 "protected" : 1,
34703 "proxyto" : "node",
34704 "returns" : {
34705 "type" : "string"
34706 }
34707 }
34708 },
34709 "leaf" : 1,
34710 "path" : "/nodes/{node}/ceph/restart",
34711 "text" : "restart"
34712 },
4d47f125
TL
34713 {
34714 "info" : {
34715 "GET" : {
e9cd3bd4 34716 "allowtoken" : 1,
4d47f125
TL
34717 "description" : "Get ceph status.",
34718 "method" : "GET",
34719 "name" : "status",
34720 "parameters" : {
34721 "additionalProperties" : 0,
34722 "properties" : {
34723 "node" : {
34724 "description" : "The cluster node name.",
34725 "format" : "pve-node",
34726 "type" : "string",
34727 "typetext" : "<string>"
34728 }
34729 }
34730 },
34731 "permissions" : {
34732 "check" : [
34733 "perm",
34734 "/",
34735 [
34736 "Sys.Audit",
34737 "Datastore.Audit"
34738 ],
34739 "any",
34740 1
34741 ]
34742 },
34743 "protected" : 1,
34744 "proxyto" : "node",
34745 "returns" : {
d2656385 34746 "type" : "object"
44660702 34747 }
56122987 34748 }
44660702 34749 },
d2656385
TL
34750 "leaf" : 1,
34751 "path" : "/nodes/{node}/ceph/status",
34752 "text" : "status"
7aacca6f 34753 },
56122987 34754 {
56122987
DM
34755 "info" : {
34756 "GET" : {
e9cd3bd4 34757 "allowtoken" : 1,
4d47f125 34758 "description" : "Get OSD crush map",
44660702 34759 "method" : "GET",
4d47f125 34760 "name" : "crush",
56122987 34761 "parameters" : {
7aacca6f 34762 "additionalProperties" : 0,
56122987 34763 "properties" : {
56122987 34764 "node" : {
7aacca6f 34765 "description" : "The cluster node name.",
44660702 34766 "format" : "pve-node",
013dc89f
DM
34767 "type" : "string",
34768 "typetext" : "<string>"
56122987 34769 }
7aacca6f 34770 }
56122987 34771 },
56122987
DM
34772 "permissions" : {
34773 "check" : [
34774 "perm",
34775 "/",
34776 [
34777 "Sys.Audit",
34778 "Datastore.Audit"
34779 ],
34780 "any",
34781 1
34782 ]
44660702 34783 },
4d47f125
TL
34784 "protected" : 1,
34785 "proxyto" : "node",
44660702
DM
34786 "returns" : {
34787 "type" : "string"
7aacca6f
DM
34788 }
34789 }
44660702
DM
34790 },
34791 "leaf" : 1,
4d47f125
TL
34792 "path" : "/nodes/{node}/ceph/crush",
34793 "text" : "crush"
7aacca6f
DM
34794 },
34795 {
7aacca6f
DM
34796 "info" : {
34797 "GET" : {
e9cd3bd4 34798 "allowtoken" : 1,
4d47f125 34799 "description" : "Read ceph log",
7aacca6f 34800 "method" : "GET",
4d47f125 34801 "name" : "log",
7aacca6f
DM
34802 "parameters" : {
34803 "additionalProperties" : 0,
34804 "properties" : {
4d47f125
TL
34805 "limit" : {
34806 "minimum" : 0,
34807 "optional" : 1,
34808 "type" : "integer",
34809 "typetext" : "<integer> (0 - N)"
34810 },
7aacca6f 34811 "node" : {
7aacca6f 34812 "description" : "The cluster node name.",
44660702 34813 "format" : "pve-node",
013dc89f
DM
34814 "type" : "string",
34815 "typetext" : "<string>"
4d47f125
TL
34816 },
34817 "start" : {
34818 "minimum" : 0,
34819 "optional" : 1,
34820 "type" : "integer",
34821 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
34822 }
34823 }
34824 },
44660702
DM
34825 "permissions" : {
34826 "check" : [
34827 "perm",
4d47f125 34828 "/nodes/{node}",
44660702 34829 [
4d47f125
TL
34830 "Sys.Syslog"
34831 ]
44660702
DM
34832 ]
34833 },
7aacca6f 34834 "protected" : 1,
44660702 34835 "proxyto" : "node",
7aacca6f
DM
34836 "returns" : {
34837 "items" : {
34838 "properties" : {
4d47f125
TL
34839 "n" : {
34840 "description" : "Line number",
34841 "type" : "integer"
56122987 34842 },
4d47f125
TL
34843 "t" : {
34844 "description" : "Line text",
56122987
DM
34845 "type" : "string"
34846 }
7aacca6f
DM
34847 },
34848 "type" : "object"
56122987
DM
34849 },
34850 "type" : "array"
44660702 34851 }
4d47f125
TL
34852 }
34853 },
34854 "leaf" : 1,
34855 "path" : "/nodes/{node}/ceph/log",
34856 "text" : "log"
34857 },
34858 {
34859 "info" : {
34860 "GET" : {
e9cd3bd4 34861 "allowtoken" : 1,
4d47f125
TL
34862 "description" : "List ceph rules.",
34863 "method" : "GET",
34864 "name" : "rules",
44660702
DM
34865 "parameters" : {
34866 "additionalProperties" : 0,
34867 "properties" : {
34868 "node" : {
34869 "description" : "The cluster node name.",
34870 "format" : "pve-node",
013dc89f
DM
34871 "type" : "string",
34872 "typetext" : "<string>"
44660702
DM
34873 }
34874 }
34875 },
7aacca6f
DM
34876 "permissions" : {
34877 "check" : [
34878 "perm",
34879 "/",
34880 [
4d47f125
TL
34881 "Sys.Audit",
34882 "Datastore.Audit"
34883 ],
34884 "any",
34885 1
7aacca6f
DM
34886 ]
34887 },
44660702 34888 "protected" : 1,
7aacca6f 34889 "proxyto" : "node",
56122987 34890 "returns" : {
4d47f125
TL
34891 "items" : {
34892 "properties" : {},
34893 "type" : "object"
34894 },
34895 "links" : [
34896 {
34897 "href" : "{name}",
34898 "rel" : "child"
34899 }
34900 ],
34901 "type" : "array"
44660702 34902 }
56122987 34903 }
44660702 34904 },
4d47f125
TL
34905 "leaf" : 1,
34906 "path" : "/nodes/{node}/ceph/rules",
34907 "text" : "rules"
81a3384d
TL
34908 },
34909 {
34910 "info" : {
34911 "GET" : {
34912 "allowtoken" : 1,
34913 "description" : "Heuristical check if it is safe to perform an action.",
34914 "method" : "GET",
34915 "name" : "cmd_safety",
34916 "parameters" : {
34917 "additionalProperties" : 0,
34918 "properties" : {
34919 "action" : {
34920 "description" : "Action to check",
34921 "enum" : [
34922 "stop",
34923 "destroy"
34924 ],
34925 "type" : "string"
34926 },
34927 "id" : {
34928 "description" : "ID of the service",
34929 "type" : "string",
34930 "typetext" : "<string>"
34931 },
34932 "node" : {
34933 "description" : "The cluster node name.",
34934 "format" : "pve-node",
34935 "type" : "string",
34936 "typetext" : "<string>"
34937 },
34938 "service" : {
34939 "description" : "Service type",
34940 "enum" : [
34941 "osd",
34942 "mon",
34943 "mds"
34944 ],
34945 "type" : "string"
34946 }
34947 }
34948 },
34949 "permissions" : {
34950 "check" : [
34951 "perm",
34952 "/",
34953 [
34954 "Sys.audit"
34955 ]
34956 ]
34957 },
34958 "protected" : 1,
34959 "proxyto" : "node",
34960 "returns" : {
34961 "properties" : {
34962 "safe" : {
34963 "description" : "If it is safe to run the command.",
34964 "type" : "boolean"
34965 },
34966 "status" : {
34967 "description" : "Status message given by Ceph.",
34968 "optional" : 1,
34969 "type" : "string"
34970 }
34971 },
34972 "type" : "object"
34973 }
34974 }
34975 },
34976 "leaf" : 1,
34977 "path" : "/nodes/{node}/ceph/cmd-safety",
34978 "text" : "cmd-safety"
4d47f125
TL
34979 }
34980 ],
34981 "info" : {
34982 "GET" : {
e9cd3bd4 34983 "allowtoken" : 1,
4d47f125
TL
34984 "description" : "Directory index.",
34985 "method" : "GET",
34986 "name" : "index",
34987 "parameters" : {
34988 "additionalProperties" : 0,
34989 "properties" : {
34990 "node" : {
34991 "description" : "The cluster node name.",
34992 "format" : "pve-node",
34993 "type" : "string",
34994 "typetext" : "<string>"
34995 }
34996 }
34997 },
34998 "permissions" : {
34999 "check" : [
35000 "perm",
35001 "/",
35002 [
35003 "Sys.Audit",
35004 "Datastore.Audit"
35005 ],
35006 "any",
35007 1
35008 ]
35009 },
35010 "returns" : {
35011 "items" : {
35012 "properties" : {},
35013 "type" : "object"
35014 },
35015 "links" : [
35016 {
35017 "href" : "{name}",
35018 "rel" : "child"
35019 }
35020 ],
35021 "type" : "array"
35022 }
35023 }
35024 },
35025 "leaf" : 0,
35026 "path" : "/nodes/{node}/ceph",
35027 "text" : "ceph"
35028 },
35029 {
35030 "children" : [
e7084ef7
TL
35031 {
35032 "info" : {
35033 "GET" : {
35034 "allowtoken" : 1,
35035 "description" : "Get the currently configured vzdump defaults.",
35036 "method" : "GET",
35037 "name" : "defaults",
35038 "parameters" : {
35039 "additionalProperties" : 0,
35040 "properties" : {
35041 "node" : {
35042 "description" : "The cluster node name.",
35043 "format" : "pve-node",
35044 "type" : "string",
35045 "typetext" : "<string>"
35046 },
35047 "storage" : {
35048 "description" : "The storage identifier.",
35049 "format" : "pve-storage-id",
35050 "optional" : 1,
35051 "type" : "string",
35052 "typetext" : "<string>"
35053 }
35054 }
35055 },
35056 "permissions" : {
35057 "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.",
35058 "user" : "all"
35059 },
35060 "proxyto" : "node",
35061 "returns" : {
35062 "additionalProperties" : 0,
35063 "properties" : {
35064 "all" : {
35065 "default" : 0,
35066 "description" : "Backup all known guest systems on this host.",
35067 "optional" : 1,
35068 "type" : "boolean"
35069 },
35070 "bwlimit" : {
35071 "default" : 0,
35072 "description" : "Limit I/O bandwidth (KBytes per second).",
35073 "minimum" : 0,
35074 "optional" : 1,
35075 "type" : "integer"
35076 },
35077 "compress" : {
35078 "default" : "0",
35079 "description" : "Compress dump file.",
35080 "enum" : [
35081 "0",
35082 "1",
35083 "gzip",
35084 "lzo",
35085 "zstd"
35086 ],
35087 "optional" : 1,
35088 "type" : "string"
35089 },
35090 "dumpdir" : {
35091 "description" : "Store resulting files to specified directory.",
35092 "optional" : 1,
35093 "type" : "string"
35094 },
35095 "exclude" : {
35096 "description" : "Exclude specified guest systems (assumes --all)",
35097 "format" : "pve-vmid-list",
35098 "optional" : 1,
35099 "type" : "string"
35100 },
35101 "exclude-path" : {
35102 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
35103 "format" : "string-alist",
35104 "optional" : 1,
35105 "type" : "string"
35106 },
35107 "ionice" : {
35108 "default" : 7,
35109 "description" : "Set CFQ ionice priority.",
35110 "maximum" : 8,
35111 "minimum" : 0,
35112 "optional" : 1,
35113 "type" : "integer"
35114 },
35115 "lockwait" : {
35116 "default" : 180,
35117 "description" : "Maximal time to wait for the global lock (minutes).",
35118 "minimum" : 0,
35119 "optional" : 1,
35120 "type" : "integer"
35121 },
35122 "mailnotification" : {
35123 "default" : "always",
35124 "description" : "Specify when to send an email",
35125 "enum" : [
35126 "always",
35127 "failure"
35128 ],
35129 "optional" : 1,
35130 "type" : "string"
35131 },
35132 "mailto" : {
35133 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
35134 "format" : "email-or-username-list",
35135 "optional" : 1,
35136 "type" : "string"
35137 },
35138 "maxfiles" : {
0695fdaf 35139 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
e7084ef7
TL
35140 "minimum" : 1,
35141 "optional" : 1,
35142 "type" : "integer"
35143 },
35144 "mode" : {
35145 "default" : "snapshot",
35146 "description" : "Backup mode.",
35147 "enum" : [
35148 "snapshot",
35149 "suspend",
35150 "stop"
35151 ],
35152 "optional" : 1,
35153 "type" : "string"
35154 },
35155 "node" : {
35156 "description" : "Only run if executed on this node.",
35157 "format" : "pve-node",
35158 "optional" : 1,
35159 "type" : "string"
35160 },
7af2edf9 35161 "notes-template" : {
4e7f60c2
TL
35162 "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.",
35163 "maxLength" : 1024,
7af2edf9
TL
35164 "optional" : 1,
35165 "requires" : "storage",
35166 "type" : "string"
35167 },
4e7f60c2
TL
35168 "performance" : {
35169 "description" : "Other performance-related settings.",
35170 "format" : "backup-performance",
35171 "optional" : 1,
35172 "type" : "string"
35173 },
e7084ef7
TL
35174 "pigz" : {
35175 "default" : 0,
35176 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
35177 "optional" : 1,
35178 "type" : "integer"
35179 },
35180 "pool" : {
35181 "description" : "Backup all known guest systems included in the specified pool.",
35182 "optional" : 1,
35183 "type" : "string"
35184 },
7af2edf9
TL
35185 "protected" : {
35186 "description" : "If true, mark backup(s) as protected.",
35187 "optional" : 1,
35188 "requires" : "storage",
35189 "type" : "boolean"
35190 },
e7084ef7 35191 "prune-backups" : {
0695fdaf 35192 "default" : "keep-all=1",
e7084ef7
TL
35193 "description" : "Use these retention options instead of those from the storage configuration.",
35194 "format" : "prune-backups",
35195 "optional" : 1,
35196 "type" : "string"
35197 },
35198 "quiet" : {
35199 "default" : 0,
35200 "description" : "Be quiet.",
35201 "optional" : 1,
35202 "type" : "boolean"
35203 },
35204 "remove" : {
35205 "default" : 1,
0695fdaf 35206 "description" : "Prune older backups according to 'prune-backups'.",
e7084ef7
TL
35207 "optional" : 1,
35208 "type" : "boolean"
35209 },
35210 "script" : {
35211 "description" : "Use specified hook script.",
35212 "optional" : 1,
35213 "type" : "string"
35214 },
e7084ef7
TL
35215 "stdexcludes" : {
35216 "default" : 1,
35217 "description" : "Exclude temporary files and logs.",
35218 "optional" : 1,
35219 "type" : "boolean"
35220 },
35221 "stop" : {
35222 "default" : 0,
35223 "description" : "Stop running backup jobs on this host.",
35224 "optional" : 1,
35225 "type" : "boolean"
35226 },
35227 "stopwait" : {
35228 "default" : 10,
35229 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
35230 "minimum" : 0,
35231 "optional" : 1,
35232 "type" : "integer"
35233 },
35234 "storage" : {
35235 "description" : "Store resulting file to this storage.",
35236 "format" : "pve-storage-id",
35237 "optional" : 1,
35238 "type" : "string"
35239 },
35240 "tmpdir" : {
35241 "description" : "Store temporary files to specified directory.",
35242 "optional" : 1,
35243 "type" : "string"
35244 },
35245 "vmid" : {
35246 "description" : "The ID of the guest system you want to backup.",
35247 "format" : "pve-vmid-list",
35248 "optional" : 1,
35249 "type" : "string"
35250 },
35251 "zstd" : {
35252 "default" : 1,
35253 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
35254 "optional" : 1,
35255 "type" : "integer"
35256 }
35257 },
35258 "type" : "object"
35259 }
35260 }
35261 },
35262 "leaf" : 1,
35263 "path" : "/nodes/{node}/vzdump/defaults",
35264 "text" : "defaults"
35265 },
56122987
DM
35266 {
35267 "info" : {
4d47f125 35268 "GET" : {
e9cd3bd4 35269 "allowtoken" : 1,
4d47f125
TL
35270 "description" : "Extract configuration from vzdump backup archive.",
35271 "method" : "GET",
35272 "name" : "extractconfig",
35273 "parameters" : {
35274 "additionalProperties" : 0,
35275 "properties" : {
44660702
DM
35276 "node" : {
35277 "description" : "The cluster node name.",
35278 "format" : "pve-node",
013dc89f
DM
35279 "type" : "string",
35280 "typetext" : "<string>"
44660702 35281 },
4d47f125
TL
35282 "volume" : {
35283 "description" : "Volume identifier",
35284 "type" : "string",
35285 "typetext" : "<string>"
44660702
DM
35286 }
35287 }
7aacca6f 35288 },
56122987 35289 "permissions" : {
4d47f125
TL
35290 "description" : "The user needs 'VM.Backup' permissions on the backed up guest ID, and 'Datastore.AllocateSpace' on the backup storage.",
35291 "user" : "all"
56122987 35292 },
7aacca6f 35293 "protected" : 1,
44660702
DM
35294 "proxyto" : "node",
35295 "returns" : {
4d47f125 35296 "type" : "string"
7aacca6f
DM
35297 }
35298 }
35299 },
7aacca6f 35300 "leaf" : 1,
4d47f125
TL
35301 "path" : "/nodes/{node}/vzdump/extractconfig",
35302 "text" : "extractconfig"
35303 }
35304 ],
35305 "info" : {
35306 "POST" : {
e9cd3bd4 35307 "allowtoken" : 1,
4d47f125
TL
35308 "description" : "Create backup.",
35309 "method" : "POST",
35310 "name" : "vzdump",
35311 "parameters" : {
35312 "additionalProperties" : 0,
35313 "properties" : {
35314 "all" : {
35315 "default" : 0,
35316 "description" : "Backup all known guest systems on this host.",
35317 "optional" : 1,
35318 "type" : "boolean",
35319 "typetext" : "<boolean>"
35320 },
35321 "bwlimit" : {
35322 "default" : 0,
35323 "description" : "Limit I/O bandwidth (KBytes per second).",
35324 "minimum" : 0,
35325 "optional" : 1,
35326 "type" : "integer",
35327 "typetext" : "<integer> (0 - N)"
35328 },
35329 "compress" : {
35330 "default" : "0",
35331 "description" : "Compress dump file.",
35332 "enum" : [
35333 "0",
35334 "1",
35335 "gzip",
c5aa7e14
TL
35336 "lzo",
35337 "zstd"
4d47f125
TL
35338 ],
35339 "optional" : 1,
35340 "type" : "string"
35341 },
35342 "dumpdir" : {
35343 "description" : "Store resulting files to specified directory.",
35344 "optional" : 1,
35345 "type" : "string",
35346 "typetext" : "<string>"
35347 },
35348 "exclude" : {
35349 "description" : "Exclude specified guest systems (assumes --all)",
35350 "format" : "pve-vmid-list",
35351 "optional" : 1,
35352 "type" : "string",
35353 "typetext" : "<string>"
35354 },
35355 "exclude-path" : {
d2656385 35356 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
4d47f125
TL
35357 "format" : "string-alist",
35358 "optional" : 1,
35359 "type" : "string",
35360 "typetext" : "<string>"
35361 },
35362 "ionice" : {
35363 "default" : 7,
35364 "description" : "Set CFQ ionice priority.",
35365 "maximum" : 8,
35366 "minimum" : 0,
35367 "optional" : 1,
35368 "type" : "integer",
35369 "typetext" : "<integer> (0 - 8)"
35370 },
35371 "lockwait" : {
35372 "default" : 180,
35373 "description" : "Maximal time to wait for the global lock (minutes).",
35374 "minimum" : 0,
35375 "optional" : 1,
35376 "type" : "integer",
35377 "typetext" : "<integer> (0 - N)"
35378 },
35379 "mailnotification" : {
35380 "default" : "always",
35381 "description" : "Specify when to send an email",
35382 "enum" : [
35383 "always",
35384 "failure"
35385 ],
35386 "optional" : 1,
35387 "type" : "string"
35388 },
35389 "mailto" : {
d2656385
TL
35390 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
35391 "format" : "email-or-username-list",
4d47f125
TL
35392 "optional" : 1,
35393 "type" : "string",
35394 "typetext" : "<string>"
35395 },
35396 "maxfiles" : {
0695fdaf 35397 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
4d47f125
TL
35398 "minimum" : 1,
35399 "optional" : 1,
35400 "type" : "integer",
35401 "typetext" : "<integer> (1 - N)"
35402 },
35403 "mode" : {
35404 "default" : "snapshot",
35405 "description" : "Backup mode.",
35406 "enum" : [
35407 "snapshot",
35408 "suspend",
35409 "stop"
35410 ],
35411 "optional" : 1,
35412 "type" : "string"
35413 },
35414 "node" : {
35415 "description" : "Only run if executed on this node.",
35416 "format" : "pve-node",
35417 "optional" : 1,
35418 "type" : "string",
35419 "typetext" : "<string>"
35420 },
7af2edf9 35421 "notes-template" : {
4e7f60c2
TL
35422 "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.",
35423 "maxLength" : 1024,
7af2edf9
TL
35424 "optional" : 1,
35425 "requires" : "storage",
35426 "type" : "string",
35427 "typetext" : "<string>"
35428 },
4e7f60c2
TL
35429 "performance" : {
35430 "description" : "Other performance-related settings.",
35431 "format" : "backup-performance",
35432 "optional" : 1,
35433 "type" : "string",
35434 "typetext" : "[max-workers=<integer>]"
35435 },
4d47f125
TL
35436 "pigz" : {
35437 "default" : 0,
35438 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
35439 "optional" : 1,
35440 "type" : "integer",
35441 "typetext" : "<integer>"
35442 },
9226ccbc
TL
35443 "pool" : {
35444 "description" : "Backup all known guest systems included in the specified pool.",
35445 "optional" : 1,
35446 "type" : "string",
35447 "typetext" : "<string>"
35448 },
7af2edf9
TL
35449 "protected" : {
35450 "description" : "If true, mark backup(s) as protected.",
35451 "optional" : 1,
35452 "requires" : "storage",
35453 "type" : "boolean",
35454 "typetext" : "<boolean>"
35455 },
739d4d64 35456 "prune-backups" : {
0695fdaf 35457 "default" : "keep-all=1",
739d4d64
TL
35458 "description" : "Use these retention options instead of those from the storage configuration.",
35459 "format" : "prune-backups",
35460 "optional" : 1,
35461 "type" : "string",
4772952b 35462 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 35463 },
4d47f125
TL
35464 "quiet" : {
35465 "default" : 0,
35466 "description" : "Be quiet.",
35467 "optional" : 1,
35468 "type" : "boolean",
35469 "typetext" : "<boolean>"
35470 },
35471 "remove" : {
35472 "default" : 1,
0695fdaf 35473 "description" : "Prune older backups according to 'prune-backups'.",
4d47f125
TL
35474 "optional" : 1,
35475 "type" : "boolean",
35476 "typetext" : "<boolean>"
35477 },
35478 "script" : {
35479 "description" : "Use specified hook script.",
35480 "optional" : 1,
35481 "type" : "string",
35482 "typetext" : "<string>"
35483 },
4d47f125
TL
35484 "stdexcludes" : {
35485 "default" : 1,
35486 "description" : "Exclude temporary files and logs.",
35487 "optional" : 1,
35488 "type" : "boolean",
35489 "typetext" : "<boolean>"
35490 },
35491 "stdout" : {
35492 "description" : "Write tar to stdout, not to a file.",
35493 "optional" : 1,
35494 "type" : "boolean",
35495 "typetext" : "<boolean>"
35496 },
35497 "stop" : {
35498 "default" : 0,
1e3f8156 35499 "description" : "Stop running backup jobs on this host.",
4d47f125
TL
35500 "optional" : 1,
35501 "type" : "boolean",
35502 "typetext" : "<boolean>"
35503 },
35504 "stopwait" : {
35505 "default" : 10,
35506 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
35507 "minimum" : 0,
35508 "optional" : 1,
35509 "type" : "integer",
35510 "typetext" : "<integer> (0 - N)"
35511 },
35512 "storage" : {
35513 "description" : "Store resulting file to this storage.",
35514 "format" : "pve-storage-id",
35515 "optional" : 1,
35516 "type" : "string",
35517 "typetext" : "<string>"
35518 },
35519 "tmpdir" : {
35520 "description" : "Store temporary files to specified directory.",
35521 "optional" : 1,
35522 "type" : "string",
35523 "typetext" : "<string>"
35524 },
35525 "vmid" : {
35526 "description" : "The ID of the guest system you want to backup.",
35527 "format" : "pve-vmid-list",
35528 "optional" : 1,
35529 "type" : "string",
35530 "typetext" : "<string>"
c5aa7e14
TL
35531 },
35532 "zstd" : {
35533 "default" : 1,
35534 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
35535 "optional" : 1,
35536 "type" : "integer",
35537 "typetext" : "<integer>"
4d47f125
TL
35538 }
35539 }
35540 },
35541 "permissions" : {
4e7f60c2 35542 "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage. The 'maxfiles', 'prune-backups', 'tmpdir', 'dumpdir', 'script', 'bwlimit', 'performance' and 'ionice' parameters are restricted to the 'root@pam' user.",
4d47f125
TL
35543 "user" : "all"
35544 },
35545 "protected" : 1,
35546 "proxyto" : "node",
35547 "returns" : {
35548 "type" : "string"
35549 }
35550 }
35551 },
35552 "leaf" : 0,
35553 "path" : "/nodes/{node}/vzdump",
35554 "text" : "vzdump"
35555 },
35556 {
35557 "children" : [
2489d6df
WB
35558 {
35559 "children" : [
35560 {
35561 "info" : {
4d47f125 35562 "GET" : {
e9cd3bd4 35563 "allowtoken" : 1,
4d47f125
TL
35564 "description" : "Read service properties",
35565 "method" : "GET",
35566 "name" : "service_state",
2489d6df
WB
35567 "parameters" : {
35568 "additionalProperties" : 0,
35569 "properties" : {
2489d6df
WB
35570 "node" : {
35571 "description" : "The cluster node name.",
35572 "format" : "pve-node",
35573 "type" : "string",
35574 "typetext" : "<string>"
4d47f125
TL
35575 },
35576 "service" : {
35577 "description" : "Service ID",
35578 "enum" : [
5370fa8c 35579 "chrony",
4d47f125 35580 "corosync",
5370fa8c
TL
35581 "cron",
35582 "ksmtuned",
35583 "postfix",
35584 "pve-cluster",
4d47f125 35585 "pve-firewall",
4d47f125
TL
35586 "pve-ha-crm",
35587 "pve-ha-lrm",
5370fa8c
TL
35588 "pvedaemon",
35589 "pvefw-logger",
35590 "pveproxy",
35591 "pvescheduler",
35592 "pvestatd",
35593 "spiceproxy",
4d47f125
TL
35594 "sshd",
35595 "syslog",
8f4d9c87 35596 "systemd-journald",
5370fa8c 35597 "systemd-timesyncd"
4d47f125
TL
35598 ],
35599 "type" : "string"
2489d6df
WB
35600 }
35601 }
35602 },
35603 "permissions" : {
35604 "check" : [
35605 "perm",
4d47f125 35606 "/nodes/{node}",
2489d6df 35607 [
4d47f125 35608 "Sys.Audit"
2489d6df
WB
35609 ]
35610 ]
35611 },
35612 "protected" : 1,
35613 "proxyto" : "node",
35614 "returns" : {
4d47f125 35615 "type" : "object"
2489d6df
WB
35616 }
35617 }
35618 },
35619 "leaf" : 1,
4d47f125
TL
35620 "path" : "/nodes/{node}/services/{service}/state",
35621 "text" : "state"
35622 },
35623 {
35624 "info" : {
35625 "POST" : {
e9cd3bd4 35626 "allowtoken" : 1,
4d47f125
TL
35627 "description" : "Start service.",
35628 "method" : "POST",
35629 "name" : "service_start",
35630 "parameters" : {
35631 "additionalProperties" : 0,
35632 "properties" : {
35633 "node" : {
35634 "description" : "The cluster node name.",
35635 "format" : "pve-node",
35636 "type" : "string",
35637 "typetext" : "<string>"
35638 },
35639 "service" : {
35640 "description" : "Service ID",
35641 "enum" : [
5370fa8c 35642 "chrony",
4d47f125 35643 "corosync",
5370fa8c
TL
35644 "cron",
35645 "ksmtuned",
35646 "postfix",
35647 "pve-cluster",
4d47f125 35648 "pve-firewall",
4d47f125
TL
35649 "pve-ha-crm",
35650 "pve-ha-lrm",
5370fa8c
TL
35651 "pvedaemon",
35652 "pvefw-logger",
35653 "pveproxy",
35654 "pvescheduler",
35655 "pvestatd",
35656 "spiceproxy",
4d47f125
TL
35657 "sshd",
35658 "syslog",
8f4d9c87 35659 "systemd-journald",
5370fa8c 35660 "systemd-timesyncd"
4d47f125
TL
35661 ],
35662 "type" : "string"
35663 }
35664 }
7aacca6f 35665 },
4d47f125
TL
35666 "permissions" : {
35667 "check" : [
35668 "perm",
35669 "/nodes/{node}",
35670 [
35671 "Sys.Modify"
35672 ]
35673 ]
7aacca6f 35674 },
4d47f125
TL
35675 "protected" : 1,
35676 "proxyto" : "node",
35677 "returns" : {
35678 "type" : "string"
35679 }
35680 }
56122987 35681 },
4d47f125
TL
35682 "leaf" : 1,
35683 "path" : "/nodes/{node}/services/{service}/start",
35684 "text" : "start"
35685 },
44660702
DM
35686 {
35687 "info" : {
4d47f125 35688 "POST" : {
e9cd3bd4 35689 "allowtoken" : 1,
4d47f125
TL
35690 "description" : "Stop service.",
35691 "method" : "POST",
35692 "name" : "service_stop",
44660702
DM
35693 "parameters" : {
35694 "additionalProperties" : 0,
35695 "properties" : {
44660702
DM
35696 "node" : {
35697 "description" : "The cluster node name.",
35698 "format" : "pve-node",
013dc89f
DM
35699 "type" : "string",
35700 "typetext" : "<string>"
2489d6df 35701 },
4d47f125
TL
35702 "service" : {
35703 "description" : "Service ID",
35704 "enum" : [
5370fa8c 35705 "chrony",
4d47f125 35706 "corosync",
5370fa8c
TL
35707 "cron",
35708 "ksmtuned",
35709 "postfix",
35710 "pve-cluster",
4d47f125 35711 "pve-firewall",
4d47f125
TL
35712 "pve-ha-crm",
35713 "pve-ha-lrm",
5370fa8c
TL
35714 "pvedaemon",
35715 "pvefw-logger",
35716 "pveproxy",
35717 "pvescheduler",
35718 "pvestatd",
35719 "spiceproxy",
4d47f125
TL
35720 "sshd",
35721 "syslog",
8f4d9c87 35722 "systemd-journald",
5370fa8c 35723 "systemd-timesyncd"
4d47f125
TL
35724 ],
35725 "type" : "string"
44660702
DM
35726 }
35727 }
35728 },
35729 "permissions" : {
35730 "check" : [
35731 "perm",
4d47f125 35732 "/nodes/{node}",
44660702
DM
35733 [
35734 "Sys.Modify"
35735 ]
35736 ]
35737 },
35738 "protected" : 1,
35739 "proxyto" : "node",
35740 "returns" : {
2489d6df 35741 "type" : "string"
44660702
DM
35742 }
35743 }
35744 },
35745 "leaf" : 1,
4d47f125
TL
35746 "path" : "/nodes/{node}/services/{service}/stop",
35747 "text" : "stop"
7aacca6f 35748 },
32d876b5
DM
35749 {
35750 "info" : {
4d47f125 35751 "POST" : {
e9cd3bd4 35752 "allowtoken" : 1,
739d4d64 35753 "description" : "Hard restart service. Use reload if you want to reduce interruptions.",
4d47f125
TL
35754 "method" : "POST",
35755 "name" : "service_restart",
32d876b5
DM
35756 "parameters" : {
35757 "additionalProperties" : 0,
35758 "properties" : {
4d47f125
TL
35759 "node" : {
35760 "description" : "The cluster node name.",
35761 "format" : "pve-node",
35762 "type" : "string",
35763 "typetext" : "<string>"
35764 },
35765 "service" : {
35766 "description" : "Service ID",
32d876b5 35767 "enum" : [
5370fa8c 35768 "chrony",
4d47f125 35769 "corosync",
5370fa8c
TL
35770 "cron",
35771 "ksmtuned",
35772 "postfix",
35773 "pve-cluster",
4d47f125 35774 "pve-firewall",
4d47f125
TL
35775 "pve-ha-crm",
35776 "pve-ha-lrm",
5370fa8c
TL
35777 "pvedaemon",
35778 "pvefw-logger",
35779 "pveproxy",
35780 "pvescheduler",
35781 "pvestatd",
35782 "spiceproxy",
4d47f125
TL
35783 "sshd",
35784 "syslog",
8f4d9c87 35785 "systemd-journald",
5370fa8c 35786 "systemd-timesyncd"
32d876b5
DM
35787 ],
35788 "type" : "string"
32d876b5
DM
35789 }
35790 }
35791 },
35792 "permissions" : {
35793 "check" : [
35794 "perm",
4d47f125 35795 "/nodes/{node}",
32d876b5
DM
35796 [
35797 "Sys.Modify"
35798 ]
35799 ]
35800 },
35801 "protected" : 1,
35802 "proxyto" : "node",
35803 "returns" : {
4d47f125 35804 "type" : "string"
32d876b5 35805 }
4d47f125
TL
35806 }
35807 },
35808 "leaf" : 1,
35809 "path" : "/nodes/{node}/services/{service}/restart",
35810 "text" : "restart"
35811 },
35812 {
35813 "info" : {
32d876b5 35814 "POST" : {
e9cd3bd4 35815 "allowtoken" : 1,
739d4d64 35816 "description" : "Reload service. Falls back to restart if service cannot be reloaded.",
32d876b5 35817 "method" : "POST",
4d47f125 35818 "name" : "service_reload",
32d876b5
DM
35819 "parameters" : {
35820 "additionalProperties" : 0,
35821 "properties" : {
32d876b5
DM
35822 "node" : {
35823 "description" : "The cluster node name.",
35824 "format" : "pve-node",
35825 "type" : "string",
35826 "typetext" : "<string>"
4d47f125
TL
35827 },
35828 "service" : {
35829 "description" : "Service ID",
35830 "enum" : [
5370fa8c 35831 "chrony",
4d47f125 35832 "corosync",
5370fa8c
TL
35833 "cron",
35834 "ksmtuned",
35835 "postfix",
35836 "pve-cluster",
4d47f125 35837 "pve-firewall",
4d47f125
TL
35838 "pve-ha-crm",
35839 "pve-ha-lrm",
5370fa8c
TL
35840 "pvedaemon",
35841 "pvefw-logger",
35842 "pveproxy",
35843 "pvescheduler",
35844 "pvestatd",
35845 "spiceproxy",
4d47f125
TL
35846 "sshd",
35847 "syslog",
8f4d9c87 35848 "systemd-journald",
5370fa8c 35849 "systemd-timesyncd"
4d47f125
TL
35850 ],
35851 "type" : "string"
32d876b5
DM
35852 }
35853 }
35854 },
35855 "permissions" : {
35856 "check" : [
35857 "perm",
4d47f125 35858 "/nodes/{node}",
32d876b5
DM
35859 [
35860 "Sys.Modify"
35861 ]
35862 ]
35863 },
35864 "protected" : 1,
35865 "proxyto" : "node",
35866 "returns" : {
4d47f125 35867 "type" : "string"
32d876b5
DM
35868 }
35869 }
35870 },
35871 "leaf" : 1,
4d47f125
TL
35872 "path" : "/nodes/{node}/services/{service}/reload",
35873 "text" : "reload"
32d876b5
DM
35874 }
35875 ],
35876 "info" : {
35877 "GET" : {
e9cd3bd4 35878 "allowtoken" : 1,
4d47f125 35879 "description" : "Directory index",
44660702 35880 "method" : "GET",
4d47f125 35881 "name" : "srvcmdidx",
44660702
DM
35882 "parameters" : {
35883 "additionalProperties" : 0,
35884 "properties" : {
44660702
DM
35885 "node" : {
35886 "description" : "The cluster node name.",
35887 "format" : "pve-node",
013dc89f
DM
35888 "type" : "string",
35889 "typetext" : "<string>"
44660702 35890 },
4d47f125
TL
35891 "service" : {
35892 "description" : "Service ID",
35893 "enum" : [
5370fa8c 35894 "chrony",
4d47f125 35895 "corosync",
5370fa8c
TL
35896 "cron",
35897 "ksmtuned",
35898 "postfix",
35899 "pve-cluster",
4d47f125 35900 "pve-firewall",
4d47f125
TL
35901 "pve-ha-crm",
35902 "pve-ha-lrm",
5370fa8c
TL
35903 "pvedaemon",
35904 "pvefw-logger",
35905 "pveproxy",
35906 "pvescheduler",
35907 "pvestatd",
35908 "spiceproxy",
4d47f125
TL
35909 "sshd",
35910 "syslog",
8f4d9c87 35911 "systemd-journald",
5370fa8c 35912 "systemd-timesyncd"
4d47f125
TL
35913 ],
35914 "type" : "string"
44660702 35915 }
7aacca6f 35916 }
56122987 35917 },
56122987
DM
35918 "permissions" : {
35919 "check" : [
35920 "perm",
7aacca6f 35921 "/nodes/{node}",
56122987 35922 [
4d47f125 35923 "Sys.Audit"
56122987
DM
35924 ]
35925 ]
35926 },
44660702
DM
35927 "returns" : {
35928 "items" : {
35929 "properties" : {
4d47f125 35930 "subdir" : {
44660702
DM
35931 "type" : "string"
35932 }
56122987 35933 },
44660702 35934 "type" : "object"
56122987 35935 },
2489d6df
WB
35936 "links" : [
35937 {
4d47f125 35938 "href" : "{subdir}",
2489d6df
WB
35939 "rel" : "child"
35940 }
35941 ],
35942 "type" : "array"
35943 }
35944 }
4d47f125
TL
35945 },
35946 "leaf" : 0,
35947 "path" : "/nodes/{node}/services/{service}",
35948 "text" : "{service}"
7aacca6f
DM
35949 }
35950 ],
44660702
DM
35951 "info" : {
35952 "GET" : {
e9cd3bd4 35953 "allowtoken" : 1,
4d47f125 35954 "description" : "Service list.",
44660702
DM
35955 "method" : "GET",
35956 "name" : "index",
35957 "parameters" : {
35958 "additionalProperties" : 0,
35959 "properties" : {
35960 "node" : {
35961 "description" : "The cluster node name.",
35962 "format" : "pve-node",
013dc89f
DM
35963 "type" : "string",
35964 "typetext" : "<string>"
44660702
DM
35965 }
35966 }
35967 },
35968 "permissions" : {
35969 "check" : [
35970 "perm",
4d47f125 35971 "/nodes/{node}",
44660702 35972 [
4d47f125
TL
35973 "Sys.Audit"
35974 ]
44660702
DM
35975 ]
35976 },
4d47f125
TL
35977 "protected" : 1,
35978 "proxyto" : "node",
44660702
DM
35979 "returns" : {
35980 "items" : {
35981 "properties" : {},
35982 "type" : "object"
35983 },
35984 "links" : [
35985 {
4d47f125 35986 "href" : "{service}",
44660702
DM
35987 "rel" : "child"
35988 }
35989 ],
35990 "type" : "array"
35991 }
35992 }
35993 },
7aacca6f 35994 "leaf" : 0,
4d47f125
TL
35995 "path" : "/nodes/{node}/services",
35996 "text" : "services"
7aacca6f
DM
35997 },
35998 {
7aacca6f 35999 "info" : {
ac70d7d1
TL
36000 "DELETE" : {
36001 "allowtoken" : 1,
36002 "description" : "Delete subscription key of this node.",
36003 "method" : "DELETE",
36004 "name" : "delete",
36005 "parameters" : {
36006 "additionalProperties" : 0,
36007 "properties" : {
36008 "node" : {
36009 "description" : "The cluster node name.",
36010 "format" : "pve-node",
36011 "type" : "string",
36012 "typetext" : "<string>"
36013 }
36014 }
36015 },
36016 "permissions" : {
36017 "check" : [
36018 "perm",
36019 "/nodes/{node}",
36020 [
36021 "Sys.Modify"
36022 ]
36023 ]
36024 },
36025 "protected" : 1,
36026 "proxyto" : "node",
36027 "returns" : {
36028 "type" : "null"
36029 }
36030 },
4d47f125 36031 "GET" : {
e9cd3bd4 36032 "allowtoken" : 1,
4d47f125
TL
36033 "description" : "Read subscription info.",
36034 "method" : "GET",
36035 "name" : "get",
7aacca6f 36036 "parameters" : {
44660702 36037 "additionalProperties" : 0,
7aacca6f 36038 "properties" : {
44660702 36039 "node" : {
4d47f125 36040 "description" : "The cluster node name.",
44660702 36041 "format" : "pve-node",
013dc89f
DM
36042 "type" : "string",
36043 "typetext" : "<string>"
4d47f125
TL
36044 }
36045 }
36046 },
36047 "permissions" : {
36048 "user" : "all"
36049 },
36050 "proxyto" : "node",
36051 "returns" : {
36052 "type" : "object"
36053 }
36054 },
36055 "POST" : {
e9cd3bd4 36056 "allowtoken" : 1,
4d47f125
TL
36057 "description" : "Update subscription info.",
36058 "method" : "POST",
36059 "name" : "update",
36060 "parameters" : {
36061 "additionalProperties" : 0,
36062 "properties" : {
36063 "force" : {
36064 "default" : 0,
36065 "description" : "Always connect to server, even if we have up to date info inside local cache.",
7aacca6f 36066 "optional" : 1,
4d47f125
TL
36067 "type" : "boolean",
36068 "typetext" : "<boolean>"
44660702 36069 },
4d47f125
TL
36070 "node" : {
36071 "description" : "The cluster node name.",
36072 "format" : "pve-node",
013dc89f
DM
36073 "type" : "string",
36074 "typetext" : "<string>"
4d47f125
TL
36075 }
36076 }
36077 },
36078 "permissions" : {
36079 "check" : [
36080 "perm",
36081 "/nodes/{node}",
36082 [
36083 "Sys.Modify"
36084 ]
36085 ]
36086 },
36087 "protected" : 1,
36088 "proxyto" : "node",
36089 "returns" : {
36090 "type" : "null"
36091 }
36092 },
36093 "PUT" : {
e9cd3bd4 36094 "allowtoken" : 1,
4d47f125
TL
36095 "description" : "Set subscription key.",
36096 "method" : "PUT",
36097 "name" : "set",
36098 "parameters" : {
36099 "additionalProperties" : 0,
36100 "properties" : {
36101 "key" : {
36102 "description" : "Proxmox VE subscription key",
36103 "maxLength" : 32,
5f26e15b 36104 "pattern" : "pve([1248])([cbsp])-[0-9a-f]{10}",
4d47f125 36105 "type" : "string"
7aacca6f 36106 },
4d47f125
TL
36107 "node" : {
36108 "description" : "The cluster node name.",
36109 "format" : "pve-node",
013dc89f
DM
36110 "type" : "string",
36111 "typetext" : "<string>"
7aacca6f 36112 }
7aacca6f
DM
36113 }
36114 },
7aacca6f 36115 "permissions" : {
4d47f125
TL
36116 "check" : [
36117 "perm",
36118 "/nodes/{node}",
36119 [
36120 "Sys.Modify"
36121 ]
36122 ]
7aacca6f 36123 },
44660702 36124 "protected" : 1,
7aacca6f 36125 "proxyto" : "node",
7aacca6f 36126 "returns" : {
4d47f125 36127 "type" : "null"
7aacca6f
DM
36128 }
36129 }
36130 },
4d47f125
TL
36131 "leaf" : 1,
36132 "path" : "/nodes/{node}/subscription",
36133 "text" : "subscription"
44660702
DM
36134 },
36135 {
7aacca6f
DM
36136 "children" : [
36137 {
4d47f125
TL
36138 "info" : {
36139 "DELETE" : {
e9cd3bd4 36140 "allowtoken" : 1,
4d47f125
TL
36141 "description" : "Delete network device configuration",
36142 "method" : "DELETE",
36143 "name" : "delete_network",
36144 "parameters" : {
36145 "additionalProperties" : 0,
36146 "properties" : {
36147 "iface" : {
36148 "description" : "Network interface name.",
36149 "format" : "pve-iface",
36150 "maxLength" : 20,
36151 "minLength" : 2,
36152 "type" : "string",
36153 "typetext" : "<string>"
7aacca6f 36154 },
4d47f125
TL
36155 "node" : {
36156 "description" : "The cluster node name.",
36157 "format" : "pve-node",
36158 "type" : "string",
36159 "typetext" : "<string>"
44660702
DM
36160 }
36161 }
36162 },
4d47f125
TL
36163 "permissions" : {
36164 "check" : [
36165 "perm",
36166 "/nodes/{node}",
36167 [
36168 "Sys.Modify"
36169 ]
36170 ]
36171 },
36172 "protected" : 1,
36173 "proxyto" : "node",
36174 "returns" : {
36175 "type" : "null"
36176 }
36177 },
36178 "GET" : {
e9cd3bd4 36179 "allowtoken" : 1,
4d47f125
TL
36180 "description" : "Read network device configuration",
36181 "method" : "GET",
36182 "name" : "network_config",
36183 "parameters" : {
36184 "additionalProperties" : 0,
36185 "properties" : {
36186 "iface" : {
36187 "description" : "Network interface name.",
36188 "format" : "pve-iface",
36189 "maxLength" : 20,
36190 "minLength" : 2,
36191 "type" : "string",
36192 "typetext" : "<string>"
56122987 36193 },
4d47f125
TL
36194 "node" : {
36195 "description" : "The cluster node name.",
36196 "format" : "pve-node",
36197 "type" : "string",
36198 "typetext" : "<string>"
44660702
DM
36199 }
36200 }
36201 },
4d47f125
TL
36202 "permissions" : {
36203 "check" : [
36204 "perm",
36205 "/nodes/{node}",
36206 [
36207 "Sys.Audit"
36208 ]
36209 ]
36210 },
36211 "proxyto" : "node",
36212 "returns" : {
36213 "properties" : {
36214 "method" : {
36215 "type" : "string"
44660702 36216 },
4d47f125 36217 "type" : {
44660702
DM
36218 "type" : "string"
36219 }
4d47f125
TL
36220 },
36221 "type" : "object"
36222 }
56122987 36223 },
4d47f125 36224 "PUT" : {
e9cd3bd4 36225 "allowtoken" : 1,
4d47f125
TL
36226 "description" : "Update network device configuration",
36227 "method" : "PUT",
36228 "name" : "update_network",
36229 "parameters" : {
36230 "additionalProperties" : 0,
36231 "properties" : {
36232 "address" : {
36233 "description" : "IP address.",
36234 "format" : "ipv4",
36235 "optional" : 1,
36236 "requires" : "netmask",
36237 "type" : "string",
36238 "typetext" : "<string>"
36239 },
36240 "address6" : {
36241 "description" : "IP address.",
36242 "format" : "ipv6",
36243 "optional" : 1,
36244 "requires" : "netmask6",
36245 "type" : "string",
36246 "typetext" : "<string>"
36247 },
36248 "autostart" : {
36249 "description" : "Automatically start interface on boot.",
36250 "optional" : 1,
36251 "type" : "boolean",
36252 "typetext" : "<boolean>"
36253 },
e9cd3bd4
TL
36254 "bond-primary" : {
36255 "description" : "Specify the primary interface for active-backup bond.",
36256 "format" : "pve-iface",
36257 "optional" : 1,
36258 "type" : "string",
36259 "typetext" : "<string>"
36260 },
4d47f125
TL
36261 "bond_mode" : {
36262 "description" : "Bonding mode.",
36263 "enum" : [
36264 "balance-rr",
36265 "active-backup",
36266 "balance-xor",
36267 "broadcast",
36268 "802.3ad",
36269 "balance-tlb",
36270 "balance-alb",
36271 "balance-slb",
36272 "lacp-balance-slb",
36273 "lacp-balance-tcp"
36274 ],
36275 "optional" : 1,
36276 "type" : "string"
36277 },
36278 "bond_xmit_hash_policy" : {
36279 "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
36280 "enum" : [
36281 "layer2",
36282 "layer2+3",
36283 "layer3+4"
36284 ],
36285 "optional" : 1,
36286 "type" : "string"
36287 },
36288 "bridge_ports" : {
1e3f8156 36289 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
36290 "format" : "pve-iface-list",
36291 "optional" : 1,
36292 "type" : "string",
36293 "typetext" : "<string>"
36294 },
36295 "bridge_vlan_aware" : {
36296 "description" : "Enable bridge vlan support.",
36297 "optional" : 1,
36298 "type" : "boolean",
36299 "typetext" : "<boolean>"
36300 },
bb4c8cf8
TL
36301 "cidr" : {
36302 "description" : "IPv4 CIDR.",
36303 "format" : "CIDRv4",
36304 "optional" : 1,
36305 "type" : "string",
36306 "typetext" : "<string>"
36307 },
36308 "cidr6" : {
36309 "description" : "IPv6 CIDR.",
36310 "format" : "CIDRv6",
36311 "optional" : 1,
36312 "type" : "string",
36313 "typetext" : "<string>"
36314 },
4d47f125
TL
36315 "comments" : {
36316 "description" : "Comments",
36317 "optional" : 1,
36318 "type" : "string",
36319 "typetext" : "<string>"
36320 },
36321 "comments6" : {
36322 "description" : "Comments",
36323 "optional" : 1,
36324 "type" : "string",
36325 "typetext" : "<string>"
36326 },
36327 "delete" : {
36328 "description" : "A list of settings you want to delete.",
36329 "format" : "pve-configid-list",
36330 "optional" : 1,
36331 "type" : "string",
36332 "typetext" : "<string>"
36333 },
36334 "gateway" : {
36335 "description" : "Default gateway address.",
36336 "format" : "ipv4",
36337 "optional" : 1,
36338 "type" : "string",
36339 "typetext" : "<string>"
36340 },
36341 "gateway6" : {
36342 "description" : "Default ipv6 gateway address.",
36343 "format" : "ipv6",
36344 "optional" : 1,
36345 "type" : "string",
36346 "typetext" : "<string>"
36347 },
36348 "iface" : {
36349 "description" : "Network interface name.",
36350 "format" : "pve-iface",
36351 "maxLength" : 20,
36352 "minLength" : 2,
36353 "type" : "string",
36354 "typetext" : "<string>"
56122987 36355 },
e9cd3bd4
TL
36356 "mtu" : {
36357 "description" : "MTU.",
36358 "maximum" : 65520,
36359 "minimum" : 1280,
36360 "optional" : 1,
36361 "type" : "integer",
36362 "typetext" : "<integer> (1280 - 65520)"
36363 },
4d47f125
TL
36364 "netmask" : {
36365 "description" : "Network mask.",
36366 "format" : "ipv4mask",
36367 "optional" : 1,
36368 "requires" : "address",
36369 "type" : "string",
36370 "typetext" : "<string>"
36371 },
36372 "netmask6" : {
36373 "description" : "Network mask.",
36374 "maximum" : 128,
36375 "minimum" : 0,
36376 "optional" : 1,
36377 "requires" : "address6",
36378 "type" : "integer",
36379 "typetext" : "<integer> (0 - 128)"
56122987 36380 },
44660702
DM
36381 "node" : {
36382 "description" : "The cluster node name.",
36383 "format" : "pve-node",
013dc89f
DM
36384 "type" : "string",
36385 "typetext" : "<string>"
44660702 36386 },
4d47f125
TL
36387 "ovs_bonds" : {
36388 "description" : "Specify the interfaces used by the bonding device.",
36389 "format" : "pve-iface-list",
36390 "optional" : 1,
36391 "type" : "string",
36392 "typetext" : "<string>"
36393 },
36394 "ovs_bridge" : {
36395 "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
36396 "format" : "pve-iface",
36397 "optional" : 1,
36398 "type" : "string",
36399 "typetext" : "<string>"
36400 },
36401 "ovs_options" : {
36402 "description" : "OVS interface options.",
36403 "maxLength" : 1024,
36404 "optional" : 1,
36405 "type" : "string",
36406 "typetext" : "<string>"
36407 },
36408 "ovs_ports" : {
1e3f8156 36409 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
36410 "format" : "pve-iface-list",
36411 "optional" : 1,
36412 "type" : "string",
36413 "typetext" : "<string>"
36414 },
36415 "ovs_tag" : {
36416 "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
36417 "maximum" : 4094,
36418 "minimum" : 1,
36419 "optional" : 1,
36420 "type" : "integer",
36421 "typetext" : "<integer> (1 - 4094)"
36422 },
36423 "slaves" : {
36424 "description" : "Specify the interfaces used by the bonding device.",
36425 "format" : "pve-iface-list",
36426 "optional" : 1,
36427 "type" : "string",
36428 "typetext" : "<string>"
36429 },
36430 "type" : {
36431 "description" : "Network interface type",
44660702 36432 "enum" : [
4d47f125
TL
36433 "bridge",
36434 "bond",
36435 "eth",
36436 "alias",
36437 "vlan",
36438 "OVSBridge",
36439 "OVSBond",
36440 "OVSPort",
36441 "OVSIntPort",
36442 "unknown"
44660702
DM
36443 ],
36444 "type" : "string"
e9cd3bd4
TL
36445 },
36446 "vlan-id" : {
36447 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
36448 "maximum" : 4094,
36449 "minimum" : 1,
36450 "optional" : 1,
36451 "type" : "integer",
36452 "typetext" : "<integer> (1 - 4094)"
36453 },
36454 "vlan-raw-device" : {
36455 "description" : "Specify the raw interface for the vlan interface.",
36456 "format" : "pve-iface",
36457 "optional" : 1,
36458 "type" : "string",
36459 "typetext" : "<string>"
44660702
DM
36460 }
36461 }
36462 },
36463 "permissions" : {
36464 "check" : [
36465 "perm",
36466 "/nodes/{node}",
36467 [
4d47f125 36468 "Sys.Modify"
44660702
DM
36469 ]
36470 ]
36471 },
4d47f125
TL
36472 "protected" : 1,
36473 "proxyto" : "node",
44660702 36474 "returns" : {
4d47f125 36475 "type" : "null"
44660702
DM
36476 }
36477 }
36478 },
4d47f125
TL
36479 "leaf" : 1,
36480 "path" : "/nodes/{node}/network/{iface}",
36481 "text" : "{iface}"
44660702
DM
36482 }
36483 ],
36484 "info" : {
4d47f125 36485 "DELETE" : {
e9cd3bd4 36486 "allowtoken" : 1,
4d47f125
TL
36487 "description" : "Revert network configuration changes.",
36488 "method" : "DELETE",
36489 "name" : "revert_network_changes",
44660702
DM
36490 "parameters" : {
36491 "additionalProperties" : 0,
36492 "properties" : {
36493 "node" : {
36494 "description" : "The cluster node name.",
36495 "format" : "pve-node",
013dc89f
DM
36496 "type" : "string",
36497 "typetext" : "<string>"
44660702
DM
36498 }
36499 }
36500 },
36501 "permissions" : {
36502 "check" : [
36503 "perm",
36504 "/nodes/{node}",
36505 [
4d47f125 36506 "Sys.Modify"
44660702
DM
36507 ]
36508 ]
36509 },
36510 "protected" : 1,
36511 "proxyto" : "node",
4d47f125
TL
36512 "returns" : {
36513 "type" : "null"
36514 }
36515 },
36516 "GET" : {
e9cd3bd4 36517 "allowtoken" : 1,
4d47f125
TL
36518 "description" : "List available networks",
36519 "method" : "GET",
36520 "name" : "index",
36521 "parameters" : {
36522 "additionalProperties" : 0,
36523 "properties" : {
36524 "node" : {
36525 "description" : "The cluster node name.",
36526 "format" : "pve-node",
36527 "type" : "string",
36528 "typetext" : "<string>"
36529 },
36530 "type" : {
36531 "description" : "Only list specific interface types.",
36532 "enum" : [
36533 "bridge",
36534 "bond",
36535 "eth",
36536 "alias",
36537 "vlan",
36538 "OVSBridge",
36539 "OVSBond",
36540 "OVSPort",
36541 "OVSIntPort",
36542 "any_bridge"
36543 ],
36544 "optional" : 1,
36545 "type" : "string"
36546 }
36547 }
36548 },
36549 "permissions" : {
36550 "user" : "all"
36551 },
36552 "proxyto" : "node",
44660702
DM
36553 "returns" : {
36554 "items" : {
36555 "properties" : {},
36556 "type" : "object"
36557 },
36558 "links" : [
36559 {
4d47f125 36560 "href" : "{iface}",
44660702 36561 "rel" : "child"
56122987 36562 }
44660702
DM
36563 ],
36564 "type" : "array"
36565 }
4d47f125
TL
36566 },
36567 "POST" : {
e9cd3bd4 36568 "allowtoken" : 1,
4d47f125
TL
36569 "description" : "Create network device configuration",
36570 "method" : "POST",
36571 "name" : "create_network",
7aacca6f 36572 "parameters" : {
44660702 36573 "additionalProperties" : 0,
7aacca6f 36574 "properties" : {
4d47f125
TL
36575 "address" : {
36576 "description" : "IP address.",
36577 "format" : "ipv4",
36578 "optional" : 1,
36579 "requires" : "netmask",
36580 "type" : "string",
36581 "typetext" : "<string>"
36582 },
36583 "address6" : {
36584 "description" : "IP address.",
36585 "format" : "ipv6",
36586 "optional" : 1,
36587 "requires" : "netmask6",
36588 "type" : "string",
36589 "typetext" : "<string>"
36590 },
36591 "autostart" : {
36592 "description" : "Automatically start interface on boot.",
36593 "optional" : 1,
36594 "type" : "boolean",
36595 "typetext" : "<boolean>"
36596 },
e9cd3bd4
TL
36597 "bond-primary" : {
36598 "description" : "Specify the primary interface for active-backup bond.",
36599 "format" : "pve-iface",
36600 "optional" : 1,
36601 "type" : "string",
36602 "typetext" : "<string>"
36603 },
4d47f125
TL
36604 "bond_mode" : {
36605 "description" : "Bonding mode.",
36606 "enum" : [
36607 "balance-rr",
36608 "active-backup",
36609 "balance-xor",
36610 "broadcast",
36611 "802.3ad",
36612 "balance-tlb",
36613 "balance-alb",
36614 "balance-slb",
36615 "lacp-balance-slb",
36616 "lacp-balance-tcp"
36617 ],
36618 "optional" : 1,
36619 "type" : "string"
36620 },
36621 "bond_xmit_hash_policy" : {
36622 "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
36623 "enum" : [
36624 "layer2",
36625 "layer2+3",
36626 "layer3+4"
36627 ],
36628 "optional" : 1,
36629 "type" : "string"
36630 },
36631 "bridge_ports" : {
1e3f8156 36632 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
36633 "format" : "pve-iface-list",
36634 "optional" : 1,
013dc89f
DM
36635 "type" : "string",
36636 "typetext" : "<string>"
4d47f125
TL
36637 },
36638 "bridge_vlan_aware" : {
36639 "description" : "Enable bridge vlan support.",
44660702 36640 "optional" : 1,
013dc89f
DM
36641 "type" : "boolean",
36642 "typetext" : "<boolean>"
44660702 36643 },
bb4c8cf8
TL
36644 "cidr" : {
36645 "description" : "IPv4 CIDR.",
36646 "format" : "CIDRv4",
36647 "optional" : 1,
36648 "type" : "string",
36649 "typetext" : "<string>"
36650 },
36651 "cidr6" : {
36652 "description" : "IPv6 CIDR.",
36653 "format" : "CIDRv6",
36654 "optional" : 1,
36655 "type" : "string",
36656 "typetext" : "<string>"
36657 },
4d47f125
TL
36658 "comments" : {
36659 "description" : "Comments",
36660 "optional" : 1,
36661 "type" : "string",
36662 "typetext" : "<string>"
36663 },
36664 "comments6" : {
36665 "description" : "Comments",
36666 "optional" : 1,
36667 "type" : "string",
36668 "typetext" : "<string>"
36669 },
36670 "gateway" : {
36671 "description" : "Default gateway address.",
36672 "format" : "ipv4",
36673 "optional" : 1,
36674 "type" : "string",
36675 "typetext" : "<string>"
36676 },
36677 "gateway6" : {
36678 "description" : "Default ipv6 gateway address.",
36679 "format" : "ipv6",
36680 "optional" : 1,
36681 "type" : "string",
36682 "typetext" : "<string>"
36683 },
36684 "iface" : {
36685 "description" : "Network interface name.",
36686 "format" : "pve-iface",
36687 "maxLength" : 20,
36688 "minLength" : 2,
36689 "type" : "string",
36690 "typetext" : "<string>"
36691 },
e9cd3bd4
TL
36692 "mtu" : {
36693 "description" : "MTU.",
36694 "maximum" : 65520,
36695 "minimum" : 1280,
36696 "optional" : 1,
36697 "type" : "integer",
36698 "typetext" : "<integer> (1280 - 65520)"
36699 },
4d47f125
TL
36700 "netmask" : {
36701 "description" : "Network mask.",
36702 "format" : "ipv4mask",
36703 "optional" : 1,
36704 "requires" : "address",
36705 "type" : "string",
36706 "typetext" : "<string>"
36707 },
36708 "netmask6" : {
36709 "description" : "Network mask.",
36710 "maximum" : 128,
36711 "minimum" : 0,
36712 "optional" : 1,
36713 "requires" : "address6",
36714 "type" : "integer",
36715 "typetext" : "<integer> (0 - 128)"
36716 },
7aacca6f 36717 "node" : {
7aacca6f 36718 "description" : "The cluster node name.",
44660702 36719 "format" : "pve-node",
013dc89f
DM
36720 "type" : "string",
36721 "typetext" : "<string>"
4d47f125
TL
36722 },
36723 "ovs_bonds" : {
36724 "description" : "Specify the interfaces used by the bonding device.",
36725 "format" : "pve-iface-list",
36726 "optional" : 1,
36727 "type" : "string",
36728 "typetext" : "<string>"
36729 },
36730 "ovs_bridge" : {
36731 "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
36732 "format" : "pve-iface",
36733 "optional" : 1,
36734 "type" : "string",
36735 "typetext" : "<string>"
36736 },
36737 "ovs_options" : {
36738 "description" : "OVS interface options.",
36739 "maxLength" : 1024,
36740 "optional" : 1,
36741 "type" : "string",
36742 "typetext" : "<string>"
36743 },
36744 "ovs_ports" : {
1e3f8156 36745 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
36746 "format" : "pve-iface-list",
36747 "optional" : 1,
36748 "type" : "string",
36749 "typetext" : "<string>"
36750 },
36751 "ovs_tag" : {
36752 "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
36753 "maximum" : 4094,
36754 "minimum" : 1,
36755 "optional" : 1,
36756 "type" : "integer",
36757 "typetext" : "<integer> (1 - 4094)"
36758 },
36759 "slaves" : {
36760 "description" : "Specify the interfaces used by the bonding device.",
36761 "format" : "pve-iface-list",
36762 "optional" : 1,
36763 "type" : "string",
36764 "typetext" : "<string>"
36765 },
36766 "type" : {
36767 "description" : "Network interface type",
36768 "enum" : [
36769 "bridge",
36770 "bond",
36771 "eth",
36772 "alias",
36773 "vlan",
36774 "OVSBridge",
36775 "OVSBond",
36776 "OVSPort",
36777 "OVSIntPort",
36778 "unknown"
36779 ],
36780 "type" : "string"
e9cd3bd4
TL
36781 },
36782 "vlan-id" : {
36783 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
36784 "maximum" : 4094,
36785 "minimum" : 1,
36786 "optional" : 1,
36787 "type" : "integer",
36788 "typetext" : "<integer> (1 - 4094)"
36789 },
36790 "vlan-raw-device" : {
36791 "description" : "Specify the raw interface for the vlan interface.",
36792 "format" : "pve-iface",
36793 "optional" : 1,
36794 "type" : "string",
36795 "typetext" : "<string>"
7aacca6f
DM
36796 }
36797 }
36798 },
35a75dd3
DM
36799 "permissions" : {
36800 "check" : [
36801 "perm",
36802 "/nodes/{node}",
36803 [
36804 "Sys.Modify"
36805 ]
36806 ]
36807 },
7aacca6f 36808 "protected" : 1,
7aacca6f 36809 "proxyto" : "node",
44660702
DM
36810 "returns" : {
36811 "type" : "null"
36812 }
36813 },
36814 "PUT" : {
e9cd3bd4 36815 "allowtoken" : 1,
4d47f125 36816 "description" : "Reload network configuration",
44660702 36817 "method" : "PUT",
4d47f125 36818 "name" : "reload_network_config",
7aacca6f
DM
36819 "parameters" : {
36820 "additionalProperties" : 0,
36821 "properties" : {
7aacca6f 36822 "node" : {
7aacca6f 36823 "description" : "The cluster node name.",
44660702 36824 "format" : "pve-node",
013dc89f
DM
36825 "type" : "string",
36826 "typetext" : "<string>"
7aacca6f
DM
36827 }
36828 }
36829 },
35a75dd3
DM
36830 "permissions" : {
36831 "check" : [
36832 "perm",
36833 "/nodes/{node}",
36834 [
36835 "Sys.Modify"
36836 ]
36837 ]
36838 },
44660702
DM
36839 "protected" : 1,
36840 "proxyto" : "node",
7aacca6f 36841 "returns" : {
4d47f125 36842 "type" : "string"
44660702 36843 }
7aacca6f
DM
36844 }
36845 },
4d47f125
TL
36846 "leaf" : 0,
36847 "path" : "/nodes/{node}/network",
36848 "text" : "network"
7aacca6f
DM
36849 },
36850 {
7aacca6f
DM
36851 "children" : [
36852 {
4d47f125
TL
36853 "children" : [
36854 {
36855 "info" : {
36856 "GET" : {
e9cd3bd4 36857 "allowtoken" : 1,
4d47f125
TL
36858 "description" : "Read task log.",
36859 "method" : "GET",
36860 "name" : "read_task_log",
36861 "parameters" : {
36862 "additionalProperties" : 0,
36863 "properties" : {
36864 "limit" : {
36865 "default" : 50,
5370fa8c 36866 "description" : "The maximum amount of lines that should be printed.",
4d47f125
TL
36867 "minimum" : 0,
36868 "optional" : 1,
36869 "type" : "integer",
36870 "typetext" : "<integer> (0 - N)"
36871 },
36872 "node" : {
36873 "description" : "The cluster node name.",
36874 "format" : "pve-node",
36875 "type" : "string",
36876 "typetext" : "<string>"
36877 },
36878 "start" : {
36879 "default" : 0,
5370fa8c 36880 "description" : "The line number to start printing at.",
4d47f125
TL
36881 "minimum" : 0,
36882 "optional" : 1,
36883 "type" : "integer",
36884 "typetext" : "<integer> (0 - N)"
36885 },
36886 "upid" : {
5370fa8c 36887 "description" : "The task's unique ID.",
4d47f125
TL
36888 "type" : "string",
36889 "typetext" : "<string>"
36890 }
36891 }
36892 },
36893 "permissions" : {
5370fa8c 36894 "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they aren't the owner of the task.",
4d47f125
TL
36895 "user" : "all"
36896 },
36897 "protected" : 1,
36898 "proxyto" : "node",
36899 "returns" : {
36900 "items" : {
36901 "properties" : {
36902 "n" : {
36903 "description" : "Line number",
36904 "type" : "integer"
36905 },
36906 "t" : {
36907 "description" : "Line text",
36908 "type" : "string"
36909 }
36910 },
36911 "type" : "object"
36912 },
36913 "type" : "array"
36914 }
36915 }
36916 },
36917 "leaf" : 1,
36918 "path" : "/nodes/{node}/tasks/{upid}/log",
36919 "text" : "log"
36920 },
36921 {
36922 "info" : {
36923 "GET" : {
e9cd3bd4 36924 "allowtoken" : 1,
4d47f125
TL
36925 "description" : "Read task status.",
36926 "method" : "GET",
36927 "name" : "read_task_status",
36928 "parameters" : {
36929 "additionalProperties" : 0,
36930 "properties" : {
36931 "node" : {
36932 "description" : "The cluster node name.",
36933 "format" : "pve-node",
36934 "type" : "string",
36935 "typetext" : "<string>"
36936 },
36937 "upid" : {
5370fa8c 36938 "description" : "The task's unique ID.",
4d47f125
TL
36939 "type" : "string",
36940 "typetext" : "<string>"
36941 }
36942 }
36943 },
36944 "permissions" : {
5370fa8c 36945 "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they are not the owner of the task.",
4d47f125
TL
36946 "user" : "all"
36947 },
36948 "protected" : 1,
36949 "proxyto" : "node",
36950 "returns" : {
36951 "properties" : {
5370fa8c
TL
36952 "exitstatus" : {
36953 "optional" : 1,
36954 "type" : "string"
36955 },
36956 "id" : {
36957 "type" : "string"
36958 },
36959 "node" : {
36960 "type" : "string"
36961 },
4d47f125
TL
36962 "pid" : {
36963 "type" : "integer"
36964 },
5370fa8c
TL
36965 "starttime" : {
36966 "type" : "number"
36967 },
4d47f125
TL
36968 "status" : {
36969 "enum" : [
36970 "running",
36971 "stopped"
36972 ],
36973 "type" : "string"
5370fa8c
TL
36974 },
36975 "type" : {
36976 "type" : "string"
36977 },
36978 "upid" : {
36979 "type" : "string"
36980 },
36981 "user" : {
36982 "type" : "string"
4d47f125
TL
36983 }
36984 },
36985 "type" : "object"
36986 }
36987 }
36988 },
36989 "leaf" : 1,
36990 "path" : "/nodes/{node}/tasks/{upid}/status",
36991 "text" : "status"
36992 }
36993 ],
56122987 36994 "info" : {
7aacca6f 36995 "DELETE" : {
e9cd3bd4 36996 "allowtoken" : 1,
4d47f125 36997 "description" : "Stop a task.",
44660702 36998 "method" : "DELETE",
4d47f125 36999 "name" : "stop_task",
44660702
DM
37000 "parameters" : {
37001 "additionalProperties" : 0,
37002 "properties" : {
44660702
DM
37003 "node" : {
37004 "description" : "The cluster node name.",
37005 "format" : "pve-node",
013dc89f
DM
37006 "type" : "string",
37007 "typetext" : "<string>"
4d47f125
TL
37008 },
37009 "upid" : {
37010 "type" : "string",
37011 "typetext" : "<string>"
44660702
DM
37012 }
37013 }
7aacca6f
DM
37014 },
37015 "permissions" : {
5370fa8c 37016 "description" : "The user needs 'Sys.Modify' permissions on '/nodes/<node>' if they aren't the owner of the task.",
4d47f125 37017 "user" : "all"
7aacca6f 37018 },
44660702 37019 "protected" : 1,
7aacca6f 37020 "proxyto" : "node",
44660702
DM
37021 "returns" : {
37022 "type" : "null"
37023 }
37024 },
37025 "GET" : {
e9cd3bd4 37026 "allowtoken" : 1,
4d47f125 37027 "description" : "",
44660702 37028 "method" : "GET",
4d47f125 37029 "name" : "upid_index",
7aacca6f
DM
37030 "parameters" : {
37031 "additionalProperties" : 0,
37032 "properties" : {
7aacca6f 37033 "node" : {
44660702 37034 "description" : "The cluster node name.",
7aacca6f 37035 "format" : "pve-node",
013dc89f
DM
37036 "type" : "string",
37037 "typetext" : "<string>"
7aacca6f 37038 },
4d47f125
TL
37039 "upid" : {
37040 "type" : "string",
37041 "typetext" : "<string>"
7aacca6f
DM
37042 }
37043 }
37044 },
7aacca6f 37045 "permissions" : {
4d47f125 37046 "user" : "all"
7aacca6f
DM
37047 },
37048 "returns" : {
4d47f125
TL
37049 "items" : {
37050 "properties" : {},
37051 "type" : "object"
37052 },
37053 "links" : [
37054 {
37055 "href" : "{name}",
37056 "rel" : "child"
37057 }
37058 ],
37059 "type" : "array"
44660702 37060 }
7aacca6f
DM
37061 }
37062 },
4d47f125
TL
37063 "leaf" : 0,
37064 "path" : "/nodes/{node}/tasks/{upid}",
37065 "text" : "{upid}"
7aacca6f
DM
37066 }
37067 ],
7aacca6f 37068 "info" : {
44660702 37069 "GET" : {
e9cd3bd4 37070 "allowtoken" : 1,
4d47f125 37071 "description" : "Read task list for one node (finished tasks).",
44660702 37072 "method" : "GET",
4d47f125 37073 "name" : "node_tasks",
44660702
DM
37074 "parameters" : {
37075 "additionalProperties" : 0,
37076 "properties" : {
4d47f125
TL
37077 "errors" : {
37078 "default" : 0,
5370fa8c 37079 "description" : "Only list tasks with a status of ERROR.",
7aacca6f 37080 "optional" : 1,
4d47f125
TL
37081 "type" : "boolean",
37082 "typetext" : "<boolean>"
7aacca6f 37083 },
4d47f125
TL
37084 "limit" : {
37085 "default" : 50,
37086 "description" : "Only list this amount of tasks.",
37087 "minimum" : 0,
44660702 37088 "optional" : 1,
4d47f125
TL
37089 "type" : "integer",
37090 "typetext" : "<integer> (0 - N)"
37091 },
37092 "node" : {
37093 "description" : "The cluster node name.",
37094 "format" : "pve-node",
013dc89f
DM
37095 "type" : "string",
37096 "typetext" : "<string>"
44660702 37097 },
34f3e481
TL
37098 "since" : {
37099 "description" : "Only list tasks since this UNIX epoch.",
37100 "optional" : 1,
37101 "type" : "integer",
37102 "typetext" : "<integer>"
37103 },
5f26e15b
TL
37104 "source" : {
37105 "default" : "archive",
37106 "description" : "List archived, active or all tasks.",
37107 "enum" : [
37108 "archive",
37109 "active",
37110 "all"
37111 ],
37112 "optional" : 1,
37113 "type" : "string"
37114 },
4d47f125
TL
37115 "start" : {
37116 "default" : 0,
37117 "description" : "List tasks beginning from this offset.",
37118 "minimum" : 0,
44660702 37119 "optional" : 1,
4d47f125
TL
37120 "type" : "integer",
37121 "typetext" : "<integer> (0 - N)"
44660702 37122 },
34f3e481
TL
37123 "statusfilter" : {
37124 "description" : "List of Task States that should be returned.",
37125 "format" : "pve-task-status-type-list",
37126 "optional" : 1,
37127 "type" : "string",
37128 "typetext" : "<string>"
37129 },
5f26e15b
TL
37130 "typefilter" : {
37131 "description" : "Only list tasks of this type (e.g., vzstart, vzdump).",
37132 "optional" : 1,
37133 "type" : "string",
37134 "typetext" : "<string>"
37135 },
34f3e481
TL
37136 "until" : {
37137 "description" : "Only list tasks until this UNIX epoch.",
37138 "optional" : 1,
37139 "type" : "integer",
37140 "typetext" : "<integer>"
37141 },
4d47f125
TL
37142 "userfilter" : {
37143 "description" : "Only list tasks from this user.",
44660702 37144 "optional" : 1,
013dc89f
DM
37145 "type" : "string",
37146 "typetext" : "<string>"
44660702 37147 },
4d47f125
TL
37148 "vmid" : {
37149 "description" : "Only list tasks for this VM.",
37150 "format" : "pve-vmid",
44660702
DM
37151 "minimum" : 1,
37152 "optional" : 1,
4bd7df8b 37153 "type" : "integer",
4d47f125
TL
37154 "typetext" : "<integer> (1 - N)"
37155 }
37156 }
37157 },
37158 "permissions" : {
37159 "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).",
37160 "user" : "all"
37161 },
37162 "proxyto" : "node",
37163 "returns" : {
37164 "items" : {
37165 "properties" : {
37166 "endtime" : {
37167 "optional" : 1,
37168 "title" : "Endtime",
37169 "type" : "integer"
37170 },
37171 "id" : {
4d47f125
TL
37172 "title" : "ID",
37173 "type" : "string"
37174 },
37175 "node" : {
4d47f125
TL
37176 "title" : "Node",
37177 "type" : "string"
37178 },
37179 "pid" : {
4d47f125
TL
37180 "title" : "PID",
37181 "type" : "integer"
37182 },
37183 "pstart" : {
4d47f125
TL
37184 "type" : "integer"
37185 },
37186 "starttime" : {
4d47f125
TL
37187 "title" : "Starttime",
37188 "type" : "integer"
37189 },
37190 "status" : {
37191 "optional" : 1,
37192 "title" : "Status",
37193 "type" : "string"
37194 },
37195 "type" : {
4d47f125
TL
37196 "title" : "Type",
37197 "type" : "string"
37198 },
37199 "upid" : {
37200 "title" : "UPID",
37201 "type" : "string"
37202 },
37203 "user" : {
4d47f125
TL
37204 "title" : "User",
37205 "type" : "string"
37206 }
44660702 37207 },
4d47f125
TL
37208 "type" : "object"
37209 },
37210 "links" : [
37211 {
37212 "href" : "{upid}",
37213 "rel" : "child"
37214 }
37215 ],
37216 "type" : "array"
37217 }
37218 }
37219 },
37220 "leaf" : 0,
37221 "path" : "/nodes/{node}/tasks",
37222 "text" : "tasks"
37223 },
37224 {
37225 "children" : [
37226 {
37227 "info" : {
37228 "GET" : {
e9cd3bd4 37229 "allowtoken" : 1,
d2656385 37230 "description" : "Scan remote NFS server.",
4d47f125 37231 "method" : "GET",
d2656385 37232 "name" : "nfsscan",
4d47f125
TL
37233 "parameters" : {
37234 "additionalProperties" : 0,
37235 "properties" : {
37236 "node" : {
37237 "description" : "The cluster node name.",
37238 "format" : "pve-node",
37239 "type" : "string",
37240 "typetext" : "<string>"
d2656385
TL
37241 },
37242 "server" : {
37243 "description" : "The server address (name or IP).",
37244 "format" : "pve-storage-server",
37245 "type" : "string",
37246 "typetext" : "<string>"
4d47f125
TL
37247 }
37248 }
44660702 37249 },
4d47f125
TL
37250 "permissions" : {
37251 "check" : [
37252 "perm",
37253 "/storage",
37254 [
37255 "Datastore.Allocate"
37256 ]
37257 ]
37258 },
37259 "protected" : 1,
37260 "proxyto" : "node",
37261 "returns" : {
37262 "items" : {
37263 "properties" : {
d2656385
TL
37264 "options" : {
37265 "description" : "NFS export options.",
37266 "type" : "string"
37267 },
37268 "path" : {
37269 "description" : "The exported path.",
4d47f125
TL
37270 "type" : "string"
37271 }
37272 },
37273 "type" : "object"
37274 },
37275 "type" : "array"
37276 }
37277 }
37278 },
37279 "leaf" : 1,
d2656385
TL
37280 "path" : "/nodes/{node}/scan/nfs",
37281 "text" : "nfs"
4d47f125
TL
37282 },
37283 {
37284 "info" : {
37285 "GET" : {
e9cd3bd4 37286 "allowtoken" : 1,
d2656385 37287 "description" : "Scan remote CIFS server.",
4d47f125 37288 "method" : "GET",
d2656385 37289 "name" : "cifsscan",
4d47f125
TL
37290 "parameters" : {
37291 "additionalProperties" : 0,
37292 "properties" : {
d2656385
TL
37293 "domain" : {
37294 "description" : "SMB domain (Workgroup).",
37295 "optional" : 1,
37296 "type" : "string",
37297 "typetext" : "<string>"
37298 },
4d47f125
TL
37299 "node" : {
37300 "description" : "The cluster node name.",
37301 "format" : "pve-node",
37302 "type" : "string",
37303 "typetext" : "<string>"
37304 },
d2656385
TL
37305 "password" : {
37306 "description" : "User password.",
37307 "optional" : 1,
37308 "type" : "string",
37309 "typetext" : "<string>"
37310 },
4d47f125
TL
37311 "server" : {
37312 "description" : "The server address (name or IP).",
37313 "format" : "pve-storage-server",
37314 "type" : "string",
37315 "typetext" : "<string>"
d2656385
TL
37316 },
37317 "username" : {
37318 "description" : "User name.",
37319 "optional" : 1,
37320 "type" : "string",
37321 "typetext" : "<string>"
4d47f125
TL
37322 }
37323 }
37324 },
37325 "permissions" : {
37326 "check" : [
37327 "perm",
37328 "/storage",
37329 [
37330 "Datastore.Allocate"
37331 ]
37332 ]
37333 },
37334 "protected" : 1,
37335 "proxyto" : "node",
37336 "returns" : {
37337 "items" : {
37338 "properties" : {
d2656385
TL
37339 "description" : {
37340 "description" : "Descriptive text from server.",
4d47f125
TL
37341 "type" : "string"
37342 },
d2656385
TL
37343 "share" : {
37344 "description" : "The cifs share name.",
4d47f125
TL
37345 "type" : "string"
37346 }
37347 },
37348 "type" : "object"
37349 },
37350 "type" : "array"
37351 }
37352 }
37353 },
37354 "leaf" : 1,
d2656385
TL
37355 "path" : "/nodes/{node}/scan/cifs",
37356 "text" : "cifs"
4d47f125
TL
37357 },
37358 {
37359 "info" : {
37360 "GET" : {
e9cd3bd4 37361 "allowtoken" : 1,
d2656385 37362 "description" : "Scan remote Proxmox Backup Server.",
4d47f125 37363 "method" : "GET",
d2656385 37364 "name" : "pbsscan",
4d47f125
TL
37365 "parameters" : {
37366 "additionalProperties" : 0,
37367 "properties" : {
d2656385
TL
37368 "fingerprint" : {
37369 "description" : "Certificate SHA 256 fingerprint.",
4d47f125 37370 "optional" : 1,
d2656385
TL
37371 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
37372 "type" : "string"
4d47f125
TL
37373 },
37374 "node" : {
37375 "description" : "The cluster node name.",
37376 "format" : "pve-node",
37377 "type" : "string",
37378 "typetext" : "<string>"
37379 },
37380 "password" : {
d2656385 37381 "description" : "User password or API token secret.",
4d47f125
TL
37382 "type" : "string",
37383 "typetext" : "<string>"
37384 },
d2656385
TL
37385 "port" : {
37386 "default" : 8007,
37387 "description" : "Optional port.",
37388 "maximum" : 65535,
37389 "minimum" : 1,
37390 "optional" : 1,
37391 "type" : "integer",
37392 "typetext" : "<integer> (1 - 65535)"
37393 },
4d47f125
TL
37394 "server" : {
37395 "description" : "The server address (name or IP).",
37396 "format" : "pve-storage-server",
37397 "type" : "string",
37398 "typetext" : "<string>"
37399 },
37400 "username" : {
d2656385 37401 "description" : "User-name or API token-ID.",
4d47f125
TL
37402 "type" : "string",
37403 "typetext" : "<string>"
37404 }
37405 }
37406 },
37407 "permissions" : {
37408 "check" : [
37409 "perm",
37410 "/storage",
37411 [
37412 "Datastore.Allocate"
37413 ]
37414 ]
37415 },
37416 "protected" : 1,
37417 "proxyto" : "node",
37418 "returns" : {
37419 "items" : {
37420 "properties" : {
d2656385
TL
37421 "comment" : {
37422 "description" : "Comment from server.",
37423 "optional" : 1,
4d47f125
TL
37424 "type" : "string"
37425 },
d2656385
TL
37426 "store" : {
37427 "description" : "The datastore name.",
4d47f125
TL
37428 "type" : "string"
37429 }
37430 },
37431 "type" : "object"
37432 },
37433 "type" : "array"
56122987 37434 }
44660702 37435 }
56122987 37436 },
4d47f125 37437 "leaf" : 1,
d2656385
TL
37438 "path" : "/nodes/{node}/scan/pbs",
37439 "text" : "pbs"
4d47f125 37440 },
44660702 37441 {
4d47f125
TL
37442 "info" : {
37443 "GET" : {
e9cd3bd4 37444 "allowtoken" : 1,
4d47f125
TL
37445 "description" : "Scan remote GlusterFS server.",
37446 "method" : "GET",
37447 "name" : "glusterfsscan",
37448 "parameters" : {
37449 "additionalProperties" : 0,
37450 "properties" : {
37451 "node" : {
37452 "description" : "The cluster node name.",
37453 "format" : "pve-node",
37454 "type" : "string",
37455 "typetext" : "<string>"
7aacca6f 37456 },
4d47f125
TL
37457 "server" : {
37458 "description" : "The server address (name or IP).",
37459 "format" : "pve-storage-server",
37460 "type" : "string",
37461 "typetext" : "<string>"
44660702 37462 }
7aacca6f 37463 }
56122987 37464 },
4d47f125
TL
37465 "permissions" : {
37466 "check" : [
37467 "perm",
37468 "/storage",
37469 [
37470 "Datastore.Allocate"
37471 ]
37472 ]
37473 },
37474 "protected" : 1,
37475 "proxyto" : "node",
37476 "returns" : {
37477 "items" : {
37478 "properties" : {
37479 "volname" : {
37480 "description" : "The volume name.",
37481 "type" : "string"
7aacca6f
DM
37482 }
37483 },
4d47f125
TL
37484 "type" : "object"
37485 },
37486 "type" : "array"
37487 }
37488 }
37489 },
37490 "leaf" : 1,
37491 "path" : "/nodes/{node}/scan/glusterfs",
37492 "text" : "glusterfs"
37493 },
37494 {
37495 "info" : {
37496 "GET" : {
e9cd3bd4 37497 "allowtoken" : 1,
4d47f125
TL
37498 "description" : "Scan remote iSCSI server.",
37499 "method" : "GET",
37500 "name" : "iscsiscan",
37501 "parameters" : {
37502 "additionalProperties" : 0,
37503 "properties" : {
37504 "node" : {
37505 "description" : "The cluster node name.",
37506 "format" : "pve-node",
37507 "type" : "string",
37508 "typetext" : "<string>"
56122987 37509 },
4d47f125
TL
37510 "portal" : {
37511 "description" : "The iSCSI portal (IP or DNS name with optional port).",
37512 "format" : "pve-storage-portal-dns",
37513 "type" : "string",
37514 "typetext" : "<string>"
37515 }
37516 }
37517 },
37518 "permissions" : {
37519 "check" : [
37520 "perm",
37521 "/storage",
37522 [
37523 "Datastore.Allocate"
37524 ]
37525 ]
37526 },
37527 "protected" : 1,
37528 "proxyto" : "node",
37529 "returns" : {
37530 "items" : {
37531 "properties" : {
37532 "portal" : {
37533 "description" : "The iSCSI portal name.",
37534 "type" : "string"
7aacca6f 37535 },
4d47f125
TL
37536 "target" : {
37537 "description" : "The iSCSI target name.",
37538 "type" : "string"
37539 }
37540 },
37541 "type" : "object"
37542 },
37543 "type" : "array"
37544 }
37545 }
37546 },
37547 "leaf" : 1,
37548 "path" : "/nodes/{node}/scan/iscsi",
37549 "text" : "iscsi"
37550 },
37551 {
37552 "info" : {
37553 "GET" : {
e9cd3bd4 37554 "allowtoken" : 1,
4d47f125
TL
37555 "description" : "List local LVM volume groups.",
37556 "method" : "GET",
37557 "name" : "lvmscan",
37558 "parameters" : {
37559 "additionalProperties" : 0,
37560 "properties" : {
37561 "node" : {
37562 "description" : "The cluster node name.",
37563 "format" : "pve-node",
37564 "type" : "string",
37565 "typetext" : "<string>"
56122987 37566 }
7aacca6f 37567 }
44660702 37568 },
4d47f125
TL
37569 "permissions" : {
37570 "check" : [
37571 "perm",
37572 "/storage",
37573 [
37574 "Datastore.Allocate"
37575 ]
37576 ]
37577 },
37578 "protected" : 1,
37579 "proxyto" : "node",
37580 "returns" : {
37581 "items" : {
37582 "properties" : {
37583 "vg" : {
37584 "description" : "The LVM logical volume group name.",
37585 "type" : "string"
37586 }
37587 },
37588 "type" : "object"
37589 },
37590 "type" : "array"
37591 }
56122987 37592 }
4d47f125
TL
37593 },
37594 "leaf" : 1,
37595 "path" : "/nodes/{node}/scan/lvm",
37596 "text" : "lvm"
37597 },
37598 {
44660702 37599 "info" : {
4d47f125 37600 "GET" : {
e9cd3bd4 37601 "allowtoken" : 1,
4d47f125
TL
37602 "description" : "List local LVM Thin Pools.",
37603 "method" : "GET",
37604 "name" : "lvmthinscan",
44660702
DM
37605 "parameters" : {
37606 "additionalProperties" : 0,
37607 "properties" : {
37608 "node" : {
37609 "description" : "The cluster node name.",
37610 "format" : "pve-node",
013dc89f
DM
37611 "type" : "string",
37612 "typetext" : "<string>"
44660702 37613 },
4d47f125
TL
37614 "vg" : {
37615 "maxLength" : 100,
37616 "pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+",
37617 "type" : "string"
44660702 37618 }
7aacca6f 37619 }
44660702
DM
37620 },
37621 "permissions" : {
4d47f125
TL
37622 "check" : [
37623 "perm",
37624 "/storage",
37625 [
37626 "Datastore.Allocate"
37627 ]
37628 ]
44660702
DM
37629 },
37630 "protected" : 1,
37631 "proxyto" : "node",
37632 "returns" : {
4d47f125
TL
37633 "items" : {
37634 "properties" : {
37635 "lv" : {
37636 "description" : "The LVM Thin Pool name (LVM logical volume).",
37637 "type" : "string"
37638 }
37639 },
37640 "type" : "object"
37641 },
37642 "type" : "array"
7aacca6f 37643 }
4d47f125
TL
37644 }
37645 },
37646 "leaf" : 1,
37647 "path" : "/nodes/{node}/scan/lvmthin",
37648 "text" : "lvmthin"
37649 },
d2656385
TL
37650 {
37651 "info" : {
37652 "GET" : {
37653 "allowtoken" : 1,
37654 "description" : "Scan zfs pool list on local node.",
37655 "method" : "GET",
37656 "name" : "zfsscan",
37657 "parameters" : {
37658 "additionalProperties" : 0,
37659 "properties" : {
37660 "node" : {
37661 "description" : "The cluster node name.",
37662 "format" : "pve-node",
37663 "type" : "string",
37664 "typetext" : "<string>"
37665 }
37666 }
37667 },
37668 "permissions" : {
37669 "check" : [
37670 "perm",
37671 "/storage",
37672 [
37673 "Datastore.Allocate"
37674 ]
37675 ]
37676 },
37677 "protected" : 1,
37678 "proxyto" : "node",
37679 "returns" : {
37680 "items" : {
37681 "properties" : {
37682 "pool" : {
37683 "description" : "ZFS pool name.",
37684 "type" : "string"
37685 }
37686 },
37687 "type" : "object"
37688 },
37689 "type" : "array"
37690 }
37691 }
37692 },
37693 "leaf" : 1,
37694 "path" : "/nodes/{node}/scan/zfs",
37695 "text" : "zfs"
44660702
DM
37696 }
37697 ],
37698 "info" : {
37699 "GET" : {
e9cd3bd4 37700 "allowtoken" : 1,
4d47f125 37701 "description" : "Index of available scan methods",
44660702 37702 "method" : "GET",
4d47f125 37703 "name" : "index",
56122987 37704 "parameters" : {
7aacca6f 37705 "additionalProperties" : 0,
56122987 37706 "properties" : {
56122987
DM
37707 "node" : {
37708 "description" : "The cluster node name.",
44660702 37709 "format" : "pve-node",
013dc89f
DM
37710 "type" : "string",
37711 "typetext" : "<string>"
56122987
DM
37712 }
37713 }
37714 },
7aacca6f
DM
37715 "permissions" : {
37716 "user" : "all"
37717 },
56122987
DM
37718 "returns" : {
37719 "items" : {
37720 "properties" : {
4d47f125 37721 "method" : {
56122987
DM
37722 "type" : "string"
37723 }
37724 },
37725 "type" : "object"
37726 },
56122987
DM
37727 "links" : [
37728 {
4d47f125 37729 "href" : "{method}",
44660702 37730 "rel" : "child"
56122987 37731 }
44660702
DM
37732 ],
37733 "type" : "array"
56122987
DM
37734 }
37735 }
37736 },
44660702 37737 "leaf" : 0,
4d47f125
TL
37738 "path" : "/nodes/{node}/scan",
37739 "text" : "scan"
44660702 37740 },
e2d681b3
TL
37741 {
37742 "children" : [
37743 {
37744 "children" : [
37745 {
37746 "children" : [
37747 {
37748 "info" : {
37749 "GET" : {
e9cd3bd4 37750 "allowtoken" : 1,
e2d681b3
TL
37751 "description" : "List mediated device types for given PCI device.",
37752 "method" : "GET",
37753 "name" : "mdevscan",
37754 "parameters" : {
37755 "additionalProperties" : 0,
37756 "properties" : {
37757 "node" : {
37758 "description" : "The cluster node name.",
37759 "format" : "pve-node",
37760 "type" : "string",
37761 "typetext" : "<string>"
37762 },
37763 "pciid" : {
37764 "description" : "The PCI ID to list the mdev types for.",
37765 "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
37766 "type" : "string"
37767 }
37768 }
37769 },
37770 "permissions" : {
37771 "check" : [
37772 "perm",
37773 "/",
37774 [
37775 "Sys.Modify"
37776 ]
37777 ]
37778 },
37779 "protected" : 1,
37780 "proxyto" : "node",
37781 "returns" : {
37782 "items" : {
37783 "properties" : {
37784 "available" : {
37785 "description" : "The number of still available instances of this type.",
37786 "type" : "integer"
37787 },
37788 "description" : {
37789 "type" : "string"
37790 },
37791 "type" : {
37792 "description" : "The name of the mdev type.",
37793 "type" : "string"
37794 }
37795 },
37796 "type" : "object"
37797 },
37798 "type" : "array"
37799 }
37800 }
37801 },
37802 "leaf" : 1,
37803 "path" : "/nodes/{node}/hardware/pci/{pciid}/mdev",
37804 "text" : "mdev"
37805 }
37806 ],
37807 "info" : {
37808 "GET" : {
e9cd3bd4 37809 "allowtoken" : 1,
e2d681b3
TL
37810 "description" : "Index of available pci methods",
37811 "method" : "GET",
37812 "name" : "pciindex",
37813 "parameters" : {
37814 "additionalProperties" : 0,
37815 "properties" : {
37816 "node" : {
37817 "description" : "The cluster node name.",
37818 "format" : "pve-node",
37819 "type" : "string",
37820 "typetext" : "<string>"
37821 },
37822 "pciid" : {
37823 "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
37824 "type" : "string"
37825 }
37826 }
37827 },
37828 "permissions" : {
37829 "user" : "all"
37830 },
37831 "returns" : {
37832 "items" : {
37833 "properties" : {
37834 "method" : {
37835 "type" : "string"
37836 }
37837 },
37838 "type" : "object"
37839 },
37840 "links" : [
37841 {
37842 "href" : "{method}",
37843 "rel" : "child"
37844 }
37845 ],
37846 "type" : "array"
37847 }
37848 }
37849 },
37850 "leaf" : 0,
37851 "path" : "/nodes/{node}/hardware/pci/{pciid}",
37852 "text" : "{pciid}"
37853 }
37854 ],
37855 "info" : {
37856 "GET" : {
e9cd3bd4 37857 "allowtoken" : 1,
e2d681b3
TL
37858 "description" : "List local PCI devices.",
37859 "method" : "GET",
37860 "name" : "pciscan",
37861 "parameters" : {
37862 "additionalProperties" : 0,
37863 "properties" : {
37864 "node" : {
37865 "description" : "The cluster node name.",
37866 "format" : "pve-node",
37867 "type" : "string",
37868 "typetext" : "<string>"
37869 },
37870 "pci-class-blacklist" : {
5370fa8c
TL
37871 "default" : "05;06;0b",
37872 "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
37873 "format" : "string-list",
37874 "optional" : 1,
37875 "type" : "string",
37876 "typetext" : "<string>"
37877 },
37878 "verbose" : {
37879 "default" : 1,
37880 "description" : "If disabled, does only print the PCI IDs. Otherwise, additional information like vendor and device will be returned.",
37881 "optional" : 1,
37882 "type" : "boolean",
37883 "typetext" : "<boolean>"
37884 }
37885 }
37886 },
37887 "permissions" : {
37888 "check" : [
37889 "perm",
37890 "/",
37891 [
37892 "Sys.Modify"
37893 ]
37894 ]
37895 },
37896 "protected" : 1,
37897 "proxyto" : "node",
37898 "returns" : {
37899 "items" : {
37900 "properties" : {
37901 "class" : {
37902 "description" : "The PCI Class of the device.",
37903 "type" : "string"
37904 },
37905 "device" : {
37906 "description" : "The Device ID.",
37907 "type" : "string"
37908 },
37909 "device_name" : {
37910 "optional" : 1,
37911 "type" : "string"
37912 },
37913 "id" : {
37914 "description" : "The PCI ID.",
37915 "type" : "string"
37916 },
37917 "iommugroup" : {
37918 "description" : "The IOMMU group in which the device is in. If no IOMMU group is detected, it is set to -1.",
37919 "type" : "integer"
37920 },
37921 "mdev" : {
37922 "description" : "If set, marks that the device is capable of creating mediated devices.",
37923 "optional" : 1,
37924 "type" : "boolean"
37925 },
37926 "subsystem_device" : {
37927 "description" : "The Subsystem Device ID.",
37928 "optional" : 1,
37929 "type" : "string"
37930 },
37931 "subsystem_device_name" : {
37932 "optional" : 1,
37933 "type" : "string"
37934 },
37935 "subsystem_vendor" : {
37936 "description" : "The Subsystem Vendor ID.",
37937 "optional" : 1,
37938 "type" : "string"
37939 },
37940 "subsystem_vendor_name" : {
37941 "optional" : 1,
37942 "type" : "string"
37943 },
37944 "vendor" : {
37945 "description" : "The Vendor ID.",
37946 "type" : "string"
37947 },
37948 "vendor_name" : {
37949 "optional" : 1,
37950 "type" : "string"
37951 }
37952 },
37953 "type" : "object"
37954 },
37955 "links" : [
37956 {
37957 "href" : "{id}",
37958 "rel" : "child"
37959 }
37960 ],
37961 "type" : "array"
37962 }
37963 }
37964 },
37965 "leaf" : 0,
37966 "path" : "/nodes/{node}/hardware/pci",
37967 "text" : "pci"
d2656385
TL
37968 },
37969 {
37970 "info" : {
37971 "GET" : {
37972 "allowtoken" : 1,
37973 "description" : "List local USB devices.",
37974 "method" : "GET",
37975 "name" : "usbscan",
37976 "parameters" : {
37977 "additionalProperties" : 0,
37978 "properties" : {
37979 "node" : {
37980 "description" : "The cluster node name.",
37981 "format" : "pve-node",
37982 "type" : "string",
37983 "typetext" : "<string>"
37984 }
37985 }
37986 },
37987 "permissions" : {
37988 "check" : [
37989 "perm",
37990 "/",
37991 [
37992 "Sys.Modify"
37993 ]
37994 ]
37995 },
37996 "protected" : 1,
37997 "proxyto" : "node",
37998 "returns" : {
37999 "items" : {
38000 "properties" : {
38001 "busnum" : {
38002 "type" : "integer"
38003 },
38004 "class" : {
38005 "type" : "integer"
38006 },
38007 "devnum" : {
38008 "type" : "integer"
38009 },
38010 "level" : {
38011 "type" : "integer"
38012 },
38013 "manufacturer" : {
38014 "optional" : 1,
38015 "type" : "string"
38016 },
38017 "port" : {
38018 "type" : "integer"
38019 },
38020 "prodid" : {
38021 "type" : "string"
38022 },
38023 "product" : {
38024 "optional" : 1,
38025 "type" : "string"
38026 },
38027 "serial" : {
38028 "optional" : 1,
38029 "type" : "string"
38030 },
38031 "speed" : {
38032 "type" : "string"
38033 },
38034 "usbpath" : {
38035 "optional" : 1,
38036 "type" : "string"
38037 },
38038 "vendid" : {
38039 "type" : "string"
38040 }
38041 },
38042 "type" : "object"
38043 },
38044 "type" : "array"
38045 }
38046 }
38047 },
38048 "leaf" : 1,
38049 "path" : "/nodes/{node}/hardware/usb",
38050 "text" : "usb"
e2d681b3
TL
38051 }
38052 ],
38053 "info" : {
38054 "GET" : {
e9cd3bd4 38055 "allowtoken" : 1,
e2d681b3
TL
38056 "description" : "Index of hardware types",
38057 "method" : "GET",
38058 "name" : "index",
38059 "parameters" : {
38060 "additionalProperties" : 0,
38061 "properties" : {
38062 "node" : {
38063 "description" : "The cluster node name.",
38064 "format" : "pve-node",
38065 "type" : "string",
38066 "typetext" : "<string>"
38067 }
38068 }
38069 },
38070 "permissions" : {
38071 "user" : "all"
38072 },
38073 "returns" : {
38074 "items" : {
38075 "properties" : {
38076 "type" : {
38077 "type" : "string"
38078 }
38079 },
38080 "type" : "object"
38081 },
38082 "links" : [
38083 {
38084 "href" : "{type}",
38085 "rel" : "child"
38086 }
38087 ],
38088 "type" : "array"
38089 }
38090 }
38091 },
38092 "leaf" : 0,
38093 "path" : "/nodes/{node}/hardware",
38094 "text" : "hardware"
38095 },
d2656385
TL
38096 {
38097 "children" : [
38098 {
38099 "children" : [
0695fdaf
TL
38100 {
38101 "info" : {
38102 "GET" : {
38103 "allowtoken" : 1,
38104 "description" : "List all custom and default CPU models.",
38105 "method" : "GET",
38106 "name" : "index",
38107 "parameters" : {
38108 "additionalProperties" : 0,
38109 "properties" : {
38110 "node" : {
38111 "description" : "The cluster node name.",
38112 "format" : "pve-node",
38113 "type" : "string",
38114 "typetext" : "<string>"
38115 }
38116 }
38117 },
38118 "permissions" : {
38119 "description" : "Only returns custom models when the current user has Sys.Audit on /nodes.",
38120 "user" : "all"
38121 },
38122 "returns" : {
38123 "items" : {
38124 "properties" : {
38125 "custom" : {
38126 "description" : "True if this is a custom CPU model.",
38127 "type" : "boolean"
38128 },
38129 "name" : {
38130 "description" : "Name of the CPU model. Identifies it for subsequent API calls. Prefixed with 'custom-' for custom models.",
38131 "type" : "string"
38132 },
38133 "vendor" : {
38134 "description" : "CPU vendor visible to the guest when this model is selected. Vendor of 'reported-model' in case of custom models.",
38135 "type" : "string"
38136 }
38137 },
38138 "type" : "object"
38139 },
38140 "links" : [
38141 {
38142 "href" : "{name}",
38143 "rel" : "child"
38144 }
38145 ],
38146 "type" : "array"
38147 }
38148 }
38149 },
38150 "leaf" : 1,
38151 "path" : "/nodes/{node}/capabilities/qemu/cpu",
38152 "text" : "cpu"
38153 },
d2656385
TL
38154 {
38155 "info" : {
38156 "GET" : {
38157 "allowtoken" : 1,
38158 "description" : "Get available QEMU/KVM machine types.",
38159 "method" : "GET",
38160 "name" : "types",
38161 "parameters" : {
38162 "additionalProperties" : 0,
38163 "properties" : {
38164 "node" : {
38165 "description" : "The cluster node name.",
38166 "format" : "pve-node",
38167 "type" : "string",
38168 "typetext" : "<string>"
38169 }
38170 }
38171 },
38172 "permissions" : {
38173 "user" : "all"
38174 },
38175 "proxyto" : "node",
38176 "returns" : {
38177 "items" : {
38178 "additionalProperties" : 1,
38179 "properties" : {
38180 "id" : {
38181 "description" : "Full name of machine type and version.",
38182 "type" : "string"
38183 },
38184 "type" : {
38185 "description" : "The machine type.",
38186 "enum" : [
38187 "q35",
38188 "i440fx"
38189 ],
38190 "type" : "string"
38191 },
38192 "version" : {
38193 "description" : "The machine version.",
38194 "type" : "string"
38195 }
38196 },
38197 "type" : "object"
38198 },
38199 "type" : "array"
38200 }
38201 }
38202 },
38203 "leaf" : 1,
38204 "path" : "/nodes/{node}/capabilities/qemu/machines",
38205 "text" : "machines"
38206 }
38207 ],
38208 "info" : {
38209 "GET" : {
38210 "allowtoken" : 1,
38211 "description" : "QEMU capabilities index.",
38212 "method" : "GET",
38213 "name" : "qemu_caps_index",
38214 "parameters" : {
38215 "additionalProperties" : 0,
38216 "properties" : {
38217 "node" : {
38218 "description" : "The cluster node name.",
38219 "format" : "pve-node",
38220 "type" : "string",
38221 "typetext" : "<string>"
38222 }
38223 }
38224 },
38225 "permissions" : {
38226 "user" : "all"
38227 },
38228 "returns" : {
38229 "items" : {
38230 "properties" : {},
38231 "type" : "object"
38232 },
38233 "links" : [
38234 {
38235 "href" : "{name}",
38236 "rel" : "child"
38237 }
38238 ],
38239 "type" : "array"
38240 }
38241 }
38242 },
38243 "leaf" : 0,
38244 "path" : "/nodes/{node}/capabilities/qemu",
38245 "text" : "qemu"
38246 }
38247 ],
38248 "info" : {
38249 "GET" : {
38250 "allowtoken" : 1,
38251 "description" : "Node capabilities index.",
38252 "method" : "GET",
38253 "name" : "index",
38254 "parameters" : {
38255 "additionalProperties" : 0,
38256 "properties" : {
38257 "node" : {
38258 "description" : "The cluster node name.",
38259 "format" : "pve-node",
38260 "type" : "string",
38261 "typetext" : "<string>"
38262 }
38263 }
38264 },
38265 "permissions" : {
38266 "user" : "all"
38267 },
38268 "returns" : {
38269 "items" : {
38270 "properties" : {},
38271 "type" : "object"
38272 },
38273 "links" : [
38274 {
38275 "href" : "{name}",
38276 "rel" : "child"
38277 }
38278 ],
38279 "type" : "array"
38280 }
38281 }
38282 },
38283 "leaf" : 0,
38284 "path" : "/nodes/{node}/capabilities",
38285 "text" : "capabilities"
38286 },
44660702 38287 {
56122987
DM
38288 "children" : [
38289 {
4d47f125 38290 "children" : [
739d4d64
TL
38291 {
38292 "info" : {
38293 "DELETE" : {
38294 "allowtoken" : 1,
38295 "description" : "Prune backups. Only those using the standard naming scheme are considered.",
38296 "method" : "DELETE",
38297 "name" : "delete",
38298 "parameters" : {
38299 "additionalProperties" : 0,
38300 "properties" : {
38301 "node" : {
38302 "description" : "The cluster node name.",
38303 "format" : "pve-node",
38304 "type" : "string",
38305 "typetext" : "<string>"
38306 },
38307 "prune-backups" : {
38308 "description" : "Use these retention options instead of those from the storage configuration.",
38309 "format" : "prune-backups",
38310 "optional" : 1,
38311 "type" : "string",
4772952b 38312 "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
38313 },
38314 "storage" : {
38315 "description" : "The storage identifier.",
38316 "format" : "pve-storage-id",
38317 "type" : "string",
38318 "typetext" : "<string>"
38319 },
38320 "type" : {
38321 "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
38322 "enum" : [
38323 "qemu",
38324 "lxc"
38325 ],
38326 "optional" : 1,
38327 "type" : "string"
38328 },
38329 "vmid" : {
38330 "description" : "Only prune backups for this VM.",
38331 "format" : "pve-vmid",
38332 "minimum" : 1,
38333 "optional" : 1,
38334 "type" : "integer",
38335 "typetext" : "<integer> (1 - N)"
38336 }
38337 }
38338 },
38339 "permissions" : {
38340 "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).",
38341 "user" : "all"
38342 },
38343 "protected" : 1,
38344 "proxyto" : "node",
38345 "returns" : {
38346 "type" : "string"
38347 }
38348 },
38349 "GET" : {
38350 "allowtoken" : 1,
4772952b 38351 "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
38352 "method" : "GET",
38353 "name" : "dryrun",
38354 "parameters" : {
38355 "additionalProperties" : 0,
38356 "properties" : {
38357 "node" : {
38358 "description" : "The cluster node name.",
38359 "format" : "pve-node",
38360 "type" : "string",
38361 "typetext" : "<string>"
38362 },
38363 "prune-backups" : {
38364 "description" : "Use these retention options instead of those from the storage configuration.",
38365 "format" : "prune-backups",
38366 "optional" : 1,
38367 "type" : "string",
4772952b 38368 "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
38369 },
38370 "storage" : {
38371 "description" : "The storage identifier.",
38372 "format" : "pve-storage-id",
38373 "type" : "string",
38374 "typetext" : "<string>"
38375 },
38376 "type" : {
38377 "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
38378 "enum" : [
38379 "qemu",
38380 "lxc"
38381 ],
38382 "optional" : 1,
38383 "type" : "string"
38384 },
38385 "vmid" : {
38386 "description" : "Only consider backups for this guest.",
38387 "format" : "pve-vmid",
38388 "minimum" : 1,
38389 "optional" : 1,
38390 "type" : "integer",
38391 "typetext" : "<integer> (1 - N)"
38392 }
38393 }
38394 },
38395 "permissions" : {
38396 "check" : [
38397 "perm",
38398 "/storage/{storage}",
38399 [
38400 "Datastore.Audit",
38401 "Datastore.AllocateSpace"
38402 ],
38403 "any",
38404 1
38405 ]
38406 },
38407 "protected" : 1,
38408 "proxyto" : "node",
38409 "returns" : {
38410 "items" : {
38411 "properties" : {
38412 "ctime" : {
38413 "description" : "Creation time of the backup (seconds since the UNIX epoch).",
38414 "type" : "integer"
38415 },
38416 "mark" : {
5370fa8c
TL
38417 "description" : "Whether the backup would be kept or removed. Backups that are protected or don't use the standard naming scheme are not removed.",
38418 "enum" : [
38419 "keep",
38420 "remove",
38421 "protected",
38422 "renamed"
38423 ],
739d4d64
TL
38424 "type" : "string"
38425 },
38426 "type" : {
38427 "description" : "One of 'qemu', 'lxc', 'openvz' or 'unknown'.",
38428 "type" : "string"
38429 },
38430 "vmid" : {
38431 "description" : "The VM the backup belongs to.",
38432 "optional" : 1,
38433 "type" : "integer"
38434 },
38435 "volid" : {
38436 "description" : "Backup volume ID.",
38437 "type" : "string"
38438 }
38439 },
38440 "type" : "object"
38441 },
38442 "type" : "array"
38443 }
38444 }
38445 },
38446 "leaf" : 1,
38447 "path" : "/nodes/{node}/storage/{storage}/prunebackups",
38448 "text" : "prunebackups"
38449 },
4d47f125
TL
38450 {
38451 "children" : [
38452 {
38453 "info" : {
38454 "DELETE" : {
e9cd3bd4 38455 "allowtoken" : 1,
4d47f125
TL
38456 "description" : "Delete volume",
38457 "method" : "DELETE",
38458 "name" : "delete",
38459 "parameters" : {
38460 "additionalProperties" : 0,
38461 "properties" : {
1c532546
TL
38462 "delay" : {
38463 "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
38464 "maximum" : 30,
38465 "minimum" : 1,
38466 "optional" : 1,
38467 "type" : "integer",
38468 "typetext" : "<integer> (1 - 30)"
38469 },
4d47f125
TL
38470 "node" : {
38471 "description" : "The cluster node name.",
38472 "format" : "pve-node",
38473 "type" : "string",
38474 "typetext" : "<string>"
38475 },
38476 "storage" : {
38477 "description" : "The storage identifier.",
38478 "format" : "pve-storage-id",
38479 "optional" : 1,
38480 "type" : "string",
38481 "typetext" : "<string>"
38482 },
38483 "volume" : {
38484 "description" : "Volume identifier",
38485 "type" : "string",
38486 "typetext" : "<string>"
38487 }
38488 }
38489 },
38490 "permissions" : {
38491 "description" : "You need 'Datastore.Allocate' privilege on the storage (or 'Datastore.AllocateSpace' for backup volumes if you have VM.Backup privilege on the VM).",
38492 "user" : "all"
38493 },
38494 "protected" : 1,
38495 "proxyto" : "node",
38496 "returns" : {
1c532546
TL
38497 "optional" : 1,
38498 "type" : "string"
4d47f125
TL
38499 }
38500 },
38501 "GET" : {
e9cd3bd4 38502 "allowtoken" : 1,
4d47f125
TL
38503 "description" : "Get volume attributes",
38504 "method" : "GET",
38505 "name" : "info",
38506 "parameters" : {
38507 "additionalProperties" : 0,
38508 "properties" : {
38509 "node" : {
38510 "description" : "The cluster node name.",
38511 "format" : "pve-node",
38512 "type" : "string",
38513 "typetext" : "<string>"
38514 },
38515 "storage" : {
38516 "description" : "The storage identifier.",
38517 "format" : "pve-storage-id",
38518 "optional" : 1,
38519 "type" : "string",
38520 "typetext" : "<string>"
38521 },
38522 "volume" : {
38523 "description" : "Volume identifier",
38524 "type" : "string",
38525 "typetext" : "<string>"
38526 }
38527 }
38528 },
38529 "permissions" : {
38530 "description" : "You need read access for the volume.",
38531 "user" : "all"
38532 },
38533 "protected" : 1,
38534 "proxyto" : "node",
38535 "returns" : {
4772952b
TL
38536 "properties" : {
38537 "format" : {
38538 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
38539 "type" : "string"
38540 },
38541 "notes" : {
38542 "description" : "Optional notes.",
38543 "optional" : 1,
38544 "type" : "string"
38545 },
38546 "path" : {
38547 "description" : "The Path",
38548 "type" : "string"
38549 },
5370fa8c
TL
38550 "protected" : {
38551 "description" : "Protection status. Currently only supported for backups.",
38552 "optional" : 1,
38553 "type" : "boolean"
38554 },
4772952b
TL
38555 "size" : {
38556 "description" : "Volume size in bytes.",
38557 "renderer" : "bytes",
38558 "type" : "integer"
38559 },
38560 "used" : {
38561 "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
38562 "renderer" : "bytes",
38563 "type" : "integer"
38564 }
38565 },
4d47f125
TL
38566 "type" : "object"
38567 }
38568 },
38569 "POST" : {
e9cd3bd4 38570 "allowtoken" : 1,
4d47f125
TL
38571 "description" : "Copy a volume. This is experimental code - do not use.",
38572 "method" : "POST",
38573 "name" : "copy",
38574 "parameters" : {
38575 "additionalProperties" : 0,
38576 "properties" : {
38577 "node" : {
38578 "description" : "The cluster node name.",
38579 "format" : "pve-node",
38580 "type" : "string",
38581 "typetext" : "<string>"
38582 },
38583 "storage" : {
38584 "description" : "The storage identifier.",
38585 "format" : "pve-storage-id",
38586 "optional" : 1,
38587 "type" : "string",
38588 "typetext" : "<string>"
38589 },
38590 "target" : {
38591 "description" : "Target volume identifier",
38592 "type" : "string",
38593 "typetext" : "<string>"
38594 },
38595 "target_node" : {
38596 "description" : "Target node. Default is local node.",
38597 "format" : "pve-node",
38598 "optional" : 1,
38599 "type" : "string",
38600 "typetext" : "<string>"
38601 },
38602 "volume" : {
38603 "description" : "Source volume identifier",
38604 "type" : "string",
38605 "typetext" : "<string>"
38606 }
38607 }
38608 },
38609 "protected" : 1,
38610 "proxyto" : "node",
38611 "returns" : {
38612 "type" : "string"
38613 }
4772952b
TL
38614 },
38615 "PUT" : {
38616 "allowtoken" : 1,
38617 "description" : "Update volume attributes",
38618 "method" : "PUT",
38619 "name" : "updateattributes",
38620 "parameters" : {
38621 "additionalProperties" : 0,
38622 "properties" : {
38623 "node" : {
38624 "description" : "The cluster node name.",
38625 "format" : "pve-node",
38626 "type" : "string",
38627 "typetext" : "<string>"
38628 },
38629 "notes" : {
38630 "description" : "The new notes.",
38631 "optional" : 1,
38632 "type" : "string",
38633 "typetext" : "<string>"
38634 },
5370fa8c
TL
38635 "protected" : {
38636 "description" : "Protection status. Currently only supported for backups.",
38637 "optional" : 1,
38638 "type" : "boolean",
38639 "typetext" : "<boolean>"
38640 },
4772952b
TL
38641 "storage" : {
38642 "description" : "The storage identifier.",
38643 "format" : "pve-storage-id",
38644 "optional" : 1,
38645 "type" : "string",
38646 "typetext" : "<string>"
38647 },
38648 "volume" : {
38649 "description" : "Volume identifier",
38650 "type" : "string",
38651 "typetext" : "<string>"
38652 }
38653 }
38654 },
38655 "permissions" : {
38656 "description" : "You need read access for the volume.",
38657 "user" : "all"
38658 },
38659 "protected" : 1,
38660 "proxyto" : "node",
38661 "returns" : {
38662 "type" : "null"
38663 }
4d47f125
TL
38664 }
38665 },
38666 "leaf" : 1,
38667 "path" : "/nodes/{node}/storage/{storage}/content/{volume}",
38668 "text" : "{volume}"
44660702 38669 }
4d47f125
TL
38670 ],
38671 "info" : {
38672 "GET" : {
e9cd3bd4 38673 "allowtoken" : 1,
4d47f125
TL
38674 "description" : "List storage content.",
38675 "method" : "GET",
38676 "name" : "index",
38677 "parameters" : {
38678 "additionalProperties" : 0,
38679 "properties" : {
38680 "content" : {
38681 "description" : "Only list content of this type.",
38682 "format" : "pve-storage-content",
38683 "optional" : 1,
38684 "type" : "string",
38685 "typetext" : "<string>"
38686 },
38687 "node" : {
38688 "description" : "The cluster node name.",
38689 "format" : "pve-node",
38690 "type" : "string",
38691 "typetext" : "<string>"
38692 },
38693 "storage" : {
38694 "description" : "The storage identifier.",
38695 "format" : "pve-storage-id",
38696 "type" : "string",
38697 "typetext" : "<string>"
38698 },
38699 "vmid" : {
38700 "description" : "Only list images for this VM",
38701 "format" : "pve-vmid",
38702 "minimum" : 1,
38703 "optional" : 1,
38704 "type" : "integer",
38705 "typetext" : "<integer> (1 - N)"
38706 }
56122987 38707 }
44660702 38708 },
4d47f125
TL
38709 "permissions" : {
38710 "check" : [
38711 "perm",
38712 "/storage/{storage}",
38713 [
38714 "Datastore.Audit",
38715 "Datastore.AllocateSpace"
38716 ],
38717 "any",
38718 1
38719 ]
7aacca6f 38720 },
4d47f125
TL
38721 "protected" : 1,
38722 "proxyto" : "node",
38723 "returns" : {
38724 "items" : {
38725 "properties" : {
c5aa7e14
TL
38726 "ctime" : {
38727 "description" : "Creation time (seconds since the UNIX Epoch).",
38728 "minimum" : 0,
38729 "optional" : 1,
38730 "type" : "integer"
38731 },
d2656385
TL
38732 "encrypted" : {
38733 "description" : "If whole backup is encrypted, value is the fingerprint or '1' if encrypted. Only useful for the Proxmox Backup Server storage type.",
38734 "optional" : 1,
38735 "type" : "string"
38736 },
4d47f125
TL
38737 "format" : {
38738 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
38739 "type" : "string"
38740 },
4772952b
TL
38741 "notes" : {
38742 "description" : "Optional notes. If they contain multiple lines, only the first one is returned here.",
38743 "optional" : 1,
38744 "type" : "string"
38745 },
4d47f125
TL
38746 "parent" : {
38747 "description" : "Volume identifier of parent (for linked cloned).",
38748 "optional" : 1,
38749 "type" : "string"
38750 },
5370fa8c
TL
38751 "protected" : {
38752 "description" : "Protection status. Currently only supported for backups.",
38753 "optional" : 1,
38754 "type" : "boolean"
38755 },
4d47f125
TL
38756 "size" : {
38757 "description" : "Volume size in bytes.",
38758 "renderer" : "bytes",
38759 "type" : "integer"
38760 },
38761 "used" : {
c5aa7e14 38762 "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
4d47f125
TL
38763 "optional" : 1,
38764 "renderer" : "bytes",
38765 "type" : "integer"
38766 },
4772952b
TL
38767 "verification" : {
38768 "description" : "Last backup verification result, only useful for PBS storages.",
38769 "optional" : 1,
38770 "properties" : {
38771 "state" : {
38772 "description" : "Last backup verification state.",
38773 "type" : "string"
38774 },
38775 "upid" : {
38776 "description" : "Last backup verification UPID.",
38777 "type" : "string"
38778 }
38779 },
38780 "type" : "object"
38781 },
4d47f125
TL
38782 "vmid" : {
38783 "description" : "Associated Owner VMID.",
38784 "optional" : 1,
38785 "type" : "integer"
38786 },
38787 "volid" : {
38788 "description" : "Volume identifier.",
38789 "type" : "string"
38790 }
38791 },
38792 "type" : "object"
44660702 38793 },
4d47f125
TL
38794 "links" : [
38795 {
38796 "href" : "{volid}",
38797 "rel" : "child"
38798 }
38799 ],
38800 "type" : "array"
38801 }
38802 },
38803 "POST" : {
e9cd3bd4 38804 "allowtoken" : 1,
4d47f125
TL
38805 "description" : "Allocate disk images.",
38806 "method" : "POST",
38807 "name" : "create",
38808 "parameters" : {
38809 "additionalProperties" : 0,
38810 "properties" : {
38811 "filename" : {
38812 "description" : "The name of the file to create.",
38813 "type" : "string",
38814 "typetext" : "<string>"
38815 },
38816 "format" : {
38817 "enum" : [
38818 "raw",
38819 "qcow2",
38820 "subvol"
38821 ],
38822 "optional" : 1,
38823 "requires" : "size",
38824 "type" : "string"
38825 },
38826 "node" : {
38827 "description" : "The cluster node name.",
38828 "format" : "pve-node",
38829 "type" : "string",
38830 "typetext" : "<string>"
38831 },
38832 "size" : {
38833 "description" : "Size in kilobyte (1024 bytes). Optional suffixes 'M' (megabyte, 1024K) and 'G' (gigabyte, 1024M)",
38834 "pattern" : "\\d+[MG]?",
38835 "type" : "string"
38836 },
38837 "storage" : {
38838 "description" : "The storage identifier.",
38839 "format" : "pve-storage-id",
38840 "type" : "string",
38841 "typetext" : "<string>"
38842 },
38843 "vmid" : {
38844 "description" : "Specify owner VM",
38845 "format" : "pve-vmid",
38846 "minimum" : 1,
38847 "type" : "integer",
38848 "typetext" : "<integer> (1 - N)"
38849 }
44660702
DM
38850 }
38851 },
4d47f125
TL
38852 "permissions" : {
38853 "check" : [
38854 "perm",
38855 "/storage/{storage}",
38856 [
38857 "Datastore.AllocateSpace"
38858 ]
38859 ]
27a7acb2 38860 },
4d47f125
TL
38861 "protected" : 1,
38862 "proxyto" : "node",
38863 "returns" : {
38864 "description" : "Volume identifier",
38865 "type" : "string"
27a7acb2
DM
38866 }
38867 }
38868 },
4d47f125
TL
38869 "leaf" : 0,
38870 "path" : "/nodes/{node}/storage/{storage}/content",
38871 "text" : "content"
38872 },
d2656385
TL
38873 {
38874 "children" : [
38875 {
38876 "info" : {
38877 "GET" : {
38878 "allowtoken" : 1,
38879 "description" : "List files and directories for single file restore under the given path.",
38880 "method" : "GET",
38881 "name" : "list",
38882 "parameters" : {
38883 "additionalProperties" : 0,
38884 "properties" : {
38885 "filepath" : {
38886 "description" : "base64-path to the directory or file being listed, or \"/\".",
38887 "type" : "string",
38888 "typetext" : "<string>"
38889 },
38890 "node" : {
38891 "description" : "The cluster node name.",
38892 "format" : "pve-node",
38893 "type" : "string",
38894 "typetext" : "<string>"
38895 },
38896 "storage" : {
38897 "description" : "The storage identifier.",
38898 "format" : "pve-storage-id",
38899 "type" : "string",
38900 "typetext" : "<string>"
38901 },
38902 "volume" : {
38903 "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
38904 "type" : "string",
38905 "typetext" : "<string>"
38906 }
38907 }
38908 },
38909 "permissions" : {
38910 "description" : "You need read access for the volume.",
38911 "user" : "all"
38912 },
38913 "protected" : 1,
38914 "proxyto" : "node",
38915 "returns" : {
38916 "items" : {
38917 "properties" : {
38918 "filepath" : {
38919 "description" : "base64 path of the current entry",
38920 "type" : "string"
38921 },
38922 "leaf" : {
38923 "description" : "If this entry is a leaf in the directory graph.",
38924 "type" : "boolean"
38925 },
38926 "mtime" : {
38927 "description" : "Entry last-modified time (unix timestamp).",
38928 "optional" : 1,
38929 "type" : "integer"
38930 },
38931 "size" : {
38932 "description" : "Entry file size.",
38933 "optional" : 1,
38934 "type" : "integer"
38935 },
38936 "text" : {
38937 "description" : "Entry display text.",
38938 "type" : "string"
38939 },
38940 "type" : {
38941 "description" : "Entry type.",
38942 "type" : "string"
38943 }
38944 },
38945 "type" : "object"
38946 },
38947 "type" : "array"
38948 }
38949 }
38950 },
38951 "leaf" : 1,
38952 "path" : "/nodes/{node}/storage/{storage}/file-restore/list",
38953 "text" : "list"
38954 },
38955 {
38956 "info" : {
38957 "GET" : {
38958 "allowtoken" : 1,
38959 "description" : "Extract a file or directory (as zip archive) from a PBS backup.",
38960 "method" : "GET",
38961 "name" : "download",
38962 "parameters" : {
38963 "additionalProperties" : 0,
38964 "properties" : {
38965 "filepath" : {
38966 "description" : "base64-path to the directory or file to download.",
38967 "type" : "string",
38968 "typetext" : "<string>"
38969 },
38970 "node" : {
38971 "description" : "The cluster node name.",
38972 "format" : "pve-node",
38973 "type" : "string",
38974 "typetext" : "<string>"
38975 },
38976 "storage" : {
38977 "description" : "The storage identifier.",
38978 "format" : "pve-storage-id",
38979 "type" : "string",
38980 "typetext" : "<string>"
38981 },
38982 "volume" : {
38983 "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
38984 "type" : "string",
38985 "typetext" : "<string>"
38986 }
38987 }
38988 },
38989 "permissions" : {
38990 "description" : "You need read access for the volume.",
38991 "user" : "all"
38992 },
38993 "protected" : 1,
38994 "proxyto" : "node",
38995 "returns" : {
38996 "type" : "any"
38997 }
38998 }
38999 },
39000 "leaf" : 1,
39001 "path" : "/nodes/{node}/storage/{storage}/file-restore/download",
39002 "text" : "download"
39003 }
39004 ],
39005 "leaf" : 0,
39006 "path" : "/nodes/{node}/storage/{storage}/file-restore",
39007 "text" : "file-restore"
39008 },
4d47f125
TL
39009 {
39010 "info" : {
39011 "GET" : {
e9cd3bd4 39012 "allowtoken" : 1,
4d47f125
TL
39013 "description" : "Read storage status.",
39014 "method" : "GET",
39015 "name" : "read_status",
39016 "parameters" : {
39017 "additionalProperties" : 0,
39018 "properties" : {
39019 "node" : {
39020 "description" : "The cluster node name.",
39021 "format" : "pve-node",
39022 "type" : "string",
39023 "typetext" : "<string>"
39024 },
39025 "storage" : {
39026 "description" : "The storage identifier.",
39027 "format" : "pve-storage-id",
39028 "type" : "string",
39029 "typetext" : "<string>"
39030 }
27a7acb2
DM
39031 }
39032 },
4d47f125
TL
39033 "permissions" : {
39034 "check" : [
39035 "perm",
39036 "/storage/{storage}",
39037 [
39038 "Datastore.Audit",
39039 "Datastore.AllocateSpace"
39040 ],
39041 "any",
39042 1
39043 ]
7aacca6f 39044 },
4d47f125
TL
39045 "protected" : 1,
39046 "proxyto" : "node",
39047 "returns" : {
39048 "type" : "object"
56122987 39049 }
44660702
DM
39050 }
39051 },
4d47f125
TL
39052 "leaf" : 1,
39053 "path" : "/nodes/{node}/storage/{storage}/status",
39054 "text" : "status"
39055 },
39056 {
39057 "info" : {
39058 "GET" : {
e9cd3bd4 39059 "allowtoken" : 1,
4d47f125
TL
39060 "description" : "Read storage RRD statistics (returns PNG).",
39061 "method" : "GET",
39062 "name" : "rrd",
39063 "parameters" : {
39064 "additionalProperties" : 0,
39065 "properties" : {
39066 "cf" : {
39067 "description" : "The RRD consolidation function",
39068 "enum" : [
39069 "AVERAGE",
39070 "MAX"
39071 ],
39072 "optional" : 1,
39073 "type" : "string"
39074 },
39075 "ds" : {
39076 "description" : "The list of datasources you want to display.",
39077 "format" : "pve-configid-list",
39078 "type" : "string",
39079 "typetext" : "<string>"
39080 },
39081 "node" : {
39082 "description" : "The cluster node name.",
39083 "format" : "pve-node",
39084 "type" : "string",
39085 "typetext" : "<string>"
39086 },
39087 "storage" : {
39088 "description" : "The storage identifier.",
39089 "format" : "pve-storage-id",
39090 "type" : "string",
39091 "typetext" : "<string>"
39092 },
39093 "timeframe" : {
39094 "description" : "Specify the time frame you are interested in.",
39095 "enum" : [
39096 "hour",
39097 "day",
39098 "week",
39099 "month",
39100 "year"
39101 ],
39102 "type" : "string"
39103 }
44660702
DM
39104 }
39105 },
4d47f125
TL
39106 "permissions" : {
39107 "check" : [
39108 "perm",
39109 "/storage/{storage}",
39110 [
39111 "Datastore.Audit",
39112 "Datastore.AllocateSpace"
39113 ],
39114 "any",
39115 1
39116 ]
39117 },
39118 "protected" : 1,
39119 "proxyto" : "node",
39120 "returns" : {
39121 "properties" : {
39122 "filename" : {
39123 "type" : "string"
39124 }
39125 },
39126 "type" : "object"
44660702
DM
39127 }
39128 }
39129 },
4d47f125
TL
39130 "leaf" : 1,
39131 "path" : "/nodes/{node}/storage/{storage}/rrd",
39132 "text" : "rrd"
39133 },
39134 {
39135 "info" : {
39136 "GET" : {
e9cd3bd4 39137 "allowtoken" : 1,
4d47f125
TL
39138 "description" : "Read storage RRD statistics.",
39139 "method" : "GET",
39140 "name" : "rrddata",
39141 "parameters" : {
39142 "additionalProperties" : 0,
39143 "properties" : {
39144 "cf" : {
39145 "description" : "The RRD consolidation function",
39146 "enum" : [
39147 "AVERAGE",
39148 "MAX"
39149 ],
39150 "optional" : 1,
39151 "type" : "string"
39152 },
39153 "node" : {
39154 "description" : "The cluster node name.",
39155 "format" : "pve-node",
39156 "type" : "string",
39157 "typetext" : "<string>"
39158 },
39159 "storage" : {
39160 "description" : "The storage identifier.",
39161 "format" : "pve-storage-id",
39162 "type" : "string",
39163 "typetext" : "<string>"
39164 },
39165 "timeframe" : {
39166 "description" : "Specify the time frame you are interested in.",
39167 "enum" : [
39168 "hour",
39169 "day",
39170 "week",
39171 "month",
39172 "year"
39173 ],
39174 "type" : "string"
39175 }
56122987
DM
39176 }
39177 },
4d47f125
TL
39178 "permissions" : {
39179 "check" : [
39180 "perm",
39181 "/storage/{storage}",
39182 [
39183 "Datastore.Audit",
39184 "Datastore.AllocateSpace"
39185 ],
39186 "any",
39187 1
39188 ]
39189 },
39190 "protected" : 1,
39191 "proxyto" : "node",
39192 "returns" : {
39193 "items" : {
39194 "properties" : {},
39195 "type" : "object"
39196 },
39197 "type" : "array"
56122987 39198 }
7aacca6f 39199 }
56122987 39200 },
4d47f125
TL
39201 "leaf" : 1,
39202 "path" : "/nodes/{node}/storage/{storage}/rrddata",
39203 "text" : "rrddata"
39204 },
39205 {
39206 "info" : {
39207 "POST" : {
e9cd3bd4 39208 "allowtoken" : 1,
4d47f125
TL
39209 "description" : "Upload templates and ISO images.",
39210 "method" : "POST",
39211 "name" : "upload",
39212 "parameters" : {
39213 "additionalProperties" : 0,
39214 "properties" : {
5370fa8c
TL
39215 "checksum" : {
39216 "description" : "The expected checksum of the file.",
39217 "optional" : 1,
39218 "requires" : "checksum-algorithm",
39219 "type" : "string",
39220 "typetext" : "<string>"
39221 },
39222 "checksum-algorithm" : {
39223 "description" : "The algorithm to calculate the checksum of the file.",
39224 "enum" : [
39225 "md5",
39226 "sha1",
39227 "sha224",
39228 "sha256",
39229 "sha384",
39230 "sha512"
39231 ],
39232 "optional" : 1,
39233 "requires" : "checksum",
39234 "type" : "string"
39235 },
4d47f125
TL
39236 "content" : {
39237 "description" : "Content type.",
5370fa8c
TL
39238 "enum" : [
39239 "iso",
39240 "vztmpl"
39241 ],
4d47f125 39242 "format" : "pve-storage-content",
5370fa8c 39243 "type" : "string"
4d47f125
TL
39244 },
39245 "filename" : {
5370fa8c
TL
39246 "description" : "The name of the file to create. Caution: This will be normalized!",
39247 "maxLength" : 255,
4d47f125
TL
39248 "type" : "string",
39249 "typetext" : "<string>"
39250 },
39251 "node" : {
39252 "description" : "The cluster node name.",
39253 "format" : "pve-node",
39254 "type" : "string",
39255 "typetext" : "<string>"
39256 },
39257 "storage" : {
39258 "description" : "The storage identifier.",
39259 "format" : "pve-storage-id",
39260 "type" : "string",
39261 "typetext" : "<string>"
39262 },
39263 "tmpfilename" : {
1e3f8156 39264 "description" : "The source file name. This parameter is usually set by the REST handler. You can only overwrite it when connecting to the trusted port on localhost.",
4d47f125
TL
39265 "optional" : 1,
39266 "type" : "string",
39267 "typetext" : "<string>"
39268 }
44660702
DM
39269 }
39270 },
4d47f125
TL
39271 "permissions" : {
39272 "check" : [
39273 "perm",
39274 "/storage/{storage}",
39275 [
39276 "Datastore.AllocateTemplate"
39277 ]
39278 ]
56122987 39279 },
4d47f125
TL
39280 "protected" : 1,
39281 "returns" : {
44660702 39282 "type" : "string"
56122987 39283 }
44660702 39284 }
56122987 39285 },
4d47f125
TL
39286 "leaf" : 1,
39287 "path" : "/nodes/{node}/storage/{storage}/upload",
39288 "text" : "upload"
34f3e481
TL
39289 },
39290 {
39291 "info" : {
39292 "POST" : {
39293 "allowtoken" : 1,
39294 "description" : "Download templates and ISO images by using an URL.",
39295 "method" : "POST",
39296 "name" : "download_url",
39297 "parameters" : {
39298 "additionalProperties" : 0,
39299 "properties" : {
39300 "checksum" : {
39301 "description" : "The expected checksum of the file.",
39302 "optional" : 1,
39303 "requires" : "checksum-algorithm",
39304 "type" : "string",
39305 "typetext" : "<string>"
39306 },
39307 "checksum-algorithm" : {
39308 "description" : "The algorithm to calculate the checksum of the file.",
39309 "enum" : [
39310 "md5",
39311 "sha1",
39312 "sha224",
39313 "sha256",
39314 "sha384",
39315 "sha512"
39316 ],
39317 "optional" : 1,
39318 "requires" : "checksum",
39319 "type" : "string"
39320 },
39321 "content" : {
39322 "description" : "Content type.",
39323 "enum" : [
39324 "iso",
39325 "vztmpl"
39326 ],
39327 "format" : "pve-storage-content",
39328 "type" : "string"
39329 },
39330 "filename" : {
39331 "description" : "The name of the file to create. Caution: This will be normalized!",
39332 "maxLength" : 255,
39333 "type" : "string",
39334 "typetext" : "<string>"
39335 },
39336 "node" : {
39337 "description" : "The cluster node name.",
39338 "format" : "pve-node",
39339 "type" : "string",
39340 "typetext" : "<string>"
39341 },
39342 "storage" : {
39343 "description" : "The storage identifier.",
39344 "format" : "pve-storage-id",
39345 "type" : "string",
39346 "typetext" : "<string>"
39347 },
39348 "url" : {
39349 "description" : "The URL to download the file from.",
39350 "pattern" : "https?://.*",
39351 "type" : "string"
39352 },
39353 "verify-certificates" : {
39354 "default" : 1,
39355 "description" : "If false, no SSL/TLS certificates will be verified.",
39356 "optional" : 1,
39357 "type" : "boolean",
39358 "typetext" : "<boolean>"
39359 }
39360 }
39361 },
39362 "permissions" : {
39363 "check" : [
39364 "and",
39365 [
39366 "perm",
39367 "/storage/{storage}",
39368 [
39369 "Datastore.AllocateTemplate"
39370 ]
39371 ],
39372 [
39373 "perm",
39374 "/",
39375 [
39376 "Sys.Audit",
39377 "Sys.Modify"
39378 ]
39379 ]
39380 ]
39381 },
39382 "protected" : 1,
39383 "proxyto" : "node",
39384 "returns" : {
39385 "type" : "string"
39386 }
39387 }
39388 },
39389 "leaf" : 1,
39390 "path" : "/nodes/{node}/storage/{storage}/download-url",
39391 "text" : "download-url"
56122987 39392 }
4d47f125 39393 ],
56122987
DM
39394 "info" : {
39395 "GET" : {
e9cd3bd4 39396 "allowtoken" : 1,
4d47f125 39397 "description" : "",
44660702 39398 "method" : "GET",
4d47f125 39399 "name" : "diridx",
44660702
DM
39400 "parameters" : {
39401 "additionalProperties" : 0,
39402 "properties" : {
39403 "node" : {
39404 "description" : "The cluster node name.",
39405 "format" : "pve-node",
013dc89f
DM
39406 "type" : "string",
39407 "typetext" : "<string>"
4d47f125
TL
39408 },
39409 "storage" : {
39410 "description" : "The storage identifier.",
39411 "format" : "pve-storage-id",
39412 "type" : "string",
39413 "typetext" : "<string>"
44660702
DM
39414 }
39415 }
39416 },
7aacca6f
DM
39417 "permissions" : {
39418 "check" : [
39419 "perm",
4d47f125 39420 "/storage/{storage}",
7aacca6f 39421 [
4d47f125
TL
39422 "Datastore.Audit",
39423 "Datastore.AllocateSpace"
39424 ],
39425 "any",
39426 1
7aacca6f
DM
39427 ]
39428 },
56122987
DM
39429 "returns" : {
39430 "items" : {
39431 "properties" : {
4d47f125 39432 "subdir" : {
44660702 39433 "type" : "string"
56122987
DM
39434 }
39435 },
39436 "type" : "object"
7aacca6f 39437 },
4d47f125
TL
39438 "links" : [
39439 {
39440 "href" : "{subdir}",
39441 "rel" : "child"
39442 }
39443 ],
7aacca6f 39444 "type" : "array"
44660702
DM
39445 }
39446 }
39447 },
4d47f125
TL
39448 "leaf" : 0,
39449 "path" : "/nodes/{node}/storage/{storage}",
39450 "text" : "{storage}"
44660702
DM
39451 }
39452 ],
39453 "info" : {
39454 "GET" : {
e9cd3bd4 39455 "allowtoken" : 1,
4d47f125 39456 "description" : "Get status for all datastores.",
44660702
DM
39457 "method" : "GET",
39458 "name" : "index",
39459 "parameters" : {
39460 "additionalProperties" : 0,
39461 "properties" : {
4d47f125
TL
39462 "content" : {
39463 "description" : "Only list stores which support this content type.",
39464 "format" : "pve-storage-content-list",
39465 "optional" : 1,
39466 "type" : "string",
39467 "typetext" : "<string>"
39468 },
39469 "enabled" : {
39470 "default" : 0,
39471 "description" : "Only list stores which are enabled (not disabled in config).",
39472 "optional" : 1,
39473 "type" : "boolean",
39474 "typetext" : "<boolean>"
39475 },
39476 "format" : {
39477 "default" : 0,
39478 "description" : "Include information about formats",
39479 "optional" : 1,
39480 "type" : "boolean",
39481 "typetext" : "<boolean>"
39482 },
44660702
DM
39483 "node" : {
39484 "description" : "The cluster node name.",
39485 "format" : "pve-node",
013dc89f
DM
39486 "type" : "string",
39487 "typetext" : "<string>"
4d47f125
TL
39488 },
39489 "storage" : {
39490 "description" : "Only list status for specified storage",
39491 "format" : "pve-storage-id",
39492 "optional" : 1,
39493 "type" : "string",
39494 "typetext" : "<string>"
39495 },
39496 "target" : {
39497 "description" : "If target is different to 'node', we only lists shared storages which content is accessible on this 'node' and the specified 'target' node.",
39498 "format" : "pve-node",
39499 "optional" : 1,
39500 "type" : "string",
39501 "typetext" : "<string>"
44660702
DM
39502 }
39503 }
39504 },
4d47f125
TL
39505 "permissions" : {
39506 "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
39507 "user" : "all"
39508 },
39509 "protected" : 1,
39510 "proxyto" : "node",
39511 "returns" : {
39512 "items" : {
39513 "properties" : {
39514 "active" : {
39515 "description" : "Set when storage is accessible.",
39516 "optional" : 1,
39517 "type" : "boolean"
39518 },
39519 "avail" : {
39520 "description" : "Available storage space in bytes.",
39521 "optional" : 1,
39522 "renderer" : "bytes",
39523 "type" : "integer"
39524 },
39525 "content" : {
39526 "description" : "Allowed storage content types.",
39527 "format" : "pve-storage-content-list",
39528 "type" : "string"
39529 },
39530 "enabled" : {
39531 "description" : "Set when storage is enabled (not disabled).",
39532 "optional" : 1,
39533 "type" : "boolean"
39534 },
39535 "shared" : {
39536 "description" : "Shared flag from storage configuration.",
39537 "optional" : 1,
39538 "type" : "boolean"
39539 },
39540 "storage" : {
39541 "description" : "The storage identifier.",
39542 "format" : "pve-storage-id",
39543 "type" : "string"
39544 },
39545 "total" : {
39546 "description" : "Total storage space in bytes.",
39547 "optional" : 1,
39548 "renderer" : "bytes",
39549 "type" : "integer"
39550 },
39551 "type" : {
39552 "description" : "Storage type.",
39553 "type" : "string"
39554 },
39555 "used" : {
39556 "description" : "Used storage space in bytes.",
39557 "optional" : 1,
39558 "renderer" : "bytes",
39559 "type" : "integer"
39560 },
39561 "used_fraction" : {
39562 "description" : "Used fraction (used/total).",
39563 "optional" : 1,
39564 "renderer" : "fraction_as_percentage",
39565 "type" : "number"
7aacca6f 39566 }
4d47f125
TL
39567 },
39568 "type" : "object"
39569 },
39570 "links" : [
39571 {
39572 "href" : "{storage}",
39573 "rel" : "child"
39574 }
39575 ],
39576 "type" : "array"
39577 }
39578 }
39579 },
39580 "leaf" : 0,
39581 "path" : "/nodes/{node}/storage",
39582 "text" : "storage"
39583 },
39584 {
39585 "children" : [
39586 {
5370fa8c
TL
39587 "children" : [
39588 {
39589 "info" : {
39590 "DELETE" : {
39591 "allowtoken" : 1,
39592 "description" : "Remove an LVM Volume Group.",
39593 "method" : "DELETE",
39594 "name" : "delete",
39595 "parameters" : {
39596 "additionalProperties" : 0,
39597 "properties" : {
39598 "cleanup-config" : {
39599 "default" : 0,
39600 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
39601 "optional" : 1,
39602 "type" : "boolean",
39603 "typetext" : "<boolean>"
39604 },
39605 "cleanup-disks" : {
39606 "default" : 0,
39607 "description" : "Also wipe disks so they can be repurposed afterwards.",
39608 "optional" : 1,
39609 "type" : "boolean",
39610 "typetext" : "<boolean>"
39611 },
39612 "name" : {
39613 "description" : "The storage identifier.",
39614 "format" : "pve-storage-id",
39615 "type" : "string",
39616 "typetext" : "<string>"
39617 },
39618 "node" : {
39619 "description" : "The cluster node name.",
39620 "format" : "pve-node",
39621 "type" : "string",
39622 "typetext" : "<string>"
39623 }
39624 }
39625 },
39626 "permissions" : {
39627 "check" : [
39628 "perm",
39629 "/",
39630 [
39631 "Sys.Modify",
39632 "Datastore.Allocate"
39633 ]
39634 ]
39635 },
39636 "protected" : 1,
39637 "proxyto" : "node",
39638 "returns" : {
39639 "type" : "string"
39640 }
39641 }
39642 },
39643 "leaf" : 1,
39644 "path" : "/nodes/{node}/disks/lvm/{name}",
39645 "text" : "{name}"
39646 }
39647 ],
4d47f125
TL
39648 "info" : {
39649 "GET" : {
e9cd3bd4 39650 "allowtoken" : 1,
4d47f125
TL
39651 "description" : "List LVM Volume Groups",
39652 "method" : "GET",
39653 "name" : "index",
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>"
39662 }
39663 }
39664 },
39665 "permissions" : {
39666 "check" : [
39667 "perm",
39668 "/",
39669 [
39670 "Sys.Audit",
39671 "Datastore.Audit"
39672 ],
39673 "any",
39674 1
39675 ]
39676 },
39677 "protected" : 1,
39678 "proxyto" : "node",
39679 "returns" : {
39680 "properties" : {
39681 "children" : {
44660702
DM
39682 "items" : {
39683 "properties" : {
4d47f125
TL
39684 "children" : {
39685 "description" : "The underlying physical volumes",
39686 "items" : {
39687 "properties" : {
39688 "free" : {
39689 "description" : "The free bytes in the physical volume",
39690 "type" : "integer"
39691 },
39692 "leaf" : {
39693 "type" : "boolean"
39694 },
39695 "name" : {
39696 "description" : "The name of the physical volume",
39697 "type" : "string"
39698 },
39699 "size" : {
39700 "description" : "The size of the physical volume in bytes",
39701 "type" : "integer"
39702 }
39703 },
39704 "type" : "object"
39705 },
39706 "optional" : 1,
39707 "type" : "array"
39708 },
39709 "free" : {
39710 "description" : "The free bytes in the volume group",
39711 "type" : "integer"
39712 },
39713 "leaf" : {
39714 "type" : "boolean"
39715 },
39716 "name" : {
39717 "description" : "The name of the volume group",
44660702 39718 "type" : "string"
4d47f125
TL
39719 },
39720 "size" : {
39721 "description" : "The size of the volume group in bytes",
39722 "type" : "integer"
44660702
DM
39723 }
39724 },
39725 "type" : "object"
39726 },
44660702 39727 "type" : "array"
4d47f125
TL
39728 },
39729 "leaf" : {
39730 "type" : "boolean"
44660702
DM
39731 }
39732 },
4d47f125
TL
39733 "type" : "object"
39734 }
39735 },
39736 "POST" : {
e9cd3bd4 39737 "allowtoken" : 1,
4d47f125
TL
39738 "description" : "Create an LVM Volume Group",
39739 "method" : "POST",
39740 "name" : "create",
39741 "parameters" : {
39742 "additionalProperties" : 0,
39743 "properties" : {
39744 "add_storage" : {
39745 "default" : 0,
39746 "description" : "Configure storage using the Volume Group",
39747 "optional" : 1,
39748 "type" : "boolean",
39749 "typetext" : "<boolean>"
44660702 39750 },
4d47f125
TL
39751 "device" : {
39752 "description" : "The block device you want to create the volume group on",
39753 "type" : "string",
39754 "typetext" : "<string>"
44660702 39755 },
4d47f125
TL
39756 "name" : {
39757 "description" : "The storage identifier.",
39758 "format" : "pve-storage-id",
39759 "type" : "string",
39760 "typetext" : "<string>"
39761 },
39762 "node" : {
39763 "description" : "The cluster node name.",
39764 "format" : "pve-node",
39765 "type" : "string",
39766 "typetext" : "<string>"
39767 }
39768 }
39769 },
39770 "permissions" : {
39771 "check" : [
39772 "perm",
39773 "/",
39774 [
39775 "Sys.Modify",
39776 "Datastore.Allocate"
39777 ]
39778 ]
39779 },
39780 "protected" : 1,
39781 "proxyto" : "node",
39782 "returns" : {
39783 "type" : "string"
39784 }
39785 }
39786 },
5370fa8c 39787 "leaf" : 0,
4d47f125
TL
39788 "path" : "/nodes/{node}/disks/lvm",
39789 "text" : "lvm"
39790 },
39791 {
5370fa8c
TL
39792 "children" : [
39793 {
39794 "info" : {
39795 "DELETE" : {
39796 "allowtoken" : 1,
39797 "description" : "Remove an LVM thin pool.",
39798 "method" : "DELETE",
39799 "name" : "delete",
39800 "parameters" : {
39801 "additionalProperties" : 0,
39802 "properties" : {
39803 "cleanup-config" : {
39804 "default" : 0,
39805 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
39806 "optional" : 1,
39807 "type" : "boolean",
39808 "typetext" : "<boolean>"
39809 },
39810 "cleanup-disks" : {
39811 "default" : 0,
39812 "description" : "Also wipe disks so they can be repurposed afterwards.",
39813 "optional" : 1,
39814 "type" : "boolean",
39815 "typetext" : "<boolean>"
39816 },
39817 "name" : {
39818 "description" : "The storage identifier.",
39819 "format" : "pve-storage-id",
39820 "type" : "string",
39821 "typetext" : "<string>"
39822 },
39823 "node" : {
39824 "description" : "The cluster node name.",
39825 "format" : "pve-node",
39826 "type" : "string",
39827 "typetext" : "<string>"
39828 },
39829 "volume-group" : {
39830 "description" : "The storage identifier.",
39831 "format" : "pve-storage-id",
39832 "type" : "string",
39833 "typetext" : "<string>"
39834 }
39835 }
39836 },
39837 "permissions" : {
39838 "check" : [
39839 "perm",
39840 "/",
39841 [
39842 "Sys.Modify",
39843 "Datastore.Allocate"
39844 ]
39845 ]
39846 },
39847 "protected" : 1,
39848 "proxyto" : "node",
39849 "returns" : {
39850 "type" : "string"
39851 }
39852 }
39853 },
39854 "leaf" : 1,
39855 "path" : "/nodes/{node}/disks/lvmthin/{name}",
39856 "text" : "{name}"
39857 }
39858 ],
4d47f125
TL
39859 "info" : {
39860 "GET" : {
e9cd3bd4 39861 "allowtoken" : 1,
4d47f125
TL
39862 "description" : "List LVM thinpools",
39863 "method" : "GET",
39864 "name" : "index",
39865 "parameters" : {
39866 "additionalProperties" : 0,
39867 "properties" : {
39868 "node" : {
39869 "description" : "The cluster node name.",
39870 "format" : "pve-node",
39871 "type" : "string",
39872 "typetext" : "<string>"
44660702
DM
39873 }
39874 }
39875 },
4d47f125
TL
39876 "permissions" : {
39877 "check" : [
39878 "perm",
39879 "/",
39880 [
39881 "Sys.Audit",
39882 "Datastore.Audit"
39883 ],
39884 "any",
39885 1
39886 ]
39887 },
39888 "protected" : 1,
39889 "proxyto" : "node",
39890 "returns" : {
39891 "items" : {
39892 "properties" : {
39893 "lv" : {
39894 "description" : "The name of the thinpool.",
39895 "type" : "string"
39896 },
39897 "lv_size" : {
39898 "description" : "The size of the thinpool in bytes.",
39899 "type" : "integer"
39900 },
39901 "metadata_size" : {
39902 "description" : "The size of the metadata lv in bytes.",
39903 "type" : "integer"
39904 },
39905 "metadata_used" : {
39906 "description" : "The used bytes of the metadata lv.",
39907 "type" : "integer"
39908 },
39909 "used" : {
39910 "description" : "The used bytes of the thinpool.",
39911 "type" : "integer"
5370fa8c
TL
39912 },
39913 "vg" : {
39914 "description" : "The associated volume group.",
39915 "type" : "string"
44660702
DM
39916 }
39917 },
4d47f125
TL
39918 "type" : "object"
39919 },
39920 "type" : "array"
39921 }
39922 },
39923 "POST" : {
e9cd3bd4 39924 "allowtoken" : 1,
4d47f125
TL
39925 "description" : "Create an LVM thinpool",
39926 "method" : "POST",
39927 "name" : "create",
39928 "parameters" : {
39929 "additionalProperties" : 0,
39930 "properties" : {
39931 "add_storage" : {
39932 "default" : 0,
39933 "description" : "Configure storage using the thinpool.",
39934 "optional" : 1,
39935 "type" : "boolean",
39936 "typetext" : "<boolean>"
56122987 39937 },
4d47f125
TL
39938 "device" : {
39939 "description" : "The block device you want to create the thinpool on.",
39940 "type" : "string",
39941 "typetext" : "<string>"
39942 },
39943 "name" : {
39944 "description" : "The storage identifier.",
39945 "format" : "pve-storage-id",
39946 "type" : "string",
39947 "typetext" : "<string>"
39948 },
39949 "node" : {
39950 "description" : "The cluster node name.",
39951 "format" : "pve-node",
39952 "type" : "string",
39953 "typetext" : "<string>"
44660702 39954 }
56122987
DM
39955 }
39956 },
4d47f125
TL
39957 "permissions" : {
39958 "check" : [
39959 "perm",
39960 "/",
39961 [
39962 "Sys.Modify",
39963 "Datastore.Allocate"
39964 ]
39965 ]
39966 },
39967 "protected" : 1,
39968 "proxyto" : "node",
39969 "returns" : {
39970 "type" : "string"
39971 }
39972 }
39973 },
5370fa8c 39974 "leaf" : 0,
4d47f125
TL
39975 "path" : "/nodes/{node}/disks/lvmthin",
39976 "text" : "lvmthin"
39977 },
39978 {
5370fa8c
TL
39979 "children" : [
39980 {
39981 "info" : {
39982 "DELETE" : {
39983 "allowtoken" : 1,
39984 "description" : "Unmounts the storage and removes the mount unit.",
39985 "method" : "DELETE",
39986 "name" : "delete",
39987 "parameters" : {
39988 "additionalProperties" : 0,
39989 "properties" : {
39990 "cleanup-config" : {
39991 "default" : 0,
39992 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
39993 "optional" : 1,
39994 "type" : "boolean",
39995 "typetext" : "<boolean>"
39996 },
39997 "cleanup-disks" : {
39998 "default" : 0,
39999 "description" : "Also wipe disk so it can be repurposed afterwards.",
40000 "optional" : 1,
40001 "type" : "boolean",
40002 "typetext" : "<boolean>"
40003 },
40004 "name" : {
40005 "description" : "The storage identifier.",
40006 "format" : "pve-storage-id",
40007 "type" : "string",
40008 "typetext" : "<string>"
40009 },
40010 "node" : {
40011 "description" : "The cluster node name.",
40012 "format" : "pve-node",
40013 "type" : "string",
40014 "typetext" : "<string>"
40015 }
40016 }
40017 },
40018 "permissions" : {
40019 "check" : [
40020 "perm",
40021 "/",
40022 [
40023 "Sys.Modify",
40024 "Datastore.Allocate"
40025 ]
40026 ]
40027 },
40028 "protected" : 1,
40029 "proxyto" : "node",
40030 "returns" : {
40031 "type" : "string"
40032 }
40033 }
40034 },
40035 "leaf" : 1,
40036 "path" : "/nodes/{node}/disks/directory/{name}",
40037 "text" : "{name}"
40038 }
40039 ],
4d47f125
TL
40040 "info" : {
40041 "GET" : {
e9cd3bd4 40042 "allowtoken" : 1,
4d47f125
TL
40043 "description" : "PVE Managed Directory storages.",
40044 "method" : "GET",
40045 "name" : "index",
40046 "parameters" : {
40047 "additionalProperties" : 0,
40048 "properties" : {
40049 "node" : {
40050 "description" : "The cluster node name.",
40051 "format" : "pve-node",
40052 "type" : "string",
40053 "typetext" : "<string>"
40054 }
40055 }
40056 },
40057 "permissions" : {
40058 "check" : [
40059 "perm",
40060 "/",
40061 [
40062 "Sys.Audit",
40063 "Datastore.Audit"
40064 ],
40065 "any",
40066 1
40067 ]
40068 },
40069 "protected" : 1,
40070 "proxyto" : "node",
40071 "returns" : {
40072 "items" : {
40073 "properties" : {
40074 "device" : {
40075 "description" : "The mounted device.",
40076 "type" : "string"
40077 },
40078 "options" : {
40079 "description" : "The mount options.",
40080 "type" : "string"
40081 },
40082 "path" : {
40083 "description" : "The mount path.",
40084 "type" : "string"
40085 },
40086 "type" : {
40087 "description" : "The filesystem type.",
40088 "type" : "string"
40089 },
40090 "unitfile" : {
40091 "description" : "The path of the mount unit.",
40092 "type" : "string"
44660702 40093 }
56122987 40094 },
4d47f125
TL
40095 "type" : "object"
40096 },
40097 "type" : "array"
40098 }
40099 },
40100 "POST" : {
e9cd3bd4 40101 "allowtoken" : 1,
4d47f125
TL
40102 "description" : "Create a Filesystem on an unused disk. Will be mounted under '/mnt/pve/NAME'.",
40103 "method" : "POST",
40104 "name" : "create",
40105 "parameters" : {
40106 "additionalProperties" : 0,
40107 "properties" : {
40108 "add_storage" : {
40109 "default" : 0,
40110 "description" : "Configure storage using the directory.",
40111 "optional" : 1,
40112 "type" : "boolean",
40113 "typetext" : "<boolean>"
40114 },
40115 "device" : {
40116 "description" : "The block device you want to create the filesystem on.",
40117 "type" : "string",
40118 "typetext" : "<string>"
40119 },
40120 "filesystem" : {
40121 "default" : "ext4",
40122 "description" : "The desired filesystem.",
40123 "enum" : [
40124 "ext4",
40125 "xfs"
40126 ],
40127 "optional" : 1,
40128 "type" : "string"
56122987 40129 },
4d47f125
TL
40130 "name" : {
40131 "description" : "The storage identifier.",
40132 "format" : "pve-storage-id",
40133 "type" : "string",
40134 "typetext" : "<string>"
40135 },
40136 "node" : {
40137 "description" : "The cluster node name.",
40138 "format" : "pve-node",
40139 "type" : "string",
40140 "typetext" : "<string>"
7aacca6f 40141 }
56122987
DM
40142 }
40143 },
4d47f125
TL
40144 "permissions" : {
40145 "check" : [
40146 "perm",
40147 "/",
40148 [
40149 "Sys.Modify",
40150 "Datastore.Allocate"
40151 ]
40152 ]
40153 },
40154 "protected" : 1,
40155 "proxyto" : "node",
40156 "returns" : {
40157 "type" : "string"
40158 }
40159 }
40160 },
5370fa8c 40161 "leaf" : 0,
4d47f125
TL
40162 "path" : "/nodes/{node}/disks/directory",
40163 "text" : "directory"
40164 },
40165 {
40166 "children" : [
56122987 40167 {
56122987 40168 "info" : {
5370fa8c
TL
40169 "DELETE" : {
40170 "allowtoken" : 1,
40171 "description" : "Destroy a ZFS pool.",
40172 "method" : "DELETE",
40173 "name" : "delete",
40174 "parameters" : {
40175 "additionalProperties" : 0,
40176 "properties" : {
40177 "cleanup-config" : {
40178 "default" : 0,
40179 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
40180 "optional" : 1,
40181 "type" : "boolean",
40182 "typetext" : "<boolean>"
40183 },
40184 "cleanup-disks" : {
40185 "default" : 0,
40186 "description" : "Also wipe disks so they can be repurposed afterwards.",
40187 "optional" : 1,
40188 "type" : "boolean",
40189 "typetext" : "<boolean>"
40190 },
40191 "name" : {
40192 "description" : "The storage identifier.",
40193 "format" : "pve-storage-id",
40194 "type" : "string",
40195 "typetext" : "<string>"
40196 },
40197 "node" : {
40198 "description" : "The cluster node name.",
40199 "format" : "pve-node",
40200 "type" : "string",
40201 "typetext" : "<string>"
40202 }
40203 }
40204 },
40205 "permissions" : {
40206 "check" : [
40207 "perm",
40208 "/",
40209 [
40210 "Sys.Modify",
40211 "Datastore.Allocate"
40212 ]
40213 ]
40214 },
40215 "protected" : 1,
40216 "proxyto" : "node",
40217 "returns" : {
40218 "type" : "string"
40219 }
40220 },
56122987 40221 "GET" : {
e9cd3bd4 40222 "allowtoken" : 1,
4d47f125 40223 "description" : "Get details about a zpool.",
44660702 40224 "method" : "GET",
4d47f125 40225 "name" : "detail",
56122987 40226 "parameters" : {
44660702 40227 "additionalProperties" : 0,
56122987 40228 "properties" : {
4d47f125
TL
40229 "name" : {
40230 "description" : "The storage identifier.",
40231 "format" : "pve-storage-id",
40232 "type" : "string",
40233 "typetext" : "<string>"
44660702 40234 },
7aacca6f 40235 "node" : {
7aacca6f 40236 "description" : "The cluster node name.",
44660702 40237 "format" : "pve-node",
013dc89f
DM
40238 "type" : "string",
40239 "typetext" : "<string>"
56122987 40240 }
44660702 40241 }
7aacca6f 40242 },
7aacca6f
DM
40243 "permissions" : {
40244 "check" : [
40245 "perm",
4d47f125 40246 "/",
7aacca6f 40247 [
4d47f125
TL
40248 "Sys.Audit",
40249 "Datastore.Audit"
7aacca6f
DM
40250 ],
40251 "any",
40252 1
40253 ]
40254 },
44660702
DM
40255 "protected" : 1,
40256 "proxyto" : "node",
7aacca6f 40257 "returns" : {
56122987 40258 "properties" : {
4d47f125
TL
40259 "action" : {
40260 "description" : "Information about the recommended action to fix the state.",
40261 "optional" : 1,
40262 "type" : "string"
56122987 40263 },
4d47f125 40264 "children" : {
e2d681b3 40265 "description" : "The pool configuration information, including the vdevs for each section (e.g. spares, cache), may be nested.",
4d47f125
TL
40266 "items" : {
40267 "properties" : {
40268 "cksum" : {
e2d681b3 40269 "optional" : 1,
4d47f125
TL
40270 "type" : "number"
40271 },
40272 "msg" : {
40273 "description" : "An optional message about the vdev.",
40274 "type" : "string"
40275 },
40276 "name" : {
e2d681b3 40277 "description" : "The name of the vdev or section.",
4d47f125
TL
40278 "type" : "string"
40279 },
40280 "read" : {
e2d681b3 40281 "optional" : 1,
4d47f125
TL
40282 "type" : "number"
40283 },
40284 "state" : {
40285 "description" : "The state of the vdev.",
e2d681b3 40286 "optional" : 1,
4d47f125
TL
40287 "type" : "string"
40288 },
40289 "write" : {
e2d681b3 40290 "optional" : 1,
4d47f125
TL
40291 "type" : "number"
40292 }
40293 },
40294 "type" : "object"
40295 },
40296 "type" : "array"
56122987 40297 },
e2d681b3
TL
40298 "errors" : {
40299 "description" : "Information about the errors on the zpool.",
40300 "type" : "string"
40301 },
4d47f125
TL
40302 "name" : {
40303 "description" : "The name of the zpool.",
40304 "type" : "string"
44660702 40305 },
4d47f125 40306 "scan" : {
e2d681b3 40307 "description" : "Information about the last/current scrub.",
d2656385 40308 "optional" : 1,
4d47f125 40309 "type" : "string"
44660702 40310 },
4d47f125
TL
40311 "state" : {
40312 "description" : "The state of the zpool.",
40313 "type" : "string"
40314 },
40315 "status" : {
40316 "description" : "Information about the state of the zpool.",
44660702 40317 "optional" : 1,
4d47f125 40318 "type" : "string"
56122987 40319 }
4d47f125
TL
40320 },
40321 "type" : "object"
44660702
DM
40322 }
40323 }
40324 },
40325 "leaf" : 1,
4d47f125
TL
40326 "path" : "/nodes/{node}/disks/zfs/{name}",
40327 "text" : "{name}"
44660702
DM
40328 }
40329 ],
40330 "info" : {
40331 "GET" : {
e9cd3bd4 40332 "allowtoken" : 1,
4d47f125 40333 "description" : "List Zpools.",
44660702 40334 "method" : "GET",
4d47f125 40335 "name" : "index",
44660702
DM
40336 "parameters" : {
40337 "additionalProperties" : 0,
40338 "properties" : {
40339 "node" : {
40340 "description" : "The cluster node name.",
40341 "format" : "pve-node",
013dc89f
DM
40342 "type" : "string",
40343 "typetext" : "<string>"
4d47f125
TL
40344 }
40345 }
40346 },
40347 "permissions" : {
40348 "check" : [
40349 "perm",
40350 "/",
40351 [
40352 "Sys.Audit",
40353 "Datastore.Audit"
40354 ],
40355 "any",
40356 1
40357 ]
40358 },
40359 "protected" : 1,
40360 "proxyto" : "node",
40361 "returns" : {
40362 "items" : {
40363 "properties" : {
40364 "alloc" : {
40365 "description" : "",
40366 "type" : "integer"
40367 },
40368 "dedup" : {
40369 "description" : "",
40370 "type" : "number"
40371 },
40372 "frag" : {
40373 "description" : "",
40374 "type" : "integer"
40375 },
40376 "free" : {
40377 "description" : "",
40378 "type" : "integer"
40379 },
40380 "health" : {
40381 "description" : "",
40382 "type" : "string"
40383 },
40384 "name" : {
40385 "description" : "",
40386 "type" : "string"
40387 },
40388 "size" : {
40389 "description" : "",
40390 "type" : "integer"
40391 }
40392 },
40393 "type" : "object"
40394 },
40395 "links" : [
40396 {
40397 "href" : "{name}",
40398 "rel" : "child"
40399 }
40400 ],
40401 "type" : "array"
40402 }
40403 },
40404 "POST" : {
e9cd3bd4 40405 "allowtoken" : 1,
4d47f125
TL
40406 "description" : "Create a ZFS pool.",
40407 "method" : "POST",
40408 "name" : "create",
40409 "parameters" : {
40410 "additionalProperties" : 0,
40411 "properties" : {
40412 "add_storage" : {
40413 "default" : 0,
40414 "description" : "Configure storage using the zpool.",
40415 "optional" : 1,
40416 "type" : "boolean",
40417 "typetext" : "<boolean>"
40418 },
40419 "ashift" : {
40420 "default" : 12,
40421 "description" : "Pool sector size exponent.",
40422 "maximum" : 16,
40423 "minimum" : 9,
40424 "optional" : 1,
40425 "type" : "integer",
40426 "typetext" : "<integer> (9 - 16)"
40427 },
40428 "compression" : {
40429 "default" : "on",
40430 "description" : "The compression algorithm to use.",
40431 "enum" : [
40432 "on",
40433 "off",
40434 "gzip",
40435 "lz4",
40436 "lzjb",
5370fa8c
TL
40437 "zle",
40438 "zstd"
4d47f125
TL
40439 ],
40440 "optional" : 1,
40441 "type" : "string"
40442 },
40443 "devices" : {
40444 "description" : "The block devices you want to create the zpool on.",
40445 "format" : "string-list",
40446 "type" : "string",
40447 "typetext" : "<string>"
44660702 40448 },
81a3384d
TL
40449 "draid-config" : {
40450 "format" : {
40451 "data" : {
40452 "description" : "The number of data devices per redundancy group. (dRAID)",
40453 "minimum" : 1,
40454 "type" : "integer"
40455 },
40456 "spares" : {
40457 "description" : "Number of dRAID spares.",
40458 "minimum" : 0,
40459 "type" : "integer"
40460 }
40461 },
40462 "optional" : 1,
40463 "type" : "string",
40464 "typetext" : "data=<integer> ,spares=<integer>"
40465 },
4d47f125 40466 "name" : {
44660702
DM
40467 "description" : "The storage identifier.",
40468 "format" : "pve-storage-id",
013dc89f
DM
40469 "type" : "string",
40470 "typetext" : "<string>"
4d47f125
TL
40471 },
40472 "node" : {
40473 "description" : "The cluster node name.",
40474 "format" : "pve-node",
40475 "type" : "string",
40476 "typetext" : "<string>"
40477 },
40478 "raidlevel" : {
40479 "description" : "The RAID level to use.",
40480 "enum" : [
40481 "single",
40482 "mirror",
40483 "raid10",
40484 "raidz",
40485 "raidz2",
81a3384d
TL
40486 "raidz3",
40487 "draid",
40488 "draid2",
40489 "draid3"
4d47f125
TL
40490 ],
40491 "type" : "string"
56122987
DM
40492 }
40493 }
44660702
DM
40494 },
40495 "permissions" : {
40496 "check" : [
40497 "perm",
4d47f125 40498 "/",
44660702 40499 [
4d47f125
TL
40500 "Sys.Modify",
40501 "Datastore.Allocate"
40502 ]
44660702
DM
40503 ]
40504 },
4d47f125
TL
40505 "protected" : 1,
40506 "proxyto" : "node",
44660702 40507 "returns" : {
4d47f125 40508 "type" : "string"
56122987
DM
40509 }
40510 }
44660702
DM
40511 },
40512 "leaf" : 0,
4d47f125
TL
40513 "path" : "/nodes/{node}/disks/zfs",
40514 "text" : "zfs"
40515 },
2c0dde61
DM
40516 {
40517 "info" : {
40518 "GET" : {
e9cd3bd4 40519 "allowtoken" : 1,
2c0dde61
DM
40520 "description" : "List local disks.",
40521 "method" : "GET",
40522 "name" : "list",
40523 "parameters" : {
40524 "additionalProperties" : 0,
40525 "properties" : {
d2656385
TL
40526 "include-partitions" : {
40527 "default" : 0,
40528 "description" : "Also include partitions.",
40529 "optional" : 1,
40530 "type" : "boolean",
40531 "typetext" : "<boolean>"
40532 },
2c0dde61
DM
40533 "node" : {
40534 "description" : "The cluster node name.",
40535 "format" : "pve-node",
013dc89f
DM
40536 "type" : "string",
40537 "typetext" : "<string>"
4d47f125
TL
40538 },
40539 "skipsmart" : {
40540 "default" : 0,
40541 "description" : "Skip smart checks.",
40542 "optional" : 1,
40543 "type" : "boolean",
40544 "typetext" : "<boolean>"
40545 },
40546 "type" : {
40547 "description" : "Only list specific types of disks.",
40548 "enum" : [
40549 "unused",
40550 "journal_disks"
40551 ],
40552 "optional" : 1,
40553 "type" : "string"
2c0dde61
DM
40554 }
40555 }
40556 },
40557 "permissions" : {
40558 "check" : [
d2656385 40559 "or",
2c0dde61 40560 [
d2656385
TL
40561 "perm",
40562 "/",
40563 [
40564 "Sys.Audit",
40565 "Datastore.Audit"
40566 ],
40567 "any",
40568 1
2c0dde61 40569 ],
d2656385
TL
40570 [
40571 "perm",
40572 "/nodes/{node}",
40573 [
40574 "Sys.Audit",
40575 "Datastore.Audit"
40576 ],
40577 "any",
40578 1
40579 ]
2c0dde61
DM
40580 ]
40581 },
40582 "protected" : 1,
40583 "proxyto" : "node",
40584 "returns" : {
40585 "items" : {
40586 "properties" : {
40587 "devpath" : {
40588 "description" : "The device path",
40589 "type" : "string"
40590 },
40591 "gpt" : {
40592 "type" : "boolean"
40593 },
40594 "health" : {
40595 "optional" : 1,
40596 "type" : "string"
40597 },
40598 "model" : {
40599 "optional" : 1,
40600 "type" : "string"
40601 },
de786b48
TL
40602 "mounted" : {
40603 "type" : "boolean"
40604 },
2c0dde61
DM
40605 "osdid" : {
40606 "type" : "integer"
40607 },
d2656385
TL
40608 "parent" : {
40609 "description" : "For partitions only. The device path of the disk the partition resides on.",
40610 "optional" : 1,
40611 "type" : "string"
40612 },
2c0dde61
DM
40613 "serial" : {
40614 "optional" : 1,
40615 "type" : "string"
40616 },
40617 "size" : {
40618 "type" : "integer"
40619 },
40620 "used" : {
40621 "optional" : 1,
40622 "type" : "string"
40623 },
40624 "vendor" : {
40625 "optional" : 1,
40626 "type" : "string"
40627 },
40628 "wwn" : {
40629 "optional" : 1,
40630 "type" : "string"
40631 }
40632 },
40633 "type" : "object"
40634 },
40635 "type" : "array"
40636 }
40637 }
40638 },
40639 "leaf" : 1,
40640 "path" : "/nodes/{node}/disks/list",
40641 "text" : "list"
40642 },
40643 {
40644 "info" : {
40645 "GET" : {
e9cd3bd4 40646 "allowtoken" : 1,
2c0dde61
DM
40647 "description" : "Get SMART Health of a disk.",
40648 "method" : "GET",
40649 "name" : "smart",
40650 "parameters" : {
40651 "additionalProperties" : 0,
40652 "properties" : {
40653 "disk" : {
40654 "description" : "Block device name",
40655 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
40656 "type" : "string"
40657 },
40658 "healthonly" : {
40659 "description" : "If true returns only the health status",
40660 "optional" : 1,
013dc89f
DM
40661 "type" : "boolean",
40662 "typetext" : "<boolean>"
2c0dde61
DM
40663 },
40664 "node" : {
40665 "description" : "The cluster node name.",
40666 "format" : "pve-node",
013dc89f
DM
40667 "type" : "string",
40668 "typetext" : "<string>"
2c0dde61
DM
40669 }
40670 }
40671 },
40672 "permissions" : {
40673 "check" : [
40674 "perm",
40675 "/",
40676 [
40677 "Sys.Audit",
40678 "Datastore.Audit"
40679 ],
40680 "any",
40681 1
40682 ]
40683 },
40684 "protected" : 1,
40685 "proxyto" : "node",
40686 "returns" : {
de0983cb
DM
40687 "properties" : {
40688 "attributes" : {
40689 "optional" : 1,
40690 "type" : "array"
40691 },
40692 "health" : {
40693 "type" : "string"
40694 },
40695 "text" : {
40696 "optional" : 1,
40697 "type" : "string"
40698 },
40699 "type" : {
40700 "optional" : 1,
40701 "type" : "string"
40702 }
40703 },
2c0dde61
DM
40704 "type" : "object"
40705 }
40706 }
40707 },
40708 "leaf" : 1,
40709 "path" : "/nodes/{node}/disks/smart",
40710 "text" : "smart"
40711 },
40712 {
40713 "info" : {
40714 "POST" : {
e9cd3bd4 40715 "allowtoken" : 1,
2c0dde61
DM
40716 "description" : "Initialize Disk with GPT",
40717 "method" : "POST",
40718 "name" : "initgpt",
40719 "parameters" : {
40720 "additionalProperties" : 0,
40721 "properties" : {
40722 "disk" : {
40723 "description" : "Block device name",
40724 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
40725 "type" : "string"
40726 },
40727 "node" : {
40728 "description" : "The cluster node name.",
40729 "format" : "pve-node",
013dc89f
DM
40730 "type" : "string",
40731 "typetext" : "<string>"
2c0dde61
DM
40732 },
40733 "uuid" : {
40734 "description" : "UUID for the GPT table",
40735 "maxLength" : 36,
40736 "optional" : 1,
40737 "pattern" : "[a-fA-F0-9\\-]+",
40738 "type" : "string"
40739 }
40740 }
40741 },
40742 "permissions" : {
40743 "check" : [
40744 "perm",
40745 "/",
40746 [
40747 "Sys.Modify"
40748 ]
40749 ]
40750 },
40751 "protected" : 1,
40752 "proxyto" : "node",
40753 "returns" : {
40754 "type" : "string"
40755 }
40756 }
40757 },
40758 "leaf" : 1,
40759 "path" : "/nodes/{node}/disks/initgpt",
40760 "text" : "initgpt"
0695fdaf
TL
40761 },
40762 {
40763 "info" : {
40764 "PUT" : {
40765 "allowtoken" : 1,
40766 "description" : "Wipe a disk or partition.",
40767 "method" : "PUT",
40768 "name" : "wipe_disk",
40769 "parameters" : {
40770 "additionalProperties" : 0,
40771 "properties" : {
40772 "disk" : {
40773 "description" : "Block device name",
40774 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
40775 "type" : "string"
40776 },
40777 "node" : {
40778 "description" : "The cluster node name.",
40779 "format" : "pve-node",
40780 "type" : "string",
40781 "typetext" : "<string>"
40782 }
40783 }
40784 },
40785 "protected" : 1,
40786 "proxyto" : "node",
40787 "returns" : {
40788 "type" : "string"
40789 }
40790 }
40791 },
40792 "leaf" : 1,
40793 "path" : "/nodes/{node}/disks/wipedisk",
40794 "text" : "wipedisk"
2c0dde61
DM
40795 }
40796 ],
40797 "info" : {
40798 "GET" : {
e9cd3bd4 40799 "allowtoken" : 1,
2c0dde61
DM
40800 "description" : "Node index.",
40801 "method" : "GET",
40802 "name" : "index",
40803 "parameters" : {
40804 "additionalProperties" : 0,
40805 "properties" : {
40806 "node" : {
40807 "description" : "The cluster node name.",
40808 "format" : "pve-node",
013dc89f
DM
40809 "type" : "string",
40810 "typetext" : "<string>"
2c0dde61
DM
40811 }
40812 }
40813 },
40814 "permissions" : {
40815 "user" : "all"
40816 },
40817 "proxyto" : "node",
40818 "returns" : {
40819 "items" : {
40820 "properties" : {},
40821 "type" : "object"
40822 },
40823 "links" : [
40824 {
40825 "href" : "{name}",
40826 "rel" : "child"
40827 }
40828 ],
40829 "type" : "array"
40830 }
40831 }
40832 },
40833 "leaf" : 0,
40834 "path" : "/nodes/{node}/disks",
40835 "text" : "disks"
40836 },
56122987 40837 {
56122987
DM
40838 "children" : [
40839 {
40840 "info" : {
44660702 40841 "GET" : {
e9cd3bd4 40842 "allowtoken" : 1,
44660702
DM
40843 "description" : "List available updates.",
40844 "method" : "GET",
40845 "name" : "list_updates",
40846 "parameters" : {
40847 "additionalProperties" : 0,
40848 "properties" : {
40849 "node" : {
40850 "description" : "The cluster node name.",
40851 "format" : "pve-node",
013dc89f
DM
40852 "type" : "string",
40853 "typetext" : "<string>"
44660702
DM
40854 }
40855 }
7aacca6f
DM
40856 },
40857 "permissions" : {
40858 "check" : [
40859 "perm",
40860 "/nodes/{node}",
40861 [
40862 "Sys.Modify"
40863 ]
40864 ]
40865 },
44660702 40866 "protected" : 1,
56122987 40867 "proxyto" : "node",
44660702
DM
40868 "returns" : {
40869 "items" : {
40870 "properties" : {},
40871 "type" : "object"
40872 },
40873 "type" : "array"
40874 }
40875 },
40876 "POST" : {
e9cd3bd4 40877 "allowtoken" : 1,
44660702 40878 "description" : "This is used to resynchronize the package index files from their sources (apt-get update).",
7aacca6f
DM
40879 "method" : "POST",
40880 "name" : "update_database",
56122987
DM
40881 "parameters" : {
40882 "additionalProperties" : 0,
40883 "properties" : {
44660702
DM
40884 "node" : {
40885 "description" : "The cluster node name.",
40886 "format" : "pve-node",
013dc89f
DM
40887 "type" : "string",
40888 "typetext" : "<string>"
44660702 40889 },
56122987 40890 "notify" : {
56122987 40891 "default" : 0,
44660702
DM
40892 "description" : "Send notification mail about new packages (to email address specified for user 'root@pam').",
40893 "optional" : 1,
013dc89f
DM
40894 "type" : "boolean",
40895 "typetext" : "<boolean>"
56122987
DM
40896 },
40897 "quiet" : {
56122987 40898 "default" : 0,
44660702 40899 "description" : "Only produces output suitable for logging, omitting progress indicators.",
56122987 40900 "optional" : 1,
013dc89f
DM
40901 "type" : "boolean",
40902 "typetext" : "<boolean>"
56122987 40903 }
7aacca6f
DM
40904 }
40905 },
40906 "permissions" : {
40907 "check" : [
40908 "perm",
40909 "/nodes/{node}",
40910 [
40911 "Sys.Modify"
40912 ]
40913 ]
40914 },
44660702
DM
40915 "protected" : 1,
40916 "proxyto" : "node",
40917 "returns" : {
40918 "type" : "string"
40919 }
56122987
DM
40920 }
40921 },
7aacca6f 40922 "leaf" : 1,
44660702
DM
40923 "path" : "/nodes/{node}/apt/update",
40924 "text" : "update"
56122987
DM
40925 },
40926 {
56122987
DM
40927 "info" : {
40928 "GET" : {
e9cd3bd4 40929 "allowtoken" : 1,
44660702 40930 "description" : "Get package changelogs.",
56122987 40931 "method" : "GET",
7aacca6f 40932 "name" : "changelog",
56122987 40933 "parameters" : {
44660702 40934 "additionalProperties" : 0,
56122987
DM
40935 "properties" : {
40936 "name" : {
40937 "description" : "Package name.",
013dc89f
DM
40938 "type" : "string",
40939 "typetext" : "<string>"
56122987 40940 },
44660702
DM
40941 "node" : {
40942 "description" : "The cluster node name.",
40943 "format" : "pve-node",
013dc89f
DM
40944 "type" : "string",
40945 "typetext" : "<string>"
44660702 40946 },
56122987 40947 "version" : {
7aacca6f 40948 "description" : "Package version.",
44660702 40949 "optional" : 1,
013dc89f
DM
40950 "type" : "string",
40951 "typetext" : "<string>"
56122987 40952 }
44660702 40953 }
56122987 40954 },
44660702
DM
40955 "permissions" : {
40956 "check" : [
40957 "perm",
40958 "/nodes/{node}",
40959 [
40960 "Sys.Modify"
40961 ]
40962 ]
40963 },
40964 "proxyto" : "node",
40965 "returns" : {
40966 "type" : "string"
40967 }
56122987
DM
40968 }
40969 },
44660702
DM
40970 "leaf" : 1,
40971 "path" : "/nodes/{node}/apt/changelog",
7aacca6f 40972 "text" : "changelog"
56122987 40973 },
34f3e481
TL
40974 {
40975 "info" : {
40976 "GET" : {
40977 "allowtoken" : 1,
40978 "description" : "Get APT repository information.",
40979 "method" : "GET",
40980 "name" : "repositories",
40981 "parameters" : {
40982 "additionalProperties" : 0,
40983 "properties" : {
40984 "node" : {
40985 "description" : "The cluster node name.",
40986 "format" : "pve-node",
40987 "type" : "string",
40988 "typetext" : "<string>"
40989 }
40990 }
40991 },
40992 "permissions" : {
40993 "check" : [
40994 "perm",
40995 "/nodes/{node}",
40996 [
40997 "Sys.Audit"
40998 ]
40999 ]
41000 },
41001 "proxyto" : "node",
41002 "returns" : {
41003 "description" : "Result from parsing the APT repository files in /etc/apt/.",
41004 "properties" : {
41005 "digest" : {
41006 "description" : "Common digest of all files.",
41007 "type" : "string"
41008 },
41009 "errors" : {
41010 "description" : "List of problematic repository files.",
41011 "items" : {
41012 "properties" : {
41013 "error" : {
41014 "description" : "The error message",
41015 "type" : "string"
41016 },
41017 "path" : {
41018 "description" : "Path to the problematic file.",
41019 "type" : "string"
41020 }
41021 },
41022 "type" : "object"
41023 },
41024 "type" : "array"
41025 },
41026 "files" : {
41027 "description" : "List of parsed repository files.",
41028 "items" : {
41029 "properties" : {
41030 "digest" : {
41031 "description" : "Digest of the file as bytes.",
41032 "items" : {
41033 "type" : "integer"
41034 },
41035 "type" : "array"
41036 },
41037 "file-type" : {
41038 "description" : "Format of the file.",
41039 "enum" : [
41040 "list",
41041 "sources"
41042 ],
41043 "type" : "string"
41044 },
41045 "path" : {
41046 "description" : "Path to the problematic file.",
41047 "type" : "string"
41048 },
41049 "repositories" : {
41050 "description" : "The parsed repositories.",
41051 "items" : {
41052 "properties" : {
41053 "Comment" : {
41054 "description" : "Associated comment",
41055 "optional" : 1,
41056 "type" : "string"
41057 },
41058 "Components" : {
41059 "description" : "List of repository components",
41060 "items" : {
41061 "type" : "string"
41062 },
41063 "optional" : 1,
41064 "type" : "array"
41065 },
41066 "Enabled" : {
41067 "description" : "Whether the repository is enabled or not",
41068 "type" : "boolean"
41069 },
41070 "FileType" : {
41071 "description" : "Format of the defining file.",
41072 "enum" : [
41073 "list",
41074 "sources"
41075 ],
41076 "type" : "string"
41077 },
41078 "Options" : {
41079 "description" : "Additional options",
41080 "items" : {
41081 "properties" : {
41082 "Key" : {
41083 "type" : "string"
41084 },
41085 "Values" : {
41086 "items" : {
41087 "type" : "string"
41088 },
41089 "type" : "array"
41090 }
41091 },
41092 "type" : "object"
41093 },
41094 "optional" : 1,
41095 "type" : "array"
41096 },
41097 "Suites" : {
41098 "description" : "List of package distribuitions",
41099 "items" : {
41100 "type" : "string"
41101 },
41102 "type" : "array"
41103 },
41104 "Types" : {
41105 "description" : "List of package types.",
41106 "items" : {
41107 "enum" : [
41108 "deb",
41109 "deb-src"
41110 ],
41111 "type" : "string"
41112 },
41113 "type" : "array"
41114 },
41115 "URIs" : {
41116 "description" : "List of repository URIs.",
41117 "items" : {
41118 "type" : "string"
41119 },
41120 "type" : "array"
41121 }
41122 },
41123 "type" : "object"
41124 },
41125 "type" : "array"
41126 }
41127 },
41128 "type" : "object"
41129 },
41130 "type" : "array"
41131 },
41132 "infos" : {
41133 "description" : "Additional information/warnings for APT repositories.",
41134 "items" : {
41135 "properties" : {
41136 "index" : {
41137 "description" : "Index of the associated repository within the file.",
41138 "type" : "string"
41139 },
41140 "kind" : {
41141 "description" : "Kind of the information (e.g. warning).",
41142 "type" : "string"
41143 },
41144 "message" : {
41145 "description" : "Information message.",
41146 "type" : "string"
41147 },
41148 "path" : {
41149 "description" : "Path to the associated file.",
41150 "type" : "string"
41151 },
41152 "property" : {
41153 "description" : "Property from which the info originates.",
41154 "optional" : 1,
41155 "type" : "string"
41156 }
41157 },
41158 "type" : "object"
41159 },
41160 "type" : "array"
41161 },
41162 "standard-repos" : {
41163 "description" : "List of standard repositories and their configuration status",
41164 "items" : {
41165 "properties" : {
41166 "handle" : {
41167 "description" : "Handle to identify the repository.",
41168 "type" : "string"
41169 },
41170 "name" : {
41171 "description" : "Full name of the repository.",
41172 "type" : "string"
41173 },
41174 "status" : {
41175 "description" : "Indicating enabled/disabled status, if the repository is configured.",
41176 "optional" : 1,
41177 "type" : "boolean"
41178 }
41179 },
41180 "type" : "object"
41181 },
41182 "type" : "array"
41183 }
41184 },
41185 "type" : "object"
41186 }
41187 },
41188 "POST" : {
41189 "allowtoken" : 1,
41190 "description" : "Change the properties of a repository. Currently only allows enabling/disabling.",
41191 "method" : "POST",
41192 "name" : "change_repository",
41193 "parameters" : {
41194 "additionalProperties" : 0,
41195 "properties" : {
41196 "digest" : {
41197 "description" : "Digest to detect modifications.",
41198 "maxLength" : 80,
41199 "optional" : 1,
41200 "type" : "string",
41201 "typetext" : "<string>"
41202 },
41203 "enabled" : {
41204 "description" : "Whether the repository should be enabled or not.",
41205 "optional" : 1,
41206 "type" : "boolean",
41207 "typetext" : "<boolean>"
41208 },
41209 "index" : {
41210 "description" : "Index within the file (starting from 0).",
41211 "type" : "integer",
41212 "typetext" : "<integer>"
41213 },
41214 "node" : {
41215 "description" : "The cluster node name.",
41216 "format" : "pve-node",
41217 "type" : "string",
41218 "typetext" : "<string>"
41219 },
41220 "path" : {
41221 "description" : "Path to the containing file.",
41222 "type" : "string",
41223 "typetext" : "<string>"
41224 }
41225 }
41226 },
41227 "permissions" : {
41228 "check" : [
41229 "perm",
41230 "/nodes/{node}",
41231 [
41232 "Sys.Modify"
41233 ]
41234 ]
41235 },
41236 "protected" : 1,
41237 "proxyto" : "node",
41238 "returns" : {
41239 "type" : "null"
41240 }
41241 },
41242 "PUT" : {
41243 "allowtoken" : 1,
41244 "description" : "Add a standard repository to the configuration",
41245 "method" : "PUT",
41246 "name" : "add_repository",
41247 "parameters" : {
41248 "additionalProperties" : 0,
41249 "properties" : {
41250 "digest" : {
41251 "description" : "Digest to detect modifications.",
41252 "maxLength" : 80,
41253 "optional" : 1,
41254 "type" : "string",
41255 "typetext" : "<string>"
41256 },
41257 "handle" : {
41258 "description" : "Handle that identifies a repository.",
41259 "type" : "string",
41260 "typetext" : "<string>"
41261 },
41262 "node" : {
41263 "description" : "The cluster node name.",
41264 "format" : "pve-node",
41265 "type" : "string",
41266 "typetext" : "<string>"
41267 }
41268 }
41269 },
41270 "permissions" : {
41271 "check" : [
41272 "perm",
41273 "/nodes/{node}",
41274 [
41275 "Sys.Modify"
41276 ]
41277 ]
41278 },
41279 "protected" : 1,
41280 "proxyto" : "node",
41281 "returns" : {
41282 "type" : "null"
41283 }
41284 }
41285 },
41286 "leaf" : 1,
41287 "path" : "/nodes/{node}/apt/repositories",
41288 "text" : "repositories"
41289 },
56122987 41290 {
56122987
DM
41291 "info" : {
41292 "GET" : {
e9cd3bd4 41293 "allowtoken" : 1,
44660702
DM
41294 "description" : "Get package information for important Proxmox packages.",
41295 "method" : "GET",
7aacca6f
DM
41296 "name" : "versions",
41297 "parameters" : {
44660702 41298 "additionalProperties" : 0,
7aacca6f
DM
41299 "properties" : {
41300 "node" : {
44660702 41301 "description" : "The cluster node name.",
7aacca6f 41302 "format" : "pve-node",
013dc89f
DM
41303 "type" : "string",
41304 "typetext" : "<string>"
7aacca6f 41305 }
44660702 41306 }
7aacca6f 41307 },
56122987
DM
41308 "permissions" : {
41309 "check" : [
41310 "perm",
41311 "/nodes/{node}",
41312 [
41313 "Sys.Audit"
41314 ]
41315 ]
41316 },
7aacca6f 41317 "proxyto" : "node",
56122987
DM
41318 "returns" : {
41319 "items" : {
7aacca6f
DM
41320 "properties" : {},
41321 "type" : "object"
44660702
DM
41322 },
41323 "type" : "array"
56122987
DM
41324 }
41325 }
41326 },
44660702 41327 "leaf" : 1,
7aacca6f 41328 "path" : "/nodes/{node}/apt/versions",
44660702 41329 "text" : "versions"
56122987
DM
41330 }
41331 ],
56122987
DM
41332 "info" : {
41333 "GET" : {
e9cd3bd4 41334 "allowtoken" : 1,
44660702 41335 "description" : "Directory index for apt (Advanced Package Tool).",
7aacca6f 41336 "method" : "GET",
44660702 41337 "name" : "index",
7aacca6f
DM
41338 "parameters" : {
41339 "additionalProperties" : 0,
41340 "properties" : {
41341 "node" : {
44660702 41342 "description" : "The cluster node name.",
7aacca6f 41343 "format" : "pve-node",
013dc89f
DM
41344 "type" : "string",
41345 "typetext" : "<string>"
7aacca6f
DM
41346 }
41347 }
41348 },
7aacca6f
DM
41349 "permissions" : {
41350 "user" : "all"
41351 },
44660702
DM
41352 "returns" : {
41353 "items" : {
41354 "properties" : {
41355 "id" : {
41356 "type" : "string"
41357 }
41358 },
41359 "type" : "object"
41360 },
41361 "links" : [
41362 {
41363 "href" : "{id}",
41364 "rel" : "child"
41365 }
41366 ],
41367 "type" : "array"
41368 }
56122987 41369 }
7aacca6f 41370 },
44660702 41371 "leaf" : 0,
7aacca6f 41372 "path" : "/nodes/{node}/apt",
44660702 41373 "text" : "apt"
56122987
DM
41374 },
41375 {
56122987
DM
41376 "children" : [
41377 {
41378 "children" : [
41379 {
56122987
DM
41380 "info" : {
41381 "DELETE" : {
e9cd3bd4 41382 "allowtoken" : 1,
44660702 41383 "description" : "Delete rule.",
7aacca6f 41384 "method" : "DELETE",
44660702 41385 "name" : "delete_rule",
56122987
DM
41386 "parameters" : {
41387 "additionalProperties" : 0,
41388 "properties" : {
56122987
DM
41389 "digest" : {
41390 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 41391 "maxLength" : 40,
56122987 41392 "optional" : 1,
013dc89f
DM
41393 "type" : "string",
41394 "typetext" : "<string>"
56122987 41395 },
44660702
DM
41396 "node" : {
41397 "description" : "The cluster node name.",
41398 "format" : "pve-node",
013dc89f
DM
41399 "type" : "string",
41400 "typetext" : "<string>"
44660702 41401 },
7aacca6f 41402 "pos" : {
7aacca6f 41403 "description" : "Update rule at position <pos>.",
44660702
DM
41404 "minimum" : 0,
41405 "optional" : 1,
4bd7df8b 41406 "type" : "integer",
013dc89f 41407 "typetext" : "<integer> (0 - N)"
56122987
DM
41408 }
41409 }
41410 },
44660702
DM
41411 "permissions" : {
41412 "check" : [
41413 "perm",
41414 "/nodes/{node}",
41415 [
41416 "Sys.Modify"
41417 ]
41418 ]
41419 },
41420 "protected" : 1,
41421 "proxyto" : "node",
56122987
DM
41422 "returns" : {
41423 "type" : "null"
44660702
DM
41424 }
41425 },
41426 "GET" : {
e9cd3bd4 41427 "allowtoken" : 1,
44660702
DM
41428 "description" : "Get single rule data.",
41429 "method" : "GET",
41430 "name" : "get_rule",
41431 "parameters" : {
41432 "additionalProperties" : 0,
41433 "properties" : {
41434 "node" : {
41435 "description" : "The cluster node name.",
41436 "format" : "pve-node",
013dc89f
DM
41437 "type" : "string",
41438 "typetext" : "<string>"
44660702
DM
41439 },
41440 "pos" : {
41441 "description" : "Update rule at position <pos>.",
41442 "minimum" : 0,
41443 "optional" : 1,
4bd7df8b 41444 "type" : "integer",
013dc89f 41445 "typetext" : "<integer> (0 - N)"
44660702
DM
41446 }
41447 }
56122987 41448 },
56122987
DM
41449 "permissions" : {
41450 "check" : [
41451 "perm",
41452 "/nodes/{node}",
41453 [
44660702 41454 "Sys.Audit"
56122987
DM
41455 ]
41456 ]
44660702
DM
41457 },
41458 "proxyto" : "node",
41459 "returns" : {
41460 "properties" : {
e2d681b3
TL
41461 "action" : {
41462 "type" : "string"
41463 },
41464 "comment" : {
41465 "optional" : 1,
41466 "type" : "string"
41467 },
41468 "dest" : {
41469 "optional" : 1,
41470 "type" : "string"
41471 },
41472 "dport" : {
41473 "optional" : 1,
41474 "type" : "string"
41475 },
41476 "enable" : {
41477 "optional" : 1,
41478 "type" : "integer"
41479 },
4772952b
TL
41480 "icmp-type" : {
41481 "optional" : 1,
41482 "type" : "string"
41483 },
e2d681b3
TL
41484 "iface" : {
41485 "optional" : 1,
41486 "type" : "string"
41487 },
41488 "ipversion" : {
41489 "optional" : 1,
41490 "type" : "integer"
41491 },
95895385
TL
41492 "log" : {
41493 "description" : "Log level for firewall rule",
41494 "enum" : [
41495 "emerg",
41496 "alert",
41497 "crit",
41498 "err",
41499 "warning",
41500 "notice",
41501 "info",
41502 "debug",
41503 "nolog"
41504 ],
41505 "optional" : 1,
41506 "type" : "string"
41507 },
e2d681b3
TL
41508 "macro" : {
41509 "optional" : 1,
5f26e15b 41510 "type" : "string"
e2d681b3 41511 },
44660702
DM
41512 "pos" : {
41513 "type" : "integer"
e2d681b3
TL
41514 },
41515 "proto" : {
41516 "optional" : 1,
41517 "type" : "string"
41518 },
41519 "source" : {
41520 "optional" : 1,
41521 "type" : "string"
41522 },
41523 "sport" : {
41524 "optional" : 1,
41525 "type" : "string"
41526 },
41527 "type" : {
41528 "type" : "string"
44660702
DM
41529 }
41530 },
41531 "type" : "object"
7aacca6f 41532 }
56122987
DM
41533 },
41534 "PUT" : {
e9cd3bd4 41535 "allowtoken" : 1,
44660702
DM
41536 "description" : "Modify rule data.",
41537 "method" : "PUT",
56122987 41538 "name" : "update_rule",
56122987 41539 "parameters" : {
44660702 41540 "additionalProperties" : 0,
56122987 41541 "properties" : {
44660702
DM
41542 "action" : {
41543 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
41544 "maxLength" : 20,
41545 "minLength" : 2,
56122987 41546 "optional" : 1,
44660702
DM
41547 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
41548 "type" : "string"
56122987 41549 },
7aacca6f 41550 "comment" : {
e94f0d56 41551 "description" : "Descriptive comment.",
56122987 41552 "optional" : 1,
013dc89f
DM
41553 "type" : "string",
41554 "typetext" : "<string>"
56122987 41555 },
44660702
DM
41556 "delete" : {
41557 "description" : "A list of settings you want to delete.",
41558 "format" : "pve-configid-list",
56122987 41559 "optional" : 1,
013dc89f
DM
41560 "type" : "string",
41561 "typetext" : "<string>"
56122987 41562 },
44660702
DM
41563 "dest" : {
41564 "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.",
41565 "format" : "pve-fw-addr-spec",
0695fdaf 41566 "maxLength" : 512,
56122987 41567 "optional" : 1,
013dc89f
DM
41568 "type" : "string",
41569 "typetext" : "<string>"
56122987 41570 },
44660702
DM
41571 "digest" : {
41572 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
41573 "maxLength" : 40,
56122987 41574 "optional" : 1,
013dc89f
DM
41575 "type" : "string",
41576 "typetext" : "<string>"
56122987 41577 },
7aacca6f 41578 "dport" : {
7aacca6f 41579 "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
41580 "format" : "pve-fw-dport-spec",
41581 "optional" : 1,
013dc89f
DM
41582 "type" : "string",
41583 "typetext" : "<string>"
7aacca6f 41584 },
44660702 41585 "enable" : {
e94f0d56 41586 "description" : "Flag to enable/disable a rule.",
44660702 41587 "minimum" : 0,
56122987 41588 "optional" : 1,
4bd7df8b 41589 "type" : "integer",
013dc89f 41590 "typetext" : "<integer> (0 - N)"
56122987 41591 },
4772952b
TL
41592 "icmp-type" : {
41593 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
41594 "format" : "pve-fw-icmp-type-spec",
41595 "optional" : 1,
41596 "type" : "string",
41597 "typetext" : "<string>"
41598 },
7aacca6f 41599 "iface" : {
44660702 41600 "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 41601 "format" : "pve-iface",
44660702 41602 "maxLength" : 20,
56122987 41603 "minLength" : 2,
44660702 41604 "optional" : 1,
013dc89f
DM
41605 "type" : "string",
41606 "typetext" : "<string>"
56122987 41607 },
95895385
TL
41608 "log" : {
41609 "description" : "Log level for firewall rule.",
41610 "enum" : [
41611 "emerg",
41612 "alert",
41613 "crit",
41614 "err",
41615 "warning",
41616 "notice",
41617 "info",
41618 "debug",
41619 "nolog"
41620 ],
41621 "optional" : 1,
41622 "type" : "string"
41623 },
44660702 41624 "macro" : {
e94f0d56 41625 "description" : "Use predefined standard macro.",
44660702
DM
41626 "maxLength" : 128,
41627 "optional" : 1,
013dc89f
DM
41628 "type" : "string",
41629 "typetext" : "<string>"
44660702
DM
41630 },
41631 "moveto" : {
41632 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
41633 "minimum" : 0,
7aacca6f 41634 "optional" : 1,
4bd7df8b 41635 "type" : "integer",
013dc89f 41636 "typetext" : "<integer> (0 - N)"
44660702
DM
41637 },
41638 "node" : {
41639 "description" : "The cluster node name.",
41640 "format" : "pve-node",
013dc89f
DM
41641 "type" : "string",
41642 "typetext" : "<string>"
56122987
DM
41643 },
41644 "pos" : {
44660702 41645 "description" : "Update rule at position <pos>.",
7aacca6f 41646 "minimum" : 0,
7aacca6f 41647 "optional" : 1,
4bd7df8b 41648 "type" : "integer",
013dc89f 41649 "typetext" : "<integer> (0 - N)"
7aacca6f 41650 },
44660702
DM
41651 "proto" : {
41652 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
41653 "format" : "pve-fw-protocol-spec",
7aacca6f 41654 "optional" : 1,
013dc89f
DM
41655 "type" : "string",
41656 "typetext" : "<string>"
7aacca6f 41657 },
44660702
DM
41658 "source" : {
41659 "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.",
41660 "format" : "pve-fw-addr-spec",
0695fdaf 41661 "maxLength" : 512,
56122987 41662 "optional" : 1,
013dc89f
DM
41663 "type" : "string",
41664 "typetext" : "<string>"
7aacca6f 41665 },
44660702
DM
41666 "sport" : {
41667 "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.",
41668 "format" : "pve-fw-sport-spec",
41669 "optional" : 1,
013dc89f
DM
41670 "type" : "string",
41671 "typetext" : "<string>"
44660702
DM
41672 },
41673 "type" : {
e94f0d56 41674 "description" : "Rule type.",
44660702
DM
41675 "enum" : [
41676 "in",
41677 "out",
41678 "group"
41679 ],
41680 "optional" : 1,
41681 "type" : "string"
56122987 41682 }
44660702 41683 }
56122987 41684 },
56122987
DM
41685 "permissions" : {
41686 "check" : [
41687 "perm",
41688 "/nodes/{node}",
41689 [
41690 "Sys.Modify"
41691 ]
41692 ]
7aacca6f 41693 },
44660702 41694 "protected" : 1,
7aacca6f 41695 "proxyto" : "node",
7aacca6f
DM
41696 "returns" : {
41697 "type" : "null"
56122987
DM
41698 }
41699 }
7aacca6f 41700 },
44660702 41701 "leaf" : 1,
7aacca6f 41702 "path" : "/nodes/{node}/firewall/rules/{pos}",
44660702 41703 "text" : "{pos}"
56122987
DM
41704 }
41705 ],
56122987
DM
41706 "info" : {
41707 "GET" : {
e9cd3bd4 41708 "allowtoken" : 1,
44660702
DM
41709 "description" : "List rules.",
41710 "method" : "GET",
41711 "name" : "get_rules",
41712 "parameters" : {
41713 "additionalProperties" : 0,
41714 "properties" : {
41715 "node" : {
41716 "description" : "The cluster node name.",
41717 "format" : "pve-node",
013dc89f
DM
41718 "type" : "string",
41719 "typetext" : "<string>"
44660702
DM
41720 }
41721 }
41722 },
41723 "permissions" : {
41724 "check" : [
41725 "perm",
41726 "/nodes/{node}",
41727 [
41728 "Sys.Audit"
41729 ]
41730 ]
41731 },
41732 "proxyto" : "node",
56122987 41733 "returns" : {
56122987
DM
41734 "items" : {
41735 "properties" : {
41736 "pos" : {
41737 "type" : "integer"
41738 }
44660702
DM
41739 },
41740 "type" : "object"
56122987 41741 },
7aacca6f
DM
41742 "links" : [
41743 {
41744 "href" : "{pos}",
41745 "rel" : "child"
41746 }
41747 ],
41748 "type" : "array"
44660702 41749 }
56122987
DM
41750 },
41751 "POST" : {
e9cd3bd4 41752 "allowtoken" : 1,
44660702 41753 "description" : "Create new rule.",
7aacca6f
DM
41754 "method" : "POST",
41755 "name" : "create_rule",
56122987 41756 "parameters" : {
44660702 41757 "additionalProperties" : 0,
56122987 41758 "properties" : {
7aacca6f 41759 "action" : {
7aacca6f 41760 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
44660702 41761 "maxLength" : 20,
7aacca6f
DM
41762 "minLength" : 2,
41763 "optional" : 0,
44660702
DM
41764 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
41765 "type" : "string"
56122987 41766 },
44660702 41767 "comment" : {
e94f0d56 41768 "description" : "Descriptive comment.",
56122987 41769 "optional" : 1,
013dc89f
DM
41770 "type" : "string",
41771 "typetext" : "<string>"
56122987 41772 },
44660702
DM
41773 "dest" : {
41774 "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.",
41775 "format" : "pve-fw-addr-spec",
0695fdaf 41776 "maxLength" : 512,
7aacca6f 41777 "optional" : 1,
013dc89f
DM
41778 "type" : "string",
41779 "typetext" : "<string>"
56122987 41780 },
44660702
DM
41781 "digest" : {
41782 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
41783 "maxLength" : 40,
41784 "optional" : 1,
013dc89f
DM
41785 "type" : "string",
41786 "typetext" : "<string>"
56122987 41787 },
44660702
DM
41788 "dport" : {
41789 "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.",
41790 "format" : "pve-fw-dport-spec",
7aacca6f 41791 "optional" : 1,
013dc89f
DM
41792 "type" : "string",
41793 "typetext" : "<string>"
56122987 41794 },
44660702 41795 "enable" : {
e94f0d56 41796 "description" : "Flag to enable/disable a rule.",
44660702
DM
41797 "minimum" : 0,
41798 "optional" : 1,
4bd7df8b 41799 "type" : "integer",
013dc89f 41800 "typetext" : "<integer> (0 - N)"
44660702 41801 },
4772952b
TL
41802 "icmp-type" : {
41803 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
41804 "format" : "pve-fw-icmp-type-spec",
41805 "optional" : 1,
41806 "type" : "string",
41807 "typetext" : "<string>"
41808 },
7aacca6f 41809 "iface" : {
44660702 41810 "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 41811 "format" : "pve-iface",
56122987 41812 "maxLength" : 20,
7aacca6f 41813 "minLength" : 2,
7aacca6f 41814 "optional" : 1,
013dc89f
DM
41815 "type" : "string",
41816 "typetext" : "<string>"
56122987 41817 },
95895385
TL
41818 "log" : {
41819 "description" : "Log level for firewall rule.",
41820 "enum" : [
41821 "emerg",
41822 "alert",
41823 "crit",
41824 "err",
41825 "warning",
41826 "notice",
41827 "info",
41828 "debug",
41829 "nolog"
41830 ],
41831 "optional" : 1,
41832 "type" : "string"
41833 },
44660702 41834 "macro" : {
e94f0d56 41835 "description" : "Use predefined standard macro.",
44660702 41836 "maxLength" : 128,
7aacca6f 41837 "optional" : 1,
013dc89f
DM
41838 "type" : "string",
41839 "typetext" : "<string>"
56122987 41840 },
44660702
DM
41841 "node" : {
41842 "description" : "The cluster node name.",
41843 "format" : "pve-node",
013dc89f
DM
41844 "type" : "string",
41845 "typetext" : "<string>"
44660702
DM
41846 },
41847 "pos" : {
41848 "description" : "Update rule at position <pos>.",
41849 "minimum" : 0,
41850 "optional" : 1,
4bd7df8b 41851 "type" : "integer",
013dc89f 41852 "typetext" : "<integer> (0 - N)"
44660702
DM
41853 },
41854 "proto" : {
41855 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
41856 "format" : "pve-fw-protocol-spec",
56122987 41857 "optional" : 1,
013dc89f
DM
41858 "type" : "string",
41859 "typetext" : "<string>"
56122987 41860 },
7aacca6f 41861 "source" : {
7aacca6f 41862 "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 41863 "format" : "pve-fw-addr-spec",
0695fdaf 41864 "maxLength" : 512,
44660702 41865 "optional" : 1,
013dc89f
DM
41866 "type" : "string",
41867 "typetext" : "<string>"
7aacca6f 41868 },
44660702
DM
41869 "sport" : {
41870 "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.",
41871 "format" : "pve-fw-sport-spec",
7aacca6f 41872 "optional" : 1,
013dc89f
DM
41873 "type" : "string",
41874 "typetext" : "<string>"
44660702
DM
41875 },
41876 "type" : {
e94f0d56 41877 "description" : "Rule type.",
44660702
DM
41878 "enum" : [
41879 "in",
41880 "out",
41881 "group"
41882 ],
41883 "optional" : 0,
41884 "type" : "string"
56122987 41885 }
44660702 41886 }
7aacca6f 41887 },
56122987
DM
41888 "permissions" : {
41889 "check" : [
41890 "perm",
41891 "/nodes/{node}",
41892 [
41893 "Sys.Modify"
41894 ]
41895 ]
41896 },
44660702
DM
41897 "protected" : 1,
41898 "proxyto" : "node",
41899 "returns" : {
41900 "type" : "null"
41901 }
56122987
DM
41902 }
41903 },
44660702 41904 "leaf" : 0,
7aacca6f 41905 "path" : "/nodes/{node}/firewall/rules",
44660702 41906 "text" : "rules"
56122987
DM
41907 },
41908 {
56122987 41909 "info" : {
44660702 41910 "GET" : {
e9cd3bd4 41911 "allowtoken" : 1,
44660702
DM
41912 "description" : "Get host firewall options.",
41913 "method" : "GET",
41914 "name" : "get_options",
56122987 41915 "parameters" : {
7aacca6f 41916 "additionalProperties" : 0,
56122987 41917 "properties" : {
44660702
DM
41918 "node" : {
41919 "description" : "The cluster node name.",
41920 "format" : "pve-node",
013dc89f
DM
41921 "type" : "string",
41922 "typetext" : "<string>"
44660702
DM
41923 }
41924 }
41925 },
41926 "permissions" : {
41927 "check" : [
41928 "perm",
41929 "/nodes/{node}",
41930 [
41931 "Sys.Audit"
41932 ]
41933 ]
41934 },
41935 "proxyto" : "node",
41936 "returns" : {
41937 "properties" : {
41938 "enable" : {
41939 "description" : "Enable host firewall rules.",
7aacca6f 41940 "optional" : 1,
44660702 41941 "type" : "boolean"
7aacca6f 41942 },
44660702
DM
41943 "log_level_in" : {
41944 "description" : "Log level for incoming traffic.",
56122987
DM
41945 "enum" : [
41946 "emerg",
41947 "alert",
41948 "crit",
41949 "err",
41950 "warning",
41951 "notice",
41952 "info",
41953 "debug",
41954 "nolog"
41955 ],
56122987 41956 "optional" : 1,
44660702
DM
41957 "type" : "string"
41958 },
41959 "log_level_out" : {
41960 "description" : "Log level for outgoing traffic.",
56122987
DM
41961 "enum" : [
41962 "emerg",
41963 "alert",
41964 "crit",
41965 "err",
41966 "warning",
41967 "notice",
41968 "info",
41969 "debug",
41970 "nolog"
41971 ],
44660702
DM
41972 "optional" : 1,
41973 "type" : "string"
41974 },
95895385
TL
41975 "log_nf_conntrack" : {
41976 "default" : 0,
41977 "description" : "Enable logging of conntrack information.",
41978 "optional" : 1,
41979 "type" : "boolean"
41980 },
44660702 41981 "ndp" : {
5c1699e5
TL
41982 "default" : 0,
41983 "description" : "Enable NDP (Neighbor Discovery Protocol).",
44660702
DM
41984 "optional" : 1,
41985 "type" : "boolean"
41986 },
5f26e15b
TL
41987 "nf_conntrack_allow_invalid" : {
41988 "default" : 0,
41989 "description" : "Allow invalid packets on connection tracking.",
41990 "optional" : 1,
41991 "type" : "boolean"
41992 },
44660702 41993 "nf_conntrack_max" : {
5c1699e5 41994 "default" : 262144,
44660702
DM
41995 "description" : "Maximum number of tracked connections.",
41996 "minimum" : 32768,
41997 "optional" : 1,
41998 "type" : "integer"
41999 },
42000 "nf_conntrack_tcp_timeout_established" : {
5c1699e5 42001 "default" : 432000,
44660702
DM
42002 "description" : "Conntrack established timeout.",
42003 "minimum" : 7875,
42004 "optional" : 1,
42005 "type" : "integer"
42006 },
5c1699e5
TL
42007 "nf_conntrack_tcp_timeout_syn_recv" : {
42008 "default" : 60,
42009 "description" : "Conntrack syn recv timeout.",
42010 "maximum" : 60,
42011 "minimum" : 30,
42012 "optional" : 1,
42013 "type" : "integer"
42014 },
44660702
DM
42015 "nosmurfs" : {
42016 "description" : "Enable SMURFS filter.",
42017 "optional" : 1,
42018 "type" : "boolean"
56122987 42019 },
5c1699e5
TL
42020 "protection_synflood" : {
42021 "default" : 0,
42022 "description" : "Enable synflood protection",
42023 "optional" : 1,
42024 "type" : "boolean"
42025 },
42026 "protection_synflood_burst" : {
42027 "default" : 1000,
42028 "description" : "Synflood protection rate burst by ip src.",
42029 "optional" : 1,
42030 "type" : "integer"
42031 },
42032 "protection_synflood_rate" : {
42033 "default" : 200,
42034 "description" : "Synflood protection rate syn/sec by ip src.",
42035 "optional" : 1,
42036 "type" : "integer"
42037 },
7aacca6f 42038 "smurf_log_level" : {
44660702 42039 "description" : "Log level for SMURFS filter.",
56122987
DM
42040 "enum" : [
42041 "emerg",
42042 "alert",
42043 "crit",
42044 "err",
42045 "warning",
42046 "notice",
42047 "info",
42048 "debug",
42049 "nolog"
7aacca6f 42050 ],
7aacca6f
DM
42051 "optional" : 1,
42052 "type" : "string"
56122987 42053 },
44660702
DM
42054 "tcp_flags_log_level" : {
42055 "description" : "Log level for illegal tcp flags filter.",
56122987
DM
42056 "enum" : [
42057 "emerg",
42058 "alert",
42059 "crit",
42060 "err",
42061 "warning",
42062 "notice",
42063 "info",
42064 "debug",
42065 "nolog"
42066 ],
44660702
DM
42067 "optional" : 1,
42068 "type" : "string"
7aacca6f 42069 },
44660702 42070 "tcpflags" : {
5c1699e5 42071 "default" : 0,
44660702 42072 "description" : "Filter illegal combinations of TCP flags.",
56122987 42073 "optional" : 1,
44660702 42074 "type" : "boolean"
56122987 42075 }
44660702
DM
42076 },
42077 "type" : "object"
7aacca6f 42078 }
56122987 42079 },
44660702 42080 "PUT" : {
e9cd3bd4 42081 "allowtoken" : 1,
44660702
DM
42082 "description" : "Set Firewall options.",
42083 "method" : "PUT",
42084 "name" : "set_options",
7aacca6f 42085 "parameters" : {
44660702 42086 "additionalProperties" : 0,
7aacca6f 42087 "properties" : {
44660702
DM
42088 "delete" : {
42089 "description" : "A list of settings you want to delete.",
42090 "format" : "pve-configid-list",
7aacca6f 42091 "optional" : 1,
013dc89f
DM
42092 "type" : "string",
42093 "typetext" : "<string>"
56122987 42094 },
44660702
DM
42095 "digest" : {
42096 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
42097 "maxLength" : 40,
42098 "optional" : 1,
013dc89f
DM
42099 "type" : "string",
42100 "typetext" : "<string>"
56122987 42101 },
44660702
DM
42102 "enable" : {
42103 "description" : "Enable host firewall rules.",
7aacca6f 42104 "optional" : 1,
013dc89f
DM
42105 "type" : "boolean",
42106 "typetext" : "<boolean>"
44660702
DM
42107 },
42108 "log_level_in" : {
42109 "description" : "Log level for incoming traffic.",
56122987
DM
42110 "enum" : [
42111 "emerg",
42112 "alert",
42113 "crit",
42114 "err",
42115 "warning",
42116 "notice",
42117 "info",
42118 "debug",
42119 "nolog"
44660702 42120 ],
7aacca6f 42121 "optional" : 1,
44660702 42122 "type" : "string"
7aacca6f 42123 },
44660702
DM
42124 "log_level_out" : {
42125 "description" : "Log level for outgoing traffic.",
56122987
DM
42126 "enum" : [
42127 "emerg",
42128 "alert",
42129 "crit",
42130 "err",
42131 "warning",
42132 "notice",
42133 "info",
42134 "debug",
42135 "nolog"
42136 ],
42137 "optional" : 1,
7aacca6f 42138 "type" : "string"
56122987 42139 },
95895385
TL
42140 "log_nf_conntrack" : {
42141 "default" : 0,
42142 "description" : "Enable logging of conntrack information.",
42143 "optional" : 1,
42144 "type" : "boolean",
42145 "typetext" : "<boolean>"
42146 },
44660702 42147 "ndp" : {
5c1699e5
TL
42148 "default" : 0,
42149 "description" : "Enable NDP (Neighbor Discovery Protocol).",
7aacca6f 42150 "optional" : 1,
013dc89f
DM
42151 "type" : "boolean",
42152 "typetext" : "<boolean>"
44660702 42153 },
5f26e15b
TL
42154 "nf_conntrack_allow_invalid" : {
42155 "default" : 0,
42156 "description" : "Allow invalid packets on connection tracking.",
42157 "optional" : 1,
42158 "type" : "boolean",
42159 "typetext" : "<boolean>"
42160 },
44660702 42161 "nf_conntrack_max" : {
5c1699e5 42162 "default" : 262144,
44660702
DM
42163 "description" : "Maximum number of tracked connections.",
42164 "minimum" : 32768,
42165 "optional" : 1,
4bd7df8b 42166 "type" : "integer",
013dc89f 42167 "typetext" : "<integer> (32768 - N)"
44660702
DM
42168 },
42169 "nf_conntrack_tcp_timeout_established" : {
5c1699e5 42170 "default" : 432000,
44660702
DM
42171 "description" : "Conntrack established timeout.",
42172 "minimum" : 7875,
42173 "optional" : 1,
4bd7df8b 42174 "type" : "integer",
013dc89f 42175 "typetext" : "<integer> (7875 - N)"
44660702 42176 },
5c1699e5
TL
42177 "nf_conntrack_tcp_timeout_syn_recv" : {
42178 "default" : 60,
42179 "description" : "Conntrack syn recv timeout.",
42180 "maximum" : 60,
42181 "minimum" : 30,
42182 "optional" : 1,
42183 "type" : "integer",
42184 "typetext" : "<integer> (30 - 60)"
42185 },
44660702
DM
42186 "node" : {
42187 "description" : "The cluster node name.",
42188 "format" : "pve-node",
013dc89f
DM
42189 "type" : "string",
42190 "typetext" : "<string>"
44660702
DM
42191 },
42192 "nosmurfs" : {
42193 "description" : "Enable SMURFS filter.",
42194 "optional" : 1,
013dc89f
DM
42195 "type" : "boolean",
42196 "typetext" : "<boolean>"
44660702 42197 },
5c1699e5
TL
42198 "protection_synflood" : {
42199 "default" : 0,
42200 "description" : "Enable synflood protection",
42201 "optional" : 1,
42202 "type" : "boolean",
42203 "typetext" : "<boolean>"
42204 },
42205 "protection_synflood_burst" : {
42206 "default" : 1000,
42207 "description" : "Synflood protection rate burst by ip src.",
42208 "optional" : 1,
42209 "type" : "integer",
42210 "typetext" : "<integer>"
42211 },
42212 "protection_synflood_rate" : {
42213 "default" : 200,
42214 "description" : "Synflood protection rate syn/sec by ip src.",
42215 "optional" : 1,
42216 "type" : "integer",
42217 "typetext" : "<integer>"
42218 },
44660702
DM
42219 "smurf_log_level" : {
42220 "description" : "Log level for SMURFS filter.",
56122987
DM
42221 "enum" : [
42222 "emerg",
42223 "alert",
42224 "crit",
42225 "err",
42226 "warning",
42227 "notice",
42228 "info",
42229 "debug",
42230 "nolog"
44660702
DM
42231 ],
42232 "optional" : 1,
42233 "type" : "string"
56122987 42234 },
44660702
DM
42235 "tcp_flags_log_level" : {
42236 "description" : "Log level for illegal tcp flags filter.",
56122987
DM
42237 "enum" : [
42238 "emerg",
42239 "alert",
42240 "crit",
42241 "err",
42242 "warning",
42243 "notice",
42244 "info",
42245 "debug",
42246 "nolog"
42247 ],
44660702
DM
42248 "optional" : 1,
42249 "type" : "string"
7aacca6f 42250 },
44660702 42251 "tcpflags" : {
5c1699e5 42252 "default" : 0,
44660702 42253 "description" : "Filter illegal combinations of TCP flags.",
56122987 42254 "optional" : 1,
013dc89f
DM
42255 "type" : "boolean",
42256 "typetext" : "<boolean>"
56122987 42257 }
7aacca6f 42258 }
56122987 42259 },
44660702
DM
42260 "permissions" : {
42261 "check" : [
42262 "perm",
42263 "/nodes/{node}",
42264 [
42265 "Sys.Modify"
42266 ]
42267 ]
42268 },
42269 "protected" : 1,
42270 "proxyto" : "node",
42271 "returns" : {
42272 "type" : "null"
42273 }
7aacca6f
DM
42274 }
42275 },
44660702
DM
42276 "leaf" : 1,
42277 "path" : "/nodes/{node}/firewall/options",
7aacca6f
DM
42278 "text" : "options"
42279 },
42280 {
7aacca6f
DM
42281 "info" : {
42282 "GET" : {
e9cd3bd4 42283 "allowtoken" : 1,
44660702
DM
42284 "description" : "Read firewall log",
42285 "method" : "GET",
7aacca6f 42286 "name" : "log",
56122987 42287 "parameters" : {
44660702 42288 "additionalProperties" : 0,
56122987 42289 "properties" : {
7aacca6f 42290 "limit" : {
44660702 42291 "minimum" : 0,
7aacca6f 42292 "optional" : 1,
4bd7df8b 42293 "type" : "integer",
013dc89f 42294 "typetext" : "<integer> (0 - N)"
7aacca6f 42295 },
56122987 42296 "node" : {
7aacca6f 42297 "description" : "The cluster node name.",
44660702 42298 "format" : "pve-node",
013dc89f
DM
42299 "type" : "string",
42300 "typetext" : "<string>"
44660702
DM
42301 },
42302 "start" : {
42303 "minimum" : 0,
42304 "optional" : 1,
4bd7df8b 42305 "type" : "integer",
013dc89f 42306 "typetext" : "<integer> (0 - N)"
56122987 42307 }
44660702 42308 }
7aacca6f 42309 },
56122987
DM
42310 "permissions" : {
42311 "check" : [
42312 "perm",
42313 "/nodes/{node}",
42314 [
42315 "Sys.Syslog"
42316 ]
42317 ]
42318 },
44660702
DM
42319 "protected" : 1,
42320 "proxyto" : "node",
56122987
DM
42321 "returns" : {
42322 "items" : {
56122987 42323 "properties" : {
56122987 42324 "n" : {
44660702
DM
42325 "description" : "Line number",
42326 "type" : "integer"
7aacca6f
DM
42327 },
42328 "t" : {
44660702
DM
42329 "description" : "Line text",
42330 "type" : "string"
56122987 42331 }
44660702
DM
42332 },
42333 "type" : "object"
56122987
DM
42334 },
42335 "type" : "array"
7aacca6f 42336 }
56122987
DM
42337 }
42338 },
44660702
DM
42339 "leaf" : 1,
42340 "path" : "/nodes/{node}/firewall/log",
7aacca6f 42341 "text" : "log"
56122987
DM
42342 }
42343 ],
42344 "info" : {
42345 "GET" : {
e9cd3bd4 42346 "allowtoken" : 1,
44660702
DM
42347 "description" : "Directory index.",
42348 "method" : "GET",
42349 "name" : "index",
56122987 42350 "parameters" : {
44660702 42351 "additionalProperties" : 0,
56122987
DM
42352 "properties" : {
42353 "node" : {
42354 "description" : "The cluster node name.",
44660702 42355 "format" : "pve-node",
013dc89f
DM
42356 "type" : "string",
42357 "typetext" : "<string>"
56122987 42358 }
44660702 42359 }
56122987 42360 },
7aacca6f
DM
42361 "permissions" : {
42362 "user" : "all"
42363 },
56122987
DM
42364 "returns" : {
42365 "items" : {
42366 "properties" : {},
42367 "type" : "object"
42368 },
56122987
DM
42369 "links" : [
42370 {
44660702
DM
42371 "href" : "{name}",
42372 "rel" : "child"
56122987 42373 }
44660702
DM
42374 ],
42375 "type" : "array"
42376 }
56122987 42377 }
7aacca6f 42378 },
44660702 42379 "leaf" : 0,
7aacca6f 42380 "path" : "/nodes/{node}/firewall",
44660702 42381 "text" : "firewall"
56122987 42382 },
5d9c884c
DM
42383 {
42384 "children" : [
42385 {
42386 "children" : [
42387 {
42388 "info" : {
42389 "GET" : {
e9cd3bd4 42390 "allowtoken" : 1,
5d9c884c
DM
42391 "description" : "Get replication job status.",
42392 "method" : "GET",
42393 "name" : "job_status",
42394 "parameters" : {
42395 "additionalProperties" : 0,
42396 "properties" : {
42397 "id" : {
42398 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
42399 "format" : "pve-replication-job-id",
42400 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
42401 "type" : "string"
42402 },
42403 "node" : {
42404 "description" : "The cluster node name.",
42405 "format" : "pve-node",
42406 "type" : "string",
42407 "typetext" : "<string>"
42408 }
42409 }
42410 },
42411 "permissions" : {
42412 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
42413 "user" : "all"
42414 },
42415 "protected" : 1,
42416 "proxyto" : "node",
42417 "returns" : {
5d9c884c
DM
42418 "type" : "object"
42419 }
42420 }
42421 },
42422 "leaf" : 1,
42423 "path" : "/nodes/{node}/replication/{id}/status",
42424 "text" : "status"
42425 },
42426 {
42427 "info" : {
42428 "GET" : {
e9cd3bd4 42429 "allowtoken" : 1,
5d9c884c
DM
42430 "description" : "Read replication job log.",
42431 "method" : "GET",
42432 "name" : "read_job_log",
42433 "parameters" : {
42434 "additionalProperties" : 0,
42435 "properties" : {
42436 "id" : {
42437 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
42438 "format" : "pve-replication-job-id",
42439 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
42440 "type" : "string"
42441 },
42442 "limit" : {
42443 "minimum" : 0,
42444 "optional" : 1,
42445 "type" : "integer",
42446 "typetext" : "<integer> (0 - N)"
42447 },
42448 "node" : {
42449 "description" : "The cluster node name.",
42450 "format" : "pve-node",
42451 "type" : "string",
42452 "typetext" : "<string>"
42453 },
42454 "start" : {
42455 "minimum" : 0,
42456 "optional" : 1,
42457 "type" : "integer",
42458 "typetext" : "<integer> (0 - N)"
42459 }
42460 }
42461 },
42462 "permissions" : {
42463 "description" : "Requires the VM.Audit permission on /vms/<vmid>, or 'Sys.Audit' on '/nodes/<node>'",
42464 "user" : "all"
42465 },
42466 "protected" : 1,
42467 "proxyto" : "node",
42468 "returns" : {
42469 "items" : {
42470 "properties" : {
42471 "n" : {
42472 "description" : "Line number",
42473 "type" : "integer"
42474 },
42475 "t" : {
42476 "description" : "Line text",
42477 "type" : "string"
42478 }
42479 },
42480 "type" : "object"
42481 },
42482 "type" : "array"
42483 }
42484 }
42485 },
42486 "leaf" : 1,
42487 "path" : "/nodes/{node}/replication/{id}/log",
42488 "text" : "log"
42489 },
42490 {
42491 "info" : {
42492 "POST" : {
e9cd3bd4 42493 "allowtoken" : 1,
5d9c884c
DM
42494 "description" : "Schedule replication job to start as soon as possible.",
42495 "method" : "POST",
42496 "name" : "schedule_now",
42497 "parameters" : {
42498 "additionalProperties" : 0,
42499 "properties" : {
42500 "id" : {
42501 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
42502 "format" : "pve-replication-job-id",
42503 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
42504 "type" : "string"
42505 },
42506 "node" : {
42507 "description" : "The cluster node name.",
42508 "format" : "pve-node",
42509 "type" : "string",
42510 "typetext" : "<string>"
42511 }
42512 }
42513 },
42514 "permissions" : {
42515 "check" : [
42516 "perm",
42517 "/storage",
42518 [
42519 "Datastore.Allocate"
42520 ]
42521 ]
42522 },
42523 "protected" : 1,
42524 "proxyto" : "node",
42525 "returns" : {
42526 "type" : "string"
42527 }
42528 }
42529 },
42530 "leaf" : 1,
42531 "path" : "/nodes/{node}/replication/{id}/schedule_now",
42532 "text" : "schedule_now"
42533 }
42534 ],
42535 "info" : {
42536 "GET" : {
e9cd3bd4 42537 "allowtoken" : 1,
5d9c884c
DM
42538 "description" : "Directory index.",
42539 "method" : "GET",
42540 "name" : "index",
42541 "parameters" : {
42542 "additionalProperties" : 0,
42543 "properties" : {
42544 "id" : {
42545 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
42546 "format" : "pve-replication-job-id",
42547 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
42548 "type" : "string"
42549 },
42550 "node" : {
42551 "description" : "The cluster node name.",
42552 "format" : "pve-node",
42553 "type" : "string",
42554 "typetext" : "<string>"
42555 }
42556 }
42557 },
42558 "permissions" : {
42559 "user" : "all"
42560 },
42561 "returns" : {
42562 "items" : {
42563 "properties" : {},
42564 "type" : "object"
42565 },
42566 "links" : [
42567 {
42568 "href" : "{name}",
42569 "rel" : "child"
42570 }
42571 ],
42572 "type" : "array"
42573 }
42574 }
42575 },
42576 "leaf" : 0,
42577 "path" : "/nodes/{node}/replication/{id}",
42578 "text" : "{id}"
42579 }
42580 ],
42581 "info" : {
42582 "GET" : {
e9cd3bd4 42583 "allowtoken" : 1,
5d9c884c
DM
42584 "description" : "List status of all replication jobs on this node.",
42585 "method" : "GET",
42586 "name" : "status",
42587 "parameters" : {
42588 "additionalProperties" : 0,
42589 "properties" : {
42590 "guest" : {
42591 "description" : "Only list replication jobs for this guest.",
42592 "format" : "pve-vmid",
42593 "minimum" : 1,
42594 "optional" : 1,
42595 "type" : "integer",
42596 "typetext" : "<integer> (1 - N)"
42597 },
42598 "node" : {
42599 "description" : "The cluster node name.",
42600 "format" : "pve-node",
42601 "type" : "string",
42602 "typetext" : "<string>"
42603 }
42604 }
42605 },
42606 "permissions" : {
42607 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
42608 "user" : "all"
42609 },
42610 "protected" : 1,
42611 "proxyto" : "node",
42612 "returns" : {
42613 "items" : {
42614 "properties" : {
42615 "id" : {
42616 "type" : "string"
42617 }
42618 },
42619 "type" : "object"
42620 },
42621 "links" : [
42622 {
42623 "href" : "{id}",
42624 "rel" : "child"
42625 }
42626 ],
42627 "type" : "array"
42628 }
42629 }
42630 },
42631 "leaf" : 0,
42632 "path" : "/nodes/{node}/replication",
42633 "text" : "replication"
42634 },
a9a8e3d1
DM
42635 {
42636 "children" : [
42637 {
42638 "children" : [
42639 {
42640 "info" : {
42641 "DELETE" : {
e9cd3bd4 42642 "allowtoken" : 1,
a9a8e3d1
DM
42643 "description" : "Revoke existing certificate from CA.",
42644 "method" : "DELETE",
42645 "name" : "revoke_certificate",
42646 "parameters" : {
42647 "additionalProperties" : 0,
42648 "properties" : {
42649 "node" : {
42650 "description" : "The cluster node name.",
42651 "format" : "pve-node",
42652 "type" : "string",
42653 "typetext" : "<string>"
42654 }
42655 }
42656 },
ac70d7d1
TL
42657 "permissions" : {
42658 "check" : [
42659 "perm",
42660 "/nodes/{node}",
42661 [
42662 "Sys.Modify"
42663 ]
42664 ]
42665 },
a9a8e3d1
DM
42666 "protected" : 1,
42667 "proxyto" : "node",
42668 "returns" : {
42669 "type" : "string"
42670 }
42671 },
42672 "POST" : {
e9cd3bd4 42673 "allowtoken" : 1,
a9a8e3d1
DM
42674 "description" : "Order a new certificate from ACME-compatible CA.",
42675 "method" : "POST",
42676 "name" : "new_certificate",
42677 "parameters" : {
42678 "additionalProperties" : 0,
42679 "properties" : {
42680 "force" : {
42681 "default" : 0,
42682 "description" : "Overwrite existing custom certificate.",
42683 "optional" : 1,
42684 "type" : "boolean",
42685 "typetext" : "<boolean>"
42686 },
42687 "node" : {
42688 "description" : "The cluster node name.",
42689 "format" : "pve-node",
42690 "type" : "string",
42691 "typetext" : "<string>"
42692 }
42693 }
42694 },
ac70d7d1
TL
42695 "permissions" : {
42696 "check" : [
42697 "perm",
42698 "/nodes/{node}",
42699 [
42700 "Sys.Modify"
42701 ]
42702 ]
42703 },
a9a8e3d1
DM
42704 "protected" : 1,
42705 "proxyto" : "node",
42706 "returns" : {
42707 "type" : "string"
42708 }
42709 },
42710 "PUT" : {
e9cd3bd4 42711 "allowtoken" : 1,
a9a8e3d1
DM
42712 "description" : "Renew existing certificate from CA.",
42713 "method" : "PUT",
42714 "name" : "renew_certificate",
42715 "parameters" : {
42716 "additionalProperties" : 0,
42717 "properties" : {
42718 "force" : {
42719 "default" : 0,
42720 "description" : "Force renewal even if expiry is more than 30 days away.",
42721 "optional" : 1,
42722 "type" : "boolean",
42723 "typetext" : "<boolean>"
42724 },
42725 "node" : {
42726 "description" : "The cluster node name.",
42727 "format" : "pve-node",
42728 "type" : "string",
42729 "typetext" : "<string>"
42730 }
42731 }
42732 },
ac70d7d1
TL
42733 "permissions" : {
42734 "check" : [
42735 "perm",
42736 "/nodes/{node}",
42737 [
42738 "Sys.Modify"
42739 ]
42740 ]
42741 },
a9a8e3d1
DM
42742 "protected" : 1,
42743 "proxyto" : "node",
42744 "returns" : {
42745 "type" : "string"
42746 }
42747 }
42748 },
42749 "leaf" : 1,
42750 "path" : "/nodes/{node}/certificates/acme/certificate",
42751 "text" : "certificate"
42752 }
42753 ],
42754 "info" : {
42755 "GET" : {
e9cd3bd4 42756 "allowtoken" : 1,
a9a8e3d1
DM
42757 "description" : "ACME index.",
42758 "method" : "GET",
42759 "name" : "index",
42760 "parameters" : {
42761 "additionalProperties" : 0,
42762 "properties" : {
42763 "node" : {
42764 "description" : "The cluster node name.",
42765 "format" : "pve-node",
42766 "type" : "string",
42767 "typetext" : "<string>"
42768 }
42769 }
42770 },
42771 "permissions" : {
42772 "user" : "all"
42773 },
42774 "returns" : {
42775 "items" : {
42776 "properties" : {},
42777 "type" : "object"
42778 },
42779 "links" : [
42780 {
42781 "href" : "{name}",
42782 "rel" : "child"
42783 }
42784 ],
42785 "type" : "array"
42786 }
42787 }
42788 },
42789 "leaf" : 0,
42790 "path" : "/nodes/{node}/certificates/acme",
42791 "text" : "acme"
42792 },
42793 {
42794 "info" : {
42795 "GET" : {
e9cd3bd4 42796 "allowtoken" : 1,
a9a8e3d1
DM
42797 "description" : "Get information about node's certificates.",
42798 "method" : "GET",
42799 "name" : "info",
42800 "parameters" : {
42801 "additionalProperties" : 0,
42802 "properties" : {
42803 "node" : {
42804 "description" : "The cluster node name.",
42805 "format" : "pve-node",
42806 "type" : "string",
42807 "typetext" : "<string>"
42808 }
42809 }
42810 },
42811 "permissions" : {
42812 "user" : "all"
42813 },
42814 "proxyto" : "node",
42815 "returns" : {
42816 "items" : {
42817 "properties" : {
42818 "filename" : {
42819 "optional" : 1,
42820 "type" : "string"
42821 },
42822 "fingerprint" : {
42823 "description" : "Certificate SHA 256 fingerprint.",
42824 "optional" : 1,
42825 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
42826 "type" : "string"
42827 },
42828 "issuer" : {
42829 "description" : "Certificate issuer name.",
42830 "optional" : 1,
42831 "type" : "string"
42832 },
42833 "notafter" : {
42834 "description" : "Certificate's notAfter timestamp (UNIX epoch).",
42835 "optional" : 1,
4d47f125 42836 "renderer" : "timestamp",
a9a8e3d1
DM
42837 "type" : "integer"
42838 },
42839 "notbefore" : {
42840 "description" : "Certificate's notBefore timestamp (UNIX epoch).",
42841 "optional" : 1,
4d47f125 42842 "renderer" : "timestamp",
a9a8e3d1
DM
42843 "type" : "integer"
42844 },
42845 "pem" : {
42846 "description" : "Certificate in PEM format",
42847 "format" : "pem-certificate",
42848 "optional" : 1,
42849 "type" : "string"
42850 },
1c532546
TL
42851 "public-key-bits" : {
42852 "description" : "Certificate's public key size",
42853 "optional" : 1,
42854 "type" : "integer"
42855 },
42856 "public-key-type" : {
42857 "description" : "Certificate's public key algorithm",
42858 "optional" : 1,
42859 "type" : "string"
42860 },
a9a8e3d1
DM
42861 "san" : {
42862 "description" : "List of Certificate's SubjectAlternativeName entries.",
42863 "items" : {
42864 "type" : "string"
42865 },
42866 "optional" : 1,
4d47f125 42867 "renderer" : "yaml",
a9a8e3d1
DM
42868 "type" : "array"
42869 },
42870 "subject" : {
42871 "description" : "Certificate subject name.",
42872 "optional" : 1,
42873 "type" : "string"
42874 }
42875 },
42876 "type" : "object"
42877 },
42878 "type" : "array"
42879 }
42880 }
42881 },
42882 "leaf" : 1,
42883 "path" : "/nodes/{node}/certificates/info",
42884 "text" : "info"
42885 },
42886 {
42887 "info" : {
42888 "DELETE" : {
e9cd3bd4 42889 "allowtoken" : 1,
a9a8e3d1
DM
42890 "description" : "DELETE custom certificate chain and key.",
42891 "method" : "DELETE",
42892 "name" : "remove_custom_cert",
42893 "parameters" : {
42894 "additionalProperties" : 0,
42895 "properties" : {
42896 "node" : {
42897 "description" : "The cluster node name.",
42898 "format" : "pve-node",
42899 "type" : "string",
42900 "typetext" : "<string>"
42901 },
42902 "restart" : {
42903 "default" : 0,
42904 "description" : "Restart pveproxy.",
42905 "optional" : 1,
42906 "type" : "boolean",
42907 "typetext" : "<boolean>"
42908 }
42909 }
42910 },
ac70d7d1
TL
42911 "permissions" : {
42912 "check" : [
42913 "perm",
42914 "/nodes/{node}",
42915 [
42916 "Sys.Modify"
42917 ]
42918 ]
42919 },
a9a8e3d1
DM
42920 "protected" : 1,
42921 "proxyto" : "node",
42922 "returns" : {
42923 "type" : "null"
42924 }
42925 },
42926 "POST" : {
e9cd3bd4 42927 "allowtoken" : 1,
a9a8e3d1
DM
42928 "description" : "Upload or update custom certificate chain and key.",
42929 "method" : "POST",
42930 "name" : "upload_custom_cert",
42931 "parameters" : {
42932 "additionalProperties" : 0,
42933 "properties" : {
42934 "certificates" : {
42935 "description" : "PEM encoded certificate (chain).",
42936 "format" : "pem-certificate-chain",
42937 "type" : "string",
42938 "typetext" : "<string>"
42939 },
42940 "force" : {
42941 "default" : 0,
42942 "description" : "Overwrite existing custom or ACME certificate files.",
42943 "optional" : 1,
42944 "type" : "boolean",
42945 "typetext" : "<boolean>"
42946 },
42947 "key" : {
42948 "description" : "PEM encoded private key.",
42949 "format" : "pem-string",
42950 "optional" : 1,
42951 "type" : "string",
42952 "typetext" : "<string>"
42953 },
42954 "node" : {
42955 "description" : "The cluster node name.",
42956 "format" : "pve-node",
42957 "type" : "string",
42958 "typetext" : "<string>"
42959 },
42960 "restart" : {
42961 "default" : 0,
42962 "description" : "Restart pveproxy.",
42963 "optional" : 1,
42964 "type" : "boolean",
42965 "typetext" : "<boolean>"
42966 }
42967 }
42968 },
ac70d7d1
TL
42969 "permissions" : {
42970 "check" : [
42971 "perm",
42972 "/nodes/{node}",
42973 [
42974 "Sys.Modify"
42975 ]
42976 ]
42977 },
a9a8e3d1
DM
42978 "protected" : 1,
42979 "proxyto" : "node",
42980 "returns" : {
42981 "properties" : {
42982 "filename" : {
42983 "optional" : 1,
42984 "type" : "string"
42985 },
42986 "fingerprint" : {
42987 "description" : "Certificate SHA 256 fingerprint.",
42988 "optional" : 1,
42989 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
42990 "type" : "string"
42991 },
42992 "issuer" : {
42993 "description" : "Certificate issuer name.",
42994 "optional" : 1,
42995 "type" : "string"
42996 },
42997 "notafter" : {
42998 "description" : "Certificate's notAfter timestamp (UNIX epoch).",
42999 "optional" : 1,
4d47f125 43000 "renderer" : "timestamp",
a9a8e3d1
DM
43001 "type" : "integer"
43002 },
43003 "notbefore" : {
43004 "description" : "Certificate's notBefore timestamp (UNIX epoch).",
43005 "optional" : 1,
4d47f125 43006 "renderer" : "timestamp",
a9a8e3d1
DM
43007 "type" : "integer"
43008 },
43009 "pem" : {
43010 "description" : "Certificate in PEM format",
43011 "format" : "pem-certificate",
43012 "optional" : 1,
43013 "type" : "string"
43014 },
1c532546
TL
43015 "public-key-bits" : {
43016 "description" : "Certificate's public key size",
43017 "optional" : 1,
43018 "type" : "integer"
43019 },
43020 "public-key-type" : {
43021 "description" : "Certificate's public key algorithm",
43022 "optional" : 1,
43023 "type" : "string"
43024 },
a9a8e3d1
DM
43025 "san" : {
43026 "description" : "List of Certificate's SubjectAlternativeName entries.",
43027 "items" : {
43028 "type" : "string"
43029 },
43030 "optional" : 1,
4d47f125 43031 "renderer" : "yaml",
a9a8e3d1
DM
43032 "type" : "array"
43033 },
43034 "subject" : {
43035 "description" : "Certificate subject name.",
43036 "optional" : 1,
43037 "type" : "string"
43038 }
43039 },
43040 "type" : "object"
43041 }
43042 }
43043 },
43044 "leaf" : 1,
43045 "path" : "/nodes/{node}/certificates/custom",
43046 "text" : "custom"
43047 }
43048 ],
43049 "info" : {
43050 "GET" : {
e9cd3bd4 43051 "allowtoken" : 1,
a9a8e3d1
DM
43052 "description" : "Node index.",
43053 "method" : "GET",
43054 "name" : "index",
43055 "parameters" : {
43056 "additionalProperties" : 0,
43057 "properties" : {
43058 "node" : {
43059 "description" : "The cluster node name.",
43060 "format" : "pve-node",
43061 "type" : "string",
43062 "typetext" : "<string>"
43063 }
43064 }
43065 },
43066 "permissions" : {
43067 "user" : "all"
43068 },
43069 "returns" : {
43070 "items" : {
43071 "properties" : {},
43072 "type" : "object"
43073 },
43074 "links" : [
43075 {
43076 "href" : "{name}",
43077 "rel" : "child"
43078 }
43079 ],
43080 "type" : "array"
43081 }
43082 }
43083 },
43084 "leaf" : 0,
c5aa7e14
TL
43085 "path" : "/nodes/{node}/certificates",
43086 "text" : "certificates"
43087 },
43088 {
43089 "info" : {
43090 "GET" : {
43091 "allowtoken" : 1,
43092 "description" : "Get node configuration options.",
43093 "method" : "GET",
43094 "name" : "get_config",
43095 "parameters" : {
43096 "additionalProperties" : 0,
43097 "properties" : {
43098 "node" : {
43099 "description" : "The cluster node name.",
43100 "format" : "pve-node",
43101 "type" : "string",
43102 "typetext" : "<string>"
43103 },
43104 "property" : {
43105 "default" : "all",
43106 "description" : "Return only a specific property from the node configuration.",
43107 "enum" : [
43108 "acme",
43109 "acmedomain0",
43110 "acmedomain1",
43111 "acmedomain2",
43112 "acmedomain3",
43113 "acmedomain4",
43114 "acmedomain5",
43115 "description",
43116 "startall-onboot-delay",
43117 "wakeonlan"
43118 ],
43119 "optional" : 1,
43120 "type" : "string"
43121 }
43122 }
43123 },
43124 "permissions" : {
43125 "check" : [
43126 "perm",
43127 "/",
43128 [
43129 "Sys.Audit"
43130 ]
43131 ]
43132 },
43133 "proxyto" : "node",
43134 "returns" : {
c30bb419
TL
43135 "properties" : {
43136 "acme" : {
43137 "description" : "Node specific ACME settings.",
43138 "format" : {
43139 "account" : {
43140 "default" : "default",
43141 "description" : "ACME account config file name.",
43142 "format" : "pve-configid",
43143 "format_description" : "name",
43144 "optional" : 1,
43145 "type" : "string"
43146 },
43147 "domains" : {
43148 "description" : "List of domains for this node's ACME certificate",
43149 "format" : "pve-acme-domain-list",
43150 "format_description" : "domain[;domain;...]",
43151 "optional" : 1,
43152 "type" : "string"
43153 }
43154 },
43155 "optional" : 1,
43156 "type" : "string"
43157 },
43158 "acmedomain[n]" : {
43159 "description" : "ACME domain and validation plugin",
43160 "format" : {
43161 "alias" : {
43162 "description" : "Alias for the Domain to verify ACME Challenge over DNS",
43163 "format" : "pve-acme-alias",
43164 "format_description" : "domain",
43165 "optional" : 1,
43166 "type" : "string"
43167 },
43168 "domain" : {
43169 "default_key" : 1,
43170 "description" : "domain for this node's ACME certificate",
43171 "format" : "pve-acme-domain",
43172 "format_description" : "domain",
43173 "type" : "string"
43174 },
43175 "plugin" : {
43176 "default" : "standalone",
43177 "description" : "The ACME plugin ID",
43178 "format" : "pve-configid",
43179 "format_description" : "name of the plugin configuration",
43180 "optional" : 1,
43181 "type" : "string"
43182 }
43183 },
43184 "optional" : 1,
43185 "type" : "string"
43186 },
43187 "description" : {
43188 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
43189 "maxLength" : 65536,
43190 "optional" : 1,
43191 "type" : "string"
43192 },
43193 "digest" : {
43194 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
43195 "maxLength" : 40,
43196 "optional" : 1,
43197 "type" : "string"
43198 },
43199 "startall-onboot-delay" : {
43200 "default" : 0,
43201 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
43202 "maximum" : 300,
43203 "minimum" : 0,
43204 "optional" : 1,
43205 "type" : "integer"
43206 },
43207 "wakeonlan" : {
43208 "description" : "MAC address for wake on LAN",
43209 "format" : "mac-addr",
43210 "optional" : 1,
43211 "type" : "string"
43212 }
43213 },
c5aa7e14
TL
43214 "type" : "object"
43215 }
43216 },
43217 "PUT" : {
43218 "allowtoken" : 1,
43219 "description" : "Set node configuration options.",
43220 "method" : "PUT",
43221 "name" : "set_options",
43222 "parameters" : {
43223 "additionalProperties" : 0,
43224 "properties" : {
43225 "acme" : {
43226 "description" : "Node specific ACME settings.",
43227 "format" : {
43228 "account" : {
43229 "default" : "default",
43230 "description" : "ACME account config file name.",
43231 "format" : "pve-configid",
43232 "format_description" : "name",
43233 "optional" : 1,
43234 "type" : "string"
43235 },
43236 "domains" : {
43237 "description" : "List of domains for this node's ACME certificate",
43238 "format" : "pve-acme-domain-list",
43239 "format_description" : "domain[;domain;...]",
43240 "optional" : 1,
43241 "type" : "string"
43242 }
43243 },
43244 "optional" : 1,
43245 "type" : "string",
43246 "typetext" : "[account=<name>] [,domains=<domain[;domain;...]>]"
43247 },
43248 "acmedomain[n]" : {
43249 "description" : "ACME domain and validation plugin",
43250 "format" : {
43251 "alias" : {
43252 "description" : "Alias for the Domain to verify ACME Challenge over DNS",
ac70d7d1 43253 "format" : "pve-acme-alias",
c5aa7e14
TL
43254 "format_description" : "domain",
43255 "optional" : 1,
43256 "type" : "string"
43257 },
43258 "domain" : {
43259 "default_key" : 1,
43260 "description" : "domain for this node's ACME certificate",
43261 "format" : "pve-acme-domain",
43262 "format_description" : "domain",
43263 "type" : "string"
43264 },
43265 "plugin" : {
43266 "default" : "standalone",
43267 "description" : "The ACME plugin ID",
43268 "format" : "pve-configid",
43269 "format_description" : "name of the plugin configuration",
43270 "optional" : 1,
43271 "type" : "string"
43272 }
43273 },
43274 "optional" : 1,
43275 "type" : "string",
43276 "typetext" : "[domain=]<domain> [,alias=<domain>] [,plugin=<name of the plugin configuration>]"
43277 },
43278 "delete" : {
43279 "description" : "A list of settings you want to delete.",
43280 "format" : "pve-configid-list",
43281 "optional" : 1,
43282 "type" : "string",
43283 "typetext" : "<string>"
43284 },
43285 "description" : {
0695fdaf
TL
43286 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
43287 "maxLength" : 65536,
c5aa7e14
TL
43288 "optional" : 1,
43289 "type" : "string",
43290 "typetext" : "<string>"
43291 },
43292 "digest" : {
43293 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
43294 "maxLength" : 40,
43295 "optional" : 1,
43296 "type" : "string",
43297 "typetext" : "<string>"
43298 },
43299 "node" : {
43300 "description" : "The cluster node name.",
43301 "format" : "pve-node",
43302 "type" : "string",
43303 "typetext" : "<string>"
43304 },
43305 "startall-onboot-delay" : {
43306 "default" : 0,
43307 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
43308 "maximum" : 300,
43309 "minimum" : 0,
43310 "optional" : 1,
43311 "type" : "integer",
43312 "typetext" : "<integer> (0 - 300)"
43313 },
43314 "wakeonlan" : {
43315 "description" : "MAC address for wake on LAN",
43316 "format" : "mac-addr",
43317 "optional" : 1,
43318 "type" : "string",
43319 "typetext" : "<string>"
43320 }
43321 }
43322 },
43323 "permissions" : {
43324 "check" : [
43325 "perm",
43326 "/",
43327 [
43328 "Sys.Modify"
43329 ]
43330 ]
43331 },
43332 "protected" : 1,
43333 "proxyto" : "node",
43334 "returns" : {
43335 "type" : "null"
43336 }
43337 }
43338 },
43339 "leaf" : 1,
43340 "path" : "/nodes/{node}/config",
43341 "text" : "config"
43342 },
43343 {
43344 "children" : [
43345 {
43346 "children" : [
43347 {
43348 "children" : [
43349 {
43350 "info" : {
43351 "GET" : {
43352 "allowtoken" : 1,
43353 "description" : "List zone content.",
43354 "method" : "GET",
43355 "name" : "index",
43356 "parameters" : {
43357 "additionalProperties" : 0,
43358 "properties" : {
43359 "node" : {
43360 "description" : "The cluster node name.",
43361 "format" : "pve-node",
43362 "type" : "string",
43363 "typetext" : "<string>"
43364 },
43365 "zone" : {
43366 "description" : "The SDN zone object identifier.",
43367 "format" : "pve-sdn-zone-id",
43368 "type" : "string",
43369 "typetext" : "<string>"
43370 }
43371 }
43372 },
43373 "permissions" : {
43374 "check" : [
43375 "perm",
43376 "/sdn/zones/{zone}",
43377 [
43378 "SDN.Audit"
43379 ],
43380 "any",
43381 1
43382 ]
43383 },
43384 "protected" : 1,
43385 "proxyto" : "node",
43386 "returns" : {
43387 "items" : {
43388 "properties" : {
43389 "status" : {
43390 "description" : "Status.",
43391 "optional" : 1,
43392 "type" : "string"
43393 },
43394 "statusmsg" : {
43395 "description" : "Status details",
43396 "optional" : 1,
43397 "type" : "string"
43398 },
43399 "vnet" : {
43400 "description" : "Vnet identifier.",
43401 "type" : "string"
43402 }
43403 },
43404 "type" : "object"
43405 },
43406 "links" : [
43407 {
43408 "href" : "{vnet}",
43409 "rel" : "child"
43410 }
43411 ],
43412 "type" : "array"
43413 }
43414 }
43415 },
43416 "leaf" : 1,
43417 "path" : "/nodes/{node}/sdn/zones/{zone}/content",
43418 "text" : "content"
43419 }
43420 ],
43421 "info" : {
43422 "GET" : {
43423 "allowtoken" : 1,
43424 "description" : "",
43425 "method" : "GET",
43426 "name" : "diridx",
43427 "parameters" : {
43428 "additionalProperties" : 0,
43429 "properties" : {
43430 "node" : {
43431 "description" : "The cluster node name.",
43432 "format" : "pve-node",
43433 "type" : "string",
43434 "typetext" : "<string>"
43435 },
43436 "zone" : {
43437 "description" : "The SDN zone object identifier.",
43438 "format" : "pve-sdn-zone-id",
43439 "type" : "string",
43440 "typetext" : "<string>"
43441 }
43442 }
43443 },
43444 "permissions" : {
43445 "check" : [
43446 "perm",
43447 "/sdn/zones/{zone}",
43448 [
43449 "SDN.Audit"
43450 ],
43451 "any",
43452 1
43453 ]
43454 },
43455 "returns" : {
43456 "items" : {
43457 "properties" : {
43458 "subdir" : {
43459 "type" : "string"
43460 }
43461 },
43462 "type" : "object"
43463 },
43464 "links" : [
43465 {
43466 "href" : "{subdir}",
43467 "rel" : "child"
43468 }
43469 ],
43470 "type" : "array"
43471 }
43472 }
43473 },
43474 "leaf" : 0,
43475 "path" : "/nodes/{node}/sdn/zones/{zone}",
43476 "text" : "{zone}"
43477 }
43478 ],
43479 "info" : {
43480 "GET" : {
43481 "allowtoken" : 1,
43482 "description" : "Get status for all zones.",
43483 "method" : "GET",
43484 "name" : "index",
43485 "parameters" : {
43486 "additionalProperties" : 0,
43487 "properties" : {
43488 "node" : {
43489 "description" : "The cluster node name.",
43490 "format" : "pve-node",
43491 "type" : "string",
43492 "typetext" : "<string>"
43493 }
43494 }
43495 },
43496 "permissions" : {
43497 "description" : "Only list entries where you have 'SDN.Audit'",
43498 "user" : "all"
43499 },
43500 "protected" : 1,
43501 "proxyto" : "node",
43502 "returns" : {
43503 "items" : {
43504 "properties" : {
43505 "status" : {
43506 "description" : "Status of zone",
ac70d7d1
TL
43507 "enum" : [
43508 "available",
43509 "pending",
43510 "error"
43511 ],
c5aa7e14
TL
43512 "type" : "string"
43513 },
43514 "zone" : {
43515 "description" : "The SDN zone object identifier.",
43516 "format" : "pve-sdn-zone-id",
43517 "type" : "string"
43518 }
43519 },
43520 "type" : "object"
43521 },
43522 "links" : [
43523 {
43524 "href" : "{zone}",
43525 "rel" : "child"
43526 }
43527 ],
43528 "type" : "array"
43529 }
43530 }
43531 },
43532 "leaf" : 0,
43533 "path" : "/nodes/{node}/sdn/zones",
43534 "text" : "zones"
43535 }
43536 ],
43537 "info" : {
43538 "GET" : {
43539 "allowtoken" : 1,
43540 "description" : "SDN index.",
43541 "method" : "GET",
43542 "name" : "sdnindex",
43543 "parameters" : {
43544 "additionalProperties" : 0,
43545 "properties" : {
43546 "node" : {
43547 "description" : "The cluster node name.",
43548 "format" : "pve-node",
43549 "type" : "string",
43550 "typetext" : "<string>"
43551 }
43552 }
43553 },
43554 "permissions" : {
43555 "user" : "all"
43556 },
43557 "returns" : {
43558 "items" : {
43559 "properties" : {},
43560 "type" : "object"
43561 },
43562 "links" : [
43563 {
43564 "href" : "{name}",
43565 "rel" : "child"
43566 }
43567 ],
43568 "type" : "array"
43569 }
43570 }
43571 },
43572 "leaf" : 0,
43573 "path" : "/nodes/{node}/sdn",
43574 "text" : "sdn"
a9a8e3d1 43575 },
56122987 43576 {
56122987
DM
43577 "info" : {
43578 "GET" : {
e9cd3bd4 43579 "allowtoken" : 1,
44660702
DM
43580 "description" : "API version details",
43581 "method" : "GET",
43582 "name" : "version",
56122987 43583 "parameters" : {
44660702 43584 "additionalProperties" : 0,
56122987
DM
43585 "properties" : {
43586 "node" : {
56122987 43587 "description" : "The cluster node name.",
44660702 43588 "format" : "pve-node",
013dc89f
DM
43589 "type" : "string",
43590 "typetext" : "<string>"
56122987 43591 }
44660702 43592 }
56122987 43593 },
56122987 43594 "permissions" : {
7aacca6f 43595 "user" : "all"
56122987 43596 },
56122987 43597 "proxyto" : "node",
56122987 43598 "returns" : {
56122987 43599 "properties" : {
44660702 43600 "release" : {
1e3f8156 43601 "description" : "The current installed Proxmox VE Release",
56122987
DM
43602 "type" : "string"
43603 },
44660702 43604 "repoid" : {
1e3f8156 43605 "description" : "The short git commit hash ID from which this version was build",
7aacca6f
DM
43606 "type" : "string"
43607 },
43608 "version" : {
1e3f8156 43609 "description" : "The current installed pve-manager package version",
7aacca6f
DM
43610 "type" : "string"
43611 }
44660702
DM
43612 },
43613 "type" : "object"
7aacca6f 43614 }
56122987
DM
43615 }
43616 },
56122987 43617 "leaf" : 1,
44660702
DM
43618 "path" : "/nodes/{node}/version",
43619 "text" : "version"
56122987
DM
43620 },
43621 {
56122987
DM
43622 "info" : {
43623 "GET" : {
e9cd3bd4 43624 "allowtoken" : 1,
7aacca6f 43625 "description" : "Read node status",
44660702 43626 "method" : "GET",
7aacca6f 43627 "name" : "status",
56122987 43628 "parameters" : {
44660702 43629 "additionalProperties" : 0,
56122987
DM
43630 "properties" : {
43631 "node" : {
7aacca6f 43632 "description" : "The cluster node name.",
44660702 43633 "format" : "pve-node",
013dc89f
DM
43634 "type" : "string",
43635 "typetext" : "<string>"
56122987 43636 }
44660702 43637 }
56122987 43638 },
56122987
DM
43639 "permissions" : {
43640 "check" : [
43641 "perm",
43642 "/nodes/{node}",
43643 [
43644 "Sys.Audit"
43645 ]
43646 ]
44660702
DM
43647 },
43648 "proxyto" : "node",
43649 "returns" : {
44660702 43650 "type" : "object"
7aacca6f
DM
43651 }
43652 },
43653 "POST" : {
e9cd3bd4 43654 "allowtoken" : 1,
44660702
DM
43655 "description" : "Reboot or shutdown a node.",
43656 "method" : "POST",
7aacca6f 43657 "name" : "node_cmd",
56122987 43658 "parameters" : {
44660702 43659 "additionalProperties" : 0,
56122987 43660 "properties" : {
7aacca6f
DM
43661 "command" : {
43662 "description" : "Specify the command.",
56122987 43663 "enum" : [
7aacca6f
DM
43664 "reboot",
43665 "shutdown"
56122987
DM
43666 ],
43667 "type" : "string"
44660702
DM
43668 },
43669 "node" : {
43670 "description" : "The cluster node name.",
43671 "format" : "pve-node",
013dc89f
DM
43672 "type" : "string",
43673 "typetext" : "<string>"
56122987 43674 }
44660702 43675 }
7aacca6f 43676 },
7aacca6f
DM
43677 "permissions" : {
43678 "check" : [
43679 "perm",
43680 "/nodes/{node}",
43681 [
43682 "Sys.PowerMgmt"
43683 ]
43684 ]
43685 },
44660702 43686 "protected" : 1,
7aacca6f 43687 "proxyto" : "node",
7aacca6f
DM
43688 "returns" : {
43689 "type" : "null"
56122987
DM
43690 }
43691 }
43692 },
7aacca6f 43693 "leaf" : 1,
44660702
DM
43694 "path" : "/nodes/{node}/status",
43695 "text" : "status"
56122987
DM
43696 },
43697 {
56122987
DM
43698 "info" : {
43699 "GET" : {
e9cd3bd4 43700 "allowtoken" : 1,
44660702
DM
43701 "description" : "Read tap/vm network device interface counters",
43702 "method" : "GET",
43703 "name" : "netstat",
43704 "parameters" : {
43705 "additionalProperties" : 0,
43706 "properties" : {
43707 "node" : {
43708 "description" : "The cluster node name.",
43709 "format" : "pve-node",
013dc89f
DM
43710 "type" : "string",
43711 "typetext" : "<string>"
44660702 43712 }
56122987
DM
43713 }
43714 },
43715 "permissions" : {
43716 "check" : [
43717 "perm",
43718 "/nodes/{node}",
43719 [
7aacca6f 43720 "Sys.Audit"
56122987
DM
43721 ]
43722 ]
43723 },
7aacca6f 43724 "proxyto" : "node",
44660702
DM
43725 "returns" : {
43726 "items" : {
43727 "properties" : {},
43728 "type" : "object"
43729 },
43730 "type" : "array"
43731 }
7aacca6f
DM
43732 }
43733 },
44660702
DM
43734 "leaf" : 1,
43735 "path" : "/nodes/{node}/netstat",
7aacca6f
DM
43736 "text" : "netstat"
43737 },
43738 {
43739 "info" : {
43740 "POST" : {
e9cd3bd4 43741 "allowtoken" : 1,
7aacca6f 43742 "description" : "Execute multiple commands in order.",
7aacca6f 43743 "method" : "POST",
7aacca6f 43744 "name" : "execute",
56122987
DM
43745 "parameters" : {
43746 "additionalProperties" : 0,
43747 "properties" : {
7aacca6f
DM
43748 "commands" : {
43749 "description" : "JSON encoded array of commands.",
de786b48 43750 "format" : "pve-command-batch",
013dc89f 43751 "type" : "string",
de786b48
TL
43752 "typetext" : "<string>",
43753 "verbose_description" : "JSON encoded array of commands, where each command is an object with the following properties:\n args: <object>\n\n\t A set of parameter names and their values.\n\n method: (GET|POST|PUT|DELETE)\n\n\t A method related to the API endpoint (GET, POST etc.).\n\n path: <string>\n\n\t A relative path to an API endpoint on this node.\n\n"
56122987
DM
43754 },
43755 "node" : {
44660702 43756 "description" : "The cluster node name.",
56122987 43757 "format" : "pve-node",
013dc89f
DM
43758 "type" : "string",
43759 "typetext" : "<string>"
56122987
DM
43760 }
43761 }
44660702
DM
43762 },
43763 "permissions" : {
43764 "check" : [
43765 "perm",
43766 "/nodes/{node}",
43767 [
43768 "Sys.Audit"
43769 ]
43770 ]
43771 },
43772 "protected" : 1,
43773 "proxyto" : "node",
43774 "returns" : {
de786b48
TL
43775 "items" : {
43776 "properties" : {},
43777 "type" : "object"
43778 },
44660702 43779 "type" : "array"
56122987
DM
43780 }
43781 }
43782 },
56122987 43783 "leaf" : 1,
44660702
DM
43784 "path" : "/nodes/{node}/execute",
43785 "text" : "execute"
56122987 43786 },
5f26e15b
TL
43787 {
43788 "info" : {
43789 "POST" : {
e9cd3bd4 43790 "allowtoken" : 1,
5f26e15b
TL
43791 "description" : "Try to wake a node via 'wake on LAN' network packet.",
43792 "method" : "POST",
43793 "name" : "wakeonlan",
43794 "parameters" : {
43795 "additionalProperties" : 0,
43796 "properties" : {
43797 "node" : {
43798 "description" : "target node for wake on LAN packet",
43799 "format" : "pve-node",
43800 "type" : "string",
43801 "typetext" : "<string>"
43802 }
43803 }
43804 },
43805 "permissions" : {
43806 "check" : [
43807 "perm",
43808 "/nodes/{node}",
43809 [
43810 "Sys.PowerMgmt"
43811 ]
43812 ]
43813 },
43814 "protected" : 1,
43815 "returns" : {
43816 "description" : "MAC address used to assemble the WoL magic packet.",
43817 "format" : "mac-addr",
43818 "type" : "string"
43819 }
43820 }
43821 },
43822 "leaf" : 1,
43823 "path" : "/nodes/{node}/wakeonlan",
43824 "text" : "wakeonlan"
43825 },
56122987
DM
43826 {
43827 "info" : {
7aacca6f 43828 "GET" : {
e9cd3bd4 43829 "allowtoken" : 1,
44660702
DM
43830 "description" : "Read node RRD statistics (returns PNG)",
43831 "method" : "GET",
7aacca6f 43832 "name" : "rrd",
56122987 43833 "parameters" : {
7aacca6f 43834 "additionalProperties" : 0,
56122987 43835 "properties" : {
44660702
DM
43836 "cf" : {
43837 "description" : "The RRD consolidation function",
43838 "enum" : [
43839 "AVERAGE",
43840 "MAX"
43841 ],
43842 "optional" : 1,
43843 "type" : "string"
43844 },
7aacca6f 43845 "ds" : {
7aacca6f 43846 "description" : "The list of datasources you want to display.",
44660702 43847 "format" : "pve-configid-list",
013dc89f
DM
43848 "type" : "string",
43849 "typetext" : "<string>"
44660702
DM
43850 },
43851 "node" : {
43852 "description" : "The cluster node name.",
43853 "format" : "pve-node",
013dc89f
DM
43854 "type" : "string",
43855 "typetext" : "<string>"
7aacca6f
DM
43856 },
43857 "timeframe" : {
43858 "description" : "Specify the time frame you are interested in.",
43859 "enum" : [
43860 "hour",
43861 "day",
43862 "week",
43863 "month",
43864 "year"
43865 ],
43866 "type" : "string"
56122987 43867 }
7aacca6f 43868 }
56122987 43869 },
56122987 43870 "permissions" : {
56122987
DM
43871 "check" : [
43872 "perm",
43873 "/nodes/{node}",
43874 [
7aacca6f 43875 "Sys.Audit"
56122987
DM
43876 ]
43877 ]
43878 },
7aacca6f 43879 "protected" : 1,
56122987 43880 "returns" : {
56122987 43881 "properties" : {
7aacca6f 43882 "filename" : {
56122987
DM
43883 "type" : "string"
43884 }
44660702
DM
43885 },
43886 "type" : "object"
43887 }
56122987
DM
43888 }
43889 },
44660702 43890 "leaf" : 1,
7aacca6f 43891 "path" : "/nodes/{node}/rrd",
44660702 43892 "text" : "rrd"
56122987
DM
43893 },
43894 {
43895 "info" : {
7aacca6f 43896 "GET" : {
e9cd3bd4 43897 "allowtoken" : 1,
44660702
DM
43898 "description" : "Read node RRD statistics",
43899 "method" : "GET",
7aacca6f 43900 "name" : "rrddata",
56122987 43901 "parameters" : {
44660702 43902 "additionalProperties" : 0,
56122987 43903 "properties" : {
7aacca6f 43904 "cf" : {
7aacca6f
DM
43905 "description" : "The RRD consolidation function",
43906 "enum" : [
43907 "AVERAGE",
43908 "MAX"
44660702
DM
43909 ],
43910 "optional" : 1,
43911 "type" : "string"
56122987
DM
43912 },
43913 "node" : {
44660702 43914 "description" : "The cluster node name.",
56122987 43915 "format" : "pve-node",
013dc89f
DM
43916 "type" : "string",
43917 "typetext" : "<string>"
56122987 43918 },
7aacca6f 43919 "timeframe" : {
7aacca6f
DM
43920 "description" : "Specify the time frame you are interested in.",
43921 "enum" : [
43922 "hour",
43923 "day",
43924 "week",
43925 "month",
43926 "year"
44660702
DM
43927 ],
43928 "type" : "string"
56122987 43929 }
56122987
DM
43930 }
43931 },
56122987
DM
43932 "permissions" : {
43933 "check" : [
43934 "perm",
43935 "/nodes/{node}",
43936 [
44660702 43937 "Sys.Audit"
56122987
DM
43938 ]
43939 ]
7aacca6f 43940 },
44660702 43941 "protected" : 1,
56122987 43942 "returns" : {
7aacca6f 43943 "items" : {
44660702 43944 "properties" : {},
7aacca6f
DM
43945 "type" : "object"
43946 },
43947 "type" : "array"
44660702
DM
43948 }
43949 }
43950 },
43951 "leaf" : 1,
43952 "path" : "/nodes/{node}/rrddata",
43953 "text" : "rrddata"
43954 },
43955 {
43956 "info" : {
43957 "GET" : {
e9cd3bd4 43958 "allowtoken" : 1,
44660702
DM
43959 "description" : "Read system log",
43960 "method" : "GET",
43961 "name" : "syslog",
56122987 43962 "parameters" : {
44660702 43963 "additionalProperties" : 0,
56122987 43964 "properties" : {
44660702
DM
43965 "limit" : {
43966 "minimum" : 0,
7aacca6f 43967 "optional" : 1,
4bd7df8b 43968 "type" : "integer",
013dc89f 43969 "typetext" : "<integer> (0 - N)"
7aacca6f 43970 },
56122987 43971 "node" : {
7aacca6f 43972 "description" : "The cluster node name.",
44660702 43973 "format" : "pve-node",
013dc89f
DM
43974 "type" : "string",
43975 "typetext" : "<string>"
56122987 43976 },
35a75dd3
DM
43977 "service" : {
43978 "description" : "Service ID",
43979 "maxLength" : 128,
43980 "optional" : 1,
43981 "type" : "string",
43982 "typetext" : "<string>"
43983 },
44660702
DM
43984 "since" : {
43985 "description" : "Display all log since this date-time string.",
43986 "optional" : 1,
43987 "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
43988 "type" : "string"
43989 },
43990 "start" : {
7aacca6f
DM
43991 "minimum" : 0,
43992 "optional" : 1,
4bd7df8b 43993 "type" : "integer",
013dc89f 43994 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
43995 },
43996 "until" : {
43997 "description" : "Display all log until this date-time string.",
7aacca6f 43998 "optional" : 1,
44660702 43999 "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
56122987
DM
44000 "type" : "string"
44001 }
44660702 44002 }
56122987 44003 },
44660702
DM
44004 "permissions" : {
44005 "check" : [
44006 "perm",
44007 "/nodes/{node}",
44008 [
44009 "Sys.Syslog"
44010 ]
44011 ]
44012 },
44013 "protected" : 1,
44014 "proxyto" : "node",
44015 "returns" : {
44016 "items" : {
44017 "properties" : {
44018 "n" : {
44019 "description" : "Line number",
44020 "type" : "integer"
44021 },
44022 "t" : {
44023 "description" : "Line text",
44024 "type" : "string"
44025 }
44026 },
44027 "type" : "object"
44028 },
44029 "type" : "array"
44030 }
56122987
DM
44031 }
44032 },
44660702
DM
44033 "leaf" : 1,
44034 "path" : "/nodes/{node}/syslog",
7aacca6f 44035 "text" : "syslog"
56122987 44036 },
bb4c8cf8
TL
44037 {
44038 "info" : {
44039 "GET" : {
e9cd3bd4 44040 "allowtoken" : 1,
bb4c8cf8
TL
44041 "description" : "Read Journal",
44042 "method" : "GET",
44043 "name" : "journal",
44044 "parameters" : {
44045 "additionalProperties" : 0,
44046 "properties" : {
44047 "endcursor" : {
44048 "description" : "End before the given Cursor. Conflicts with 'until'",
44049 "optional" : 1,
44050 "type" : "string",
44051 "typetext" : "<string>"
44052 },
44053 "lastentries" : {
44054 "description" : "Limit to the last X lines. Conflicts with a range.",
44055 "minimum" : 0,
44056 "optional" : 1,
44057 "type" : "integer",
44058 "typetext" : "<integer> (0 - N)"
44059 },
44060 "node" : {
44061 "description" : "The cluster node name.",
44062 "format" : "pve-node",
44063 "type" : "string",
44064 "typetext" : "<string>"
44065 },
44066 "since" : {
44067 "description" : "Display all log since this UNIX epoch. Conflicts with 'startcursor'.",
44068 "minimum" : 0,
44069 "optional" : 1,
44070 "type" : "integer",
44071 "typetext" : "<integer> (0 - N)"
44072 },
44073 "startcursor" : {
44074 "description" : "Start after the given Cursor. Conflicts with 'since'",
44075 "optional" : 1,
44076 "type" : "string",
44077 "typetext" : "<string>"
44078 },
44079 "until" : {
44080 "description" : "Display all log until this UNIX epoch. Conflicts with 'endcursor'.",
44081 "minimum" : 0,
44082 "optional" : 1,
44083 "type" : "integer",
44084 "typetext" : "<integer> (0 - N)"
44085 }
44086 }
44087 },
44088 "permissions" : {
44089 "check" : [
44090 "perm",
44091 "/nodes/{node}",
44092 [
44093 "Sys.Syslog"
44094 ]
44095 ]
44096 },
44097 "protected" : 1,
44098 "proxyto" : "node",
44099 "returns" : {
44100 "items" : {
44101 "type" : "string"
44102 },
44103 "type" : "array"
44104 }
44105 }
44106 },
44107 "leaf" : 1,
44108 "path" : "/nodes/{node}/journal",
44109 "text" : "journal"
44110 },
56122987 44111 {
56122987
DM
44112 "info" : {
44113 "POST" : {
e9cd3bd4 44114 "allowtoken" : 1,
44660702
DM
44115 "description" : "Creates a VNC Shell proxy.",
44116 "method" : "POST",
44117 "name" : "vncshell",
44118 "parameters" : {
44119 "additionalProperties" : 0,
56122987 44120 "properties" : {
95895385
TL
44121 "cmd" : {
44122 "default" : "login",
44123 "description" : "Run specific command or default to login.",
44124 "enum" : [
de786b48 44125 "login",
81a3384d
TL
44126 "ceph_install",
44127 "upgrade"
95895385
TL
44128 ],
44129 "optional" : 1,
44130 "type" : "string"
44131 },
4772952b
TL
44132 "cmd-opts" : {
44133 "default" : "",
44134 "description" : "Add parameters to a command. Encoded as null terminated strings.",
44135 "optional" : 1,
44136 "requires" : "cmd",
44137 "type" : "string",
44138 "typetext" : "<string>"
44139 },
5d9c884c
DM
44140 "height" : {
44141 "description" : "sets the height of the console in pixels.",
44142 "maximum" : 2160,
44143 "minimum" : 16,
44144 "optional" : 1,
44145 "type" : "integer",
44146 "typetext" : "<integer> (16 - 2160)"
44147 },
44660702
DM
44148 "node" : {
44149 "description" : "The cluster node name.",
44150 "format" : "pve-node",
013dc89f
DM
44151 "type" : "string",
44152 "typetext" : "<string>"
7aacca6f 44153 },
44660702
DM
44154 "websocket" : {
44155 "description" : "use websocket instead of standard vnc.",
44156 "optional" : 1,
013dc89f
DM
44157 "type" : "boolean",
44158 "typetext" : "<boolean>"
5d9c884c
DM
44159 },
44160 "width" : {
44161 "description" : "sets the width of the console in pixels.",
44162 "maximum" : 4096,
44163 "minimum" : 16,
44164 "optional" : 1,
44165 "type" : "integer",
44166 "typetext" : "<integer> (16 - 4096)"
56122987 44167 }
44660702 44168 }
56122987 44169 },
56122987
DM
44170 "permissions" : {
44171 "check" : [
44172 "perm",
7aacca6f 44173 "/nodes/{node}",
56122987 44174 [
7aacca6f 44175 "Sys.Console"
56122987 44176 ]
44660702
DM
44177 ],
44178 "description" : "Restricted to users on realm 'pam'"
56122987 44179 },
44660702
DM
44180 "protected" : 1,
44181 "returns" : {
44182 "additionalProperties" : 0,
56122987 44183 "properties" : {
44660702
DM
44184 "cert" : {
44185 "type" : "string"
7aacca6f 44186 },
44660702
DM
44187 "port" : {
44188 "type" : "integer"
7aacca6f 44189 },
44660702
DM
44190 "ticket" : {
44191 "type" : "string"
44192 },
44193 "upid" : {
44194 "type" : "string"
44195 },
44196 "user" : {
44197 "type" : "string"
56122987 44198 }
44660702
DM
44199 }
44200 }
56122987
DM
44201 }
44202 },
7aacca6f 44203 "leaf" : 1,
44660702
DM
44204 "path" : "/nodes/{node}/vncshell",
44205 "text" : "vncshell"
56122987 44206 },
35a75dd3
DM
44207 {
44208 "info" : {
44209 "POST" : {
e9cd3bd4 44210 "allowtoken" : 1,
35a75dd3
DM
44211 "description" : "Creates a VNC Shell proxy.",
44212 "method" : "POST",
44213 "name" : "termproxy",
44214 "parameters" : {
44215 "additionalProperties" : 0,
44216 "properties" : {
95895385
TL
44217 "cmd" : {
44218 "default" : "login",
44219 "description" : "Run specific command or default to login.",
44220 "enum" : [
de786b48 44221 "login",
81a3384d
TL
44222 "ceph_install",
44223 "upgrade"
95895385
TL
44224 ],
44225 "optional" : 1,
44226 "type" : "string"
44227 },
4772952b
TL
44228 "cmd-opts" : {
44229 "default" : "",
44230 "description" : "Add parameters to a command. Encoded as null terminated strings.",
44231 "optional" : 1,
44232 "requires" : "cmd",
44233 "type" : "string",
44234 "typetext" : "<string>"
44235 },
35a75dd3
DM
44236 "node" : {
44237 "description" : "The cluster node name.",
44238 "format" : "pve-node",
44239 "type" : "string",
44240 "typetext" : "<string>"
35a75dd3
DM
44241 }
44242 }
44243 },
44244 "permissions" : {
44245 "check" : [
44246 "perm",
44247 "/nodes/{node}",
44248 [
44249 "Sys.Console"
44250 ]
44251 ],
44252 "description" : "Restricted to users on realm 'pam'"
44253 },
44254 "protected" : 1,
44255 "returns" : {
44256 "additionalProperties" : 0,
44257 "properties" : {
44258 "port" : {
44259 "type" : "integer"
44260 },
44261 "ticket" : {
44262 "type" : "string"
44263 },
44264 "upid" : {
44265 "type" : "string"
44266 },
44267 "user" : {
44268 "type" : "string"
44269 }
44270 }
44271 }
44272 }
44273 },
44274 "leaf" : 1,
44275 "path" : "/nodes/{node}/termproxy",
44276 "text" : "termproxy"
44277 },
56122987
DM
44278 {
44279 "info" : {
44280 "GET" : {
e9cd3bd4 44281 "allowtoken" : 1,
0695fdaf 44282 "description" : "Opens a websocket for VNC traffic.",
44660702
DM
44283 "method" : "GET",
44284 "name" : "vncwebsocket",
56122987 44285 "parameters" : {
44660702 44286 "additionalProperties" : 0,
56122987
DM
44287 "properties" : {
44288 "node" : {
44289 "description" : "The cluster node name.",
44660702 44290 "format" : "pve-node",
013dc89f
DM
44291 "type" : "string",
44292 "typetext" : "<string>"
7aacca6f
DM
44293 },
44294 "port" : {
7aacca6f
DM
44295 "description" : "Port number returned by previous vncproxy call.",
44296 "maximum" : 5999,
44660702 44297 "minimum" : 5900,
4bd7df8b 44298 "type" : "integer",
013dc89f 44299 "typetext" : "<integer> (5900 - 5999)"
44660702
DM
44300 },
44301 "vncticket" : {
44302 "description" : "Ticket from previous call to vncproxy.",
44303 "maxLength" : 512,
013dc89f
DM
44304 "type" : "string",
44305 "typetext" : "<string>"
56122987 44306 }
44660702 44307 }
56122987 44308 },
56122987
DM
44309 "permissions" : {
44310 "check" : [
44311 "perm",
44312 "/nodes/{node}",
44313 [
7aacca6f 44314 "Sys.Console"
56122987 44315 ]
44660702
DM
44316 ],
44317 "description" : "Restricted to users on realm 'pam'. You also need to pass a valid ticket (vncticket)."
44318 },
44319 "returns" : {
44320 "properties" : {
44321 "port" : {
44322 "type" : "string"
44323 }
44324 },
44325 "type" : "object"
7aacca6f 44326 }
56122987
DM
44327 }
44328 },
44660702 44329 "leaf" : 1,
7aacca6f 44330 "path" : "/nodes/{node}/vncwebsocket",
44660702 44331 "text" : "vncwebsocket"
56122987
DM
44332 },
44333 {
44334 "info" : {
44335 "POST" : {
e9cd3bd4 44336 "allowtoken" : 1,
44660702 44337 "description" : "Creates a SPICE shell.",
7aacca6f 44338 "method" : "POST",
44660702 44339 "name" : "spiceshell",
56122987 44340 "parameters" : {
7aacca6f 44341 "additionalProperties" : 0,
56122987 44342 "properties" : {
95895385
TL
44343 "cmd" : {
44344 "default" : "login",
44345 "description" : "Run specific command or default to login.",
44346 "enum" : [
de786b48 44347 "login",
81a3384d
TL
44348 "ceph_install",
44349 "upgrade"
95895385
TL
44350 ],
44351 "optional" : 1,
44352 "type" : "string"
44353 },
4772952b
TL
44354 "cmd-opts" : {
44355 "default" : "",
44356 "description" : "Add parameters to a command. Encoded as null terminated strings.",
44357 "optional" : 1,
44358 "requires" : "cmd",
44359 "type" : "string",
44360 "typetext" : "<string>"
44361 },
7aacca6f 44362 "node" : {
44660702 44363 "description" : "The cluster node name.",
56122987 44364 "format" : "pve-node",
013dc89f
DM
44365 "type" : "string",
44366 "typetext" : "<string>"
7aacca6f 44367 },
44660702 44368 "proxy" : {
4d47f125 44369 "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
44370 "format" : "address",
44371 "optional" : 1,
013dc89f
DM
44372 "type" : "string",
44373 "typetext" : "<string>"
56122987 44374 }
7aacca6f 44375 }
56122987 44376 },
56122987
DM
44377 "permissions" : {
44378 "check" : [
44379 "perm",
7aacca6f 44380 "/nodes/{node}",
56122987 44381 [
7aacca6f 44382 "Sys.Console"
56122987 44383 ]
7aacca6f
DM
44384 ],
44385 "description" : "Restricted to users on realm 'pam'"
44660702
DM
44386 },
44387 "protected" : 1,
44388 "proxyto" : "node",
44389 "returns" : {
44390 "additionalProperties" : 1,
44391 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
44392 "properties" : {
44393 "host" : {
44394 "type" : "string"
44395 },
44396 "password" : {
44397 "type" : "string"
44398 },
44399 "proxy" : {
44400 "type" : "string"
44401 },
44402 "tls-port" : {
44403 "type" : "integer"
44404 },
44405 "type" : {
44406 "type" : "string"
44407 }
44408 }
7aacca6f 44409 }
56122987
DM
44410 }
44411 },
56122987 44412 "leaf" : 1,
44660702
DM
44413 "path" : "/nodes/{node}/spiceshell",
44414 "text" : "spiceshell"
56122987
DM
44415 },
44416 {
56122987 44417 "info" : {
7aacca6f 44418 "GET" : {
e9cd3bd4 44419 "allowtoken" : 1,
44660702 44420 "description" : "Read DNS settings.",
7aacca6f 44421 "method" : "GET",
44660702
DM
44422 "name" : "dns",
44423 "parameters" : {
7aacca6f
DM
44424 "additionalProperties" : 0,
44425 "properties" : {
44660702
DM
44426 "node" : {
44427 "description" : "The cluster node name.",
44428 "format" : "pve-node",
013dc89f
DM
44429 "type" : "string",
44430 "typetext" : "<string>"
7aacca6f
DM
44431 }
44432 }
44433 },
7aacca6f
DM
44434 "permissions" : {
44435 "check" : [
44436 "perm",
44437 "/nodes/{node}",
44438 [
44439 "Sys.Audit"
44440 ]
44441 ]
44442 },
44660702
DM
44443 "proxyto" : "node",
44444 "returns" : {
56122987
DM
44445 "additionalProperties" : 0,
44446 "properties" : {
44660702
DM
44447 "dns1" : {
44448 "description" : "First name server IP address.",
44449 "optional" : 1,
44450 "type" : "string"
44451 },
44452 "dns2" : {
44453 "description" : "Second name server IP address.",
44454 "optional" : 1,
44455 "type" : "string"
44456 },
44457 "dns3" : {
44458 "description" : "Third name server IP address.",
44459 "optional" : 1,
44460 "type" : "string"
44461 },
44462 "search" : {
44463 "description" : "Search domain for host-name lookup.",
44464 "optional" : 1,
44465 "type" : "string"
7aacca6f 44466 }
44660702
DM
44467 },
44468 "type" : "object"
44469 }
7aacca6f
DM
44470 },
44471 "PUT" : {
e9cd3bd4 44472 "allowtoken" : 1,
44660702
DM
44473 "description" : "Write DNS settings.",
44474 "method" : "PUT",
7aacca6f
DM
44475 "name" : "update_dns",
44476 "parameters" : {
44477 "additionalProperties" : 0,
44478 "properties" : {
44660702
DM
44479 "dns1" : {
44480 "description" : "First name server IP address.",
44481 "format" : "ip",
44482 "optional" : 1,
013dc89f
DM
44483 "type" : "string",
44484 "typetext" : "<string>"
7aacca6f 44485 },
44660702
DM
44486 "dns2" : {
44487 "description" : "Second name server IP address.",
44488 "format" : "ip",
7aacca6f 44489 "optional" : 1,
013dc89f
DM
44490 "type" : "string",
44491 "typetext" : "<string>"
7aacca6f 44492 },
44660702
DM
44493 "dns3" : {
44494 "description" : "Third name server IP address.",
44495 "format" : "ip",
7aacca6f 44496 "optional" : 1,
013dc89f
DM
44497 "type" : "string",
44498 "typetext" : "<string>"
7aacca6f
DM
44499 },
44500 "node" : {
44660702 44501 "description" : "The cluster node name.",
56122987 44502 "format" : "pve-node",
013dc89f
DM
44503 "type" : "string",
44504 "typetext" : "<string>"
7aacca6f 44505 },
44660702
DM
44506 "search" : {
44507 "description" : "Search domain for host-name lookup.",
013dc89f
DM
44508 "type" : "string",
44509 "typetext" : "<string>"
56122987
DM
44510 }
44511 }
44512 },
44513 "permissions" : {
44514 "check" : [
44515 "perm",
7aacca6f 44516 "/nodes/{node}",
56122987 44517 [
7aacca6f 44518 "Sys.Modify"
56122987
DM
44519 ]
44520 ]
44521 },
44660702 44522 "protected" : 1,
7aacca6f 44523 "proxyto" : "node",
56122987 44524 "returns" : {
7aacca6f
DM
44525 "type" : "null"
44526 }
56122987 44527 }
44660702
DM
44528 },
44529 "leaf" : 1,
44530 "path" : "/nodes/{node}/dns",
44531 "text" : "dns"
56122987
DM
44532 },
44533 {
44534 "info" : {
7aacca6f 44535 "GET" : {
e9cd3bd4 44536 "allowtoken" : 1,
7aacca6f 44537 "description" : "Read server time and time zone settings.",
44660702
DM
44538 "method" : "GET",
44539 "name" : "time",
56122987 44540 "parameters" : {
44660702 44541 "additionalProperties" : 0,
56122987
DM
44542 "properties" : {
44543 "node" : {
44660702 44544 "description" : "The cluster node name.",
56122987 44545 "format" : "pve-node",
013dc89f
DM
44546 "type" : "string",
44547 "typetext" : "<string>"
56122987 44548 }
44660702 44549 }
56122987
DM
44550 },
44551 "permissions" : {
44552 "check" : [
44553 "perm",
7aacca6f 44554 "/nodes/{node}",
56122987 44555 [
7aacca6f 44556 "Sys.Audit"
56122987
DM
44557 ]
44558 ]
44660702
DM
44559 },
44560 "proxyto" : "node",
44561 "returns" : {
44562 "additionalProperties" : 0,
44563 "properties" : {
44564 "localtime" : {
44565 "description" : "Seconds since 1970-01-01 00:00:00 (local time)",
44566 "minimum" : 1297163644,
4d47f125 44567 "renderer" : "timestamp_gmt",
44660702
DM
44568 "type" : "integer"
44569 },
44570 "time" : {
44571 "description" : "Seconds since 1970-01-01 00:00:00 UTC.",
44572 "minimum" : 1297163644,
4d47f125 44573 "renderer" : "timestamp",
44660702
DM
44574 "type" : "integer"
44575 },
44576 "timezone" : {
44577 "description" : "Time zone",
44578 "type" : "string"
44579 }
44580 },
44581 "type" : "object"
7aacca6f
DM
44582 }
44583 },
44584 "PUT" : {
e9cd3bd4 44585 "allowtoken" : 1,
7aacca6f 44586 "description" : "Set time zone.",
44660702
DM
44587 "method" : "PUT",
44588 "name" : "set_timezone",
44589 "parameters" : {
44590 "additionalProperties" : 0,
44591 "properties" : {
44592 "node" : {
44593 "description" : "The cluster node name.",
44594 "format" : "pve-node",
013dc89f
DM
44595 "type" : "string",
44596 "typetext" : "<string>"
44660702
DM
44597 },
44598 "timezone" : {
44599 "description" : "Time zone. The file '/usr/share/zoneinfo/zone.tab' contains the list of valid names.",
013dc89f
DM
44600 "type" : "string",
44601 "typetext" : "<string>"
44660702
DM
44602 }
44603 }
44604 },
7aacca6f
DM
44605 "permissions" : {
44606 "check" : [
44607 "perm",
44608 "/nodes/{node}",
44609 [
44610 "Sys.Modify"
44611 ]
44612 ]
56122987 44613 },
7aacca6f 44614 "protected" : 1,
44660702
DM
44615 "proxyto" : "node",
44616 "returns" : {
44617 "type" : "null"
44618 }
7aacca6f
DM
44619 }
44620 },
7aacca6f 44621 "leaf" : 1,
44660702
DM
44622 "path" : "/nodes/{node}/time",
44623 "text" : "time"
7aacca6f
DM
44624 },
44625 {
44626 "info" : {
44660702 44627 "GET" : {
e9cd3bd4 44628 "allowtoken" : 1,
44660702
DM
44629 "description" : "Get list of appliances.",
44630 "method" : "GET",
44631 "name" : "aplinfo",
7aacca6f
DM
44632 "parameters" : {
44633 "additionalProperties" : 0,
44634 "properties" : {
7aacca6f 44635 "node" : {
44660702 44636 "description" : "The cluster node name.",
7aacca6f 44637 "format" : "pve-node",
013dc89f
DM
44638 "type" : "string",
44639 "typetext" : "<string>"
7aacca6f
DM
44640 }
44641 }
56122987 44642 },
7aacca6f 44643 "permissions" : {
44660702 44644 "user" : "all"
56122987 44645 },
44660702 44646 "proxyto" : "node",
7aacca6f
DM
44647 "returns" : {
44648 "items" : {
44660702
DM
44649 "properties" : {},
44650 "type" : "object"
7aacca6f
DM
44651 },
44652 "type" : "array"
44660702
DM
44653 }
44654 },
44655 "POST" : {
e9cd3bd4 44656 "allowtoken" : 1,
44660702
DM
44657 "description" : "Download appliance templates.",
44658 "method" : "POST",
44659 "name" : "apl_download",
7aacca6f
DM
44660 "parameters" : {
44661 "additionalProperties" : 0,
44662 "properties" : {
44663 "node" : {
7aacca6f 44664 "description" : "The cluster node name.",
44660702 44665 "format" : "pve-node",
013dc89f
DM
44666 "type" : "string",
44667 "typetext" : "<string>"
44660702
DM
44668 },
44669 "storage" : {
4bd7df8b 44670 "description" : "The storage where the template will be stored",
44660702 44671 "format" : "pve-storage-id",
013dc89f
DM
44672 "type" : "string",
44673 "typetext" : "<string>"
44660702
DM
44674 },
44675 "template" : {
1e3f8156 44676 "description" : "The template which will downloaded",
44660702 44677 "maxLength" : 255,
013dc89f
DM
44678 "type" : "string",
44679 "typetext" : "<string>"
7aacca6f
DM
44680 }
44681 }
56122987 44682 },
7aacca6f 44683 "permissions" : {
44660702
DM
44684 "check" : [
44685 "perm",
44686 "/storage/{storage}",
44687 [
44688 "Datastore.AllocateTemplate"
44689 ]
44690 ]
44691 },
44692 "protected" : 1,
44693 "proxyto" : "node",
44694 "returns" : {
44695 "type" : "string"
7aacca6f
DM
44696 }
44697 }
44698 },
7aacca6f 44699 "leaf" : 1,
44660702
DM
44700 "path" : "/nodes/{node}/aplinfo",
44701 "text" : "aplinfo"
7aacca6f 44702 },
5370fa8c
TL
44703 {
44704 "info" : {
44705 "GET" : {
44706 "allowtoken" : 1,
44707 "description" : "Query metadata of an URL: file size, file name and mime type.",
44708 "method" : "GET",
44709 "name" : "query_url_metadata",
44710 "parameters" : {
44711 "additionalProperties" : 0,
44712 "properties" : {
44713 "node" : {
44714 "description" : "The cluster node name.",
44715 "format" : "pve-node",
44716 "type" : "string",
44717 "typetext" : "<string>"
44718 },
44719 "url" : {
44720 "description" : "The URL to query the metadata from.",
44721 "pattern" : "https?://.*",
44722 "type" : "string"
44723 },
44724 "verify-certificates" : {
44725 "default" : 1,
44726 "description" : "If false, no SSL/TLS certificates will be verified.",
44727 "optional" : 1,
44728 "type" : "boolean",
44729 "typetext" : "<boolean>"
44730 }
44731 }
44732 },
44733 "permissions" : {
44734 "check" : [
44735 "perm",
44736 "/",
44737 [
44738 "Sys.Audit",
44739 "Sys.Modify"
44740 ]
44741 ]
44742 },
44743 "proxyto" : "node",
44744 "returns" : {
44745 "properties" : {
44746 "filename" : {
44747 "optional" : 1,
44748 "type" : "string"
44749 },
44750 "mimetype" : {
44751 "optional" : 1,
44752 "type" : "string"
44753 },
44754 "size" : {
44755 "optional" : 1,
44756 "renderer" : "bytes",
44757 "type" : "integer"
44758 }
44759 },
44760 "type" : "object"
44761 }
44762 }
44763 },
44764 "leaf" : 1,
44765 "path" : "/nodes/{node}/query-url-metadata",
44766 "text" : "query-url-metadata"
44767 },
7aacca6f
DM
44768 {
44769 "info" : {
44770 "GET" : {
e9cd3bd4 44771 "allowtoken" : 1,
44660702
DM
44772 "description" : "Gather various systems information about a node",
44773 "method" : "GET",
44774 "name" : "report",
7aacca6f 44775 "parameters" : {
44660702 44776 "additionalProperties" : 0,
7aacca6f
DM
44777 "properties" : {
44778 "node" : {
7aacca6f 44779 "description" : "The cluster node name.",
44660702 44780 "format" : "pve-node",
013dc89f
DM
44781 "type" : "string",
44782 "typetext" : "<string>"
7aacca6f 44783 }
44660702 44784 }
56122987 44785 },
7aacca6f
DM
44786 "permissions" : {
44787 "check" : [
44788 "perm",
44789 "/nodes/{node}",
44790 [
44791 "Sys.Audit"
44792 ]
44793 ]
56122987 44794 },
44660702 44795 "protected" : 1,
7aacca6f
DM
44796 "proxyto" : "node",
44797 "returns" : {
56122987 44798 "type" : "string"
7aacca6f
DM
44799 }
44800 }
44801 },
7aacca6f 44802 "leaf" : 1,
44660702
DM
44803 "path" : "/nodes/{node}/report",
44804 "text" : "report"
7aacca6f
DM
44805 },
44806 {
7aacca6f
DM
44807 "info" : {
44808 "POST" : {
e9cd3bd4 44809 "allowtoken" : 1,
1c532546 44810 "description" : "Start all VMs and containers located on this node (by default only those with onboot=1).",
7aacca6f 44811 "method" : "POST",
44660702 44812 "name" : "startall",
7aacca6f 44813 "parameters" : {
44660702 44814 "additionalProperties" : 0,
7aacca6f
DM
44815 "properties" : {
44816 "force" : {
1c532546
TL
44817 "default" : "off",
44818 "description" : "Issue start command even if virtual guest have 'onboot' not set or set to off.",
7aacca6f 44819 "optional" : 1,
013dc89f
DM
44820 "type" : "boolean",
44821 "typetext" : "<boolean>"
7aacca6f
DM
44822 },
44823 "node" : {
7aacca6f 44824 "description" : "The cluster node name.",
44660702 44825 "format" : "pve-node",
013dc89f
DM
44826 "type" : "string",
44827 "typetext" : "<string>"
52e44c50
FG
44828 },
44829 "vms" : {
1c532546 44830 "description" : "Only consider guests from this comma separated list of VMIDs.",
52e44c50
FG
44831 "format" : "pve-vmid-list",
44832 "optional" : 1,
44833 "type" : "string",
44834 "typetext" : "<string>"
7aacca6f 44835 }
44660702 44836 }
56122987 44837 },
7aacca6f
DM
44838 "permissions" : {
44839 "check" : [
44840 "perm",
44841 "/",
44842 [
44843 "VM.PowerMgmt"
44844 ]
44845 ]
44660702
DM
44846 },
44847 "protected" : 1,
44848 "proxyto" : "node",
44849 "returns" : {
44850 "type" : "string"
7aacca6f
DM
44851 }
44852 }
44853 },
44660702 44854 "leaf" : 1,
7aacca6f 44855 "path" : "/nodes/{node}/startall",
44660702 44856 "text" : "startall"
7aacca6f
DM
44857 },
44858 {
7aacca6f
DM
44859 "info" : {
44860 "POST" : {
e9cd3bd4 44861 "allowtoken" : 1,
7aacca6f 44862 "description" : "Stop all VMs and Containers.",
44660702
DM
44863 "method" : "POST",
44864 "name" : "stopall",
7aacca6f 44865 "parameters" : {
44660702 44866 "additionalProperties" : 0,
7aacca6f
DM
44867 "properties" : {
44868 "node" : {
44660702 44869 "description" : "The cluster node name.",
7aacca6f 44870 "format" : "pve-node",
013dc89f
DM
44871 "type" : "string",
44872 "typetext" : "<string>"
52e44c50
FG
44873 },
44874 "vms" : {
44875 "description" : "Only consider Guests with these IDs.",
44876 "format" : "pve-vmid-list",
44877 "optional" : 1,
44878 "type" : "string",
44879 "typetext" : "<string>"
7aacca6f 44880 }
44660702 44881 }
56122987 44882 },
7aacca6f
DM
44883 "permissions" : {
44884 "check" : [
44885 "perm",
44886 "/",
44887 [
44660702 44888 "VM.PowerMgmt"
7aacca6f
DM
44889 ]
44890 ]
56122987 44891 },
44660702 44892 "protected" : 1,
7aacca6f 44893 "proxyto" : "node",
44660702
DM
44894 "returns" : {
44895 "type" : "string"
44896 }
44897 }
56122987 44898 },
44660702
DM
44899 "leaf" : 1,
44900 "path" : "/nodes/{node}/stopall",
44901 "text" : "stopall"
44902 },
44903 {
44904 "info" : {
44905 "POST" : {
e9cd3bd4 44906 "allowtoken" : 1,
44660702
DM
44907 "description" : "Migrate all VMs and Containers.",
44908 "method" : "POST",
44909 "name" : "migrateall",
44910 "parameters" : {
44911 "additionalProperties" : 0,
44912 "properties" : {
44913 "maxworkers" : {
44914 "description" : "Maximal number of parallel migration job. If not set use 'max_workers' from datacenter.cfg, one of both must be set!",
44915 "minimum" : 1,
44916 "optional" : 1,
4bd7df8b 44917 "type" : "integer",
013dc89f 44918 "typetext" : "<integer> (1 - N)"
44660702
DM
44919 },
44920 "node" : {
44921 "description" : "The cluster node name.",
44922 "format" : "pve-node",
013dc89f
DM
44923 "type" : "string",
44924 "typetext" : "<string>"
44660702
DM
44925 },
44926 "target" : {
44927 "description" : "Target node.",
44928 "format" : "pve-node",
013dc89f
DM
44929 "type" : "string",
44930 "typetext" : "<string>"
52e44c50
FG
44931 },
44932 "vms" : {
44933 "description" : "Only consider Guests with these IDs.",
44934 "format" : "pve-vmid-list",
44935 "optional" : 1,
44936 "type" : "string",
44937 "typetext" : "<string>"
e9cd3bd4
TL
44938 },
44939 "with-local-disks" : {
44940 "description" : "Enable live storage migration for local disk",
44941 "optional" : 1,
44942 "type" : "boolean",
44943 "typetext" : "<boolean>"
44660702
DM
44944 }
44945 }
44946 },
44947 "permissions" : {
44948 "check" : [
44949 "perm",
44950 "/",
44951 [
44952 "VM.Migrate"
44953 ]
44954 ]
44955 },
44956 "protected" : 1,
44957 "proxyto" : "node",
44958 "returns" : {
44959 "type" : "string"
44960 }
44961 }
56122987 44962 },
44660702
DM
44963 "leaf" : 1,
44964 "path" : "/nodes/{node}/migrateall",
44965 "text" : "migrateall"
4d47f125
TL
44966 },
44967 {
44968 "info" : {
44969 "GET" : {
e9cd3bd4 44970 "allowtoken" : 1,
4d47f125
TL
44971 "description" : "Get the content of /etc/hosts.",
44972 "method" : "GET",
44973 "name" : "get_etc_hosts",
44974 "parameters" : {
44975 "additionalProperties" : 0,
44976 "properties" : {
44977 "node" : {
44978 "description" : "The cluster node name.",
44979 "format" : "pve-node",
44980 "type" : "string",
44981 "typetext" : "<string>"
44982 }
44983 }
44984 },
44985 "permissions" : {
44986 "check" : [
44987 "perm",
44988 "/",
44989 [
44990 "Sys.Audit"
44991 ]
44992 ]
44993 },
44994 "protected" : 1,
44995 "proxyto" : "node",
44996 "returns" : {
44997 "properties" : {
44998 "data" : {
44999 "description" : "The content of /etc/hosts.",
45000 "type" : "string"
45001 },
45002 "digest" : {
45003 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
45004 "maxLength" : 40,
45005 "optional" : 1,
45006 "type" : "string"
45007 }
45008 },
45009 "type" : "object"
45010 }
45011 },
45012 "POST" : {
e9cd3bd4 45013 "allowtoken" : 1,
4d47f125
TL
45014 "description" : "Write /etc/hosts.",
45015 "method" : "POST",
45016 "name" : "write_etc_hosts",
45017 "parameters" : {
45018 "additionalProperties" : 0,
45019 "properties" : {
45020 "data" : {
45021 "description" : "The target content of /etc/hosts.",
45022 "type" : "string",
45023 "typetext" : "<string>"
45024 },
45025 "digest" : {
45026 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
45027 "maxLength" : 40,
45028 "optional" : 1,
45029 "type" : "string",
45030 "typetext" : "<string>"
45031 },
45032 "node" : {
45033 "description" : "The cluster node name.",
45034 "format" : "pve-node",
45035 "type" : "string",
45036 "typetext" : "<string>"
45037 }
45038 }
45039 },
45040 "permissions" : {
45041 "check" : [
45042 "perm",
45043 "/nodes/{node}",
45044 [
45045 "Sys.Modify"
45046 ]
45047 ]
45048 },
45049 "protected" : 1,
45050 "proxyto" : "node",
45051 "returns" : {
45052 "type" : "null"
45053 }
45054 }
45055 },
45056 "leaf" : 1,
45057 "path" : "/nodes/{node}/hosts",
45058 "text" : "hosts"
44660702
DM
45059 }
45060 ],
45061 "info" : {
45062 "GET" : {
e9cd3bd4 45063 "allowtoken" : 1,
44660702
DM
45064 "description" : "Node index.",
45065 "method" : "GET",
45066 "name" : "index",
45067 "parameters" : {
45068 "additionalProperties" : 0,
45069 "properties" : {
45070 "node" : {
45071 "description" : "The cluster node name.",
45072 "format" : "pve-node",
013dc89f
DM
45073 "type" : "string",
45074 "typetext" : "<string>"
44660702
DM
45075 }
45076 }
56122987 45077 },
44660702
DM
45078 "permissions" : {
45079 "user" : "all"
56122987 45080 },
44660702
DM
45081 "returns" : {
45082 "items" : {
45083 "properties" : {},
45084 "type" : "object"
45085 },
45086 "links" : [
45087 {
45088 "href" : "{name}",
45089 "rel" : "child"
45090 }
56122987 45091 ],
44660702 45092 "type" : "array"
7aacca6f
DM
45093 }
45094 }
45095 },
44660702
DM
45096 "leaf" : 0,
45097 "path" : "/nodes/{node}",
45098 "text" : "{node}"
45099 }
45100 ],
45101 "info" : {
7aacca6f 45102 "GET" : {
e9cd3bd4 45103 "allowtoken" : 1,
44660702 45104 "description" : "Cluster node index.",
7aacca6f 45105 "method" : "GET",
44660702 45106 "name" : "index",
7aacca6f 45107 "parameters" : {
7aacca6f
DM
45108 "additionalProperties" : 0
45109 },
45110 "permissions" : {
7aacca6f
DM
45111 "user" : "all"
45112 },
44660702
DM
45113 "returns" : {
45114 "items" : {
4d47f125
TL
45115 "properties" : {
45116 "cpu" : {
45117 "description" : "CPU utilization.",
45118 "optional" : 1,
45119 "renderer" : "fraction_as_percentage",
45120 "type" : "number"
45121 },
45122 "level" : {
45123 "description" : "Support level.",
45124 "optional" : 1,
45125 "type" : "string"
45126 },
45127 "maxcpu" : {
45128 "description" : "Number of available CPUs.",
45129 "optional" : 1,
45130 "type" : "integer"
45131 },
45132 "maxmem" : {
45133 "description" : "Number of available memory in bytes.",
45134 "optional" : 1,
45135 "renderer" : "bytes",
45136 "type" : "integer"
45137 },
45138 "mem" : {
45139 "description" : "Used memory in bytes.",
45140 "optional" : 1,
45141 "renderer" : "bytes",
1c532546 45142 "type" : "integer"
4d47f125
TL
45143 },
45144 "node" : {
45145 "description" : "The cluster node name.",
45146 "format" : "pve-node",
45147 "type" : "string"
45148 },
45149 "ssl_fingerprint" : {
45150 "description" : "The SSL fingerprint for the node certificate.",
45151 "optional" : 1,
45152 "type" : "string"
45153 },
45154 "status" : {
45155 "description" : "Node status.",
45156 "enum" : [
45157 "unknown",
45158 "online",
45159 "offline"
45160 ],
45161 "type" : "string"
45162 },
45163 "uptime" : {
45164 "description" : "Node uptime in seconds.",
45165 "optional" : 1,
45166 "renderer" : "duration",
45167 "type" : "integer"
45168 }
45169 },
44660702
DM
45170 "type" : "object"
45171 },
45172 "links" : [
45173 {
45174 "href" : "{node}",
45175 "rel" : "child"
45176 }
45177 ],
45178 "type" : "array"
45179 }
7aacca6f
DM
45180 }
45181 },
44660702
DM
45182 "leaf" : 0,
45183 "path" : "/nodes",
45184 "text" : "nodes"
45185 },
45186 {
7aacca6f
DM
45187 "children" : [
45188 {
7aacca6f 45189 "info" : {
44660702 45190 "DELETE" : {
e9cd3bd4 45191 "allowtoken" : 1,
44660702
DM
45192 "description" : "Delete storage configuration.",
45193 "method" : "DELETE",
45194 "name" : "delete",
7aacca6f
DM
45195 "parameters" : {
45196 "additionalProperties" : 0,
45197 "properties" : {
45198 "storage" : {
7aacca6f 45199 "description" : "The storage identifier.",
44660702 45200 "format" : "pve-storage-id",
013dc89f
DM
45201 "type" : "string",
45202 "typetext" : "<string>"
7aacca6f
DM
45203 }
45204 }
56122987 45205 },
7aacca6f
DM
45206 "permissions" : {
45207 "check" : [
45208 "perm",
45209 "/storage",
45210 [
45211 "Datastore.Allocate"
45212 ]
45213 ]
56122987 45214 },
44660702
DM
45215 "protected" : 1,
45216 "returns" : {
45217 "type" : "null"
45218 }
45219 },
45220 "GET" : {
e9cd3bd4 45221 "allowtoken" : 1,
44660702
DM
45222 "description" : "Read storage configuration.",
45223 "method" : "GET",
45224 "name" : "read",
7aacca6f
DM
45225 "parameters" : {
45226 "additionalProperties" : 0,
45227 "properties" : {
45228 "storage" : {
44660702 45229 "description" : "The storage identifier.",
7aacca6f 45230 "format" : "pve-storage-id",
013dc89f
DM
45231 "type" : "string",
45232 "typetext" : "<string>"
7aacca6f
DM
45233 }
45234 }
45235 },
44660702
DM
45236 "permissions" : {
45237 "check" : [
45238 "perm",
45239 "/storage/{storage}",
45240 [
45241 "Datastore.Allocate"
45242 ]
45243 ]
45244 },
5da3d723
TL
45245 "returns" : {
45246 "type" : "object"
45247 }
7aacca6f
DM
45248 },
45249 "PUT" : {
e9cd3bd4 45250 "allowtoken" : 1,
44660702
DM
45251 "description" : "Update storage configuration.",
45252 "method" : "PUT",
45253 "name" : "update",
45254 "parameters" : {
45255 "additionalProperties" : 0,
45256 "properties" : {
45257 "blocksize" : {
45258 "description" : "block size",
7aacca6f 45259 "optional" : 1,
013dc89f
DM
45260 "type" : "string",
45261 "typetext" : "<string>"
7aacca6f 45262 },
27a7acb2
DM
45263 "bwlimit" : {
45264 "description" : "Set bandwidth/io limits various operations.",
45265 "format" : {
45266 "clone" : {
95895385 45267 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
45268 "format_description" : "LIMIT",
45269 "minimum" : "0",
45270 "optional" : 1,
45271 "type" : "number"
45272 },
45273 "default" : {
95895385 45274 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
45275 "format_description" : "LIMIT",
45276 "minimum" : "0",
45277 "optional" : 1,
45278 "type" : "number"
45279 },
45280 "migration" : {
95895385 45281 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
45282 "format_description" : "LIMIT",
45283 "minimum" : "0",
45284 "optional" : 1,
45285 "type" : "number"
45286 },
45287 "move" : {
95895385 45288 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
45289 "format_description" : "LIMIT",
45290 "minimum" : "0",
45291 "optional" : 1,
45292 "type" : "number"
45293 },
45294 "restore" : {
95895385 45295 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
45296 "format_description" : "LIMIT",
45297 "minimum" : "0",
45298 "optional" : 1,
45299 "type" : "number"
45300 }
45301 },
45302 "optional" : 1,
45303 "type" : "string",
45304 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
45305 },
44660702
DM
45306 "comstar_hg" : {
45307 "description" : "host group for comstar views",
45308 "optional" : 1,
013dc89f
DM
45309 "type" : "string",
45310 "typetext" : "<string>"
7aacca6f 45311 },
44660702
DM
45312 "comstar_tg" : {
45313 "description" : "target group for comstar views",
7aacca6f 45314 "optional" : 1,
013dc89f
DM
45315 "type" : "string",
45316 "typetext" : "<string>"
7aacca6f 45317 },
44660702
DM
45318 "content" : {
45319 "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
45320 "format" : "pve-storage-content-list",
7aacca6f 45321 "optional" : 1,
013dc89f
DM
45322 "type" : "string",
45323 "typetext" : "<string>"
7aacca6f 45324 },
c30bb419
TL
45325 "data-pool" : {
45326 "description" : "Data Pool (for erasure coding only)",
45327 "optional" : 1,
45328 "type" : "string",
45329 "typetext" : "<string>"
45330 },
44660702
DM
45331 "delete" : {
45332 "description" : "A list of settings you want to delete.",
45333 "format" : "pve-configid-list",
45334 "maxLength" : 4096,
7aacca6f 45335 "optional" : 1,
013dc89f
DM
45336 "type" : "string",
45337 "typetext" : "<string>"
7aacca6f
DM
45338 },
45339 "digest" : {
44660702 45340 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7aacca6f 45341 "maxLength" : 40,
7aacca6f 45342 "optional" : 1,
013dc89f
DM
45343 "type" : "string",
45344 "typetext" : "<string>"
7aacca6f 45345 },
44660702
DM
45346 "disable" : {
45347 "description" : "Flag to disable the storage.",
45348 "optional" : 1,
013dc89f
DM
45349 "type" : "boolean",
45350 "typetext" : "<boolean>"
7aacca6f 45351 },
27a7acb2
DM
45352 "domain" : {
45353 "description" : "CIFS domain.",
45354 "maxLength" : 256,
45355 "optional" : 1,
45356 "type" : "string",
45357 "typetext" : "<string>"
45358 },
04d22a9f
TL
45359 "encryption-key" : {
45360 "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
45361 "optional" : 1,
45362 "type" : "string",
45363 "typetext" : "<string>"
45364 },
c5aa7e14
TL
45365 "fingerprint" : {
45366 "description" : "Certificate SHA 256 fingerprint.",
45367 "optional" : 1,
45368 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
45369 "type" : "string"
45370 },
7aacca6f
DM
45371 "format" : {
45372 "description" : "Default image format.",
44660702 45373 "format" : "pve-storage-format",
7aacca6f 45374 "optional" : 1,
013dc89f
DM
45375 "type" : "string",
45376 "typetext" : "<string>"
7aacca6f 45377 },
5370fa8c
TL
45378 "fs-name" : {
45379 "description" : "The Ceph filesystem name.",
45380 "format" : "pve-configid",
45381 "optional" : 1,
45382 "type" : "string",
45383 "typetext" : "<string>"
45384 },
5da3d723
TL
45385 "fuse" : {
45386 "description" : "Mount CephFS through FUSE.",
45387 "optional" : 1,
45388 "type" : "boolean",
45389 "typetext" : "<boolean>"
45390 },
2c0dde61
DM
45391 "is_mountpoint" : {
45392 "default" : "no",
2489d6df 45393 "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 45394 "optional" : 1,
2489d6df
WB
45395 "type" : "string",
45396 "typetext" : "<string>"
2c0dde61 45397 },
5370fa8c
TL
45398 "keyring" : {
45399 "description" : "Client keyring contents (for external clusters).",
45400 "optional" : 1,
45401 "type" : "string",
45402 "typetext" : "<string>"
45403 },
44660702 45404 "krbd" : {
e2d681b3 45405 "description" : "Always access rbd through krbd kernel module.",
7aacca6f 45406 "optional" : 1,
013dc89f
DM
45407 "type" : "boolean",
45408 "typetext" : "<boolean>"
7aacca6f 45409 },
4d47f125
TL
45410 "lio_tpg" : {
45411 "description" : "target portal group for Linux LIO targets",
45412 "optional" : 1,
45413 "type" : "string",
45414 "typetext" : "<string>"
45415 },
d2656385 45416 "master-pubkey" : {
5f4e66fe 45417 "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
45418 "optional" : 1,
45419 "type" : "string",
45420 "typetext" : "<string>"
45421 },
7af2edf9
TL
45422 "max-protected-backups" : {
45423 "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
45424 "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
45425 "minimum" : -1,
45426 "optional" : 1,
45427 "type" : "integer",
45428 "typetext" : "<integer> (-1 - N)"
45429 },
44660702 45430 "maxfiles" : {
5f4e66fe 45431 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
44660702
DM
45432 "minimum" : 0,
45433 "optional" : 1,
4bd7df8b 45434 "type" : "integer",
013dc89f 45435 "typetext" : "<integer> (0 - N)"
4bd7df8b
DM
45436 },
45437 "mkdir" : {
45438 "default" : "yes",
45439 "description" : "Create the directory if it doesn't exist.",
45440 "optional" : 1,
013dc89f
DM
45441 "type" : "boolean",
45442 "typetext" : "<boolean>"
7aacca6f 45443 },
2489d6df
WB
45444 "monhost" : {
45445 "description" : "IP addresses of monitors (for external clusters).",
45446 "format" : "pve-storage-portal-dns-list",
45447 "optional" : 1,
45448 "type" : "string",
45449 "typetext" : "<string>"
45450 },
5c1699e5
TL
45451 "mountpoint" : {
45452 "description" : "mount point",
45453 "format" : "pve-storage-path",
45454 "optional" : 1,
45455 "type" : "string",
45456 "typetext" : "<string>"
45457 },
d2656385 45458 "namespace" : {
de786b48 45459 "description" : "Namespace.",
d2656385
TL
45460 "optional" : 1,
45461 "type" : "string",
45462 "typetext" : "<string>"
45463 },
5f4e66fe
TL
45464 "nocow" : {
45465 "default" : 0,
45466 "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.",
45467 "optional" : 1,
45468 "type" : "boolean",
45469 "typetext" : "<boolean>"
45470 },
7aacca6f 45471 "nodes" : {
44660702 45472 "description" : "List of cluster node names.",
7aacca6f
DM
45473 "format" : "pve-node-list",
45474 "optional" : 1,
013dc89f
DM
45475 "type" : "string",
45476 "typetext" : "<string>"
7aacca6f 45477 },
44660702
DM
45478 "nowritecache" : {
45479 "description" : "disable write caching on the target",
7aacca6f 45480 "optional" : 1,
013dc89f
DM
45481 "type" : "boolean",
45482 "typetext" : "<boolean>"
7aacca6f
DM
45483 },
45484 "options" : {
7aacca6f 45485 "description" : "NFS mount options (see 'man nfs')",
44660702
DM
45486 "format" : "pve-storage-options",
45487 "optional" : 1,
013dc89f
DM
45488 "type" : "string",
45489 "typetext" : "<string>"
44660702 45490 },
27a7acb2 45491 "password" : {
04d22a9f 45492 "description" : "Password for accessing the share/datastore.",
27a7acb2
DM
45493 "maxLength" : 256,
45494 "optional" : 1,
45495 "type" : "string",
45496 "typetext" : "<string>"
45497 },
44660702
DM
45498 "pool" : {
45499 "description" : "Pool.",
45500 "optional" : 1,
013dc89f
DM
45501 "type" : "string",
45502 "typetext" : "<string>"
44660702 45503 },
4772952b
TL
45504 "port" : {
45505 "default" : 8007,
45506 "description" : "For non default port.",
45507 "maximum" : 65535,
45508 "minimum" : 1,
45509 "optional" : 1,
45510 "type" : "integer",
45511 "typetext" : "<integer> (1 - 65535)"
45512 },
5370fa8c
TL
45513 "preallocation" : {
45514 "default" : "metadata",
45515 "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
45516 "enum" : [
45517 "off",
45518 "metadata",
45519 "falloc",
45520 "full"
45521 ],
45522 "optional" : 1,
45523 "type" : "string"
45524 },
739d4d64
TL
45525 "prune-backups" : {
45526 "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.",
45527 "format" : "prune-backups",
45528 "optional" : 1,
45529 "type" : "string",
4772952b 45530 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 45531 },
44660702
DM
45532 "saferemove" : {
45533 "description" : "Zero-out data when removing LVs.",
45534 "optional" : 1,
013dc89f
DM
45535 "type" : "boolean",
45536 "typetext" : "<boolean>"
7aacca6f
DM
45537 },
45538 "saferemove_throughput" : {
44660702 45539 "description" : "Wipe throughput (cstream -t parameter value).",
7aacca6f 45540 "optional" : 1,
013dc89f
DM
45541 "type" : "string",
45542 "typetext" : "<string>"
7aacca6f 45543 },
44660702
DM
45544 "server" : {
45545 "description" : "Server IP or DNS name.",
45546 "format" : "pve-storage-server",
7aacca6f 45547 "optional" : 1,
013dc89f
DM
45548 "type" : "string",
45549 "typetext" : "<string>"
7aacca6f 45550 },
44660702
DM
45551 "server2" : {
45552 "description" : "Backup volfile server IP or DNS name.",
45553 "format" : "pve-storage-server",
7aacca6f 45554 "optional" : 1,
44660702 45555 "requires" : "server",
013dc89f
DM
45556 "type" : "string",
45557 "typetext" : "<string>"
44660702
DM
45558 },
45559 "shared" : {
45560 "description" : "Mark storage as shared.",
45561 "optional" : 1,
013dc89f
DM
45562 "type" : "boolean",
45563 "typetext" : "<boolean>"
44660702 45564 },
27a7acb2 45565 "smbversion" : {
5370fa8c
TL
45566 "default" : "default",
45567 "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
5da3d723 45568 "enum" : [
5370fa8c 45569 "default",
5da3d723
TL
45570 "2.0",
45571 "2.1",
5370fa8c
TL
45572 "3",
45573 "3.0",
45574 "3.11"
5da3d723 45575 ],
27a7acb2 45576 "optional" : 1,
5da3d723 45577 "type" : "string"
27a7acb2 45578 },
44660702
DM
45579 "sparse" : {
45580 "description" : "use sparse volumes",
45581 "optional" : 1,
013dc89f
DM
45582 "type" : "boolean",
45583 "typetext" : "<boolean>"
44660702
DM
45584 },
45585 "storage" : {
45586 "description" : "The storage identifier.",
45587 "format" : "pve-storage-id",
013dc89f
DM
45588 "type" : "string",
45589 "typetext" : "<string>"
44660702 45590 },
5da3d723
TL
45591 "subdir" : {
45592 "description" : "Subdir to mount.",
45593 "format" : "pve-storage-path",
45594 "optional" : 1,
45595 "type" : "string",
45596 "typetext" : "<string>"
45597 },
4bd7df8b
DM
45598 "tagged_only" : {
45599 "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
45600 "optional" : 1,
013dc89f
DM
45601 "type" : "boolean",
45602 "typetext" : "<boolean>"
4bd7df8b 45603 },
44660702
DM
45604 "transport" : {
45605 "description" : "Gluster transport: tcp or rdma",
45606 "enum" : [
45607 "tcp",
45608 "rdma",
45609 "unix"
45610 ],
45611 "optional" : 1,
45612 "type" : "string"
7aacca6f
DM
45613 },
45614 "username" : {
45615 "description" : "RBD Id.",
44660702 45616 "optional" : 1,
013dc89f
DM
45617 "type" : "string",
45618 "typetext" : "<string>"
7aacca6f 45619 }
44660702
DM
45620 },
45621 "type" : "object"
45622 },
45623 "permissions" : {
45624 "check" : [
45625 "perm",
45626 "/storage",
45627 [
45628 "Datastore.Allocate"
45629 ]
45630 ]
45631 },
45632 "protected" : 1,
45633 "returns" : {
4772952b
TL
45634 "properties" : {
45635 "config" : {
45636 "additionalProperties" : 1,
45637 "description" : "Partial, possible server generated, configuration properties.",
45638 "optional" : 1,
45639 "properties" : {
45640 "encryption-key" : {
45641 "description" : "The, possible auto-generated, encryption-key.",
45642 "optional" : 1,
45643 "type" : "string"
45644 }
45645 },
45646 "type" : "object"
45647 },
45648 "storage" : {
45649 "description" : "The ID of the created storage.",
45650 "type" : "string"
45651 },
45652 "type" : {
45653 "description" : "The type of the created storage.",
45654 "enum" : [
5f4e66fe 45655 "btrfs",
4772952b
TL
45656 "cephfs",
45657 "cifs",
45658 "dir",
4772952b
TL
45659 "glusterfs",
45660 "iscsi",
45661 "iscsidirect",
45662 "lvm",
45663 "lvmthin",
45664 "nfs",
45665 "pbs",
45666 "rbd",
45667 "zfs",
45668 "zfspool"
45669 ],
45670 "type" : "string"
45671 }
45672 },
45673 "type" : "object"
44660702
DM
45674 }
45675 }
45676 },
45677 "leaf" : 1,
45678 "path" : "/storage/{storage}",
45679 "text" : "{storage}"
45680 }
45681 ],
45682 "info" : {
45683 "GET" : {
e9cd3bd4 45684 "allowtoken" : 1,
44660702
DM
45685 "description" : "Storage index.",
45686 "method" : "GET",
45687 "name" : "index",
45688 "parameters" : {
45689 "additionalProperties" : 0,
45690 "properties" : {
45691 "type" : {
45692 "description" : "Only list storage of specific type",
45693 "enum" : [
5f4e66fe 45694 "btrfs",
5da3d723 45695 "cephfs",
27a7acb2 45696 "cifs",
44660702 45697 "dir",
44660702
DM
45698 "glusterfs",
45699 "iscsi",
45700 "iscsidirect",
45701 "lvm",
45702 "lvmthin",
45703 "nfs",
c5aa7e14 45704 "pbs",
44660702 45705 "rbd",
44660702
DM
45706 "zfs",
45707 "zfspool"
45708 ],
45709 "optional" : 1,
45710 "type" : "string"
45711 }
45712 }
45713 },
45714 "permissions" : {
45715 "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
45716 "user" : "all"
45717 },
45718 "returns" : {
45719 "items" : {
45720 "properties" : {
45721 "storage" : {
45722 "type" : "string"
7aacca6f 45723 }
56122987 45724 },
44660702
DM
45725 "type" : "object"
45726 },
45727 "links" : [
45728 {
45729 "href" : "{storage}",
45730 "rel" : "child"
45731 }
45732 ],
45733 "type" : "array"
45734 }
45735 },
45736 "POST" : {
e9cd3bd4 45737 "allowtoken" : 1,
44660702
DM
45738 "description" : "Create a new storage.",
45739 "method" : "POST",
45740 "name" : "create",
45741 "parameters" : {
45742 "additionalProperties" : 0,
45743 "properties" : {
45744 "authsupported" : {
45745 "description" : "Authsupported.",
45746 "optional" : 1,
013dc89f
DM
45747 "type" : "string",
45748 "typetext" : "<string>"
44660702
DM
45749 },
45750 "base" : {
45751 "description" : "Base volume. This volume is automatically activated.",
45752 "format" : "pve-volume-id",
45753 "optional" : 1,
013dc89f
DM
45754 "type" : "string",
45755 "typetext" : "<string>"
44660702
DM
45756 },
45757 "blocksize" : {
45758 "description" : "block size",
45759 "optional" : 1,
013dc89f
DM
45760 "type" : "string",
45761 "typetext" : "<string>"
44660702 45762 },
27a7acb2
DM
45763 "bwlimit" : {
45764 "description" : "Set bandwidth/io limits various operations.",
45765 "format" : {
45766 "clone" : {
95895385 45767 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
45768 "format_description" : "LIMIT",
45769 "minimum" : "0",
45770 "optional" : 1,
45771 "type" : "number"
45772 },
45773 "default" : {
95895385 45774 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
45775 "format_description" : "LIMIT",
45776 "minimum" : "0",
45777 "optional" : 1,
45778 "type" : "number"
45779 },
45780 "migration" : {
95895385 45781 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
45782 "format_description" : "LIMIT",
45783 "minimum" : "0",
45784 "optional" : 1,
45785 "type" : "number"
45786 },
45787 "move" : {
95895385 45788 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
45789 "format_description" : "LIMIT",
45790 "minimum" : "0",
45791 "optional" : 1,
45792 "type" : "number"
45793 },
45794 "restore" : {
95895385 45795 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
45796 "format_description" : "LIMIT",
45797 "minimum" : "0",
45798 "optional" : 1,
45799 "type" : "number"
45800 }
45801 },
45802 "optional" : 1,
45803 "type" : "string",
45804 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
45805 },
44660702
DM
45806 "comstar_hg" : {
45807 "description" : "host group for comstar views",
45808 "optional" : 1,
013dc89f
DM
45809 "type" : "string",
45810 "typetext" : "<string>"
44660702
DM
45811 },
45812 "comstar_tg" : {
45813 "description" : "target group for comstar views",
45814 "optional" : 1,
013dc89f
DM
45815 "type" : "string",
45816 "typetext" : "<string>"
44660702
DM
45817 },
45818 "content" : {
45819 "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
45820 "format" : "pve-storage-content-list",
45821 "optional" : 1,
013dc89f
DM
45822 "type" : "string",
45823 "typetext" : "<string>"
44660702 45824 },
c30bb419
TL
45825 "data-pool" : {
45826 "description" : "Data Pool (for erasure coding only)",
45827 "optional" : 1,
45828 "type" : "string",
45829 "typetext" : "<string>"
45830 },
c5aa7e14 45831 "datastore" : {
4772952b 45832 "description" : "Proxmox Backup Server datastore name.",
c5aa7e14
TL
45833 "optional" : 1,
45834 "type" : "string",
45835 "typetext" : "<string>"
45836 },
44660702
DM
45837 "disable" : {
45838 "description" : "Flag to disable the storage.",
45839 "optional" : 1,
013dc89f
DM
45840 "type" : "boolean",
45841 "typetext" : "<boolean>"
44660702 45842 },
27a7acb2
DM
45843 "domain" : {
45844 "description" : "CIFS domain.",
45845 "maxLength" : 256,
45846 "optional" : 1,
45847 "type" : "string",
45848 "typetext" : "<string>"
45849 },
04d22a9f
TL
45850 "encryption-key" : {
45851 "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
45852 "optional" : 1,
45853 "type" : "string",
45854 "typetext" : "<string>"
45855 },
44660702
DM
45856 "export" : {
45857 "description" : "NFS export path.",
45858 "format" : "pve-storage-path",
45859 "optional" : 1,
013dc89f
DM
45860 "type" : "string",
45861 "typetext" : "<string>"
44660702 45862 },
c5aa7e14
TL
45863 "fingerprint" : {
45864 "description" : "Certificate SHA 256 fingerprint.",
45865 "optional" : 1,
45866 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
45867 "type" : "string"
45868 },
44660702
DM
45869 "format" : {
45870 "description" : "Default image format.",
45871 "format" : "pve-storage-format",
45872 "optional" : 1,
013dc89f
DM
45873 "type" : "string",
45874 "typetext" : "<string>"
44660702 45875 },
5370fa8c
TL
45876 "fs-name" : {
45877 "description" : "The Ceph filesystem name.",
45878 "format" : "pve-configid",
45879 "optional" : 1,
45880 "type" : "string",
45881 "typetext" : "<string>"
45882 },
5da3d723
TL
45883 "fuse" : {
45884 "description" : "Mount CephFS through FUSE.",
45885 "optional" : 1,
45886 "type" : "boolean",
45887 "typetext" : "<boolean>"
45888 },
2c0dde61
DM
45889 "is_mountpoint" : {
45890 "default" : "no",
2489d6df 45891 "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 45892 "optional" : 1,
2489d6df
WB
45893 "type" : "string",
45894 "typetext" : "<string>"
2c0dde61 45895 },
44660702
DM
45896 "iscsiprovider" : {
45897 "description" : "iscsi provider",
45898 "optional" : 1,
013dc89f
DM
45899 "type" : "string",
45900 "typetext" : "<string>"
44660702 45901 },
5370fa8c
TL
45902 "keyring" : {
45903 "description" : "Client keyring contents (for external clusters).",
45904 "optional" : 1,
45905 "type" : "string",
45906 "typetext" : "<string>"
45907 },
44660702 45908 "krbd" : {
e2d681b3 45909 "description" : "Always access rbd through krbd kernel module.",
44660702 45910 "optional" : 1,
013dc89f
DM
45911 "type" : "boolean",
45912 "typetext" : "<boolean>"
56122987 45913 },
4d47f125
TL
45914 "lio_tpg" : {
45915 "description" : "target portal group for Linux LIO targets",
45916 "optional" : 1,
45917 "type" : "string",
45918 "typetext" : "<string>"
45919 },
d2656385 45920 "master-pubkey" : {
5f4e66fe 45921 "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
45922 "optional" : 1,
45923 "type" : "string",
45924 "typetext" : "<string>"
45925 },
7af2edf9
TL
45926 "max-protected-backups" : {
45927 "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
45928 "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
45929 "minimum" : -1,
45930 "optional" : 1,
45931 "type" : "integer",
45932 "typetext" : "<integer> (-1 - N)"
45933 },
44660702 45934 "maxfiles" : {
5f4e66fe 45935 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
44660702
DM
45936 "minimum" : 0,
45937 "optional" : 1,
4bd7df8b 45938 "type" : "integer",
013dc89f 45939 "typetext" : "<integer> (0 - N)"
4bd7df8b
DM
45940 },
45941 "mkdir" : {
45942 "default" : "yes",
45943 "description" : "Create the directory if it doesn't exist.",
45944 "optional" : 1,
013dc89f
DM
45945 "type" : "boolean",
45946 "typetext" : "<boolean>"
7aacca6f 45947 },
44660702 45948 "monhost" : {
2489d6df 45949 "description" : "IP addresses of monitors (for external clusters).",
4bd7df8b 45950 "format" : "pve-storage-portal-dns-list",
44660702 45951 "optional" : 1,
013dc89f
DM
45952 "type" : "string",
45953 "typetext" : "<string>"
7aacca6f 45954 },
5c1699e5
TL
45955 "mountpoint" : {
45956 "description" : "mount point",
45957 "format" : "pve-storage-path",
45958 "optional" : 1,
45959 "type" : "string",
45960 "typetext" : "<string>"
45961 },
d2656385 45962 "namespace" : {
de786b48 45963 "description" : "Namespace.",
d2656385
TL
45964 "optional" : 1,
45965 "type" : "string",
45966 "typetext" : "<string>"
45967 },
5f4e66fe
TL
45968 "nocow" : {
45969 "default" : 0,
45970 "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.",
45971 "optional" : 1,
45972 "type" : "boolean",
45973 "typetext" : "<boolean>"
45974 },
44660702
DM
45975 "nodes" : {
45976 "description" : "List of cluster node names.",
45977 "format" : "pve-node-list",
45978 "optional" : 1,
013dc89f
DM
45979 "type" : "string",
45980 "typetext" : "<string>"
7aacca6f 45981 },
44660702
DM
45982 "nowritecache" : {
45983 "description" : "disable write caching on the target",
45984 "optional" : 1,
013dc89f
DM
45985 "type" : "boolean",
45986 "typetext" : "<boolean>"
44660702
DM
45987 },
45988 "options" : {
45989 "description" : "NFS mount options (see 'man nfs')",
45990 "format" : "pve-storage-options",
45991 "optional" : 1,
013dc89f
DM
45992 "type" : "string",
45993 "typetext" : "<string>"
44660702 45994 },
27a7acb2 45995 "password" : {
04d22a9f 45996 "description" : "Password for accessing the share/datastore.",
27a7acb2
DM
45997 "maxLength" : 256,
45998 "optional" : 1,
45999 "type" : "string",
46000 "typetext" : "<string>"
46001 },
44660702
DM
46002 "path" : {
46003 "description" : "File system path.",
46004 "format" : "pve-storage-path",
46005 "optional" : 1,
013dc89f
DM
46006 "type" : "string",
46007 "typetext" : "<string>"
44660702
DM
46008 },
46009 "pool" : {
46010 "description" : "Pool.",
46011 "optional" : 1,
013dc89f
DM
46012 "type" : "string",
46013 "typetext" : "<string>"
44660702 46014 },
4772952b
TL
46015 "port" : {
46016 "default" : 8007,
46017 "description" : "For non default port.",
46018 "maximum" : 65535,
46019 "minimum" : 1,
46020 "optional" : 1,
46021 "type" : "integer",
46022 "typetext" : "<integer> (1 - 65535)"
46023 },
44660702
DM
46024 "portal" : {
46025 "description" : "iSCSI portal (IP or DNS name with optional port).",
46026 "format" : "pve-storage-portal-dns",
46027 "optional" : 1,
013dc89f
DM
46028 "type" : "string",
46029 "typetext" : "<string>"
44660702 46030 },
5370fa8c
TL
46031 "preallocation" : {
46032 "default" : "metadata",
46033 "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
46034 "enum" : [
46035 "off",
46036 "metadata",
46037 "falloc",
46038 "full"
46039 ],
46040 "optional" : 1,
46041 "type" : "string"
46042 },
739d4d64
TL
46043 "prune-backups" : {
46044 "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.",
46045 "format" : "prune-backups",
46046 "optional" : 1,
46047 "type" : "string",
4772952b 46048 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 46049 },
44660702
DM
46050 "saferemove" : {
46051 "description" : "Zero-out data when removing LVs.",
46052 "optional" : 1,
013dc89f
DM
46053 "type" : "boolean",
46054 "typetext" : "<boolean>"
44660702
DM
46055 },
46056 "saferemove_throughput" : {
46057 "description" : "Wipe throughput (cstream -t parameter value).",
46058 "optional" : 1,
013dc89f
DM
46059 "type" : "string",
46060 "typetext" : "<string>"
44660702
DM
46061 },
46062 "server" : {
46063 "description" : "Server IP or DNS name.",
46064 "format" : "pve-storage-server",
46065 "optional" : 1,
013dc89f
DM
46066 "type" : "string",
46067 "typetext" : "<string>"
44660702
DM
46068 },
46069 "server2" : {
46070 "description" : "Backup volfile server IP or DNS name.",
46071 "format" : "pve-storage-server",
46072 "optional" : 1,
46073 "requires" : "server",
013dc89f
DM
46074 "type" : "string",
46075 "typetext" : "<string>"
44660702 46076 },
27a7acb2
DM
46077 "share" : {
46078 "description" : "CIFS share.",
46079 "optional" : 1,
46080 "type" : "string",
46081 "typetext" : "<string>"
46082 },
44660702
DM
46083 "shared" : {
46084 "description" : "Mark storage as shared.",
46085 "optional" : 1,
013dc89f
DM
46086 "type" : "boolean",
46087 "typetext" : "<boolean>"
44660702 46088 },
27a7acb2 46089 "smbversion" : {
5370fa8c
TL
46090 "default" : "default",
46091 "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
5da3d723 46092 "enum" : [
5370fa8c 46093 "default",
5da3d723
TL
46094 "2.0",
46095 "2.1",
5370fa8c
TL
46096 "3",
46097 "3.0",
46098 "3.11"
5da3d723 46099 ],
27a7acb2 46100 "optional" : 1,
5da3d723 46101 "type" : "string"
27a7acb2 46102 },
44660702
DM
46103 "sparse" : {
46104 "description" : "use sparse volumes",
46105 "optional" : 1,
013dc89f
DM
46106 "type" : "boolean",
46107 "typetext" : "<boolean>"
44660702
DM
46108 },
46109 "storage" : {
46110 "description" : "The storage identifier.",
46111 "format" : "pve-storage-id",
013dc89f
DM
46112 "type" : "string",
46113 "typetext" : "<string>"
44660702 46114 },
5da3d723
TL
46115 "subdir" : {
46116 "description" : "Subdir to mount.",
46117 "format" : "pve-storage-path",
46118 "optional" : 1,
46119 "type" : "string",
46120 "typetext" : "<string>"
46121 },
4bd7df8b
DM
46122 "tagged_only" : {
46123 "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
46124 "optional" : 1,
013dc89f
DM
46125 "type" : "boolean",
46126 "typetext" : "<boolean>"
4bd7df8b 46127 },
44660702
DM
46128 "target" : {
46129 "description" : "iSCSI target.",
46130 "optional" : 1,
013dc89f
DM
46131 "type" : "string",
46132 "typetext" : "<string>"
44660702
DM
46133 },
46134 "thinpool" : {
46135 "description" : "LVM thin pool LV name.",
46136 "format" : "pve-storage-vgname",
46137 "optional" : 1,
013dc89f
DM
46138 "type" : "string",
46139 "typetext" : "<string>"
44660702
DM
46140 },
46141 "transport" : {
46142 "description" : "Gluster transport: tcp or rdma",
46143 "enum" : [
46144 "tcp",
46145 "rdma",
46146 "unix"
7aacca6f 46147 ],
44660702
DM
46148 "optional" : 1,
46149 "type" : "string"
56122987 46150 },
44660702
DM
46151 "type" : {
46152 "description" : "Storage type.",
46153 "enum" : [
5f4e66fe 46154 "btrfs",
5da3d723 46155 "cephfs",
27a7acb2 46156 "cifs",
44660702 46157 "dir",
44660702
DM
46158 "glusterfs",
46159 "iscsi",
46160 "iscsidirect",
46161 "lvm",
46162 "lvmthin",
46163 "nfs",
c5aa7e14 46164 "pbs",
44660702 46165 "rbd",
44660702
DM
46166 "zfs",
46167 "zfspool"
46168 ],
46169 "type" : "string"
56122987 46170 },
44660702
DM
46171 "username" : {
46172 "description" : "RBD Id.",
46173 "optional" : 1,
013dc89f
DM
46174 "type" : "string",
46175 "typetext" : "<string>"
7aacca6f 46176 },
44660702
DM
46177 "vgname" : {
46178 "description" : "Volume group name.",
46179 "format" : "pve-storage-vgname",
46180 "optional" : 1,
013dc89f
DM
46181 "type" : "string",
46182 "typetext" : "<string>"
44660702
DM
46183 },
46184 "volume" : {
46185 "description" : "Glusterfs Volume.",
46186 "optional" : 1,
013dc89f
DM
46187 "type" : "string",
46188 "typetext" : "<string>"
44660702
DM
46189 }
46190 },
46191 "type" : "object"
46192 },
46193 "permissions" : {
46194 "check" : [
46195 "perm",
46196 "/storage",
46197 [
46198 "Datastore.Allocate"
46199 ]
46200 ]
56122987 46201 },
44660702
DM
46202 "protected" : 1,
46203 "returns" : {
4772952b
TL
46204 "properties" : {
46205 "config" : {
46206 "additionalProperties" : 1,
46207 "description" : "Partial, possible server generated, configuration properties.",
46208 "optional" : 1,
46209 "properties" : {
46210 "encryption-key" : {
46211 "description" : "The, possible auto-generated, encryption-key.",
46212 "optional" : 1,
46213 "type" : "string"
46214 }
46215 },
46216 "type" : "object"
46217 },
46218 "storage" : {
46219 "description" : "The ID of the created storage.",
46220 "type" : "string"
46221 },
46222 "type" : {
46223 "description" : "The type of the created storage.",
46224 "enum" : [
5f4e66fe 46225 "btrfs",
4772952b
TL
46226 "cephfs",
46227 "cifs",
46228 "dir",
4772952b
TL
46229 "glusterfs",
46230 "iscsi",
46231 "iscsidirect",
46232 "lvm",
46233 "lvmthin",
46234 "nfs",
46235 "pbs",
46236 "rbd",
46237 "zfs",
46238 "zfspool"
46239 ],
46240 "type" : "string"
46241 }
46242 },
46243 "type" : "object"
44660702
DM
46244 }
46245 }
46246 },
46247 "leaf" : 0,
46248 "path" : "/storage",
46249 "text" : "storage"
46250 },
46251 {
46252 "children" : [
46253 {
56122987
DM
46254 "children" : [
46255 {
bb4c8cf8
TL
46256 "children" : [
46257 {
46258 "info" : {
46259 "GET" : {
e9cd3bd4 46260 "allowtoken" : 1,
bb4c8cf8
TL
46261 "description" : "Get user TFA types (Personal and Realm).",
46262 "method" : "GET",
46263 "name" : "read_user_tfa_type",
46264 "parameters" : {
46265 "additionalProperties" : 0,
46266 "properties" : {
5370fa8c
TL
46267 "multiple" : {
46268 "default" : 0,
46269 "description" : "Request all entries as an array.",
46270 "optional" : 1,
46271 "type" : "boolean",
46272 "typetext" : "<boolean>"
46273 },
bb4c8cf8
TL
46274 "userid" : {
46275 "description" : "User ID",
46276 "format" : "pve-userid",
46277 "maxLength" : 64,
46278 "type" : "string",
46279 "typetext" : "<string>"
46280 }
46281 }
46282 },
46283 "permissions" : {
46284 "check" : [
46285 "or",
46286 [
46287 "userid-param",
46288 "self"
46289 ],
46290 [
46291 "userid-group",
46292 [
46293 "User.Modify",
46294 "Sys.Audit"
46295 ]
46296 ]
46297 ]
46298 },
46299 "protected" : 1,
46300 "returns" : {
46301 "additionalProperties" : 0,
46302 "properties" : {
46303 "realm" : {
46304 "description" : "The type of TFA the users realm has set, if any.",
46305 "enum" : [
46306 "oath",
46307 "yubico"
46308 ],
46309 "optional" : 1,
46310 "type" : "string"
46311 },
5370fa8c
TL
46312 "types" : {
46313 "description" : "Array of the user configured TFA types, if any. Only available if 'multiple' was not passed.",
46314 "items" : {
46315 "description" : "A TFA type.",
46316 "enum" : [
46317 "totp",
46318 "u2f",
46319 "yubico",
46320 "webauthn",
46321 "recovedry"
46322 ],
46323 "type" : "string"
46324 },
46325 "optional" : 1,
46326 "type" : "array"
46327 },
bb4c8cf8 46328 "user" : {
5370fa8c 46329 "description" : "The type of TFA the user has set, if any. Only set if 'multiple' was not passed.",
bb4c8cf8
TL
46330 "enum" : [
46331 "oath",
46332 "u2f"
46333 ],
46334 "optional" : 1,
46335 "type" : "string"
46336 }
46337 },
46338 "type" : "object"
46339 }
46340 }
46341 },
46342 "leaf" : 1,
46343 "path" : "/access/users/{userid}/tfa",
46344 "text" : "tfa"
e9cd3bd4
TL
46345 },
46346 {
46347 "children" : [
46348 {
46349 "info" : {
46350 "DELETE" : {
46351 "allowtoken" : 1,
46352 "description" : "Remove API token for a specific user.",
46353 "method" : "DELETE",
46354 "name" : "remove_token",
46355 "parameters" : {
46356 "additionalProperties" : 0,
46357 "properties" : {
46358 "tokenid" : {
46359 "description" : "User-specific token identifier.",
46360 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
46361 "type" : "string"
46362 },
46363 "userid" : {
46364 "description" : "User ID",
46365 "format" : "pve-userid",
46366 "maxLength" : 64,
46367 "type" : "string",
46368 "typetext" : "<string>"
46369 }
46370 }
46371 },
46372 "permissions" : {
46373 "check" : [
46374 "or",
46375 [
46376 "userid-param",
46377 "self"
46378 ],
46379 [
de786b48 46380 "userid-group",
e9cd3bd4
TL
46381 [
46382 "User.Modify"
46383 ]
46384 ]
46385 ]
46386 },
46387 "protected" : 1,
46388 "returns" : {
c5aa7e14
TL
46389 "type" : "null"
46390 }
46391 },
46392 "GET" : {
46393 "allowtoken" : 1,
46394 "description" : "Get specific API token information.",
46395 "method" : "GET",
46396 "name" : "read_token",
46397 "parameters" : {
46398 "additionalProperties" : 0,
46399 "properties" : {
46400 "tokenid" : {
46401 "description" : "User-specific token identifier.",
46402 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
46403 "type" : "string"
46404 },
46405 "userid" : {
46406 "description" : "User ID",
46407 "format" : "pve-userid",
46408 "maxLength" : 64,
46409 "type" : "string",
46410 "typetext" : "<string>"
46411 }
46412 }
46413 },
46414 "permissions" : {
46415 "check" : [
46416 "or",
46417 [
46418 "userid-param",
46419 "self"
46420 ],
46421 [
de786b48 46422 "userid-group",
c5aa7e14
TL
46423 [
46424 "User.Modify"
46425 ]
46426 ]
46427 ]
46428 },
46429 "returns" : {
46430 "properties" : {
46431 "comment" : {
46432 "optional" : 1,
46433 "type" : "string"
46434 },
46435 "expire" : {
46436 "default" : "same as user",
46437 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
46438 "minimum" : 0,
46439 "optional" : 1,
46440 "type" : "integer"
46441 },
46442 "privsep" : {
46443 "default" : 1,
46444 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
46445 "optional" : 1,
46446 "type" : "boolean"
46447 }
46448 },
46449 "type" : "object"
46450 }
46451 },
46452 "POST" : {
46453 "allowtoken" : 1,
46454 "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!",
46455 "method" : "POST",
46456 "name" : "generate_token",
46457 "parameters" : {
46458 "additionalProperties" : 0,
46459 "properties" : {
46460 "comment" : {
46461 "optional" : 1,
46462 "type" : "string",
46463 "typetext" : "<string>"
46464 },
46465 "expire" : {
46466 "default" : "same as user",
46467 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
46468 "minimum" : 0,
46469 "optional" : 1,
46470 "type" : "integer",
46471 "typetext" : "<integer> (0 - N)"
46472 },
46473 "privsep" : {
46474 "default" : 1,
46475 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
46476 "optional" : 1,
46477 "type" : "boolean",
46478 "typetext" : "<boolean>"
46479 },
46480 "tokenid" : {
46481 "description" : "User-specific token identifier.",
46482 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
46483 "type" : "string"
46484 },
46485 "userid" : {
46486 "description" : "User ID",
46487 "format" : "pve-userid",
46488 "maxLength" : 64,
46489 "type" : "string",
46490 "typetext" : "<string>"
46491 }
46492 }
46493 },
46494 "permissions" : {
46495 "check" : [
46496 "or",
46497 [
46498 "userid-param",
46499 "self"
46500 ],
46501 [
de786b48 46502 "userid-group",
c5aa7e14
TL
46503 [
46504 "User.Modify"
46505 ]
46506 ]
46507 ]
46508 },
46509 "protected" : 1,
46510 "returns" : {
e9cd3bd4
TL
46511 "additionalProperties" : 0,
46512 "properties" : {
c5aa7e14
TL
46513 "full-tokenid" : {
46514 "description" : "The full token id.",
46515 "format_description" : "<userid>!<tokenid>",
e9cd3bd4
TL
46516 "type" : "string"
46517 },
e9cd3bd4
TL
46518 "info" : {
46519 "properties" : {
46520 "comment" : {
46521 "optional" : 1,
46522 "type" : "string"
46523 },
46524 "expire" : {
46525 "default" : "same as user",
46526 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
46527 "minimum" : 0,
46528 "optional" : 1,
46529 "type" : "integer"
46530 },
46531 "privsep" : {
46532 "default" : 1,
46533 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
46534 "optional" : 1,
46535 "type" : "boolean"
46536 }
46537 },
46538 "type" : "object"
46539 },
46540 "value" : {
46541 "description" : "API token value used for authentication.",
46542 "type" : "string"
46543 }
46544 },
46545 "type" : "object"
46546 }
46547 },
46548 "PUT" : {
46549 "allowtoken" : 1,
46550 "description" : "Update API token for a specific user.",
46551 "method" : "PUT",
46552 "name" : "update_token_info",
46553 "parameters" : {
46554 "additionalProperties" : 0,
46555 "properties" : {
46556 "comment" : {
46557 "optional" : 1,
46558 "type" : "string",
46559 "typetext" : "<string>"
46560 },
46561 "expire" : {
46562 "default" : "same as user",
46563 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
46564 "minimum" : 0,
46565 "optional" : 1,
46566 "type" : "integer",
46567 "typetext" : "<integer> (0 - N)"
46568 },
46569 "privsep" : {
46570 "default" : 1,
46571 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
46572 "optional" : 1,
46573 "type" : "boolean",
46574 "typetext" : "<boolean>"
46575 },
46576 "tokenid" : {
46577 "description" : "User-specific token identifier.",
46578 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
46579 "type" : "string"
46580 },
46581 "userid" : {
46582 "description" : "User ID",
46583 "format" : "pve-userid",
46584 "maxLength" : 64,
46585 "type" : "string",
46586 "typetext" : "<string>"
46587 }
46588 }
46589 },
46590 "permissions" : {
46591 "check" : [
46592 "or",
46593 [
46594 "userid-param",
46595 "self"
46596 ],
46597 [
de786b48 46598 "userid-group",
e9cd3bd4
TL
46599 [
46600 "User.Modify"
46601 ]
46602 ]
46603 ]
46604 },
46605 "protected" : 1,
46606 "returns" : {
46607 "description" : "Updated token information.",
46608 "properties" : {
46609 "comment" : {
46610 "optional" : 1,
46611 "type" : "string"
46612 },
46613 "expire" : {
46614 "default" : "same as user",
46615 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
46616 "minimum" : 0,
46617 "optional" : 1,
46618 "type" : "integer"
46619 },
46620 "privsep" : {
46621 "default" : 1,
46622 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
46623 "optional" : 1,
46624 "type" : "boolean"
46625 }
46626 },
46627 "type" : "object"
46628 }
46629 }
46630 },
46631 "leaf" : 1,
46632 "path" : "/access/users/{userid}/token/{tokenid}",
46633 "text" : "{tokenid}"
46634 }
46635 ],
46636 "info" : {
46637 "GET" : {
46638 "allowtoken" : 1,
46639 "description" : "Get user API tokens.",
46640 "method" : "GET",
46641 "name" : "token_index",
46642 "parameters" : {
46643 "additionalProperties" : 0,
46644 "properties" : {
46645 "userid" : {
46646 "description" : "User ID",
46647 "format" : "pve-userid",
46648 "maxLength" : 64,
46649 "type" : "string",
46650 "typetext" : "<string>"
46651 }
46652 }
46653 },
46654 "permissions" : {
46655 "check" : [
46656 "or",
46657 [
46658 "userid-param",
46659 "self"
46660 ],
46661 [
de786b48 46662 "userid-group",
e9cd3bd4
TL
46663 [
46664 "User.Modify"
46665 ]
46666 ]
46667 ]
46668 },
46669 "returns" : {
46670 "items" : {
46671 "properties" : {
46672 "comment" : {
46673 "optional" : 1,
46674 "type" : "string"
46675 },
46676 "expire" : {
46677 "default" : "same as user",
46678 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
46679 "minimum" : 0,
46680 "optional" : 1,
46681 "type" : "integer"
46682 },
46683 "privsep" : {
46684 "default" : 1,
46685 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
46686 "optional" : 1,
46687 "type" : "boolean"
46688 },
46689 "tokenid" : {
46690 "description" : "User-specific token identifier.",
46691 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
46692 "type" : "string"
46693 }
46694 },
46695 "type" : "object"
46696 },
46697 "links" : [
46698 {
46699 "href" : "{tokenid}",
46700 "rel" : "child"
46701 }
46702 ],
46703 "type" : "array"
46704 }
46705 }
46706 },
46707 "leaf" : 0,
46708 "path" : "/access/users/{userid}/token",
46709 "text" : "token"
bb4c8cf8
TL
46710 }
46711 ],
56122987 46712 "info" : {
44660702 46713 "DELETE" : {
e9cd3bd4 46714 "allowtoken" : 1,
44660702
DM
46715 "description" : "Delete user.",
46716 "method" : "DELETE",
46717 "name" : "delete_user",
56122987 46718 "parameters" : {
7aacca6f 46719 "additionalProperties" : 0,
56122987 46720 "properties" : {
56122987 46721 "userid" : {
56122987
DM
46722 "description" : "User ID",
46723 "format" : "pve-userid",
44660702 46724 "maxLength" : 64,
013dc89f
DM
46725 "type" : "string",
46726 "typetext" : "<string>"
56122987 46727 }
7aacca6f 46728 }
56122987 46729 },
56122987
DM
46730 "permissions" : {
46731 "check" : [
44660702 46732 "and",
56122987 46733 [
44660702
DM
46734 "userid-param",
46735 "Realm.AllocateUser"
56122987 46736 ],
44660702
DM
46737 [
46738 "userid-group",
46739 [
46740 "User.Modify"
46741 ]
46742 ]
56122987 46743 ]
7aacca6f 46744 },
44660702 46745 "protected" : 1,
56122987
DM
46746 "returns" : {
46747 "type" : "null"
44660702 46748 }
7aacca6f 46749 },
44660702 46750 "GET" : {
e9cd3bd4 46751 "allowtoken" : 1,
44660702
DM
46752 "description" : "Get user configuration.",
46753 "method" : "GET",
46754 "name" : "read_user",
56122987
DM
46755 "parameters" : {
46756 "additionalProperties" : 0,
46757 "properties" : {
46758 "userid" : {
44660702 46759 "description" : "User ID",
56122987 46760 "format" : "pve-userid",
44660702 46761 "maxLength" : 64,
013dc89f
DM
46762 "type" : "string",
46763 "typetext" : "<string>"
56122987
DM
46764 }
46765 }
46766 },
56122987
DM
46767 "permissions" : {
46768 "check" : [
44660702 46769 "userid-group",
56122987 46770 [
44660702
DM
46771 "User.Modify",
46772 "Sys.Audit"
56122987
DM
46773 ]
46774 ]
46775 },
56122987 46776 "returns" : {
7aacca6f 46777 "additionalProperties" : 0,
56122987 46778 "properties" : {
44660702
DM
46779 "comment" : {
46780 "optional" : 1,
46781 "type" : "string"
56122987 46782 },
44660702 46783 "email" : {
e2d681b3 46784 "format" : "email-opt",
44660702
DM
46785 "optional" : 1,
46786 "type" : "string"
7aacca6f
DM
46787 },
46788 "enable" : {
e2d681b3
TL
46789 "default" : 1,
46790 "description" : "Enable the account (default). You can set this to '0' to disable the account",
46791 "optional" : 1,
7aacca6f
DM
46792 "type" : "boolean"
46793 },
44660702 46794 "expire" : {
e2d681b3
TL
46795 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
46796 "minimum" : 0,
44660702
DM
46797 "optional" : 1,
46798 "type" : "integer"
46799 },
46800 "firstname" : {
56122987
DM
46801 "optional" : 1,
46802 "type" : "string"
46803 },
44660702 46804 "groups" : {
e9cd3bd4
TL
46805 "items" : {
46806 "format" : "pve-groupid",
46807 "type" : "string"
46808 },
46809 "optional" : 1,
44660702 46810 "type" : "array"
56122987 46811 },
44660702 46812 "keys" : {
e2d681b3 46813 "description" : "Keys for two factor auth (yubico).",
44660702
DM
46814 "optional" : 1,
46815 "type" : "string"
7aacca6f 46816 },
44660702
DM
46817 "lastname" : {
46818 "optional" : 1,
46819 "type" : "string"
e9cd3bd4
TL
46820 },
46821 "tokens" : {
c30bb419
TL
46822 "additionalProperties" : {
46823 "properties" : {
46824 "comment" : {
46825 "optional" : 1,
46826 "type" : "string"
46827 },
46828 "expire" : {
46829 "default" : "same as user",
46830 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
46831 "minimum" : 0,
46832 "optional" : 1,
46833 "type" : "integer"
46834 },
46835 "privsep" : {
46836 "default" : 1,
46837 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
46838 "optional" : 1,
46839 "type" : "boolean"
46840 }
46841 },
46842 "type" : "object"
46843 },
e9cd3bd4
TL
46844 "optional" : 1,
46845 "type" : "object"
56122987 46846 }
e2d681b3
TL
46847 },
46848 "type" : "object"
44660702
DM
46849 }
46850 },
46851 "PUT" : {
e9cd3bd4 46852 "allowtoken" : 1,
44660702
DM
46853 "description" : "Update user configuration.",
46854 "method" : "PUT",
46855 "name" : "update_user",
56122987 46856 "parameters" : {
44660702 46857 "additionalProperties" : 0,
56122987 46858 "properties" : {
44660702
DM
46859 "append" : {
46860 "optional" : 1,
46861 "requires" : "groups",
013dc89f
DM
46862 "type" : "boolean",
46863 "typetext" : "<boolean>"
44660702
DM
46864 },
46865 "comment" : {
46866 "optional" : 1,
013dc89f
DM
46867 "type" : "string",
46868 "typetext" : "<string>"
44660702
DM
46869 },
46870 "email" : {
46871 "format" : "email-opt",
46872 "optional" : 1,
013dc89f
DM
46873 "type" : "string",
46874 "typetext" : "<string>"
44660702
DM
46875 },
46876 "enable" : {
e2d681b3
TL
46877 "default" : 1,
46878 "description" : "Enable the account (default). You can set this to '0' to disable the account",
44660702 46879 "optional" : 1,
013dc89f
DM
46880 "type" : "boolean",
46881 "typetext" : "<boolean>"
44660702
DM
46882 },
46883 "expire" : {
46884 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
46885 "minimum" : 0,
46886 "optional" : 1,
4bd7df8b 46887 "type" : "integer",
013dc89f 46888 "typetext" : "<integer> (0 - N)"
44660702
DM
46889 },
46890 "firstname" : {
46891 "optional" : 1,
013dc89f
DM
46892 "type" : "string",
46893 "typetext" : "<string>"
44660702
DM
46894 },
46895 "groups" : {
46896 "format" : "pve-groupid-list",
46897 "optional" : 1,
013dc89f
DM
46898 "type" : "string",
46899 "typetext" : "<string>"
44660702
DM
46900 },
46901 "keys" : {
46902 "description" : "Keys for two factor auth (yubico).",
46903 "optional" : 1,
013dc89f
DM
46904 "type" : "string",
46905 "typetext" : "<string>"
44660702
DM
46906 },
46907 "lastname" : {
46908 "optional" : 1,
013dc89f
DM
46909 "type" : "string",
46910 "typetext" : "<string>"
44660702 46911 },
56122987 46912 "userid" : {
56122987
DM
46913 "description" : "User ID",
46914 "format" : "pve-userid",
44660702 46915 "maxLength" : 64,
013dc89f
DM
46916 "type" : "string",
46917 "typetext" : "<string>"
56122987 46918 }
44660702 46919 }
56122987 46920 },
56122987
DM
46921 "permissions" : {
46922 "check" : [
46923 "userid-group",
46924 [
44660702
DM
46925 "User.Modify"
46926 ],
46927 "groups_param",
c30bb419 46928 "update"
56122987
DM
46929 ]
46930 },
44660702
DM
46931 "protected" : 1,
46932 "returns" : {
46933 "type" : "null"
46934 }
56122987
DM
46935 }
46936 },
bb4c8cf8 46937 "leaf" : 0,
44660702 46938 "path" : "/access/users/{userid}",
7aacca6f 46939 "text" : "{userid}"
56122987 46940 }
7aacca6f 46941 ],
56122987 46942 "info" : {
7aacca6f 46943 "GET" : {
e9cd3bd4 46944 "allowtoken" : 1,
44660702
DM
46945 "description" : "User index.",
46946 "method" : "GET",
7aacca6f 46947 "name" : "index",
56122987 46948 "parameters" : {
44660702
DM
46949 "additionalProperties" : 0,
46950 "properties" : {
46951 "enabled" : {
46952 "description" : "Optional filter for enable property.",
46953 "optional" : 1,
013dc89f
DM
46954 "type" : "boolean",
46955 "typetext" : "<boolean>"
e9cd3bd4
TL
46956 },
46957 "full" : {
46958 "default" : 0,
46959 "description" : "Include group and token information.",
46960 "optional" : 1,
46961 "type" : "boolean",
46962 "typetext" : "<boolean>"
44660702
DM
46963 }
46964 }
46965 },
46966 "permissions" : {
46967 "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.",
46968 "user" : "all"
56122987 46969 },
7aacca6f 46970 "returns" : {
7aacca6f
DM
46971 "items" : {
46972 "properties" : {
e2d681b3
TL
46973 "comment" : {
46974 "optional" : 1,
46975 "type" : "string"
46976 },
46977 "email" : {
46978 "format" : "email-opt",
46979 "optional" : 1,
46980 "type" : "string"
46981 },
46982 "enable" : {
46983 "default" : 1,
46984 "description" : "Enable the account (default). You can set this to '0' to disable the account",
46985 "optional" : 1,
46986 "type" : "boolean"
46987 },
46988 "expire" : {
46989 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
46990 "minimum" : 0,
46991 "optional" : 1,
46992 "type" : "integer"
46993 },
46994 "firstname" : {
46995 "optional" : 1,
46996 "type" : "string"
46997 },
e9cd3bd4
TL
46998 "groups" : {
46999 "format" : "pve-groupid-list",
47000 "optional" : 1,
47001 "type" : "string"
47002 },
e2d681b3
TL
47003 "keys" : {
47004 "description" : "Keys for two factor auth (yubico).",
47005 "optional" : 1,
47006 "type" : "string"
47007 },
47008 "lastname" : {
47009 "optional" : 1,
47010 "type" : "string"
47011 },
34f3e481
TL
47012 "realm-type" : {
47013 "description" : "The type of the users realm",
47014 "format" : "pve-realm",
47015 "optional" : 1,
47016 "type" : "string"
47017 },
e9cd3bd4
TL
47018 "tokens" : {
47019 "items" : {
47020 "properties" : {
47021 "comment" : {
47022 "optional" : 1,
47023 "type" : "string"
47024 },
47025 "expire" : {
47026 "default" : "same as user",
47027 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
47028 "minimum" : 0,
47029 "optional" : 1,
47030 "type" : "integer"
47031 },
47032 "privsep" : {
47033 "default" : 1,
47034 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
47035 "optional" : 1,
47036 "type" : "boolean"
47037 },
47038 "tokenid" : {
47039 "description" : "User-specific token identifier.",
47040 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
47041 "type" : "string"
47042 }
47043 },
47044 "type" : "object"
47045 },
47046 "optional" : 1,
47047 "type" : "array"
47048 },
44660702 47049 "userid" : {
e2d681b3
TL
47050 "description" : "User ID",
47051 "format" : "pve-userid",
47052 "maxLength" : 64,
7aacca6f
DM
47053 "type" : "string"
47054 }
47055 },
47056 "type" : "object"
47057 },
44660702
DM
47058 "links" : [
47059 {
47060 "href" : "{userid}",
47061 "rel" : "child"
47062 }
47063 ],
7aacca6f
DM
47064 "type" : "array"
47065 }
47066 },
47067 "POST" : {
e9cd3bd4 47068 "allowtoken" : 1,
44660702 47069 "description" : "Create new user.",
7aacca6f 47070 "method" : "POST",
44660702 47071 "name" : "create_user",
56122987 47072 "parameters" : {
7aacca6f
DM
47073 "additionalProperties" : 0,
47074 "properties" : {
44660702
DM
47075 "comment" : {
47076 "optional" : 1,
013dc89f
DM
47077 "type" : "string",
47078 "typetext" : "<string>"
7aacca6f 47079 },
44660702
DM
47080 "email" : {
47081 "format" : "email-opt",
47082 "optional" : 1,
013dc89f
DM
47083 "type" : "string",
47084 "typetext" : "<string>"
44660702
DM
47085 },
47086 "enable" : {
47087 "default" : 1,
e2d681b3 47088 "description" : "Enable the account (default). You can set this to '0' to disable the account",
44660702 47089 "optional" : 1,
013dc89f
DM
47090 "type" : "boolean",
47091 "typetext" : "<boolean>"
44660702
DM
47092 },
47093 "expire" : {
47094 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
47095 "minimum" : 0,
47096 "optional" : 1,
4bd7df8b 47097 "type" : "integer",
013dc89f 47098 "typetext" : "<integer> (0 - N)"
44660702
DM
47099 },
47100 "firstname" : {
47101 "optional" : 1,
013dc89f
DM
47102 "type" : "string",
47103 "typetext" : "<string>"
44660702
DM
47104 },
47105 "groups" : {
47106 "format" : "pve-groupid-list",
47107 "optional" : 1,
013dc89f
DM
47108 "type" : "string",
47109 "typetext" : "<string>"
44660702
DM
47110 },
47111 "keys" : {
47112 "description" : "Keys for two factor auth (yubico).",
47113 "optional" : 1,
013dc89f
DM
47114 "type" : "string",
47115 "typetext" : "<string>"
44660702
DM
47116 },
47117 "lastname" : {
7aacca6f 47118 "optional" : 1,
013dc89f
DM
47119 "type" : "string",
47120 "typetext" : "<string>"
44660702
DM
47121 },
47122 "password" : {
47123 "description" : "Initial password.",
47124 "maxLength" : 64,
47125 "minLength" : 5,
47126 "optional" : 1,
013dc89f
DM
47127 "type" : "string",
47128 "typetext" : "<string>"
44660702
DM
47129 },
47130 "userid" : {
47131 "description" : "User ID",
47132 "format" : "pve-userid",
47133 "maxLength" : 64,
013dc89f
DM
47134 "type" : "string",
47135 "typetext" : "<string>"
56122987 47136 }
7aacca6f 47137 }
56122987 47138 },
44660702
DM
47139 "permissions" : {
47140 "check" : [
47141 "and",
47142 [
47143 "userid-param",
47144 "Realm.AllocateUser"
47145 ],
47146 [
47147 "userid-group",
47148 [
47149 "User.Modify"
47150 ],
47151 "groups_param",
c30bb419 47152 "create"
44660702
DM
47153 ]
47154 ],
47155 "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."
47156 },
47157 "protected" : 1,
47158 "returns" : {
47159 "type" : "null"
47160 }
56122987
DM
47161 }
47162 },
44660702
DM
47163 "leaf" : 0,
47164 "path" : "/access/users",
47165 "text" : "users"
47166 },
47167 {
56122987
DM
47168 "children" : [
47169 {
56122987
DM
47170 "info" : {
47171 "DELETE" : {
e9cd3bd4 47172 "allowtoken" : 1,
44660702
DM
47173 "description" : "Delete group.",
47174 "method" : "DELETE",
47175 "name" : "delete_group",
47176 "parameters" : {
47177 "additionalProperties" : 0,
47178 "properties" : {
47179 "groupid" : {
47180 "format" : "pve-groupid",
013dc89f
DM
47181 "type" : "string",
47182 "typetext" : "<string>"
44660702
DM
47183 }
47184 }
47185 },
7aacca6f
DM
47186 "permissions" : {
47187 "check" : [
47188 "perm",
47189 "/access/groups",
47190 [
47191 "Group.Allocate"
47192 ]
47193 ]
47194 },
7aacca6f 47195 "protected" : 1,
7aacca6f
DM
47196 "returns" : {
47197 "type" : "null"
44660702 47198 }
7aacca6f 47199 },
44660702 47200 "GET" : {
e9cd3bd4 47201 "allowtoken" : 1,
44660702
DM
47202 "description" : "Get group configuration.",
47203 "method" : "GET",
47204 "name" : "read_group",
47205 "parameters" : {
47206 "additionalProperties" : 0,
47207 "properties" : {
47208 "groupid" : {
47209 "format" : "pve-groupid",
013dc89f
DM
47210 "type" : "string",
47211 "typetext" : "<string>"
44660702
DM
47212 }
47213 }
56122987 47214 },
7aacca6f
DM
47215 "permissions" : {
47216 "check" : [
47217 "perm",
47218 "/access/groups",
47219 [
44660702 47220 "Sys.Audit",
7aacca6f 47221 "Group.Allocate"
44660702
DM
47222 ],
47223 "any",
47224 1
7aacca6f
DM
47225 ]
47226 },
7aacca6f 47227 "returns" : {
44660702 47228 "additionalProperties" : 0,
7aacca6f
DM
47229 "properties" : {
47230 "comment" : {
44660702
DM
47231 "optional" : 1,
47232 "type" : "string"
7aacca6f
DM
47233 },
47234 "members" : {
47235 "items" : {
e2d681b3
TL
47236 "description" : "User ID",
47237 "format" : "pve-userid",
47238 "maxLength" : 64,
7aacca6f
DM
47239 "type" : "string"
47240 },
47241 "type" : "array"
47242 }
47243 },
44660702
DM
47244 "type" : "object"
47245 }
47246 },
47247 "PUT" : {
e9cd3bd4 47248 "allowtoken" : 1,
44660702
DM
47249 "description" : "Update group data.",
47250 "method" : "PUT",
47251 "name" : "update_group",
56122987 47252 "parameters" : {
44660702 47253 "additionalProperties" : 0,
56122987 47254 "properties" : {
44660702
DM
47255 "comment" : {
47256 "optional" : 1,
013dc89f
DM
47257 "type" : "string",
47258 "typetext" : "<string>"
44660702 47259 },
56122987
DM
47260 "groupid" : {
47261 "format" : "pve-groupid",
013dc89f
DM
47262 "type" : "string",
47263 "typetext" : "<string>"
56122987 47264 }
44660702 47265 }
56122987 47266 },
56122987
DM
47267 "permissions" : {
47268 "check" : [
47269 "perm",
47270 "/access/groups",
47271 [
47272 "Group.Allocate"
44660702 47273 ]
56122987
DM
47274 ]
47275 },
44660702
DM
47276 "protected" : 1,
47277 "returns" : {
47278 "type" : "null"
47279 }
7aacca6f
DM
47280 }
47281 },
7aacca6f 47282 "leaf" : 1,
44660702
DM
47283 "path" : "/access/groups/{groupid}",
47284 "text" : "{groupid}"
47285 }
47286 ],
47287 "info" : {
47288 "GET" : {
e9cd3bd4 47289 "allowtoken" : 1,
44660702
DM
47290 "description" : "Group index.",
47291 "method" : "GET",
47292 "name" : "index",
47293 "parameters" : {
47294 "additionalProperties" : 0
47295 },
47296 "permissions" : {
47297 "description" : "The returned list is restricted to groups where you have 'User.Modify', 'Sys.Audit' or 'Group.Allocate' permissions on /access/groups/<group>.",
47298 "user" : "all"
47299 },
47300 "returns" : {
47301 "items" : {
47302 "properties" : {
e2d681b3
TL
47303 "comment" : {
47304 "optional" : 1,
47305 "type" : "string"
47306 },
44660702 47307 "groupid" : {
e2d681b3 47308 "format" : "pve-groupid",
44660702 47309 "type" : "string"
e9cd3bd4
TL
47310 },
47311 "users" : {
47312 "description" : "list of users which form this group",
47313 "format" : "pve-userid-list",
47314 "optional" : 1,
47315 "type" : "string"
44660702
DM
47316 }
47317 },
47318 "type" : "object"
47319 },
47320 "links" : [
47321 {
47322 "href" : "{groupid}",
47323 "rel" : "child"
47324 }
47325 ],
47326 "type" : "array"
47327 }
47328 },
47329 "POST" : {
e9cd3bd4 47330 "allowtoken" : 1,
44660702
DM
47331 "description" : "Create new group.",
47332 "method" : "POST",
47333 "name" : "create_group",
47334 "parameters" : {
47335 "additionalProperties" : 0,
47336 "properties" : {
47337 "comment" : {
47338 "optional" : 1,
013dc89f
DM
47339 "type" : "string",
47340 "typetext" : "<string>"
44660702
DM
47341 },
47342 "groupid" : {
47343 "format" : "pve-groupid",
013dc89f
DM
47344 "type" : "string",
47345 "typetext" : "<string>"
44660702
DM
47346 }
47347 }
47348 },
47349 "permissions" : {
47350 "check" : [
47351 "perm",
47352 "/access/groups",
47353 [
47354 "Group.Allocate"
47355 ]
47356 ]
47357 },
47358 "protected" : 1,
47359 "returns" : {
47360 "type" : "null"
47361 }
7aacca6f 47362 }
44660702 47363 },
7aacca6f 47364 "leaf" : 0,
44660702
DM
47365 "path" : "/access/groups",
47366 "text" : "groups"
7aacca6f
DM
47367 },
47368 {
47369 "children" : [
47370 {
7aacca6f 47371 "info" : {
7aacca6f 47372 "DELETE" : {
e9cd3bd4 47373 "allowtoken" : 1,
7aacca6f 47374 "description" : "Delete role.",
44660702 47375 "method" : "DELETE",
7aacca6f 47376 "name" : "delete_role",
56122987
DM
47377 "parameters" : {
47378 "additionalProperties" : 0,
47379 "properties" : {
7aacca6f
DM
47380 "roleid" : {
47381 "format" : "pve-roleid",
013dc89f
DM
47382 "type" : "string",
47383 "typetext" : "<string>"
56122987
DM
47384 }
47385 }
47386 },
56122987
DM
47387 "permissions" : {
47388 "check" : [
47389 "perm",
7aacca6f 47390 "/access",
56122987 47391 [
7aacca6f
DM
47392 "Sys.Modify"
47393 ]
56122987 47394 ]
44660702
DM
47395 },
47396 "protected" : 1,
47397 "returns" : {
47398 "type" : "null"
56122987
DM
47399 }
47400 },
44660702 47401 "GET" : {
e9cd3bd4 47402 "allowtoken" : 1,
44660702
DM
47403 "description" : "Get role configuration.",
47404 "method" : "GET",
47405 "name" : "read_role",
47406 "parameters" : {
47407 "additionalProperties" : 0,
47408 "properties" : {
47409 "roleid" : {
47410 "format" : "pve-roleid",
013dc89f
DM
47411 "type" : "string",
47412 "typetext" : "<string>"
44660702
DM
47413 }
47414 }
47415 },
7aacca6f 47416 "permissions" : {
44660702 47417 "user" : "all"
56122987 47418 },
e2d681b3
TL
47419 "returns" : {
47420 "additionalProperties" : 0,
47421 "properties" : {
47422 "Datastore.Allocate" : {
47423 "optional" : 1,
47424 "type" : "boolean"
47425 },
47426 "Datastore.AllocateSpace" : {
47427 "optional" : 1,
47428 "type" : "boolean"
47429 },
47430 "Datastore.AllocateTemplate" : {
47431 "optional" : 1,
47432 "type" : "boolean"
47433 },
47434 "Datastore.Audit" : {
47435 "optional" : 1,
47436 "type" : "boolean"
47437 },
47438 "Group.Allocate" : {
47439 "optional" : 1,
47440 "type" : "boolean"
47441 },
47442 "Permissions.Modify" : {
47443 "optional" : 1,
47444 "type" : "boolean"
47445 },
47446 "Pool.Allocate" : {
47447 "optional" : 1,
47448 "type" : "boolean"
47449 },
0695fdaf
TL
47450 "Pool.Audit" : {
47451 "optional" : 1,
47452 "type" : "boolean"
47453 },
e2d681b3
TL
47454 "Realm.Allocate" : {
47455 "optional" : 1,
47456 "type" : "boolean"
47457 },
47458 "Realm.AllocateUser" : {
47459 "optional" : 1,
47460 "type" : "boolean"
47461 },
5c1699e5
TL
47462 "SDN.Allocate" : {
47463 "optional" : 1,
47464 "type" : "boolean"
47465 },
47466 "SDN.Audit" : {
47467 "optional" : 1,
47468 "type" : "boolean"
47469 },
e2d681b3
TL
47470 "Sys.Audit" : {
47471 "optional" : 1,
47472 "type" : "boolean"
47473 },
47474 "Sys.Console" : {
47475 "optional" : 1,
47476 "type" : "boolean"
47477 },
81a3384d
TL
47478 "Sys.Incoming" : {
47479 "optional" : 1,
47480 "type" : "boolean"
47481 },
e2d681b3
TL
47482 "Sys.Modify" : {
47483 "optional" : 1,
47484 "type" : "boolean"
47485 },
47486 "Sys.PowerMgmt" : {
47487 "optional" : 1,
47488 "type" : "boolean"
47489 },
47490 "Sys.Syslog" : {
47491 "optional" : 1,
47492 "type" : "boolean"
47493 },
47494 "User.Modify" : {
47495 "optional" : 1,
47496 "type" : "boolean"
47497 },
47498 "VM.Allocate" : {
47499 "optional" : 1,
47500 "type" : "boolean"
47501 },
47502 "VM.Audit" : {
47503 "optional" : 1,
47504 "type" : "boolean"
47505 },
47506 "VM.Backup" : {
47507 "optional" : 1,
47508 "type" : "boolean"
47509 },
47510 "VM.Clone" : {
47511 "optional" : 1,
47512 "type" : "boolean"
47513 },
47514 "VM.Config.CDROM" : {
47515 "optional" : 1,
47516 "type" : "boolean"
47517 },
47518 "VM.Config.CPU" : {
47519 "optional" : 1,
47520 "type" : "boolean"
47521 },
ac70d7d1
TL
47522 "VM.Config.Cloudinit" : {
47523 "optional" : 1,
47524 "type" : "boolean"
47525 },
e2d681b3
TL
47526 "VM.Config.Disk" : {
47527 "optional" : 1,
47528 "type" : "boolean"
47529 },
47530 "VM.Config.HWType" : {
47531 "optional" : 1,
47532 "type" : "boolean"
47533 },
47534 "VM.Config.Memory" : {
47535 "optional" : 1,
47536 "type" : "boolean"
47537 },
47538 "VM.Config.Network" : {
47539 "optional" : 1,
47540 "type" : "boolean"
47541 },
47542 "VM.Config.Options" : {
47543 "optional" : 1,
47544 "type" : "boolean"
47545 },
47546 "VM.Console" : {
47547 "optional" : 1,
47548 "type" : "boolean"
47549 },
47550 "VM.Migrate" : {
47551 "optional" : 1,
47552 "type" : "boolean"
47553 },
47554 "VM.Monitor" : {
47555 "optional" : 1,
47556 "type" : "boolean"
47557 },
47558 "VM.PowerMgmt" : {
47559 "optional" : 1,
47560 "type" : "boolean"
47561 },
47562 "VM.Snapshot" : {
47563 "optional" : 1,
47564 "type" : "boolean"
47565 },
47566 "VM.Snapshot.Rollback" : {
47567 "optional" : 1,
47568 "type" : "boolean"
47569 }
47570 },
47571 "type" : "object"
47572 }
44660702
DM
47573 },
47574 "PUT" : {
e9cd3bd4 47575 "allowtoken" : 1,
e2d681b3 47576 "description" : "Update an existing role.",
44660702
DM
47577 "method" : "PUT",
47578 "name" : "update_role",
56122987
DM
47579 "parameters" : {
47580 "additionalProperties" : 0,
47581 "properties" : {
7aacca6f 47582 "append" : {
44660702 47583 "optional" : 1,
7aacca6f 47584 "requires" : "privs",
013dc89f
DM
47585 "type" : "boolean",
47586 "typetext" : "<boolean>"
7aacca6f
DM
47587 },
47588 "privs" : {
47589 "format" : "pve-priv-list",
e2d681b3 47590 "optional" : 1,
013dc89f
DM
47591 "type" : "string",
47592 "typetext" : "<string>"
44660702
DM
47593 },
47594 "roleid" : {
47595 "format" : "pve-roleid",
013dc89f
DM
47596 "type" : "string",
47597 "typetext" : "<string>"
56122987
DM
47598 }
47599 }
47600 },
44660702
DM
47601 "permissions" : {
47602 "check" : [
47603 "perm",
47604 "/access",
47605 [
47606 "Sys.Modify"
47607 ]
47608 ]
47609 },
56122987 47610 "protected" : 1,
7aacca6f
DM
47611 "returns" : {
47612 "type" : "null"
56122987
DM
47613 }
47614 }
47615 },
44660702 47616 "leaf" : 1,
7aacca6f 47617 "path" : "/access/roles/{roleid}",
44660702 47618 "text" : "{roleid}"
56122987
DM
47619 }
47620 ],
56122987 47621 "info" : {
7aacca6f 47622 "GET" : {
e9cd3bd4 47623 "allowtoken" : 1,
7aacca6f 47624 "description" : "Role index.",
44660702 47625 "method" : "GET",
7aacca6f 47626 "name" : "index",
56122987 47627 "parameters" : {
56122987
DM
47628 "additionalProperties" : 0
47629 },
7aacca6f
DM
47630 "permissions" : {
47631 "user" : "all"
47632 },
56122987 47633 "returns" : {
7aacca6f 47634 "items" : {
7aacca6f 47635 "properties" : {
e2d681b3
TL
47636 "privs" : {
47637 "format" : "pve-priv-list",
47638 "optional" : 1,
47639 "type" : "string"
47640 },
7aacca6f 47641 "roleid" : {
e2d681b3 47642 "format" : "pve-roleid",
7aacca6f 47643 "type" : "string"
e2d681b3
TL
47644 },
47645 "special" : {
47646 "default" : 0,
47647 "optional" : 1,
47648 "type" : "boolean"
7aacca6f 47649 }
44660702
DM
47650 },
47651 "type" : "object"
47652 },
47653 "links" : [
47654 {
47655 "href" : "{roleid}",
47656 "rel" : "child"
7aacca6f 47657 }
44660702
DM
47658 ],
47659 "type" : "array"
47660 }
7aacca6f
DM
47661 },
47662 "POST" : {
e9cd3bd4 47663 "allowtoken" : 1,
7aacca6f 47664 "description" : "Create new role.",
44660702
DM
47665 "method" : "POST",
47666 "name" : "create_role",
7aacca6f
DM
47667 "parameters" : {
47668 "additionalProperties" : 0,
47669 "properties" : {
7aacca6f
DM
47670 "privs" : {
47671 "format" : "pve-priv-list",
47672 "optional" : 1,
013dc89f
DM
47673 "type" : "string",
47674 "typetext" : "<string>"
44660702
DM
47675 },
47676 "roleid" : {
47677 "format" : "pve-roleid",
013dc89f
DM
47678 "type" : "string",
47679 "typetext" : "<string>"
7aacca6f
DM
47680 }
47681 }
47682 },
44660702
DM
47683 "permissions" : {
47684 "check" : [
47685 "perm",
47686 "/access",
47687 [
47688 "Sys.Modify"
47689 ]
47690 ]
47691 },
47692 "protected" : 1,
7aacca6f
DM
47693 "returns" : {
47694 "type" : "null"
47695 }
47696 }
47697 },
44660702 47698 "leaf" : 0,
7aacca6f 47699 "path" : "/access/roles",
44660702 47700 "text" : "roles"
7aacca6f
DM
47701 },
47702 {
47703 "info" : {
56122987 47704 "GET" : {
e9cd3bd4 47705 "allowtoken" : 1,
44660702
DM
47706 "description" : "Get Access Control List (ACLs).",
47707 "method" : "GET",
47708 "name" : "read_acl",
7aacca6f
DM
47709 "parameters" : {
47710 "additionalProperties" : 0
47711 },
44660702
DM
47712 "permissions" : {
47713 "description" : "The returned list is restricted to objects where you have rights to modify permissions.",
47714 "user" : "all"
47715 },
56122987 47716 "returns" : {
56122987 47717 "items" : {
44660702 47718 "additionalProperties" : 0,
56122987 47719 "properties" : {
7aacca6f 47720 "path" : {
e2d681b3 47721 "description" : "Access control path",
7aacca6f
DM
47722 "type" : "string"
47723 },
44660702 47724 "propagate" : {
e2d681b3
TL
47725 "default" : 1,
47726 "description" : "Allow to propagate (inherit) permissions.",
47727 "optional" : 1,
44660702
DM
47728 "type" : "boolean"
47729 },
47730 "roleid" : {
47731 "type" : "string"
47732 },
7aacca6f
DM
47733 "type" : {
47734 "enum" : [
47735 "user",
e9cd3bd4
TL
47736 "group",
47737 "token"
7aacca6f
DM
47738 ],
47739 "type" : "string"
47740 },
7aacca6f
DM
47741 "ugid" : {
47742 "type" : "string"
56122987 47743 }
7aacca6f 47744 },
44660702 47745 "type" : "object"
7aacca6f
DM
47746 },
47747 "type" : "array"
44660702 47748 }
7aacca6f
DM
47749 },
47750 "PUT" : {
e9cd3bd4 47751 "allowtoken" : 1,
44660702
DM
47752 "description" : "Update Access Control List (add or remove permissions).",
47753 "method" : "PUT",
7aacca6f
DM
47754 "name" : "update_acl",
47755 "parameters" : {
47756 "additionalProperties" : 0,
47757 "properties" : {
47758 "delete" : {
44660702 47759 "description" : "Remove permissions (instead of adding it).",
7aacca6f 47760 "optional" : 1,
013dc89f
DM
47761 "type" : "boolean",
47762 "typetext" : "<boolean>"
7aacca6f 47763 },
44660702
DM
47764 "groups" : {
47765 "description" : "List of groups.",
47766 "format" : "pve-groupid-list",
7aacca6f 47767 "optional" : 1,
013dc89f
DM
47768 "type" : "string",
47769 "typetext" : "<string>"
7aacca6f
DM
47770 },
47771 "path" : {
47772 "description" : "Access control path",
013dc89f
DM
47773 "type" : "string",
47774 "typetext" : "<string>"
7aacca6f 47775 },
7aacca6f 47776 "propagate" : {
44660702 47777 "default" : 1,
7aacca6f 47778 "description" : "Allow to propagate (inherit) permissions.",
7aacca6f 47779 "optional" : 1,
013dc89f
DM
47780 "type" : "boolean",
47781 "typetext" : "<boolean>"
7aacca6f 47782 },
44660702
DM
47783 "roles" : {
47784 "description" : "List of roles.",
47785 "format" : "pve-roleid-list",
013dc89f
DM
47786 "type" : "string",
47787 "typetext" : "<string>"
44660702 47788 },
e9cd3bd4
TL
47789 "tokens" : {
47790 "description" : "List of API tokens.",
47791 "format" : "pve-tokenid-list",
47792 "optional" : 1,
47793 "type" : "string",
47794 "typetext" : "<string>"
47795 },
44660702
DM
47796 "users" : {
47797 "description" : "List of users.",
47798 "format" : "pve-userid-list",
7aacca6f 47799 "optional" : 1,
013dc89f
DM
47800 "type" : "string",
47801 "typetext" : "<string>"
56122987
DM
47802 }
47803 }
47804 },
56122987 47805 "permissions" : {
7aacca6f
DM
47806 "check" : [
47807 "perm-modify",
47808 "{path}"
47809 ]
47810 },
7aacca6f
DM
47811 "protected" : 1,
47812 "returns" : {
47813 "type" : "null"
44660702 47814 }
56122987
DM
47815 }
47816 },
7aacca6f 47817 "leaf" : 1,
44660702
DM
47818 "path" : "/access/acl",
47819 "text" : "acl"
7aacca6f
DM
47820 },
47821 {
56122987
DM
47822 "children" : [
47823 {
c5aa7e14
TL
47824 "children" : [
47825 {
47826 "info" : {
47827 "POST" : {
47828 "allowtoken" : 1,
47829 "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.",
47830 "method" : "POST",
47831 "name" : "sync",
47832 "parameters" : {
47833 "additionalProperties" : 0,
47834 "properties" : {
47835 "dry-run" : {
47836 "default" : 0,
47837 "description" : "If set, does not write anything.",
47838 "optional" : 1,
47839 "type" : "boolean",
47840 "typetext" : "<boolean>"
47841 },
47842 "enable-new" : {
47843 "default" : "1",
47844 "description" : "Enable newly synced users immediately.",
47845 "optional" : "1",
47846 "type" : "boolean",
47847 "typetext" : "<boolean>"
47848 },
47849 "full" : {
7af2edf9 47850 "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
47851 "optional" : "1",
47852 "type" : "boolean",
47853 "typetext" : "<boolean>"
47854 },
47855 "purge" : {
7af2edf9 47856 "description" : "DEPRECATED: use 'remove-vanished' instead. Remove ACLs for users or groups which were removed from the config during a sync.",
c5aa7e14
TL
47857 "optional" : "1",
47858 "type" : "boolean",
47859 "typetext" : "<boolean>"
47860 },
47861 "realm" : {
47862 "description" : "Authentication domain ID",
47863 "format" : "pve-realm",
47864 "maxLength" : 32,
47865 "type" : "string",
47866 "typetext" : "<string>"
47867 },
7af2edf9
TL
47868 "remove-vanished" : {
47869 "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.",
47870 "optional" : "1",
47871 "pattern" : "(?:(?:acl|properties|entry);)*(?:acl|properties|entry)",
47872 "type" : "string",
47873 "typetext" : "[acl];[properties];[entry]"
47874 },
c5aa7e14
TL
47875 "scope" : {
47876 "description" : "Select what to sync.",
47877 "enum" : [
47878 "users",
47879 "groups",
47880 "both"
47881 ],
47882 "optional" : "1",
47883 "type" : "string"
47884 }
47885 }
47886 },
47887 "permissions" : {
47888 "check" : [
47889 "and",
47890 [
c30bb419
TL
47891 "perm",
47892 "/access/realm/{realm}",
47893 [
47894 "Realm.AllocateUser"
47895 ]
c5aa7e14
TL
47896 ],
47897 [
c30bb419
TL
47898 "perm",
47899 "/access/groups",
c5aa7e14
TL
47900 [
47901 "User.Modify"
47902 ]
47903 ]
47904 ],
47905 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
47906 },
47907 "protected" : 1,
47908 "returns" : {
47909 "description" : "Worker Task-UPID",
47910 "type" : "string"
47911 }
47912 }
47913 },
47914 "leaf" : 1,
47915 "path" : "/access/domains/{realm}/sync",
47916 "text" : "sync"
47917 }
47918 ],
56122987 47919 "info" : {
44660702 47920 "DELETE" : {
e9cd3bd4 47921 "allowtoken" : 1,
44660702
DM
47922 "description" : "Delete an authentication server.",
47923 "method" : "DELETE",
47924 "name" : "delete",
47925 "parameters" : {
47926 "additionalProperties" : 0,
47927 "properties" : {
47928 "realm" : {
47929 "description" : "Authentication domain ID",
47930 "format" : "pve-realm",
47931 "maxLength" : 32,
013dc89f
DM
47932 "type" : "string",
47933 "typetext" : "<string>"
56122987 47934 }
44660702 47935 }
56122987 47936 },
56122987
DM
47937 "permissions" : {
47938 "check" : [
47939 "perm",
7aacca6f 47940 "/access/realm",
56122987 47941 [
7aacca6f 47942 "Realm.Allocate"
56122987
DM
47943 ]
47944 ]
47945 },
7aacca6f 47946 "protected" : 1,
7aacca6f
DM
47947 "returns" : {
47948 "type" : "null"
44660702 47949 }
7aacca6f 47950 },
44660702 47951 "GET" : {
e9cd3bd4 47952 "allowtoken" : 1,
44660702
DM
47953 "description" : "Get auth server configuration.",
47954 "method" : "GET",
47955 "name" : "read",
56122987 47956 "parameters" : {
44660702 47957 "additionalProperties" : 0,
56122987 47958 "properties" : {
7aacca6f 47959 "realm" : {
44660702 47960 "description" : "Authentication domain ID",
7aacca6f
DM
47961 "format" : "pve-realm",
47962 "maxLength" : 32,
013dc89f
DM
47963 "type" : "string",
47964 "typetext" : "<string>"
56122987 47965 }
44660702 47966 }
7aacca6f 47967 },
7aacca6f
DM
47968 "permissions" : {
47969 "check" : [
47970 "perm",
47971 "/access/realm",
47972 [
44660702
DM
47973 "Realm.Allocate",
47974 "Sys.Audit"
47975 ],
47976 "any",
47977 1
7aacca6f 47978 ]
44660702
DM
47979 },
47980 "returns" : {}
7aacca6f 47981 },
44660702 47982 "PUT" : {
e9cd3bd4 47983 "allowtoken" : 1,
44660702
DM
47984 "description" : "Update authentication server settings.",
47985 "method" : "PUT",
47986 "name" : "update",
7aacca6f 47987 "parameters" : {
44660702 47988 "additionalProperties" : 0,
7aacca6f 47989 "properties" : {
c30bb419
TL
47990 "acr-values" : {
47991 "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
47992 "optional" : 1,
47993 "type" : "string",
47994 "typetext" : "<string>"
47995 },
34f3e481
TL
47996 "autocreate" : {
47997 "default" : 0,
47998 "description" : "Automatically create users if they do not exist.",
47999 "optional" : 1,
48000 "type" : "boolean",
48001 "typetext" : "<boolean>"
48002 },
44660702
DM
48003 "base_dn" : {
48004 "description" : "LDAP base domain name",
48005 "maxLength" : 256,
48006 "optional" : 1,
48007 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
48008 "type" : "string"
48009 },
4bd7df8b
DM
48010 "bind_dn" : {
48011 "description" : "LDAP bind domain name",
48012 "maxLength" : 256,
48013 "optional" : 1,
48014 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
48015 "type" : "string"
48016 },
2489d6df
WB
48017 "capath" : {
48018 "default" : "/etc/ssl/certs",
48019 "description" : "Path to the CA certificate store",
48020 "optional" : 1,
48021 "type" : "string",
48022 "typetext" : "<string>"
48023 },
4772952b
TL
48024 "case-sensitive" : {
48025 "default" : 1,
48026 "description" : "username is case-sensitive",
48027 "optional" : 1,
48028 "type" : "boolean",
48029 "typetext" : "<boolean>"
48030 },
2489d6df
WB
48031 "cert" : {
48032 "description" : "Path to the client certificate",
48033 "optional" : 1,
48034 "type" : "string",
48035 "typetext" : "<string>"
48036 },
48037 "certkey" : {
48038 "description" : "Path to the client certificate key",
48039 "optional" : 1,
48040 "type" : "string",
48041 "typetext" : "<string>"
48042 },
34f3e481
TL
48043 "client-id" : {
48044 "description" : "OpenID Client ID",
48045 "maxLength" : 256,
48046 "optional" : 1,
48047 "type" : "string",
48048 "typetext" : "<string>"
48049 },
48050 "client-key" : {
48051 "description" : "OpenID Client Key",
48052 "maxLength" : 256,
48053 "optional" : 1,
48054 "type" : "string",
48055 "typetext" : "<string>"
48056 },
44660702
DM
48057 "comment" : {
48058 "description" : "Description.",
48059 "maxLength" : 4096,
48060 "optional" : 1,
013dc89f
DM
48061 "type" : "string",
48062 "typetext" : "<string>"
44660702
DM
48063 },
48064 "default" : {
48065 "description" : "Use this as default realm",
48066 "optional" : 1,
013dc89f
DM
48067 "type" : "boolean",
48068 "typetext" : "<boolean>"
44660702
DM
48069 },
48070 "delete" : {
48071 "description" : "A list of settings you want to delete.",
48072 "format" : "pve-configid-list",
48073 "maxLength" : 4096,
48074 "optional" : 1,
013dc89f
DM
48075 "type" : "string",
48076 "typetext" : "<string>"
44660702
DM
48077 },
48078 "digest" : {
48079 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
48080 "maxLength" : 40,
48081 "optional" : 1,
013dc89f
DM
48082 "type" : "string",
48083 "typetext" : "<string>"
44660702
DM
48084 },
48085 "domain" : {
48086 "description" : "AD domain name",
48087 "maxLength" : 256,
48088 "optional" : 1,
48089 "pattern" : "\\S+",
48090 "type" : "string"
48091 },
c5aa7e14
TL
48092 "filter" : {
48093 "description" : "LDAP filter for user sync.",
48094 "maxLength" : 2048,
48095 "optional" : 1,
48096 "type" : "string",
48097 "typetext" : "<string>"
48098 },
48099 "group_classes" : {
48100 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
48101 "description" : "The objectclasses for groups.",
48102 "format" : "ldap-simple-attr-list",
48103 "optional" : 1,
48104 "type" : "string",
48105 "typetext" : "<string>"
48106 },
48107 "group_dn" : {
48108 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
48109 "maxLength" : 256,
48110 "optional" : 1,
48111 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
48112 "type" : "string"
48113 },
48114 "group_filter" : {
48115 "description" : "LDAP filter for group sync.",
48116 "maxLength" : 2048,
48117 "optional" : 1,
48118 "type" : "string",
48119 "typetext" : "<string>"
48120 },
48121 "group_name_attr" : {
48122 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
48123 "format" : "ldap-simple-attr",
48124 "maxLength" : 256,
48125 "optional" : 1,
48126 "type" : "string",
48127 "typetext" : "<string>"
48128 },
34f3e481
TL
48129 "issuer-url" : {
48130 "description" : "OpenID Issuer Url",
48131 "maxLength" : 256,
48132 "optional" : 1,
48133 "type" : "string",
48134 "typetext" : "<string>"
48135 },
c5aa7e14
TL
48136 "mode" : {
48137 "default" : "ldap",
48138 "description" : "LDAP protocol mode.",
48139 "enum" : [
48140 "ldap",
48141 "ldaps",
48142 "ldap+starttls"
48143 ],
48144 "optional" : 1,
48145 "type" : "string"
48146 },
48147 "password" : {
48148 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
48149 "optional" : 1,
48150 "type" : "string",
48151 "typetext" : "<string>"
48152 },
44660702
DM
48153 "port" : {
48154 "description" : "Server port.",
48155 "maximum" : 65535,
48156 "minimum" : 1,
48157 "optional" : 1,
4bd7df8b 48158 "type" : "integer",
013dc89f 48159 "typetext" : "<integer> (1 - 65535)"
44660702 48160 },
c30bb419
TL
48161 "prompt" : {
48162 "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
48163 "optional" : 1,
48164 "pattern" : "(?:none|login|consent|select_account|\\S+)",
48165 "type" : "string"
48166 },
7aacca6f 48167 "realm" : {
7aacca6f
DM
48168 "description" : "Authentication domain ID",
48169 "format" : "pve-realm",
44660702 48170 "maxLength" : 32,
013dc89f
DM
48171 "type" : "string",
48172 "typetext" : "<string>"
44660702 48173 },
c30bb419
TL
48174 "scopes" : {
48175 "default" : "email profile",
48176 "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
48177 "optional" : 1,
48178 "type" : "string",
48179 "typetext" : "<string>"
48180 },
44660702 48181 "secure" : {
c5aa7e14 48182 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
44660702 48183 "optional" : 1,
013dc89f
DM
48184 "type" : "boolean",
48185 "typetext" : "<boolean>"
44660702
DM
48186 },
48187 "server1" : {
48188 "description" : "Server IP address (or DNS name)",
48189 "format" : "address",
48190 "maxLength" : 256,
48191 "optional" : 1,
013dc89f
DM
48192 "type" : "string",
48193 "typetext" : "<string>"
44660702
DM
48194 },
48195 "server2" : {
48196 "description" : "Fallback Server IP address (or DNS name)",
48197 "format" : "address",
48198 "maxLength" : 256,
48199 "optional" : 1,
013dc89f
DM
48200 "type" : "string",
48201 "typetext" : "<string>"
44660702 48202 },
1c532546
TL
48203 "sslversion" : {
48204 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
48205 "enum" : [
48206 "tlsv1",
48207 "tlsv1_1",
48208 "tlsv1_2",
48209 "tlsv1_3"
48210 ],
48211 "optional" : 1,
48212 "type" : "string"
48213 },
c5aa7e14
TL
48214 "sync-defaults-options" : {
48215 "description" : "The default options for behavior of synchronizations.",
48216 "format" : "realm-sync-options",
48217 "optional" : 1,
48218 "type" : "string",
7af2edf9 48219 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=[acl];[properties];[entry]] [,scope=<users|groups|both>]"
c5aa7e14
TL
48220 },
48221 "sync_attributes" : {
48222 "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.",
48223 "optional" : 1,
48224 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
48225 "type" : "string"
48226 },
44660702
DM
48227 "tfa" : {
48228 "description" : "Use Two-factor authentication.",
48229 "format" : "pve-tfa-config",
48230 "maxLength" : 128,
48231 "optional" : 1,
013dc89f 48232 "type" : "string",
95895385 48233 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
44660702
DM
48234 },
48235 "user_attr" : {
48236 "description" : "LDAP user attribute name",
48237 "maxLength" : 256,
48238 "optional" : 1,
48239 "pattern" : "\\S{2,}",
48240 "type" : "string"
2489d6df 48241 },
c5aa7e14
TL
48242 "user_classes" : {
48243 "default" : "inetorgperson, posixaccount, person, user",
48244 "description" : "The objectclasses for users.",
48245 "format" : "ldap-simple-attr-list",
48246 "optional" : 1,
48247 "type" : "string",
48248 "typetext" : "<string>"
48249 },
2489d6df
WB
48250 "verify" : {
48251 "default" : 0,
48252 "description" : "Verify the server's SSL certificate",
48253 "optional" : 1,
48254 "type" : "boolean",
48255 "typetext" : "<boolean>"
7aacca6f 48256 }
56122987 48257 },
44660702 48258 "type" : "object"
56122987 48259 },
7aacca6f
DM
48260 "permissions" : {
48261 "check" : [
48262 "perm",
48263 "/access/realm",
48264 [
44660702
DM
48265 "Realm.Allocate"
48266 ]
7aacca6f
DM
48267 ]
48268 },
44660702
DM
48269 "protected" : 1,
48270 "returns" : {
48271 "type" : "null"
48272 }
56122987 48273 }
44660702 48274 },
c5aa7e14 48275 "leaf" : 0,
44660702
DM
48276 "path" : "/access/domains/{realm}",
48277 "text" : "{realm}"
56122987 48278 }
7aacca6f 48279 ],
56122987
DM
48280 "info" : {
48281 "GET" : {
e9cd3bd4 48282 "allowtoken" : 1,
44660702
DM
48283 "description" : "Authentication domain index.",
48284 "method" : "GET",
48285 "name" : "index",
48286 "parameters" : {
48287 "additionalProperties" : 0
48288 },
48289 "permissions" : {
48290 "description" : "Anyone can access that, because we need that list for the login box (before the user is authenticated).",
48291 "user" : "world"
48292 },
56122987 48293 "returns" : {
56122987
DM
48294 "items" : {
48295 "properties" : {
7aacca6f 48296 "comment" : {
52e44c50 48297 "description" : "A comment. The GUI use this text when you select a domain (Realm) on the login window.",
7aacca6f
DM
48298 "optional" : 1,
48299 "type" : "string"
48300 },
56122987
DM
48301 "realm" : {
48302 "type" : "string"
48303 },
48304 "tfa" : {
7aacca6f 48305 "description" : "Two-factor authentication provider.",
56122987
DM
48306 "enum" : [
48307 "yubico",
48308 "oath"
48309 ],
44660702
DM
48310 "optional" : 1,
48311 "type" : "string"
c5aa7e14
TL
48312 },
48313 "type" : {
48314 "type" : "string"
56122987
DM
48315 }
48316 },
48317 "type" : "object"
44660702
DM
48318 },
48319 "links" : [
48320 {
48321 "href" : "{realm}",
48322 "rel" : "child"
48323 }
48324 ],
48325 "type" : "array"
48326 }
56122987
DM
48327 },
48328 "POST" : {
e9cd3bd4 48329 "allowtoken" : 1,
7aacca6f 48330 "description" : "Add an authentication server.",
44660702 48331 "method" : "POST",
7aacca6f 48332 "name" : "create",
56122987 48333 "parameters" : {
44660702 48334 "additionalProperties" : 0,
56122987 48335 "properties" : {
c30bb419
TL
48336 "acr-values" : {
48337 "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
48338 "optional" : 1,
48339 "type" : "string",
48340 "typetext" : "<string>"
48341 },
34f3e481
TL
48342 "autocreate" : {
48343 "default" : 0,
48344 "description" : "Automatically create users if they do not exist.",
48345 "optional" : 1,
48346 "type" : "boolean",
48347 "typetext" : "<boolean>"
48348 },
44660702
DM
48349 "base_dn" : {
48350 "description" : "LDAP base domain name",
56122987 48351 "maxLength" : 256,
44660702
DM
48352 "optional" : 1,
48353 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
7aacca6f 48354 "type" : "string"
56122987 48355 },
4bd7df8b
DM
48356 "bind_dn" : {
48357 "description" : "LDAP bind domain name",
48358 "maxLength" : 256,
48359 "optional" : 1,
48360 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
48361 "type" : "string"
48362 },
2489d6df
WB
48363 "capath" : {
48364 "default" : "/etc/ssl/certs",
48365 "description" : "Path to the CA certificate store",
48366 "optional" : 1,
48367 "type" : "string",
48368 "typetext" : "<string>"
48369 },
4772952b
TL
48370 "case-sensitive" : {
48371 "default" : 1,
48372 "description" : "username is case-sensitive",
48373 "optional" : 1,
48374 "type" : "boolean",
48375 "typetext" : "<boolean>"
48376 },
2489d6df
WB
48377 "cert" : {
48378 "description" : "Path to the client certificate",
48379 "optional" : 1,
48380 "type" : "string",
48381 "typetext" : "<string>"
48382 },
48383 "certkey" : {
48384 "description" : "Path to the client certificate key",
48385 "optional" : 1,
48386 "type" : "string",
48387 "typetext" : "<string>"
48388 },
34f3e481
TL
48389 "client-id" : {
48390 "description" : "OpenID Client ID",
48391 "maxLength" : 256,
48392 "optional" : 1,
48393 "type" : "string",
48394 "typetext" : "<string>"
48395 },
48396 "client-key" : {
48397 "description" : "OpenID Client Key",
48398 "maxLength" : 256,
48399 "optional" : 1,
48400 "type" : "string",
48401 "typetext" : "<string>"
48402 },
44660702
DM
48403 "comment" : {
48404 "description" : "Description.",
48405 "maxLength" : 4096,
56122987 48406 "optional" : 1,
013dc89f
DM
48407 "type" : "string",
48408 "typetext" : "<string>"
56122987 48409 },
44660702
DM
48410 "default" : {
48411 "description" : "Use this as default realm",
7aacca6f 48412 "optional" : 1,
013dc89f
DM
48413 "type" : "boolean",
48414 "typetext" : "<boolean>"
56122987 48415 },
44660702
DM
48416 "domain" : {
48417 "description" : "AD domain name",
48418 "maxLength" : 256,
7aacca6f 48419 "optional" : 1,
44660702
DM
48420 "pattern" : "\\S+",
48421 "type" : "string"
56122987 48422 },
c5aa7e14
TL
48423 "filter" : {
48424 "description" : "LDAP filter for user sync.",
48425 "maxLength" : 2048,
48426 "optional" : 1,
48427 "type" : "string",
48428 "typetext" : "<string>"
48429 },
48430 "group_classes" : {
48431 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
48432 "description" : "The objectclasses for groups.",
48433 "format" : "ldap-simple-attr-list",
48434 "optional" : 1,
48435 "type" : "string",
48436 "typetext" : "<string>"
48437 },
48438 "group_dn" : {
48439 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
48440 "maxLength" : 256,
48441 "optional" : 1,
48442 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
48443 "type" : "string"
48444 },
48445 "group_filter" : {
48446 "description" : "LDAP filter for group sync.",
48447 "maxLength" : 2048,
48448 "optional" : 1,
48449 "type" : "string",
48450 "typetext" : "<string>"
48451 },
48452 "group_name_attr" : {
48453 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
48454 "format" : "ldap-simple-attr",
48455 "maxLength" : 256,
48456 "optional" : 1,
48457 "type" : "string",
48458 "typetext" : "<string>"
48459 },
34f3e481
TL
48460 "issuer-url" : {
48461 "description" : "OpenID Issuer Url",
48462 "maxLength" : 256,
48463 "optional" : 1,
48464 "type" : "string",
48465 "typetext" : "<string>"
48466 },
c5aa7e14
TL
48467 "mode" : {
48468 "default" : "ldap",
48469 "description" : "LDAP protocol mode.",
48470 "enum" : [
48471 "ldap",
48472 "ldaps",
48473 "ldap+starttls"
48474 ],
48475 "optional" : 1,
48476 "type" : "string"
48477 },
48478 "password" : {
48479 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
48480 "optional" : 1,
48481 "type" : "string",
48482 "typetext" : "<string>"
48483 },
7aacca6f 48484 "port" : {
44660702 48485 "description" : "Server port.",
7aacca6f 48486 "maximum" : 65535,
44660702 48487 "minimum" : 1,
7aacca6f 48488 "optional" : 1,
4bd7df8b 48489 "type" : "integer",
013dc89f 48490 "typetext" : "<integer> (1 - 65535)"
56122987 48491 },
c30bb419
TL
48492 "prompt" : {
48493 "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
48494 "optional" : 1,
48495 "pattern" : "(?:none|login|consent|select_account|\\S+)",
48496 "type" : "string"
48497 },
44660702
DM
48498 "realm" : {
48499 "description" : "Authentication domain ID",
48500 "format" : "pve-realm",
48501 "maxLength" : 32,
013dc89f
DM
48502 "type" : "string",
48503 "typetext" : "<string>"
44660702 48504 },
c30bb419
TL
48505 "scopes" : {
48506 "default" : "email profile",
48507 "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
48508 "optional" : 1,
48509 "type" : "string",
48510 "typetext" : "<string>"
48511 },
44660702 48512 "secure" : {
c5aa7e14 48513 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
7aacca6f 48514 "optional" : 1,
013dc89f
DM
48515 "type" : "boolean",
48516 "typetext" : "<boolean>"
56122987 48517 },
44660702
DM
48518 "server1" : {
48519 "description" : "Server IP address (or DNS name)",
48520 "format" : "address",
48521 "maxLength" : 256,
48522 "optional" : 1,
013dc89f
DM
48523 "type" : "string",
48524 "typetext" : "<string>"
56122987 48525 },
44660702
DM
48526 "server2" : {
48527 "description" : "Fallback Server IP address (or DNS name)",
48528 "format" : "address",
7aacca6f 48529 "maxLength" : 256,
7aacca6f 48530 "optional" : 1,
013dc89f
DM
48531 "type" : "string",
48532 "typetext" : "<string>"
7aacca6f 48533 },
1c532546
TL
48534 "sslversion" : {
48535 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
48536 "enum" : [
48537 "tlsv1",
48538 "tlsv1_1",
48539 "tlsv1_2",
48540 "tlsv1_3"
48541 ],
48542 "optional" : 1,
48543 "type" : "string"
48544 },
c5aa7e14
TL
48545 "sync-defaults-options" : {
48546 "description" : "The default options for behavior of synchronizations.",
48547 "format" : "realm-sync-options",
48548 "optional" : 1,
48549 "type" : "string",
7af2edf9 48550 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=[acl];[properties];[entry]] [,scope=<users|groups|both>]"
c5aa7e14
TL
48551 },
48552 "sync_attributes" : {
48553 "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.",
48554 "optional" : 1,
48555 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
48556 "type" : "string"
48557 },
44660702
DM
48558 "tfa" : {
48559 "description" : "Use Two-factor authentication.",
48560 "format" : "pve-tfa-config",
48561 "maxLength" : 128,
48562 "optional" : 1,
013dc89f 48563 "type" : "string",
95895385 48564 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
44660702
DM
48565 },
48566 "type" : {
48567 "description" : "Realm type.",
48568 "enum" : [
48569 "ad",
48570 "ldap",
34f3e481 48571 "openid",
44660702
DM
48572 "pam",
48573 "pve"
48574 ],
48575 "type" : "string"
48576 },
48577 "user_attr" : {
48578 "description" : "LDAP user attribute name",
7aacca6f 48579 "maxLength" : 256,
7aacca6f 48580 "optional" : 1,
44660702
DM
48581 "pattern" : "\\S{2,}",
48582 "type" : "string"
2489d6df 48583 },
c5aa7e14
TL
48584 "user_classes" : {
48585 "default" : "inetorgperson, posixaccount, person, user",
48586 "description" : "The objectclasses for users.",
48587 "format" : "ldap-simple-attr-list",
48588 "optional" : 1,
48589 "type" : "string",
48590 "typetext" : "<string>"
48591 },
34f3e481
TL
48592 "username-claim" : {
48593 "description" : "OpenID claim used to generate the unique username.",
34f3e481 48594 "optional" : 1,
c30bb419
TL
48595 "type" : "string",
48596 "typetext" : "<string>"
34f3e481 48597 },
2489d6df
WB
48598 "verify" : {
48599 "default" : 0,
48600 "description" : "Verify the server's SSL certificate",
48601 "optional" : 1,
48602 "type" : "boolean",
48603 "typetext" : "<boolean>"
7aacca6f
DM
48604 }
48605 },
7aacca6f 48606 "type" : "object"
56122987 48607 },
7aacca6f
DM
48608 "permissions" : {
48609 "check" : [
48610 "perm",
48611 "/access/realm",
48612 [
48613 "Realm.Allocate"
48614 ]
48615 ]
44660702
DM
48616 },
48617 "protected" : 1,
48618 "returns" : {
48619 "type" : "null"
7aacca6f 48620 }
56122987 48621 }
7aacca6f 48622 },
44660702 48623 "leaf" : 0,
56122987 48624 "path" : "/access/domains",
44660702 48625 "text" : "domains"
56122987 48626 },
34f3e481
TL
48627 {
48628 "children" : [
48629 {
48630 "info" : {
48631 "POST" : {
48632 "allowtoken" : 1,
48633 "description" : "Get the OpenId Authorization Url for the specified realm.",
48634 "method" : "POST",
48635 "name" : "auth_url",
48636 "parameters" : {
48637 "additionalProperties" : 0,
48638 "properties" : {
48639 "realm" : {
48640 "description" : "Authentication domain ID",
48641 "format" : "pve-realm",
48642 "maxLength" : 32,
48643 "type" : "string",
48644 "typetext" : "<string>"
48645 },
48646 "redirect-url" : {
48647 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
48648 "maxLength" : 255,
48649 "type" : "string",
48650 "typetext" : "<string>"
48651 }
48652 }
48653 },
48654 "permissions" : {
48655 "user" : "world"
48656 },
48657 "protected" : 1,
48658 "returns" : {
48659 "description" : "Redirection URL.",
48660 "type" : "string"
48661 }
48662 }
48663 },
48664 "leaf" : 1,
48665 "path" : "/access/openid/auth-url",
48666 "text" : "auth-url"
48667 },
48668 {
48669 "info" : {
48670 "POST" : {
48671 "allowtoken" : 1,
48672 "description" : " Verify OpenID authorization code and create a ticket.",
48673 "method" : "POST",
48674 "name" : "login",
48675 "parameters" : {
48676 "additionalProperties" : 0,
48677 "properties" : {
48678 "code" : {
48679 "description" : "OpenId authorization code.",
de786b48 48680 "maxLength" : 4096,
34f3e481
TL
48681 "type" : "string",
48682 "typetext" : "<string>"
48683 },
48684 "redirect-url" : {
48685 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
48686 "maxLength" : 255,
48687 "type" : "string",
48688 "typetext" : "<string>"
48689 },
48690 "state" : {
48691 "description" : "OpenId state.",
48692 "maxLength" : 1024,
48693 "type" : "string",
48694 "typetext" : "<string>"
48695 }
48696 }
48697 },
48698 "permissions" : {
48699 "user" : "world"
48700 },
48701 "protected" : 1,
48702 "returns" : {
48703 "properties" : {
48704 "CSRFPreventionToken" : {
48705 "type" : "string"
48706 },
48707 "cap" : {
48708 "type" : "object"
48709 },
48710 "clustername" : {
48711 "optional" : 1,
48712 "type" : "string"
48713 },
48714 "ticket" : {
48715 "type" : "string"
48716 },
48717 "username" : {
48718 "type" : "string"
48719 }
48720 }
48721 }
48722 }
48723 },
48724 "leaf" : 1,
48725 "path" : "/access/openid/login",
48726 "text" : "login"
48727 }
48728 ],
48729 "info" : {
48730 "GET" : {
48731 "allowtoken" : 1,
48732 "description" : "Directory index.",
48733 "method" : "GET",
48734 "name" : "index",
48735 "parameters" : {
48736 "additionalProperties" : 0
48737 },
48738 "permissions" : {
48739 "user" : "all"
48740 },
48741 "returns" : {
48742 "items" : {
48743 "properties" : {
48744 "subdir" : {
48745 "type" : "string"
48746 }
48747 },
48748 "type" : "object"
48749 },
48750 "links" : [
48751 {
48752 "href" : "{subdir}",
48753 "rel" : "child"
48754 }
48755 ],
48756 "type" : "array"
48757 }
48758 }
48759 },
48760 "leaf" : 0,
48761 "path" : "/access/openid",
48762 "text" : "openid"
48763 },
5370fa8c
TL
48764 {
48765 "children" : [
48766 {
48767 "children" : [
48768 {
48769 "info" : {
48770 "DELETE" : {
48771 "allowtoken" : 0,
48772 "description" : "Delete a TFA entry by ID.",
48773 "method" : "DELETE",
48774 "name" : "delete_tfa",
48775 "parameters" : {
48776 "additionalProperties" : 0,
48777 "properties" : {
48778 "id" : {
48779 "description" : "A TFA entry id.",
48780 "type" : "string",
48781 "typetext" : "<string>"
48782 },
48783 "password" : {
48784 "description" : "The current password.",
48785 "maxLength" : 64,
48786 "minLength" : 5,
48787 "optional" : 1,
48788 "type" : "string",
48789 "typetext" : "<string>"
48790 },
48791 "userid" : {
48792 "description" : "User ID",
48793 "format" : "pve-userid",
48794 "maxLength" : 64,
48795 "type" : "string",
48796 "typetext" : "<string>"
48797 }
48798 }
48799 },
48800 "permissions" : {
48801 "check" : [
48802 "or",
48803 [
48804 "userid-param",
48805 "self"
48806 ],
48807 [
48808 "userid-group",
48809 [
48810 "User.Modify"
48811 ]
48812 ]
48813 ]
48814 },
48815 "protected" : 1,
48816 "returns" : {
48817 "type" : "null"
48818 }
48819 },
48820 "GET" : {
48821 "allowtoken" : 0,
48822 "description" : "Fetch a requested TFA entry if present.",
48823 "method" : "GET",
48824 "name" : "get_tfa_entry",
48825 "parameters" : {
48826 "additionalProperties" : 0,
48827 "properties" : {
48828 "id" : {
48829 "description" : "A TFA entry id.",
48830 "type" : "string",
48831 "typetext" : "<string>"
48832 },
48833 "userid" : {
48834 "description" : "User ID",
48835 "format" : "pve-userid",
48836 "maxLength" : 64,
48837 "type" : "string",
48838 "typetext" : "<string>"
48839 }
48840 }
48841 },
48842 "permissions" : {
48843 "check" : [
48844 "or",
48845 [
48846 "userid-param",
48847 "self"
48848 ],
48849 [
48850 "userid-group",
48851 [
48852 "User.Modify",
48853 "Sys.Audit"
48854 ]
48855 ]
48856 ]
48857 },
48858 "protected" : 1,
48859 "returns" : {
48860 "description" : "TFA Entry.",
48861 "properties" : {
48862 "created" : {
48863 "description" : "Creation time of this entry as unix epoch.",
48864 "type" : "integer"
48865 },
48866 "description" : {
48867 "description" : "User chosen description for this entry.",
48868 "type" : "string"
48869 },
48870 "enable" : {
48871 "default" : 1,
48872 "description" : "Whether this TFA entry is currently enabled.",
48873 "optional" : 1,
48874 "type" : "boolean"
48875 },
48876 "id" : {
48877 "description" : "The id used to reference this entry.",
48878 "type" : "string"
48879 },
48880 "type" : {
48881 "description" : "TFA Entry Type.",
48882 "enum" : [
48883 "totp",
48884 "u2f",
48885 "webauthn",
48886 "recovery",
48887 "yubico"
48888 ],
48889 "type" : "string"
48890 }
48891 },
48892 "type" : "object"
48893 }
48894 },
48895 "PUT" : {
48896 "allowtoken" : 0,
48897 "description" : "Add a TFA entry for a user.",
48898 "method" : "PUT",
48899 "name" : "update_tfa_entry",
48900 "parameters" : {
48901 "additionalProperties" : 0,
48902 "properties" : {
48903 "description" : {
48904 "description" : "A description to distinguish multiple entries from one another",
48905 "maxLength" : 255,
48906 "optional" : 1,
48907 "type" : "string",
48908 "typetext" : "<string>"
48909 },
48910 "enable" : {
48911 "description" : "Whether the entry should be enabled for login.",
48912 "optional" : 1,
48913 "type" : "boolean",
48914 "typetext" : "<boolean>"
48915 },
48916 "id" : {
48917 "description" : "A TFA entry id.",
48918 "type" : "string",
48919 "typetext" : "<string>"
48920 },
48921 "password" : {
48922 "description" : "The current password.",
48923 "maxLength" : 64,
48924 "minLength" : 5,
48925 "optional" : 1,
48926 "type" : "string",
48927 "typetext" : "<string>"
48928 },
48929 "userid" : {
48930 "description" : "User ID",
48931 "format" : "pve-userid",
48932 "maxLength" : 64,
48933 "type" : "string",
48934 "typetext" : "<string>"
48935 }
48936 }
48937 },
48938 "permissions" : {
48939 "check" : [
48940 "or",
48941 [
48942 "userid-param",
48943 "self"
48944 ],
48945 [
48946 "userid-group",
48947 [
48948 "User.Modify"
48949 ]
48950 ]
48951 ]
48952 },
48953 "protected" : 1,
48954 "returns" : {
48955 "type" : "null"
48956 }
48957 }
48958 },
48959 "leaf" : 1,
48960 "path" : "/access/tfa/{userid}/{id}",
48961 "text" : "{id}"
48962 }
48963 ],
48964 "info" : {
48965 "GET" : {
48966 "allowtoken" : 0,
48967 "description" : "List TFA configurations of users.",
48968 "method" : "GET",
48969 "name" : "list_user_tfa",
48970 "parameters" : {
48971 "additionalProperties" : 0,
48972 "properties" : {
48973 "userid" : {
48974 "description" : "User ID",
48975 "format" : "pve-userid",
48976 "maxLength" : 64,
48977 "type" : "string",
48978 "typetext" : "<string>"
48979 }
48980 }
48981 },
48982 "permissions" : {
48983 "check" : [
48984 "or",
48985 [
48986 "userid-param",
48987 "self"
48988 ],
48989 [
48990 "userid-group",
48991 [
48992 "User.Modify",
48993 "Sys.Audit"
48994 ]
48995 ]
48996 ]
48997 },
48998 "protected" : 1,
48999 "returns" : {
49000 "description" : "A list of the user's TFA entries.",
49001 "items" : {
49002 "description" : "TFA Entry.",
49003 "properties" : {
49004 "created" : {
49005 "description" : "Creation time of this entry as unix epoch.",
49006 "type" : "integer"
49007 },
49008 "description" : {
49009 "description" : "User chosen description for this entry.",
49010 "type" : "string"
49011 },
49012 "enable" : {
49013 "default" : 1,
49014 "description" : "Whether this TFA entry is currently enabled.",
49015 "optional" : 1,
49016 "type" : "boolean"
49017 },
49018 "id" : {
49019 "description" : "The id used to reference this entry.",
49020 "type" : "string"
49021 },
49022 "type" : {
49023 "description" : "TFA Entry Type.",
49024 "enum" : [
49025 "totp",
49026 "u2f",
49027 "webauthn",
49028 "recovery",
49029 "yubico"
49030 ],
49031 "type" : "string"
49032 }
49033 },
49034 "type" : "object"
49035 },
49036 "type" : "array"
49037 }
49038 },
49039 "POST" : {
49040 "allowtoken" : 0,
49041 "description" : "Add a TFA entry for a user.",
49042 "method" : "POST",
49043 "name" : "add_tfa_entry",
49044 "parameters" : {
49045 "additionalProperties" : 0,
49046 "properties" : {
49047 "challenge" : {
49048 "description" : "When responding to a u2f challenge: the original challenge string",
49049 "optional" : 1,
49050 "type" : "string",
49051 "typetext" : "<string>"
49052 },
49053 "description" : {
49054 "description" : "A description to distinguish multiple entries from one another",
49055 "maxLength" : 255,
49056 "optional" : 1,
49057 "type" : "string",
49058 "typetext" : "<string>"
49059 },
49060 "password" : {
49061 "description" : "The current password.",
49062 "maxLength" : 64,
49063 "minLength" : 5,
49064 "optional" : 1,
49065 "type" : "string",
49066 "typetext" : "<string>"
49067 },
49068 "totp" : {
49069 "description" : "A totp URI.",
49070 "optional" : 1,
49071 "type" : "string",
49072 "typetext" : "<string>"
49073 },
49074 "type" : {
49075 "description" : "TFA Entry Type.",
49076 "enum" : [
49077 "totp",
49078 "u2f",
49079 "webauthn",
49080 "recovery",
49081 "yubico"
49082 ],
49083 "type" : "string"
49084 },
49085 "userid" : {
49086 "description" : "User ID",
49087 "format" : "pve-userid",
49088 "maxLength" : 64,
49089 "type" : "string",
49090 "typetext" : "<string>"
49091 },
49092 "value" : {
49093 "description" : "The current value for the provided totp URI, or a Webauthn/U2F challenge response",
49094 "optional" : 1,
49095 "type" : "string",
49096 "typetext" : "<string>"
49097 }
49098 }
49099 },
49100 "permissions" : {
49101 "check" : [
49102 "or",
49103 [
49104 "userid-param",
49105 "self"
49106 ],
49107 [
49108 "userid-group",
49109 [
49110 "User.Modify"
49111 ]
49112 ]
49113 ]
49114 },
49115 "protected" : 1,
49116 "returns" : {
49117 "properties" : {
49118 "challenge" : {
49119 "description" : "When adding u2f entries, this contains a challenge the user must respond to in order to finish the registration.",
49120 "optional" : 1,
49121 "type" : "string"
49122 },
49123 "id" : {
49124 "description" : "The id of a newly added TFA entry.",
49125 "type" : "string"
49126 },
49127 "recovery" : {
49128 "description" : "When adding recovery codes, this contains the list of codes to be displayed to the user",
49129 "items" : {
49130 "description" : "A recovery entry.",
49131 "type" : "string"
49132 },
49133 "optional" : 1,
49134 "type" : "array"
49135 }
49136 },
49137 "type" : "object"
49138 }
49139 }
49140 },
49141 "leaf" : 0,
49142 "path" : "/access/tfa/{userid}",
49143 "text" : "{userid}"
49144 }
49145 ],
49146 "info" : {
49147 "GET" : {
49148 "allowtoken" : 0,
49149 "description" : "List TFA configurations of users.",
49150 "method" : "GET",
49151 "name" : "list_tfa",
49152 "parameters" : {
49153 "additionalProperties" : 0
49154 },
49155 "permissions" : {
49156 "description" : "Returns all or just the logged-in user, depending on privileges.",
49157 "user" : "all"
49158 },
49159 "protected" : 1,
49160 "returns" : {
49161 "description" : "The list tuples of user and TFA entries.",
49162 "items" : {
49163 "properties" : {
49164 "entries" : {
49165 "items" : {
49166 "description" : "TFA Entry.",
49167 "properties" : {
49168 "created" : {
49169 "description" : "Creation time of this entry as unix epoch.",
49170 "type" : "integer"
49171 },
49172 "description" : {
49173 "description" : "User chosen description for this entry.",
49174 "type" : "string"
49175 },
49176 "enable" : {
49177 "default" : 1,
49178 "description" : "Whether this TFA entry is currently enabled.",
49179 "optional" : 1,
49180 "type" : "boolean"
49181 },
49182 "id" : {
49183 "description" : "The id used to reference this entry.",
49184 "type" : "string"
49185 },
49186 "type" : {
49187 "description" : "TFA Entry Type.",
49188 "enum" : [
49189 "totp",
49190 "u2f",
49191 "webauthn",
49192 "recovery",
49193 "yubico"
49194 ],
49195 "type" : "string"
49196 }
49197 },
49198 "type" : "object"
49199 },
49200 "type" : "array"
49201 },
49202 "userid" : {
49203 "description" : "User this entry belongs to.",
49204 "type" : "string"
49205 }
49206 },
49207 "type" : "object"
49208 },
49209 "type" : "array"
49210 }
49211 },
49212 "POST" : {
49213 "allowtoken" : 0,
49214 "description" : "Finish a u2f challenge.",
49215 "method" : "POST",
49216 "name" : "verify_tfa",
49217 "parameters" : {
49218 "additionalProperties" : 0,
49219 "properties" : {
49220 "response" : {
49221 "description" : "The response to the current authentication challenge.",
49222 "type" : "string",
49223 "typetext" : "<string>"
49224 }
49225 }
49226 },
49227 "permissions" : {
49228 "user" : "all"
49229 },
49230 "protected" : 1,
49231 "returns" : {
49232 "properties" : {
49233 "ticket" : {
49234 "type" : "string"
49235 }
49236 },
49237 "type" : "object"
49238 }
49239 }
49240 },
49241 "leaf" : 0,
49242 "path" : "/access/tfa",
49243 "text" : "tfa"
49244 },
56122987 49245 {
56122987 49246 "info" : {
44660702 49247 "GET" : {
e9cd3bd4 49248 "allowtoken" : 1,
2489d6df 49249 "description" : "Dummy. Useful for formatters which want to provide a login page.",
44660702
DM
49250 "method" : "GET",
49251 "name" : "get_ticket",
49252 "parameters" : {
49253 "additionalProperties" : 0
49254 },
49255 "permissions" : {
49256 "user" : "world"
49257 },
49258 "returns" : {
49259 "type" : "null"
49260 }
49261 },
56122987 49262 "POST" : {
e9cd3bd4 49263 "allowtoken" : 0,
44660702 49264 "description" : "Create or verify authentication ticket.",
56122987 49265 "method" : "POST",
44660702
DM
49266 "name" : "create_ticket",
49267 "parameters" : {
49268 "additionalProperties" : 0,
56122987 49269 "properties" : {
5370fa8c
TL
49270 "new-format" : {
49271 "default" : 0,
49272 "description" : "With webauthn the format of half-authenticated tickts changed. New clients should pass 1 here and not worry about the old format. The old format is deprecated and will be retired with PVE-8.0",
49273 "optional" : 1,
49274 "type" : "boolean",
49275 "typetext" : "<boolean>"
49276 },
44660702
DM
49277 "otp" : {
49278 "description" : "One-time password for Two-factor authentication.",
7aacca6f 49279 "optional" : 1,
013dc89f
DM
49280 "type" : "string",
49281 "typetext" : "<string>"
56122987 49282 },
7aacca6f
DM
49283 "password" : {
49284 "description" : "The secret password. This can also be a valid ticket.",
013dc89f
DM
49285 "type" : "string",
49286 "typetext" : "<string>"
7aacca6f 49287 },
44660702
DM
49288 "path" : {
49289 "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
7aacca6f 49290 "maxLength" : 64,
56122987 49291 "optional" : 1,
56122987 49292 "requires" : "privs",
013dc89f
DM
49293 "type" : "string",
49294 "typetext" : "<string>"
44660702
DM
49295 },
49296 "privs" : {
7aacca6f 49297 "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
44660702
DM
49298 "format" : "pve-priv-list",
49299 "maxLength" : 64,
56122987 49300 "optional" : 1,
44660702 49301 "requires" : "path",
013dc89f
DM
49302 "type" : "string",
49303 "typetext" : "<string>"
56122987
DM
49304 },
49305 "realm" : {
56122987 49306 "description" : "You can optionally pass the realm using this parameter. Normally the realm is simply added to the username <username>@<relam>.",
44660702 49307 "format" : "pve-realm",
7aacca6f 49308 "maxLength" : 32,
44660702 49309 "optional" : 1,
013dc89f
DM
49310 "type" : "string",
49311 "typetext" : "<string>"
56122987 49312 },
5370fa8c
TL
49313 "tfa-challenge" : {
49314 "description" : "The signed TFA challenge string the user wants to respond to.",
49315 "optional" : 1,
49316 "type" : "string",
49317 "typetext" : "<string>"
49318 },
56122987
DM
49319 "username" : {
49320 "description" : "User name",
44660702 49321 "maxLength" : 64,
013dc89f
DM
49322 "type" : "string",
49323 "typetext" : "<string>"
56122987 49324 }
44660702 49325 }
7aacca6f 49326 },
56122987 49327 "permissions" : {
44660702 49328 "description" : "You need to pass valid credientials.",
56122987
DM
49329 "user" : "world"
49330 },
44660702 49331 "protected" : 1,
7aacca6f 49332 "returns" : {
56122987 49333 "properties" : {
44660702
DM
49334 "CSRFPreventionToken" : {
49335 "optional" : 1,
49336 "type" : "string"
56122987 49337 },
e2d681b3
TL
49338 "clustername" : {
49339 "optional" : 1,
49340 "type" : "string"
49341 },
44660702
DM
49342 "ticket" : {
49343 "optional" : 1,
49344 "type" : "string"
49345 },
49346 "username" : {
56122987
DM
49347 "type" : "string"
49348 }
49349 },
44660702 49350 "type" : "object"
7aacca6f 49351 }
7aacca6f
DM
49352 }
49353 },
44660702
DM
49354 "leaf" : 1,
49355 "path" : "/access/ticket",
49356 "text" : "ticket"
7aacca6f 49357 },
56122987 49358 {
56122987 49359 "info" : {
7aacca6f 49360 "PUT" : {
e9cd3bd4 49361 "allowtoken" : 0,
44660702 49362 "description" : "Change user password.",
7aacca6f 49363 "method" : "PUT",
e2d681b3 49364 "name" : "change_password",
56122987
DM
49365 "parameters" : {
49366 "additionalProperties" : 0,
49367 "properties" : {
44660702
DM
49368 "password" : {
49369 "description" : "The new password.",
49370 "maxLength" : 64,
49371 "minLength" : 5,
013dc89f
DM
49372 "type" : "string",
49373 "typetext" : "<string>"
7aacca6f 49374 },
44660702
DM
49375 "userid" : {
49376 "description" : "User ID",
49377 "format" : "pve-userid",
49378 "maxLength" : 64,
013dc89f
DM
49379 "type" : "string",
49380 "typetext" : "<string>"
56122987 49381 }
7aacca6f 49382 }
56122987
DM
49383 },
49384 "permissions" : {
49385 "check" : [
44660702 49386 "or",
56122987 49387 [
44660702
DM
49388 "userid-param",
49389 "self"
49390 ],
49391 [
49392 "and",
49393 [
49394 "userid-param",
49395 "Realm.AllocateUser"
49396 ],
49397 [
49398 "userid-group",
49399 [
49400 "User.Modify"
49401 ]
49402 ]
56122987 49403 ]
7aacca6f 49404 ],
44660702 49405 "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 49406 },
44660702 49407 "protected" : 1,
7aacca6f
DM
49408 "returns" : {
49409 "type" : "null"
44660702
DM
49410 }
49411 }
49412 },
49413 "leaf" : 1,
49414 "path" : "/access/password",
49415 "text" : "password"
95895385 49416 },
e9cd3bd4
TL
49417 {
49418 "info" : {
49419 "GET" : {
49420 "allowtoken" : 1,
49421 "description" : "Retrieve effective permissions of given user/token.",
49422 "method" : "GET",
49423 "name" : "permissions",
49424 "parameters" : {
49425 "additionalProperties" : 0,
49426 "properties" : {
49427 "path" : {
49428 "description" : "Only dump this specific path, not the whole tree.",
49429 "optional" : 1,
49430 "type" : "string",
49431 "typetext" : "<string>"
49432 },
49433 "userid" : {
49434 "description" : "User ID or full API token ID",
49435 "optional" : 1,
49436 "pattern" : "(?^:^(?^:[^\\s:/]+)\\@(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)(?:!(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+))?$)",
49437 "type" : "string"
49438 }
49439 }
49440 },
49441 "permissions" : {
49442 "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.",
49443 "user" : "all"
49444 },
49445 "returns" : {
49446 "description" : "Map of \"path\" => (Map of \"privilege\" => \"propagate boolean\").",
49447 "type" : "object"
49448 }
49449 }
49450 },
49451 "leaf" : 1,
49452 "path" : "/access/permissions",
49453 "text" : "permissions"
44660702
DM
49454 }
49455 ],
49456 "info" : {
49457 "GET" : {
e9cd3bd4 49458 "allowtoken" : 1,
44660702
DM
49459 "description" : "Directory index.",
49460 "method" : "GET",
49461 "name" : "index",
49462 "parameters" : {
49463 "additionalProperties" : 0
49464 },
49465 "permissions" : {
49466 "user" : "all"
49467 },
49468 "returns" : {
49469 "items" : {
49470 "properties" : {
49471 "subdir" : {
49472 "type" : "string"
49473 }
7aacca6f 49474 },
44660702
DM
49475 "type" : "object"
49476 },
49477 "links" : [
49478 {
49479 "href" : "{subdir}",
49480 "rel" : "child"
49481 }
49482 ],
49483 "type" : "array"
49484 }
49485 }
49486 },
49487 "leaf" : 0,
49488 "path" : "/access",
49489 "text" : "access"
49490 },
49491 {
49492 "children" : [
49493 {
49494 "info" : {
49495 "DELETE" : {
e9cd3bd4 49496 "allowtoken" : 1,
7aacca6f 49497 "description" : "Delete pool.",
44660702
DM
49498 "method" : "DELETE",
49499 "name" : "delete_pool",
7aacca6f
DM
49500 "parameters" : {
49501 "additionalProperties" : 0,
49502 "properties" : {
49503 "poolid" : {
49504 "format" : "pve-poolid",
013dc89f
DM
49505 "type" : "string",
49506 "typetext" : "<string>"
7aacca6f
DM
49507 }
49508 }
49509 },
56122987
DM
49510 "permissions" : {
49511 "check" : [
49512 "perm",
49513 "/pool/{poolid}",
49514 [
49515 "Pool.Allocate"
49516 ]
44660702
DM
49517 ],
49518 "description" : "You can only delete empty pools (no members)."
49519 },
49520 "protected" : 1,
49521 "returns" : {
49522 "type" : "null"
7aacca6f
DM
49523 }
49524 },
49525 "GET" : {
e9cd3bd4 49526 "allowtoken" : 1,
7aacca6f 49527 "description" : "Get pool configuration.",
44660702 49528 "method" : "GET",
7aacca6f 49529 "name" : "read_pool",
56122987 49530 "parameters" : {
44660702 49531 "additionalProperties" : 0,
56122987
DM
49532 "properties" : {
49533 "poolid" : {
44660702 49534 "format" : "pve-poolid",
013dc89f
DM
49535 "type" : "string",
49536 "typetext" : "<string>"
c30bb419
TL
49537 },
49538 "type" : {
49539 "enum" : [
49540 "qemu",
49541 "lxc",
49542 "storage"
49543 ],
49544 "optional" : 1,
49545 "type" : "string"
56122987 49546 }
44660702 49547 }
56122987 49548 },
56122987 49549 "permissions" : {
56122987
DM
49550 "check" : [
49551 "perm",
49552 "/pool/{poolid}",
49553 [
0695fdaf 49554 "Pool.Audit"
56122987
DM
49555 ]
49556 ]
49557 },
7aacca6f 49558 "returns" : {
44660702 49559 "additionalProperties" : 0,
56122987 49560 "properties" : {
44660702
DM
49561 "comment" : {
49562 "optional" : 1,
49563 "type" : "string"
49564 },
7aacca6f 49565 "members" : {
7aacca6f
DM
49566 "items" : {
49567 "additionalProperties" : 1,
7aacca6f 49568 "properties" : {
7aacca6f
DM
49569 "id" : {
49570 "type" : "string"
49571 },
49572 "node" : {
49573 "type" : "string"
49574 },
44660702
DM
49575 "storage" : {
49576 "optional" : 1,
49577 "type" : "string"
49578 },
7aacca6f 49579 "type" : {
7aacca6f
DM
49580 "enum" : [
49581 "qemu",
49582 "lxc",
49583 "openvz",
49584 "storage"
44660702
DM
49585 ],
49586 "type" : "string"
49587 },
49588 "vmid" : {
49589 "optional" : 1,
49590 "type" : "integer"
7aacca6f 49591 }
44660702
DM
49592 },
49593 "type" : "object"
49594 },
49595 "type" : "array"
49596 }
49597 },
49598 "type" : "object"
49599 }
49600 },
49601 "PUT" : {
e9cd3bd4 49602 "allowtoken" : 1,
44660702
DM
49603 "description" : "Update pool data.",
49604 "method" : "PUT",
49605 "name" : "update_pool",
49606 "parameters" : {
49607 "additionalProperties" : 0,
49608 "properties" : {
56122987
DM
49609 "comment" : {
49610 "optional" : 1,
013dc89f
DM
49611 "type" : "string",
49612 "typetext" : "<string>"
44660702
DM
49613 },
49614 "delete" : {
49615 "description" : "Remove vms/storage (instead of adding it).",
49616 "optional" : 1,
013dc89f
DM
49617 "type" : "boolean",
49618 "typetext" : "<boolean>"
44660702
DM
49619 },
49620 "poolid" : {
49621 "format" : "pve-poolid",
013dc89f
DM
49622 "type" : "string",
49623 "typetext" : "<string>"
44660702
DM
49624 },
49625 "storage" : {
49626 "description" : "List of storage IDs.",
49627 "format" : "pve-storage-id-list",
49628 "optional" : 1,
013dc89f
DM
49629 "type" : "string",
49630 "typetext" : "<string>"
44660702
DM
49631 },
49632 "vms" : {
49633 "description" : "List of virtual machines.",
49634 "format" : "pve-vmid-list",
49635 "optional" : 1,
013dc89f
DM
49636 "type" : "string",
49637 "typetext" : "<string>"
56122987 49638 }
44660702
DM
49639 }
49640 },
49641 "permissions" : {
49642 "check" : [
49643 "perm",
49644 "/pool/{poolid}",
49645 [
49646 "Pool.Allocate"
49647 ]
49648 ],
49649 "description" : "You also need the right to modify permissions on any object you add/delete."
49650 },
49651 "protected" : 1,
49652 "returns" : {
49653 "type" : "null"
56122987
DM
49654 }
49655 }
49656 },
44660702
DM
49657 "leaf" : 1,
49658 "path" : "/pools/{poolid}",
7aacca6f 49659 "text" : "{poolid}"
56122987 49660 }
7aacca6f 49661 ],
56122987
DM
49662 "info" : {
49663 "GET" : {
e9cd3bd4 49664 "allowtoken" : 1,
44660702
DM
49665 "description" : "Pool index.",
49666 "method" : "GET",
49667 "name" : "index",
49668 "parameters" : {
49669 "additionalProperties" : 0
49670 },
49671 "permissions" : {
0695fdaf 49672 "description" : "List all pools where you have Pool.Audit permissions on /pool/<pool>.",
44660702
DM
49673 "user" : "all"
49674 },
56122987 49675 "returns" : {
44660702
DM
49676 "items" : {
49677 "properties" : {
49678 "poolid" : {
49679 "type" : "string"
49680 }
56122987 49681 },
44660702
DM
49682 "type" : "object"
49683 },
49684 "links" : [
49685 {
49686 "href" : "{poolid}",
49687 "rel" : "child"
49688 }
49689 ],
49690 "type" : "array"
49691 }
49692 },
49693 "POST" : {
e9cd3bd4 49694 "allowtoken" : 1,
44660702
DM
49695 "description" : "Create new pool.",
49696 "method" : "POST",
49697 "name" : "create_pool",
49698 "parameters" : {
49699 "additionalProperties" : 0,
49700 "properties" : {
49701 "comment" : {
49702 "optional" : 1,
013dc89f
DM
49703 "type" : "string",
49704 "typetext" : "<string>"
7aacca6f 49705 },
44660702
DM
49706 "poolid" : {
49707 "format" : "pve-poolid",
013dc89f
DM
49708 "type" : "string",
49709 "typetext" : "<string>"
56122987
DM
49710 }
49711 }
49712 },
56122987 49713 "permissions" : {
44660702
DM
49714 "check" : [
49715 "perm",
49716 "/pool/{poolid}",
49717 [
49718 "Pool.Allocate"
49719 ]
49720 ]
56122987 49721 },
44660702
DM
49722 "protected" : 1,
49723 "returns" : {
49724 "type" : "null"
49725 }
49726 }
49727 },
49728 "leaf" : 0,
49729 "path" : "/pools",
49730 "text" : "pools"
49731 },
49732 {
49733 "info" : {
49734 "GET" : {
e9cd3bd4 49735 "allowtoken" : 1,
5370fa8c 49736 "description" : "API version details, including some parts of the global datacenter config.",
44660702
DM
49737 "method" : "GET",
49738 "name" : "version",
7aacca6f
DM
49739 "parameters" : {
49740 "additionalProperties" : 0
49741 },
44660702
DM
49742 "permissions" : {
49743 "user" : "all"
49744 },
49745 "returns" : {
49746 "properties" : {
5370fa8c
TL
49747 "console" : {
49748 "description" : "The default console viewer to use.",
49749 "enum" : [
49750 "applet",
49751 "vv",
49752 "html5",
49753 "xtermjs"
49754 ],
49755 "optional" : 1,
49756 "type" : "string"
49757 },
44660702 49758 "release" : {
5370fa8c 49759 "description" : "The current Proxmox VE point release in `x.y` format.",
44660702
DM
49760 "type" : "string"
49761 },
49762 "repoid" : {
5370fa8c 49763 "description" : "The short git revision from which this version was build.",
44660702
DM
49764 "type" : "string"
49765 },
49766 "version" : {
5370fa8c 49767 "description" : "The full pve-manager package version of this node.",
44660702
DM
49768 "type" : "string"
49769 }
49770 },
49771 "type" : "object"
49772 }
56122987
DM
49773 }
49774 },
44660702
DM
49775 "leaf" : 1,
49776 "path" : "/version",
56122987
DM
49777 "text" : "version"
49778 }
49779]
49780;
49781