]> git.proxmox.com Git - pve-docs.git/blame - api-viewer/apidata.js
update static/schema information
[pve-docs.git] / api-viewer / apidata.js
CommitLineData
0695fdaf 1const apiSchema = [
56122987 2 {
56122987 3 "children" : [
5d9c884c
DM
4 {
5 "children" : [
6 {
7 "info" : {
8 "DELETE" : {
e9cd3bd4 9 "allowtoken" : 1,
5d9c884c
DM
10 "description" : "Mark replication job for removal.",
11 "method" : "DELETE",
12 "name" : "delete",
13 "parameters" : {
14 "additionalProperties" : 0,
15 "properties" : {
16 "force" : {
17 "default" : 0,
18 "description" : "Will remove the jobconfig entry, but will not cleanup.",
19 "optional" : 1,
20 "type" : "boolean",
21 "typetext" : "<boolean>"
22 },
23 "id" : {
24 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
25 "format" : "pve-replication-job-id",
26 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
27 "type" : "string"
28 },
29 "keep" : {
30 "default" : 0,
31 "description" : "Keep replicated data at target (do not remove).",
32 "optional" : 1,
33 "type" : "boolean",
34 "typetext" : "<boolean>"
35 }
36 }
37 },
38 "permissions" : {
39 "check" : [
40 "perm",
41 "/storage",
42 [
43 "Datastore.Allocate"
44 ]
45 ]
46 },
47 "protected" : 1,
48 "returns" : {
49 "type" : "null"
50 }
51 },
52 "GET" : {
e9cd3bd4 53 "allowtoken" : 1,
5d9c884c
DM
54 "description" : "Read replication job configuration.",
55 "method" : "GET",
56 "name" : "read",
57 "parameters" : {
58 "additionalProperties" : 0,
59 "properties" : {
60 "id" : {
61 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
62 "format" : "pve-replication-job-id",
63 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
64 "type" : "string"
65 }
66 }
67 },
68 "permissions" : {
69 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
70 "user" : "all"
71 },
72 "returns" : {
73 "type" : "object"
74 }
75 },
76 "PUT" : {
e9cd3bd4 77 "allowtoken" : 1,
5d9c884c
DM
78 "description" : "Update replication job configuration.",
79 "method" : "PUT",
80 "name" : "update",
81 "parameters" : {
82 "additionalProperties" : 0,
83 "properties" : {
84 "comment" : {
85 "description" : "Description.",
86 "maxLength" : 4096,
87 "optional" : 1,
88 "type" : "string",
89 "typetext" : "<string>"
90 },
91 "delete" : {
92 "description" : "A list of settings you want to delete.",
93 "format" : "pve-configid-list",
94 "maxLength" : 4096,
95 "optional" : 1,
96 "type" : "string",
97 "typetext" : "<string>"
98 },
99 "digest" : {
100 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
101 "maxLength" : 40,
102 "optional" : 1,
103 "type" : "string",
104 "typetext" : "<string>"
105 },
106 "disable" : {
107 "description" : "Flag to disable/deactivate the entry.",
108 "optional" : 1,
109 "type" : "boolean",
110 "typetext" : "<boolean>"
111 },
112 "id" : {
113 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
114 "format" : "pve-replication-job-id",
115 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
116 "type" : "string"
117 },
118 "rate" : {
119 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
120 "minimum" : 1,
121 "optional" : 1,
122 "type" : "number",
123 "typetext" : "<number> (1 - N)"
124 },
125 "remove_job" : {
126 "description" : "Mark the replication job for removal. The job will remove all local replication snapshots. When set to 'full', it also tries to remove replicated volumes on the target. The job then removes itself from the configuration file.",
127 "enum" : [
128 "local",
129 "full"
130 ],
131 "optional" : 1,
132 "type" : "string"
133 },
134 "schedule" : {
135 "default" : "*/15",
c5aa7e14 136 "description" : "Storage replication schedule. The format is a subset of `systemd` calendar events.",
5d9c884c
DM
137 "format" : "pve-calendar-event",
138 "maxLength" : 128,
139 "optional" : 1,
140 "type" : "string",
141 "typetext" : "<string>"
a9a8e3d1
DM
142 },
143 "source" : {
d2656385 144 "description" : "For internal use, to detect if the guest was stolen.",
a9a8e3d1
DM
145 "format" : "pve-node",
146 "optional" : 1,
147 "type" : "string",
148 "typetext" : "<string>"
5d9c884c
DM
149 }
150 },
151 "type" : "object"
152 },
153 "permissions" : {
154 "check" : [
155 "perm",
156 "/storage",
157 [
158 "Datastore.Allocate"
159 ]
160 ]
161 },
162 "protected" : 1,
163 "returns" : {
164 "type" : "null"
165 }
166 }
167 },
168 "leaf" : 1,
169 "path" : "/cluster/replication/{id}",
170 "text" : "{id}"
171 }
172 ],
173 "info" : {
174 "GET" : {
e9cd3bd4 175 "allowtoken" : 1,
5d9c884c
DM
176 "description" : "List replication jobs.",
177 "method" : "GET",
178 "name" : "index",
179 "parameters" : {
180 "additionalProperties" : 0
181 },
182 "permissions" : {
183 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
184 "user" : "all"
185 },
186 "returns" : {
187 "items" : {
188 "properties" : {},
189 "type" : "object"
190 },
191 "links" : [
192 {
193 "href" : "{id}",
194 "rel" : "child"
195 }
196 ],
197 "type" : "array"
198 }
199 },
200 "POST" : {
e9cd3bd4 201 "allowtoken" : 1,
5d9c884c
DM
202 "description" : "Create a new replication job",
203 "method" : "POST",
204 "name" : "create",
205 "parameters" : {
206 "additionalProperties" : 0,
207 "properties" : {
208 "comment" : {
209 "description" : "Description.",
210 "maxLength" : 4096,
211 "optional" : 1,
212 "type" : "string",
213 "typetext" : "<string>"
214 },
215 "disable" : {
216 "description" : "Flag to disable/deactivate the entry.",
217 "optional" : 1,
218 "type" : "boolean",
219 "typetext" : "<boolean>"
220 },
221 "id" : {
222 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
223 "format" : "pve-replication-job-id",
224 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
225 "type" : "string"
226 },
227 "rate" : {
228 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
229 "minimum" : 1,
230 "optional" : 1,
231 "type" : "number",
232 "typetext" : "<number> (1 - N)"
233 },
234 "remove_job" : {
235 "description" : "Mark the replication job for removal. The job will remove all local replication snapshots. When set to 'full', it also tries to remove replicated volumes on the target. The job then removes itself from the configuration file.",
236 "enum" : [
237 "local",
238 "full"
239 ],
240 "optional" : 1,
241 "type" : "string"
242 },
243 "schedule" : {
244 "default" : "*/15",
c5aa7e14 245 "description" : "Storage replication schedule. The format is a subset of `systemd` calendar events.",
5d9c884c
DM
246 "format" : "pve-calendar-event",
247 "maxLength" : 128,
248 "optional" : 1,
249 "type" : "string",
250 "typetext" : "<string>"
251 },
a9a8e3d1 252 "source" : {
d2656385 253 "description" : "For internal use, to detect if the guest was stolen.",
a9a8e3d1
DM
254 "format" : "pve-node",
255 "optional" : 1,
256 "type" : "string",
257 "typetext" : "<string>"
258 },
5d9c884c
DM
259 "target" : {
260 "description" : "Target node.",
261 "format" : "pve-node",
262 "optional" : 0,
263 "type" : "string",
264 "typetext" : "<string>"
265 },
266 "type" : {
267 "description" : "Section type.",
268 "enum" : [
269 "local"
270 ],
271 "type" : "string"
272 }
273 },
274 "type" : "object"
275 },
276 "permissions" : {
277 "check" : [
278 "perm",
279 "/storage",
280 [
281 "Datastore.Allocate"
282 ]
283 ]
284 },
285 "protected" : 1,
286 "returns" : {
287 "type" : "null"
288 }
289 }
290 },
291 "leaf" : 0,
292 "path" : "/cluster/replication",
293 "text" : "replication"
294 },
4772952b
TL
295 {
296 "children" : [
297 {
298 "children" : [
299 {
300 "info" : {
301 "DELETE" : {
302 "allowtoken" : 1,
303 "description" : "Remove Metric server.",
304 "method" : "DELETE",
305 "name" : "delete",
306 "parameters" : {
307 "additionalProperties" : 0,
308 "properties" : {
309 "id" : {
310 "format" : "pve-configid",
311 "type" : "string",
312 "typetext" : "<string>"
313 }
314 }
315 },
316 "permissions" : {
317 "check" : [
318 "perm",
319 "/",
320 [
321 "Sys.Modify"
322 ]
323 ]
324 },
325 "protected" : 1,
326 "returns" : {
327 "type" : "null"
328 }
329 },
330 "GET" : {
331 "allowtoken" : 1,
332 "description" : "Read metric server configuration.",
333 "method" : "GET",
334 "name" : "read",
335 "parameters" : {
336 "additionalProperties" : 0,
337 "properties" : {
338 "id" : {
339 "format" : "pve-configid",
340 "type" : "string",
341 "typetext" : "<string>"
342 }
343 }
344 },
345 "permissions" : {
346 "check" : [
347 "perm",
348 "/",
349 [
350 "Sys.Audit"
351 ]
352 ]
353 },
354 "returns" : {
355 "type" : "object"
356 }
357 },
358 "POST" : {
359 "allowtoken" : 1,
360 "description" : "Create a new external metric server config",
361 "method" : "POST",
362 "name" : "create",
363 "parameters" : {
364 "additionalProperties" : 0,
365 "properties" : {
d2656385
TL
366 "api-path-prefix" : {
367 "description" : "An API path prefix inserted between '<host>:<port>/' and '/api2/'. Can be useful if the InfluxDB service runs behind a reverse proxy.",
368 "optional" : 1,
369 "type" : "string",
370 "typetext" : "<string>"
371 },
372 "bucket" : {
373 "description" : "The InfluxDB bucket/db. Only necessary when using the http v2 api.",
374 "optional" : 1,
375 "type" : "string",
376 "typetext" : "<string>"
377 },
4772952b
TL
378 "disable" : {
379 "description" : "Flag to disable the plugin.",
380 "optional" : 1,
381 "type" : "boolean",
382 "typetext" : "<boolean>"
383 },
384 "id" : {
385 "description" : "The ID of the entry.",
386 "format" : "pve-configid",
387 "type" : "string",
388 "typetext" : "<string>"
389 },
d2656385
TL
390 "influxdbproto" : {
391 "default" : "udp",
392 "enum" : [
393 "udp",
394 "http",
395 "https"
396 ],
397 "optional" : 1,
398 "type" : "string"
399 },
400 "max-body-size" : {
401 "default" : 25000000,
402 "description" : "InfluxDB max-body-size in bytes. Requests are batched up to this size.",
403 "minimum" : 1,
404 "optional" : 1,
405 "type" : "integer",
406 "typetext" : "<integer> (1 - N)"
407 },
4772952b
TL
408 "mtu" : {
409 "default" : 1500,
410 "description" : "MTU for metrics transmission over UDP",
411 "maximum" : 65536,
412 "minimum" : 512,
413 "optional" : 1,
414 "type" : "integer",
415 "typetext" : "<integer> (512 - 65536)"
416 },
d2656385
TL
417 "organization" : {
418 "description" : "The InfluxDB organization. Only necessary when using the http v2 api. Has no meaning when using v2 compatibility api.",
419 "optional" : 1,
420 "type" : "string",
421 "typetext" : "<string>"
422 },
4772952b
TL
423 "path" : {
424 "description" : "root graphite path (ex: proxmox.mycluster.mykey)",
425 "format" : "graphite-path",
426 "optional" : 1,
427 "type" : "string",
428 "typetext" : "<string>"
429 },
430 "port" : {
431 "description" : "server network port",
d2656385
TL
432 "maximum" : 65536,
433 "minimum" : 1,
4772952b 434 "type" : "integer",
d2656385 435 "typetext" : "<integer> (1 - 65536)"
4772952b
TL
436 },
437 "proto" : {
438 "description" : "Protocol to send graphite data. TCP or UDP (default)",
439 "enum" : [
440 "udp",
441 "tcp"
442 ],
443 "optional" : 1,
444 "type" : "string"
445 },
446 "server" : {
447 "description" : "server dns name or IP address",
448 "format" : "address",
449 "type" : "string",
450 "typetext" : "<string>"
451 },
452 "timeout" : {
453 "default" : 1,
454 "description" : "graphite TCP socket timeout (default=1)",
455 "minimum" : 0,
456 "optional" : 1,
457 "type" : "integer",
458 "typetext" : "<integer> (0 - N)"
459 },
d2656385
TL
460 "token" : {
461 "description" : "The InfluxDB access token. Only necessary when using the http v2 api. If the v2 compatibility api is used, use 'user:password' instead.",
462 "optional" : 1,
463 "type" : "string",
464 "typetext" : "<string>"
465 },
4772952b
TL
466 "type" : {
467 "description" : "Plugin type.",
468 "enum" : [
469 "graphite",
470 "influxdb"
471 ],
472 "format" : "pve-configid",
473 "type" : "string"
5370fa8c
TL
474 },
475 "verify-certificate" : {
476 "default" : 1,
477 "description" : "Set to 0 to disable certificate verification for https endpoints.",
478 "optional" : 1,
479 "type" : "boolean",
480 "typetext" : "<boolean>"
4772952b
TL
481 }
482 },
483 "type" : "object"
484 },
485 "permissions" : {
486 "check" : [
487 "perm",
488 "/",
489 [
490 "Sys.Modify"
491 ]
492 ]
493 },
494 "protected" : 1,
495 "returns" : {
496 "type" : "null"
497 }
498 },
499 "PUT" : {
500 "allowtoken" : 1,
501 "description" : "Update metric server configuration.",
502 "method" : "PUT",
503 "name" : "update",
504 "parameters" : {
505 "additionalProperties" : 0,
506 "properties" : {
d2656385
TL
507 "api-path-prefix" : {
508 "description" : "An API path prefix inserted between '<host>:<port>/' and '/api2/'. Can be useful if the InfluxDB service runs behind a reverse proxy.",
509 "optional" : 1,
510 "type" : "string",
511 "typetext" : "<string>"
512 },
513 "bucket" : {
514 "description" : "The InfluxDB bucket/db. Only necessary when using the http v2 api.",
515 "optional" : 1,
516 "type" : "string",
517 "typetext" : "<string>"
518 },
4772952b
TL
519 "delete" : {
520 "description" : "A list of settings you want to delete.",
521 "format" : "pve-configid-list",
522 "maxLength" : 4096,
523 "optional" : 1,
524 "type" : "string",
525 "typetext" : "<string>"
526 },
527 "digest" : {
528 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
529 "maxLength" : 40,
530 "optional" : 1,
531 "type" : "string",
532 "typetext" : "<string>"
533 },
534 "disable" : {
535 "description" : "Flag to disable the plugin.",
536 "optional" : 1,
537 "type" : "boolean",
538 "typetext" : "<boolean>"
539 },
540 "id" : {
541 "description" : "The ID of the entry.",
542 "format" : "pve-configid",
543 "type" : "string",
544 "typetext" : "<string>"
545 },
d2656385
TL
546 "influxdbproto" : {
547 "default" : "udp",
548 "enum" : [
549 "udp",
550 "http",
551 "https"
552 ],
553 "optional" : 1,
554 "type" : "string"
555 },
556 "max-body-size" : {
557 "default" : 25000000,
558 "description" : "InfluxDB max-body-size in bytes. Requests are batched up to this size.",
559 "minimum" : 1,
560 "optional" : 1,
561 "type" : "integer",
562 "typetext" : "<integer> (1 - N)"
563 },
4772952b
TL
564 "mtu" : {
565 "default" : 1500,
566 "description" : "MTU for metrics transmission over UDP",
567 "maximum" : 65536,
568 "minimum" : 512,
569 "optional" : 1,
570 "type" : "integer",
571 "typetext" : "<integer> (512 - 65536)"
572 },
d2656385
TL
573 "organization" : {
574 "description" : "The InfluxDB organization. Only necessary when using the http v2 api. Has no meaning when using v2 compatibility api.",
575 "optional" : 1,
576 "type" : "string",
577 "typetext" : "<string>"
578 },
4772952b
TL
579 "path" : {
580 "description" : "root graphite path (ex: proxmox.mycluster.mykey)",
581 "format" : "graphite-path",
582 "optional" : 1,
583 "type" : "string",
584 "typetext" : "<string>"
585 },
586 "port" : {
587 "description" : "server network port",
d2656385
TL
588 "maximum" : 65536,
589 "minimum" : 1,
4772952b 590 "type" : "integer",
d2656385 591 "typetext" : "<integer> (1 - 65536)"
4772952b
TL
592 },
593 "proto" : {
594 "description" : "Protocol to send graphite data. TCP or UDP (default)",
595 "enum" : [
596 "udp",
597 "tcp"
598 ],
599 "optional" : 1,
600 "type" : "string"
601 },
602 "server" : {
603 "description" : "server dns name or IP address",
604 "format" : "address",
605 "type" : "string",
606 "typetext" : "<string>"
607 },
608 "timeout" : {
609 "default" : 1,
610 "description" : "graphite TCP socket timeout (default=1)",
611 "minimum" : 0,
612 "optional" : 1,
613 "type" : "integer",
614 "typetext" : "<integer> (0 - N)"
d2656385
TL
615 },
616 "token" : {
617 "description" : "The InfluxDB access token. Only necessary when using the http v2 api. If the v2 compatibility api is used, use 'user:password' instead.",
618 "optional" : 1,
619 "type" : "string",
620 "typetext" : "<string>"
5370fa8c
TL
621 },
622 "verify-certificate" : {
623 "default" : 1,
624 "description" : "Set to 0 to disable certificate verification for https endpoints.",
625 "optional" : 1,
626 "type" : "boolean",
627 "typetext" : "<boolean>"
4772952b
TL
628 }
629 },
630 "type" : "object"
631 },
632 "permissions" : {
633 "check" : [
634 "perm",
635 "/",
636 [
637 "Sys.Modify"
638 ]
639 ]
640 },
641 "protected" : 1,
642 "returns" : {
643 "type" : "null"
644 }
645 }
646 },
647 "leaf" : 1,
648 "path" : "/cluster/metrics/server/{id}",
649 "text" : "{id}"
650 }
651 ],
652 "info" : {
653 "GET" : {
654 "allowtoken" : 1,
655 "description" : "List configured metric servers.",
656 "method" : "GET",
657 "name" : "server_index",
658 "parameters" : {
659 "additionalProperties" : 0
660 },
661 "permissions" : {
662 "check" : [
663 "perm",
664 "/",
665 [
666 "Sys.Audit"
667 ]
668 ]
669 },
670 "returns" : {
671 "items" : {
672 "properties" : {
673 "disable" : {
674 "description" : "Flag to disable the plugin.",
675 "type" : "boolean"
676 },
677 "id" : {
678 "description" : "The ID of the entry.",
679 "type" : "string"
680 },
681 "port" : {
682 "description" : "Server network port",
683 "type" : "integer"
684 },
685 "server" : {
686 "description" : "Server dns name or IP address",
687 "type" : "string"
688 },
689 "type" : {
690 "description" : "Plugin type.",
691 "type" : "string"
692 }
693 },
694 "type" : "object"
695 },
696 "links" : [
697 {
698 "href" : "{id}",
699 "rel" : "child"
700 }
701 ],
702 "type" : "array"
703 }
704 }
705 },
706 "leaf" : 0,
707 "path" : "/cluster/metrics/server",
708 "text" : "server"
709 }
710 ],
711 "info" : {
712 "GET" : {
713 "allowtoken" : 1,
714 "description" : "Metrics index.",
715 "method" : "GET",
716 "name" : "index",
717 "parameters" : {
718 "additionalProperties" : 0
719 },
720 "permissions" : {
721 "user" : "all"
722 },
723 "returns" : {
724 "items" : {
725 "properties" : {},
726 "type" : "object"
727 },
728 "links" : [
729 {
730 "href" : "{name}",
731 "rel" : "child"
732 }
733 ],
734 "type" : "array"
735 }
736 }
737 },
738 "leaf" : 0,
739 "path" : "/cluster/metrics",
740 "text" : "metrics"
741 },
32d876b5
DM
742 {
743 "children" : [
c5aa7e14
TL
744 {
745 "info" : {
746 "GET" : {
747 "allowtoken" : 1,
748 "description" : "Return the version of the cluster join API available on this node.",
749 "method" : "GET",
750 "name" : "join_api_version",
751 "parameters" : {
752 "additionalProperties" : 0
753 },
754 "permissions" : {
755 "check" : [
756 "perm",
757 "/",
758 [
759 "Sys.Audit"
760 ]
761 ]
762 },
763 "returns" : {
764 "description" : "Cluster Join API version, currently 1",
765 "minimum" : 0,
766 "type" : "integer"
767 }
768 }
769 },
770 "leaf" : 1,
771 "path" : "/cluster/config/apiversion",
772 "text" : "apiversion"
773 },
32d876b5 774 {
27a7acb2
DM
775 "children" : [
776 {
777 "info" : {
778 "DELETE" : {
e9cd3bd4 779 "allowtoken" : 1,
27a7acb2
DM
780 "description" : "Removes a node from the cluster configuration.",
781 "method" : "DELETE",
782 "name" : "delnode",
783 "parameters" : {
784 "additionalProperties" : 0,
785 "properties" : {
786 "node" : {
787 "description" : "The cluster node name.",
788 "format" : "pve-node",
789 "type" : "string",
790 "typetext" : "<string>"
791 }
792 }
793 },
794 "protected" : 1,
795 "returns" : {
796 "type" : "null"
797 }
798 },
799 "POST" : {
e9cd3bd4 800 "allowtoken" : 1,
e2d681b3 801 "description" : "Adds a node to the cluster configuration. This call is for internal use.",
27a7acb2
DM
802 "method" : "POST",
803 "name" : "addnode",
804 "parameters" : {
805 "additionalProperties" : 0,
806 "properties" : {
c5aa7e14
TL
807 "apiversion" : {
808 "description" : "The JOIN_API_VERSION of the new node.",
809 "optional" : 1,
810 "type" : "integer",
811 "typetext" : "<integer>"
812 },
27a7acb2
DM
813 "force" : {
814 "description" : "Do not throw error if node already exists.",
815 "optional" : 1,
816 "type" : "boolean",
817 "typetext" : "<boolean>"
818 },
1e3f8156 819 "link[n]" : {
c5aa7e14 820 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
821 "format" : {
822 "address" : {
823 "default_key" : 1,
824 "description" : "Hostname (or IP) of this corosync link address.",
825 "format" : "address",
826 "format_description" : "IP",
827 "type" : "string"
828 },
829 "priority" : {
830 "default" : 0,
c5aa7e14 831 "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
1e3f8156
TL
832 "maximum" : 255,
833 "minimum" : 0,
834 "optional" : 1,
835 "type" : "integer"
836 }
837 },
838 "optional" : 1,
839 "type" : "string",
840 "typetext" : "[address=]<IP> [,priority=<integer>]"
841 },
c5aa7e14
TL
842 "new_node_ip" : {
843 "description" : "IP Address of node to add. Used as fallback if no links are given.",
844 "format" : "ip",
845 "optional" : 1,
846 "type" : "string",
847 "typetext" : "<string>"
848 },
27a7acb2
DM
849 "node" : {
850 "description" : "The cluster node name.",
851 "format" : "pve-node",
852 "type" : "string",
853 "typetext" : "<string>"
854 },
855 "nodeid" : {
856 "description" : "Node id for this node.",
857 "minimum" : 1,
858 "optional" : 1,
859 "type" : "integer",
860 "typetext" : "<integer> (1 - N)"
861 },
27a7acb2
DM
862 "votes" : {
863 "description" : "Number of votes for this node",
864 "minimum" : 0,
865 "optional" : 1,
866 "type" : "integer",
867 "typetext" : "<integer> (0 - N)"
868 }
869 }
870 },
871 "protected" : 1,
872 "returns" : {
873 "properties" : {
874 "corosync_authkey" : {
875 "type" : "string"
876 },
877 "corosync_conf" : {
878 "type" : "string"
c5aa7e14
TL
879 },
880 "warnings" : {
881 "items" : {
882 "type" : "string"
883 },
884 "type" : "array"
27a7acb2
DM
885 }
886 },
887 "type" : "object"
888 }
889 }
890 },
891 "leaf" : 1,
892 "path" : "/cluster/config/nodes/{node}",
893 "text" : "{node}"
894 }
895 ],
32d876b5
DM
896 "info" : {
897 "GET" : {
e9cd3bd4 898 "allowtoken" : 1,
32d876b5
DM
899 "description" : "Corosync node list.",
900 "method" : "GET",
901 "name" : "nodes",
902 "parameters" : {
903 "additionalProperties" : 0
904 },
5d9c884c
DM
905 "permissions" : {
906 "check" : [
907 "perm",
908 "/",
909 [
910 "Sys.Audit"
911 ]
912 ]
913 },
32d876b5
DM
914 "returns" : {
915 "items" : {
916 "properties" : {
917 "node" : {
918 "type" : "string"
919 }
920 },
921 "type" : "object"
922 },
923 "links" : [
924 {
925 "href" : "{node}",
926 "rel" : "child"
927 }
928 ],
929 "type" : "array"
930 }
931 }
932 },
27a7acb2 933 "leaf" : 0,
32d876b5
DM
934 "path" : "/cluster/config/nodes",
935 "text" : "nodes"
936 },
27a7acb2
DM
937 {
938 "info" : {
939 "GET" : {
e9cd3bd4 940 "allowtoken" : 1,
27a7acb2
DM
941 "description" : "Get information needed to join this cluster over the connected node.",
942 "method" : "GET",
943 "name" : "join_info",
944 "parameters" : {
945 "additionalProperties" : 0,
946 "properties" : {
947 "node" : {
948 "default" : "current connected node",
949 "description" : "The node for which the joinee gets the nodeinfo. ",
950 "format" : "pve-node",
951 "optional" : 1,
952 "type" : "string",
953 "typetext" : "<string>"
954 }
955 }
956 },
a9a8e3d1
DM
957 "permissions" : {
958 "check" : [
959 "perm",
960 "/",
961 [
962 "Sys.Audit"
963 ]
964 ]
965 },
27a7acb2
DM
966 "returns" : {
967 "additionalProperties" : 0,
968 "properties" : {
969 "config_digest" : {
970 "type" : "string"
971 },
972 "nodelist" : {
973 "items" : {
974 "additionalProperties" : 1,
975 "properties" : {
976 "name" : {
977 "description" : "The cluster node name.",
978 "format" : "pve-node",
979 "type" : "string"
980 },
981 "nodeid" : {
982 "description" : "Node id for this node.",
983 "minimum" : 1,
984 "optional" : 1,
985 "type" : "integer"
986 },
987 "pve_addr" : {
988 "format" : "ip",
989 "type" : "string"
990 },
991 "pve_fp" : {
992 "description" : "Certificate SHA 256 fingerprint.",
993 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
994 "type" : "string"
995 },
996 "quorum_votes" : {
997 "minimum" : 0,
998 "type" : "integer"
999 },
1000 "ring0_addr" : {
c5aa7e14 1001 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
1002 "format" : {
1003 "address" : {
1004 "default_key" : 1,
1005 "description" : "Hostname (or IP) of this corosync link address.",
1006 "format" : "address",
1007 "format_description" : "IP",
1008 "type" : "string"
1009 },
1010 "priority" : {
1011 "default" : 0,
c5aa7e14 1012 "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
1e3f8156
TL
1013 "maximum" : 255,
1014 "minimum" : 0,
1015 "optional" : 1,
1016 "type" : "integer"
1017 }
1018 },
27a7acb2
DM
1019 "optional" : 1,
1020 "type" : "string"
1021 }
1022 },
1023 "type" : "object"
1024 },
1025 "type" : "array"
1026 },
1027 "preferred_node" : {
1028 "description" : "The cluster node name.",
1029 "format" : "pve-node",
1030 "type" : "string"
1031 },
1032 "totem" : {
1033 "type" : "object"
1034 }
1035 },
1036 "type" : "object"
1037 }
1038 },
1039 "POST" : {
e9cd3bd4 1040 "allowtoken" : 1,
c5aa7e14 1041 "description" : "Joins this node into an existing cluster. If no links are given, default to IP resolved by node's hostname on single link (fallback fails for clusters with multiple links).",
27a7acb2
DM
1042 "method" : "POST",
1043 "name" : "join",
1044 "parameters" : {
1045 "additionalProperties" : 0,
1046 "properties" : {
1047 "fingerprint" : {
1048 "description" : "Certificate SHA 256 fingerprint.",
1049 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
1050 "type" : "string"
1051 },
1052 "force" : {
1053 "description" : "Do not throw error if node already exists.",
1054 "optional" : 1,
1055 "type" : "boolean",
1056 "typetext" : "<boolean>"
1057 },
1058 "hostname" : {
1059 "description" : "Hostname (or IP) of an existing cluster member.",
1060 "type" : "string",
1061 "typetext" : "<string>"
1062 },
1e3f8156 1063 "link[n]" : {
c5aa7e14 1064 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
1065 "format" : {
1066 "address" : {
1067 "default_key" : 1,
1068 "description" : "Hostname (or IP) of this corosync link address.",
1069 "format" : "address",
1070 "format_description" : "IP",
1071 "type" : "string"
1072 },
1073 "priority" : {
1074 "default" : 0,
c5aa7e14 1075 "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
1e3f8156
TL
1076 "maximum" : 255,
1077 "minimum" : 0,
1078 "optional" : 1,
1079 "type" : "integer"
1080 }
1081 },
1082 "optional" : 1,
1083 "type" : "string",
1084 "typetext" : "[address=]<IP> [,priority=<integer>]"
1085 },
27a7acb2
DM
1086 "nodeid" : {
1087 "description" : "Node id for this node.",
1088 "minimum" : 1,
1089 "optional" : 1,
1090 "type" : "integer",
1091 "typetext" : "<integer> (1 - N)"
1092 },
1093 "password" : {
1094 "description" : "Superuser (root) password of peer node.",
1095 "maxLength" : 128,
1096 "type" : "string",
1097 "typetext" : "<string>"
1098 },
27a7acb2
DM
1099 "votes" : {
1100 "description" : "Number of votes for this node",
1101 "minimum" : 0,
1102 "optional" : 1,
1103 "type" : "integer",
1104 "typetext" : "<integer> (0 - N)"
1105 }
1106 }
1107 },
1108 "protected" : 1,
1109 "returns" : {
1110 "type" : "string"
1111 }
1112 }
1113 },
1114 "leaf" : 1,
1115 "path" : "/cluster/config/join",
1116 "text" : "join"
1117 },
32d876b5
DM
1118 {
1119 "info" : {
1120 "GET" : {
e9cd3bd4 1121 "allowtoken" : 1,
32d876b5
DM
1122 "description" : "Get corosync totem protocol settings.",
1123 "method" : "GET",
1124 "name" : "totem",
1125 "parameters" : {
1126 "additionalProperties" : 0
1127 },
5d9c884c
DM
1128 "permissions" : {
1129 "check" : [
1130 "perm",
1131 "/",
1132 [
1133 "Sys.Audit"
1134 ]
1135 ]
1136 },
32d876b5 1137 "returns" : {
32d876b5
DM
1138 "type" : "object"
1139 }
1140 }
1141 },
1142 "leaf" : 1,
1143 "path" : "/cluster/config/totem",
1144 "text" : "totem"
9226ccbc
TL
1145 },
1146 {
1147 "info" : {
1148 "GET" : {
e9cd3bd4 1149 "allowtoken" : 1,
9226ccbc
TL
1150 "description" : "Get QDevice status",
1151 "method" : "GET",
1152 "name" : "status",
1153 "parameters" : {
1154 "additionalProperties" : 0
1155 },
1156 "permissions" : {
1157 "check" : [
1158 "perm",
1159 "/",
1160 [
1161 "Sys.Audit"
1162 ]
1163 ]
1164 },
de786b48 1165 "protected" : 1,
9226ccbc
TL
1166 "returns" : {
1167 "type" : "object"
1168 }
1169 }
1170 },
1171 "leaf" : 1,
1172 "path" : "/cluster/config/qdevice",
1173 "text" : "qdevice"
32d876b5
DM
1174 }
1175 ],
1176 "info" : {
1177 "GET" : {
e9cd3bd4 1178 "allowtoken" : 1,
32d876b5
DM
1179 "description" : "Directory index.",
1180 "method" : "GET",
1181 "name" : "index",
1182 "parameters" : {
1183 "additionalProperties" : 0
1184 },
5d9c884c
DM
1185 "permissions" : {
1186 "check" : [
1187 "perm",
1188 "/",
1189 [
1190 "Sys.Audit"
1191 ]
1192 ]
1193 },
32d876b5
DM
1194 "returns" : {
1195 "items" : {
1196 "properties" : {},
1197 "type" : "object"
1198 },
1199 "links" : [
1200 {
1201 "href" : "{name}",
1202 "rel" : "child"
1203 }
1204 ],
1205 "type" : "array"
1206 }
27a7acb2
DM
1207 },
1208 "POST" : {
e9cd3bd4 1209 "allowtoken" : 1,
c5aa7e14 1210 "description" : "Generate new cluster configuration. If no links given, default to local IP address as link0.",
27a7acb2
DM
1211 "method" : "POST",
1212 "name" : "create",
1213 "parameters" : {
1214 "additionalProperties" : 0,
1215 "properties" : {
27a7acb2
DM
1216 "clustername" : {
1217 "description" : "The name of the cluster.",
1218 "format" : "pve-node",
1219 "maxLength" : 15,
1220 "type" : "string",
1221 "typetext" : "<string>"
1222 },
1e3f8156 1223 "link[n]" : {
c5aa7e14 1224 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
1225 "format" : {
1226 "address" : {
1227 "default_key" : 1,
1228 "description" : "Hostname (or IP) of this corosync link address.",
1229 "format" : "address",
1230 "format_description" : "IP",
1231 "type" : "string"
1232 },
1233 "priority" : {
1234 "default" : 0,
c5aa7e14 1235 "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
1e3f8156
TL
1236 "maximum" : 255,
1237 "minimum" : 0,
1238 "optional" : 1,
1239 "type" : "integer"
1240 }
1241 },
1242 "optional" : 1,
1243 "type" : "string",
1244 "typetext" : "[address=]<IP> [,priority=<integer>]"
1245 },
27a7acb2
DM
1246 "nodeid" : {
1247 "description" : "Node id for this node.",
1248 "minimum" : 1,
1249 "optional" : 1,
1250 "type" : "integer",
1251 "typetext" : "<integer> (1 - N)"
1252 },
27a7acb2
DM
1253 "votes" : {
1254 "description" : "Number of votes for this node.",
1255 "minimum" : 1,
1256 "optional" : 1,
1257 "type" : "integer",
1258 "typetext" : "<integer> (1 - N)"
1259 }
1260 }
1261 },
1262 "protected" : 1,
1263 "returns" : {
1264 "type" : "string"
1265 }
32d876b5
DM
1266 }
1267 },
1268 "leaf" : 0,
1269 "path" : "/cluster/config",
1270 "text" : "config"
1271 },
56122987 1272 {
56122987
DM
1273 "children" : [
1274 {
56122987
DM
1275 "children" : [
1276 {
44660702
DM
1277 "children" : [
1278 {
1279 "info" : {
1280 "DELETE" : {
e9cd3bd4 1281 "allowtoken" : 1,
44660702
DM
1282 "description" : "Delete rule.",
1283 "method" : "DELETE",
1284 "name" : "delete_rule",
1285 "parameters" : {
1286 "additionalProperties" : 0,
1287 "properties" : {
1288 "digest" : {
1289 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1290 "maxLength" : 40,
1291 "optional" : 1,
013dc89f
DM
1292 "type" : "string",
1293 "typetext" : "<string>"
44660702
DM
1294 },
1295 "group" : {
1296 "description" : "Security Group name.",
4bd7df8b 1297 "maxLength" : 18,
44660702
DM
1298 "minLength" : 2,
1299 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1300 "type" : "string"
1301 },
1302 "pos" : {
1303 "description" : "Update rule at position <pos>.",
1304 "minimum" : 0,
1305 "optional" : 1,
4bd7df8b 1306 "type" : "integer",
013dc89f 1307 "typetext" : "<integer> (0 - N)"
44660702
DM
1308 }
1309 }
1310 },
1311 "permissions" : {
1312 "check" : [
1313 "perm",
1314 "/",
1315 [
1316 "Sys.Modify"
1317 ]
1318 ]
1319 },
1320 "protected" : 1,
1321 "proxyto" : null,
1322 "returns" : {
1323 "type" : "null"
7aacca6f
DM
1324 }
1325 },
44660702 1326 "GET" : {
e9cd3bd4 1327 "allowtoken" : 1,
44660702
DM
1328 "description" : "Get single rule data.",
1329 "method" : "GET",
1330 "name" : "get_rule",
1331 "parameters" : {
1332 "additionalProperties" : 0,
1333 "properties" : {
1334 "group" : {
1335 "description" : "Security Group name.",
4bd7df8b 1336 "maxLength" : 18,
44660702
DM
1337 "minLength" : 2,
1338 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1339 "type" : "string"
1340 },
1341 "pos" : {
1342 "description" : "Update rule at position <pos>.",
1343 "minimum" : 0,
1344 "optional" : 1,
4bd7df8b 1345 "type" : "integer",
013dc89f 1346 "typetext" : "<integer> (0 - N)"
44660702 1347 }
7aacca6f 1348 }
56122987 1349 },
44660702
DM
1350 "permissions" : {
1351 "check" : [
1352 "perm",
1353 "/",
1354 [
1355 "Sys.Audit"
1356 ]
1357 ]
1358 },
1359 "proxyto" : null,
1360 "returns" : {
1361 "properties" : {
e2d681b3
TL
1362 "action" : {
1363 "type" : "string"
1364 },
1365 "comment" : {
1366 "optional" : 1,
1367 "type" : "string"
1368 },
1369 "dest" : {
1370 "optional" : 1,
1371 "type" : "string"
1372 },
1373 "dport" : {
1374 "optional" : 1,
1375 "type" : "string"
1376 },
1377 "enable" : {
1378 "optional" : 1,
1379 "type" : "integer"
1380 },
4772952b
TL
1381 "icmp-type" : {
1382 "optional" : 1,
1383 "type" : "string"
1384 },
e2d681b3
TL
1385 "iface" : {
1386 "optional" : 1,
1387 "type" : "string"
1388 },
1389 "ipversion" : {
1390 "optional" : 1,
1391 "type" : "integer"
1392 },
95895385
TL
1393 "log" : {
1394 "description" : "Log level for firewall rule",
1395 "enum" : [
1396 "emerg",
1397 "alert",
1398 "crit",
1399 "err",
1400 "warning",
1401 "notice",
1402 "info",
1403 "debug",
1404 "nolog"
1405 ],
1406 "optional" : 1,
1407 "type" : "string"
1408 },
e2d681b3
TL
1409 "macro" : {
1410 "optional" : 1,
5f26e15b 1411 "type" : "string"
e2d681b3 1412 },
44660702
DM
1413 "pos" : {
1414 "type" : "integer"
e2d681b3
TL
1415 },
1416 "proto" : {
1417 "optional" : 1,
1418 "type" : "string"
1419 },
1420 "source" : {
1421 "optional" : 1,
1422 "type" : "string"
1423 },
1424 "sport" : {
1425 "optional" : 1,
1426 "type" : "string"
1427 },
1428 "type" : {
1429 "type" : "string"
44660702
DM
1430 }
1431 },
1432 "type" : "object"
56122987 1433 }
44660702 1434 },
7aacca6f 1435 "PUT" : {
e9cd3bd4 1436 "allowtoken" : 1,
44660702
DM
1437 "description" : "Modify rule data.",
1438 "method" : "PUT",
1439 "name" : "update_rule",
7aacca6f
DM
1440 "parameters" : {
1441 "additionalProperties" : 0,
1442 "properties" : {
44660702
DM
1443 "action" : {
1444 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
7aacca6f 1445 "maxLength" : 20,
44660702 1446 "minLength" : 2,
7aacca6f 1447 "optional" : 1,
44660702 1448 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f
DM
1449 "type" : "string"
1450 },
44660702 1451 "comment" : {
e94f0d56 1452 "description" : "Descriptive comment.",
7aacca6f 1453 "optional" : 1,
013dc89f
DM
1454 "type" : "string",
1455 "typetext" : "<string>"
7aacca6f 1456 },
44660702
DM
1457 "delete" : {
1458 "description" : "A list of settings you want to delete.",
1459 "format" : "pve-configid-list",
7aacca6f 1460 "optional" : 1,
013dc89f
DM
1461 "type" : "string",
1462 "typetext" : "<string>"
7aacca6f 1463 },
44660702
DM
1464 "dest" : {
1465 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
1466 "format" : "pve-fw-addr-spec",
0695fdaf 1467 "maxLength" : 512,
7aacca6f 1468 "optional" : 1,
013dc89f
DM
1469 "type" : "string",
1470 "typetext" : "<string>"
7aacca6f
DM
1471 },
1472 "digest" : {
1473 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 1474 "maxLength" : 40,
7aacca6f 1475 "optional" : 1,
013dc89f
DM
1476 "type" : "string",
1477 "typetext" : "<string>"
7aacca6f 1478 },
44660702
DM
1479 "dport" : {
1480 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
1481 "format" : "pve-fw-dport-spec",
7aacca6f 1482 "optional" : 1,
013dc89f
DM
1483 "type" : "string",
1484 "typetext" : "<string>"
7aacca6f 1485 },
44660702 1486 "enable" : {
e94f0d56 1487 "description" : "Flag to enable/disable a rule.",
44660702 1488 "minimum" : 0,
7aacca6f 1489 "optional" : 1,
4bd7df8b 1490 "type" : "integer",
013dc89f 1491 "typetext" : "<integer> (0 - N)"
7aacca6f 1492 },
44660702
DM
1493 "group" : {
1494 "description" : "Security Group name.",
4bd7df8b 1495 "maxLength" : 18,
44660702
DM
1496 "minLength" : 2,
1497 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1498 "type" : "string"
1499 },
4772952b 1500 "icmp-type" : {
287a95cf 1501 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
1502 "format" : "pve-fw-icmp-type-spec",
1503 "optional" : 1,
1504 "type" : "string",
1505 "typetext" : "<string>"
1506 },
44660702
DM
1507 "iface" : {
1508 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
1509 "format" : "pve-iface",
1510 "maxLength" : 20,
1511 "minLength" : 2,
7aacca6f 1512 "optional" : 1,
013dc89f
DM
1513 "type" : "string",
1514 "typetext" : "<string>"
7aacca6f 1515 },
95895385
TL
1516 "log" : {
1517 "description" : "Log level for firewall rule.",
1518 "enum" : [
1519 "emerg",
1520 "alert",
1521 "crit",
1522 "err",
1523 "warning",
1524 "notice",
1525 "info",
1526 "debug",
1527 "nolog"
1528 ],
1529 "optional" : 1,
1530 "type" : "string"
1531 },
44660702 1532 "macro" : {
e94f0d56 1533 "description" : "Use predefined standard macro.",
44660702
DM
1534 "maxLength" : 128,
1535 "optional" : 1,
013dc89f
DM
1536 "type" : "string",
1537 "typetext" : "<string>"
7aacca6f
DM
1538 },
1539 "moveto" : {
1540 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
44660702 1541 "minimum" : 0,
7aacca6f 1542 "optional" : 1,
4bd7df8b 1543 "type" : "integer",
013dc89f 1544 "typetext" : "<integer> (0 - N)"
7aacca6f 1545 },
44660702
DM
1546 "pos" : {
1547 "description" : "Update rule at position <pos>.",
1548 "minimum" : 0,
1549 "optional" : 1,
4bd7df8b 1550 "type" : "integer",
013dc89f 1551 "typetext" : "<integer> (0 - N)"
7aacca6f 1552 },
44660702
DM
1553 "proto" : {
1554 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
1555 "format" : "pve-fw-protocol-spec",
7aacca6f 1556 "optional" : 1,
013dc89f
DM
1557 "type" : "string",
1558 "typetext" : "<string>"
44660702
DM
1559 },
1560 "source" : {
1561 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
1562 "format" : "pve-fw-addr-spec",
0695fdaf 1563 "maxLength" : 512,
44660702 1564 "optional" : 1,
013dc89f
DM
1565 "type" : "string",
1566 "typetext" : "<string>"
44660702
DM
1567 },
1568 "sport" : {
1569 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
1570 "format" : "pve-fw-sport-spec",
1571 "optional" : 1,
013dc89f
DM
1572 "type" : "string",
1573 "typetext" : "<string>"
7aacca6f
DM
1574 },
1575 "type" : {
e94f0d56 1576 "description" : "Rule type.",
7aacca6f
DM
1577 "enum" : [
1578 "in",
1579 "out",
1580 "group"
1581 ],
1582 "optional" : 1,
1583 "type" : "string"
1584 }
1585 }
1586 },
7aacca6f
DM
1587 "permissions" : {
1588 "check" : [
1589 "perm",
1590 "/",
1591 [
1592 "Sys.Modify"
1593 ]
1594 ]
1595 },
44660702 1596 "protected" : 1,
7aacca6f
DM
1597 "proxyto" : null,
1598 "returns" : {
1599 "type" : "null"
1600 }
7aacca6f
DM
1601 }
1602 },
44660702 1603 "leaf" : 1,
7aacca6f 1604 "path" : "/cluster/firewall/groups/{group}/{pos}",
44660702 1605 "text" : "{pos}"
7aacca6f
DM
1606 }
1607 ],
44660702
DM
1608 "info" : {
1609 "DELETE" : {
e9cd3bd4 1610 "allowtoken" : 1,
44660702
DM
1611 "description" : "Delete security group.",
1612 "method" : "DELETE",
1613 "name" : "delete_security_group",
1614 "parameters" : {
1615 "additionalProperties" : 0,
1616 "properties" : {
1617 "group" : {
1618 "description" : "Security Group name.",
4bd7df8b 1619 "maxLength" : 18,
44660702
DM
1620 "minLength" : 2,
1621 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1622 "type" : "string"
1623 }
56122987 1624 }
7aacca6f 1625 },
44660702
DM
1626 "permissions" : {
1627 "check" : [
1628 "perm",
1629 "/",
1630 [
1631 "Sys.Modify"
1632 ]
7aacca6f 1633 ]
56122987 1634 },
44660702
DM
1635 "protected" : 1,
1636 "returns" : {
1637 "type" : "null"
56122987 1638 }
7aacca6f 1639 },
7aacca6f 1640 "GET" : {
e9cd3bd4 1641 "allowtoken" : 1,
44660702 1642 "description" : "List rules.",
7aacca6f 1643 "method" : "GET",
44660702
DM
1644 "name" : "get_rules",
1645 "parameters" : {
1646 "additionalProperties" : 0,
7aacca6f 1647 "properties" : {
44660702
DM
1648 "group" : {
1649 "description" : "Security Group name.",
4bd7df8b 1650 "maxLength" : 18,
44660702
DM
1651 "minLength" : 2,
1652 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1653 "type" : "string"
7aacca6f 1654 }
44660702 1655 }
7aacca6f
DM
1656 },
1657 "permissions" : {
1658 "check" : [
1659 "perm",
1660 "/",
1661 [
1662 "Sys.Audit"
1663 ]
1664 ]
1665 },
44660702
DM
1666 "proxyto" : null,
1667 "returns" : {
1668 "items" : {
1669 "properties" : {
1670 "pos" : {
1671 "type" : "integer"
1672 }
1673 },
1674 "type" : "object"
1675 },
1676 "links" : [
1677 {
1678 "href" : "{pos}",
1679 "rel" : "child"
1680 }
1681 ],
1682 "type" : "array"
1683 }
1684 },
1685 "POST" : {
e9cd3bd4 1686 "allowtoken" : 1,
44660702
DM
1687 "description" : "Create new rule.",
1688 "method" : "POST",
1689 "name" : "create_rule",
7aacca6f
DM
1690 "parameters" : {
1691 "additionalProperties" : 0,
1692 "properties" : {
44660702
DM
1693 "action" : {
1694 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
1695 "maxLength" : 20,
56122987 1696 "minLength" : 2,
44660702
DM
1697 "optional" : 0,
1698 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f 1699 "type" : "string"
56122987 1700 },
44660702 1701 "comment" : {
e94f0d56 1702 "description" : "Descriptive comment.",
56122987 1703 "optional" : 1,
013dc89f
DM
1704 "type" : "string",
1705 "typetext" : "<string>"
56122987 1706 },
44660702
DM
1707 "dest" : {
1708 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
56122987 1709 "format" : "pve-fw-addr-spec",
0695fdaf 1710 "maxLength" : 512,
56122987 1711 "optional" : 1,
013dc89f
DM
1712 "type" : "string",
1713 "typetext" : "<string>"
56122987 1714 },
44660702
DM
1715 "digest" : {
1716 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1717 "maxLength" : 40,
7aacca6f 1718 "optional" : 1,
013dc89f
DM
1719 "type" : "string",
1720 "typetext" : "<string>"
56122987 1721 },
44660702
DM
1722 "dport" : {
1723 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
1724 "format" : "pve-fw-dport-spec",
56122987 1725 "optional" : 1,
013dc89f
DM
1726 "type" : "string",
1727 "typetext" : "<string>"
56122987 1728 },
7aacca6f 1729 "enable" : {
e94f0d56 1730 "description" : "Flag to enable/disable a rule.",
44660702 1731 "minimum" : 0,
7aacca6f 1732 "optional" : 1,
4bd7df8b 1733 "type" : "integer",
013dc89f 1734 "typetext" : "<integer> (0 - N)"
56122987 1735 },
44660702
DM
1736 "group" : {
1737 "description" : "Security Group name.",
4bd7df8b 1738 "maxLength" : 18,
44660702 1739 "minLength" : 2,
7aacca6f 1740 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
1741 "type" : "string"
1742 },
4772952b 1743 "icmp-type" : {
287a95cf 1744 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
1745 "format" : "pve-fw-icmp-type-spec",
1746 "optional" : 1,
1747 "type" : "string",
1748 "typetext" : "<string>"
1749 },
44660702
DM
1750 "iface" : {
1751 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
1752 "format" : "pve-iface",
1753 "maxLength" : 20,
7aacca6f 1754 "minLength" : 2,
44660702 1755 "optional" : 1,
013dc89f
DM
1756 "type" : "string",
1757 "typetext" : "<string>"
56122987 1758 },
95895385
TL
1759 "log" : {
1760 "description" : "Log level for firewall rule.",
1761 "enum" : [
1762 "emerg",
1763 "alert",
1764 "crit",
1765 "err",
1766 "warning",
1767 "notice",
1768 "info",
1769 "debug",
1770 "nolog"
1771 ],
1772 "optional" : 1,
1773 "type" : "string"
1774 },
7aacca6f 1775 "macro" : {
e94f0d56 1776 "description" : "Use predefined standard macro.",
44660702 1777 "maxLength" : 128,
7aacca6f 1778 "optional" : 1,
013dc89f
DM
1779 "type" : "string",
1780 "typetext" : "<string>"
7aacca6f
DM
1781 },
1782 "pos" : {
1783 "description" : "Update rule at position <pos>.",
44660702 1784 "minimum" : 0,
56122987 1785 "optional" : 1,
4bd7df8b 1786 "type" : "integer",
013dc89f 1787 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
1788 },
1789 "proto" : {
1790 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
44660702 1791 "format" : "pve-fw-protocol-spec",
7aacca6f 1792 "optional" : 1,
013dc89f
DM
1793 "type" : "string",
1794 "typetext" : "<string>"
44660702
DM
1795 },
1796 "source" : {
1797 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
1798 "format" : "pve-fw-addr-spec",
0695fdaf 1799 "maxLength" : 512,
44660702 1800 "optional" : 1,
013dc89f
DM
1801 "type" : "string",
1802 "typetext" : "<string>"
44660702
DM
1803 },
1804 "sport" : {
1805 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
1806 "format" : "pve-fw-sport-spec",
1807 "optional" : 1,
013dc89f
DM
1808 "type" : "string",
1809 "typetext" : "<string>"
44660702
DM
1810 },
1811 "type" : {
e94f0d56 1812 "description" : "Rule type.",
44660702
DM
1813 "enum" : [
1814 "in",
1815 "out",
1816 "group"
1817 ],
1818 "optional" : 0,
1819 "type" : "string"
56122987 1820 }
44660702 1821 }
56122987 1822 },
56122987
DM
1823 "permissions" : {
1824 "check" : [
1825 "perm",
1826 "/",
1827 [
1828 "Sys.Modify"
1829 ]
1830 ]
1831 },
44660702
DM
1832 "protected" : 1,
1833 "proxyto" : null,
56122987
DM
1834 "returns" : {
1835 "type" : "null"
7aacca6f 1836 }
44660702
DM
1837 }
1838 },
1839 "leaf" : 0,
1840 "path" : "/cluster/firewall/groups/{group}",
1841 "text" : "{group}"
1842 }
1843 ],
1844 "info" : {
1845 "GET" : {
e9cd3bd4 1846 "allowtoken" : 1,
44660702
DM
1847 "description" : "List security groups.",
1848 "method" : "GET",
1849 "name" : "list_security_groups",
1850 "parameters" : {
1851 "additionalProperties" : 0
1852 },
1853 "permissions" : {
1854 "user" : "all"
1855 },
1856 "returns" : {
1857 "items" : {
1858 "properties" : {
1859 "comment" : {
1860 "optional" : 1,
1861 "type" : "string"
1862 },
1863 "digest" : {
1864 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1865 "maxLength" : 40,
1866 "optional" : 0,
1867 "type" : "string"
1868 },
1869 "group" : {
1870 "description" : "Security Group name.",
4bd7df8b 1871 "maxLength" : 18,
44660702
DM
1872 "minLength" : 2,
1873 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1874 "type" : "string"
1875 }
1876 },
1877 "type" : "object"
56122987 1878 },
44660702
DM
1879 "links" : [
1880 {
1881 "href" : "{group}",
1882 "rel" : "child"
1883 }
1884 ],
1885 "type" : "array"
1886 }
1887 },
1888 "POST" : {
e9cd3bd4 1889 "allowtoken" : 1,
44660702
DM
1890 "description" : "Create new security group.",
1891 "method" : "POST",
1892 "name" : "create_security_group",
1893 "parameters" : {
1894 "additionalProperties" : 0,
1895 "properties" : {
1896 "comment" : {
1897 "optional" : 1,
013dc89f
DM
1898 "type" : "string",
1899 "typetext" : "<string>"
44660702
DM
1900 },
1901 "digest" : {
1902 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1903 "maxLength" : 40,
1904 "optional" : 1,
013dc89f
DM
1905 "type" : "string",
1906 "typetext" : "<string>"
44660702
DM
1907 },
1908 "group" : {
1909 "description" : "Security Group name.",
4bd7df8b 1910 "maxLength" : 18,
44660702
DM
1911 "minLength" : 2,
1912 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1913 "type" : "string"
1914 },
1915 "rename" : {
1916 "description" : "Rename/update an existing security group. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing group.",
4bd7df8b 1917 "maxLength" : 18,
44660702
DM
1918 "minLength" : 2,
1919 "optional" : 1,
1920 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1921 "type" : "string"
1922 }
1923 }
1924 },
1925 "permissions" : {
1926 "check" : [
1927 "perm",
1928 "/",
1929 [
1930 "Sys.Modify"
1931 ]
1932 ]
1933 },
1934 "protected" : 1,
1935 "returns" : {
1936 "type" : "null"
1937 }
1938 }
1939 },
1940 "leaf" : 0,
1941 "path" : "/cluster/firewall/groups",
1942 "text" : "groups"
1943 },
1944 {
1945 "children" : [
1946 {
1947 "info" : {
7aacca6f 1948 "DELETE" : {
e9cd3bd4 1949 "allowtoken" : 1,
44660702
DM
1950 "description" : "Delete rule.",
1951 "method" : "DELETE",
1952 "name" : "delete_rule",
1953 "parameters" : {
1954 "additionalProperties" : 0,
1955 "properties" : {
1956 "digest" : {
1957 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1958 "maxLength" : 40,
1959 "optional" : 1,
013dc89f
DM
1960 "type" : "string",
1961 "typetext" : "<string>"
44660702
DM
1962 },
1963 "pos" : {
1964 "description" : "Update rule at position <pos>.",
1965 "minimum" : 0,
1966 "optional" : 1,
4bd7df8b 1967 "type" : "integer",
013dc89f 1968 "typetext" : "<integer> (0 - N)"
44660702
DM
1969 }
1970 }
1971 },
56122987
DM
1972 "permissions" : {
1973 "check" : [
1974 "perm",
1975 "/",
1976 [
7aacca6f 1977 "Sys.Modify"
56122987
DM
1978 ]
1979 ]
1980 },
44660702 1981 "protected" : 1,
56122987
DM
1982 "proxyto" : null,
1983 "returns" : {
7aacca6f 1984 "type" : "null"
44660702
DM
1985 }
1986 },
1987 "GET" : {
e9cd3bd4 1988 "allowtoken" : 1,
44660702
DM
1989 "description" : "Get single rule data.",
1990 "method" : "GET",
1991 "name" : "get_rule",
56122987
DM
1992 "parameters" : {
1993 "additionalProperties" : 0,
1994 "properties" : {
1995 "pos" : {
7aacca6f 1996 "description" : "Update rule at position <pos>.",
44660702 1997 "minimum" : 0,
56122987 1998 "optional" : 1,
4bd7df8b 1999 "type" : "integer",
013dc89f 2000 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
2001 }
2002 }
2003 },
7aacca6f
DM
2004 "permissions" : {
2005 "check" : [
2006 "perm",
2007 "/",
2008 [
2009 "Sys.Audit"
2010 ]
2011 ]
56122987 2012 },
44660702
DM
2013 "proxyto" : null,
2014 "returns" : {
7aacca6f 2015 "properties" : {
e2d681b3
TL
2016 "action" : {
2017 "type" : "string"
2018 },
2019 "comment" : {
2020 "optional" : 1,
2021 "type" : "string"
2022 },
2023 "dest" : {
2024 "optional" : 1,
2025 "type" : "string"
2026 },
2027 "dport" : {
2028 "optional" : 1,
2029 "type" : "string"
2030 },
2031 "enable" : {
2032 "optional" : 1,
2033 "type" : "integer"
2034 },
4772952b
TL
2035 "icmp-type" : {
2036 "optional" : 1,
2037 "type" : "string"
2038 },
e2d681b3
TL
2039 "iface" : {
2040 "optional" : 1,
2041 "type" : "string"
2042 },
2043 "ipversion" : {
2044 "optional" : 1,
2045 "type" : "integer"
2046 },
95895385
TL
2047 "log" : {
2048 "description" : "Log level for firewall rule",
2049 "enum" : [
2050 "emerg",
2051 "alert",
2052 "crit",
2053 "err",
2054 "warning",
2055 "notice",
2056 "info",
2057 "debug",
2058 "nolog"
2059 ],
2060 "optional" : 1,
2061 "type" : "string"
2062 },
e2d681b3
TL
2063 "macro" : {
2064 "optional" : 1,
5f26e15b 2065 "type" : "string"
e2d681b3 2066 },
44660702
DM
2067 "pos" : {
2068 "type" : "integer"
e2d681b3
TL
2069 },
2070 "proto" : {
2071 "optional" : 1,
2072 "type" : "string"
2073 },
2074 "source" : {
2075 "optional" : 1,
2076 "type" : "string"
2077 },
2078 "sport" : {
2079 "optional" : 1,
2080 "type" : "string"
2081 },
2082 "type" : {
2083 "type" : "string"
7aacca6f 2084 }
44660702
DM
2085 },
2086 "type" : "object"
2087 }
56122987 2088 },
44660702 2089 "PUT" : {
e9cd3bd4 2090 "allowtoken" : 1,
44660702
DM
2091 "description" : "Modify rule data.",
2092 "method" : "PUT",
2093 "name" : "update_rule",
7aacca6f
DM
2094 "parameters" : {
2095 "additionalProperties" : 0,
2096 "properties" : {
44660702
DM
2097 "action" : {
2098 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
2099 "maxLength" : 20,
2100 "minLength" : 2,
2101 "optional" : 1,
2102 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2103 "type" : "string"
7aacca6f 2104 },
44660702 2105 "comment" : {
e94f0d56 2106 "description" : "Descriptive comment.",
44660702 2107 "optional" : 1,
013dc89f
DM
2108 "type" : "string",
2109 "typetext" : "<string>"
7aacca6f 2110 },
44660702
DM
2111 "delete" : {
2112 "description" : "A list of settings you want to delete.",
2113 "format" : "pve-configid-list",
2114 "optional" : 1,
013dc89f
DM
2115 "type" : "string",
2116 "typetext" : "<string>"
44660702
DM
2117 },
2118 "dest" : {
2119 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
2120 "format" : "pve-fw-addr-spec",
0695fdaf 2121 "maxLength" : 512,
44660702 2122 "optional" : 1,
013dc89f
DM
2123 "type" : "string",
2124 "typetext" : "<string>"
44660702
DM
2125 },
2126 "digest" : {
2127 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2128 "maxLength" : 40,
2129 "optional" : 1,
013dc89f
DM
2130 "type" : "string",
2131 "typetext" : "<string>"
44660702
DM
2132 },
2133 "dport" : {
2134 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
2135 "format" : "pve-fw-dport-spec",
2136 "optional" : 1,
013dc89f
DM
2137 "type" : "string",
2138 "typetext" : "<string>"
44660702
DM
2139 },
2140 "enable" : {
e94f0d56 2141 "description" : "Flag to enable/disable a rule.",
44660702
DM
2142 "minimum" : 0,
2143 "optional" : 1,
4bd7df8b 2144 "type" : "integer",
013dc89f 2145 "typetext" : "<integer> (0 - N)"
44660702 2146 },
4772952b 2147 "icmp-type" : {
287a95cf 2148 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
2149 "format" : "pve-fw-icmp-type-spec",
2150 "optional" : 1,
2151 "type" : "string",
2152 "typetext" : "<string>"
2153 },
44660702
DM
2154 "iface" : {
2155 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
2156 "format" : "pve-iface",
2157 "maxLength" : 20,
7aacca6f 2158 "minLength" : 2,
44660702 2159 "optional" : 1,
013dc89f
DM
2160 "type" : "string",
2161 "typetext" : "<string>"
7aacca6f 2162 },
95895385
TL
2163 "log" : {
2164 "description" : "Log level for firewall rule.",
2165 "enum" : [
2166 "emerg",
2167 "alert",
2168 "crit",
2169 "err",
2170 "warning",
2171 "notice",
2172 "info",
2173 "debug",
2174 "nolog"
2175 ],
2176 "optional" : 1,
2177 "type" : "string"
2178 },
44660702 2179 "macro" : {
e94f0d56 2180 "description" : "Use predefined standard macro.",
44660702
DM
2181 "maxLength" : 128,
2182 "optional" : 1,
013dc89f
DM
2183 "type" : "string",
2184 "typetext" : "<string>"
44660702
DM
2185 },
2186 "moveto" : {
2187 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
2188 "minimum" : 0,
2189 "optional" : 1,
4bd7df8b 2190 "type" : "integer",
013dc89f 2191 "typetext" : "<integer> (0 - N)"
44660702
DM
2192 },
2193 "pos" : {
2194 "description" : "Update rule at position <pos>.",
2195 "minimum" : 0,
2196 "optional" : 1,
4bd7df8b 2197 "type" : "integer",
013dc89f 2198 "typetext" : "<integer> (0 - N)"
44660702
DM
2199 },
2200 "proto" : {
2201 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
2202 "format" : "pve-fw-protocol-spec",
2203 "optional" : 1,
013dc89f
DM
2204 "type" : "string",
2205 "typetext" : "<string>"
44660702
DM
2206 },
2207 "source" : {
2208 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
2209 "format" : "pve-fw-addr-spec",
0695fdaf 2210 "maxLength" : 512,
44660702 2211 "optional" : 1,
013dc89f
DM
2212 "type" : "string",
2213 "typetext" : "<string>"
44660702
DM
2214 },
2215 "sport" : {
2216 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
2217 "format" : "pve-fw-sport-spec",
2218 "optional" : 1,
013dc89f
DM
2219 "type" : "string",
2220 "typetext" : "<string>"
44660702
DM
2221 },
2222 "type" : {
e94f0d56 2223 "description" : "Rule type.",
44660702
DM
2224 "enum" : [
2225 "in",
2226 "out",
2227 "group"
2228 ],
2229 "optional" : 1,
2230 "type" : "string"
7aacca6f 2231 }
56122987
DM
2232 }
2233 },
7aacca6f
DM
2234 "permissions" : {
2235 "check" : [
2236 "perm",
2237 "/",
2238 [
2239 "Sys.Modify"
2240 ]
2241 ]
2242 },
44660702
DM
2243 "protected" : 1,
2244 "proxyto" : null,
2245 "returns" : {
2246 "type" : "null"
2247 }
7aacca6f 2248 }
56122987 2249 },
44660702
DM
2250 "leaf" : 1,
2251 "path" : "/cluster/firewall/rules/{pos}",
2252 "text" : "{pos}"
7aacca6f
DM
2253 }
2254 ],
7aacca6f 2255 "info" : {
44660702 2256 "GET" : {
e9cd3bd4 2257 "allowtoken" : 1,
44660702
DM
2258 "description" : "List rules.",
2259 "method" : "GET",
2260 "name" : "get_rules",
7aacca6f 2261 "parameters" : {
44660702 2262 "additionalProperties" : 0
7aacca6f
DM
2263 },
2264 "permissions" : {
2265 "check" : [
2266 "perm",
2267 "/",
2268 [
44660702 2269 "Sys.Audit"
7aacca6f
DM
2270 ]
2271 ]
2272 },
44660702 2273 "proxyto" : null,
7aacca6f 2274 "returns" : {
7aacca6f
DM
2275 "items" : {
2276 "properties" : {
44660702
DM
2277 "pos" : {
2278 "type" : "integer"
7aacca6f
DM
2279 }
2280 },
2281 "type" : "object"
56122987 2282 },
7aacca6f
DM
2283 "links" : [
2284 {
44660702 2285 "href" : "{pos}",
7aacca6f
DM
2286 "rel" : "child"
2287 }
44660702
DM
2288 ],
2289 "type" : "array"
7aacca6f 2290 }
44660702 2291 },
7aacca6f 2292 "POST" : {
e9cd3bd4 2293 "allowtoken" : 1,
44660702 2294 "description" : "Create new rule.",
7aacca6f 2295 "method" : "POST",
44660702 2296 "name" : "create_rule",
7aacca6f
DM
2297 "parameters" : {
2298 "additionalProperties" : 0,
2299 "properties" : {
44660702
DM
2300 "action" : {
2301 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
2302 "maxLength" : 20,
7aacca6f 2303 "minLength" : 2,
44660702
DM
2304 "optional" : 0,
2305 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2306 "type" : "string"
7aacca6f
DM
2307 },
2308 "comment" : {
e94f0d56 2309 "description" : "Descriptive comment.",
7aacca6f 2310 "optional" : 1,
013dc89f
DM
2311 "type" : "string",
2312 "typetext" : "<string>"
44660702
DM
2313 },
2314 "dest" : {
2315 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
2316 "format" : "pve-fw-addr-spec",
0695fdaf 2317 "maxLength" : 512,
44660702 2318 "optional" : 1,
013dc89f
DM
2319 "type" : "string",
2320 "typetext" : "<string>"
44660702
DM
2321 },
2322 "digest" : {
2323 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2324 "maxLength" : 40,
2325 "optional" : 1,
013dc89f
DM
2326 "type" : "string",
2327 "typetext" : "<string>"
44660702
DM
2328 },
2329 "dport" : {
2330 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
2331 "format" : "pve-fw-dport-spec",
2332 "optional" : 1,
013dc89f
DM
2333 "type" : "string",
2334 "typetext" : "<string>"
44660702
DM
2335 },
2336 "enable" : {
e94f0d56 2337 "description" : "Flag to enable/disable a rule.",
44660702
DM
2338 "minimum" : 0,
2339 "optional" : 1,
4bd7df8b 2340 "type" : "integer",
013dc89f 2341 "typetext" : "<integer> (0 - N)"
44660702 2342 },
4772952b 2343 "icmp-type" : {
287a95cf 2344 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
2345 "format" : "pve-fw-icmp-type-spec",
2346 "optional" : 1,
2347 "type" : "string",
2348 "typetext" : "<string>"
2349 },
44660702
DM
2350 "iface" : {
2351 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
2352 "format" : "pve-iface",
2353 "maxLength" : 20,
2354 "minLength" : 2,
2355 "optional" : 1,
013dc89f
DM
2356 "type" : "string",
2357 "typetext" : "<string>"
44660702 2358 },
95895385
TL
2359 "log" : {
2360 "description" : "Log level for firewall rule.",
2361 "enum" : [
2362 "emerg",
2363 "alert",
2364 "crit",
2365 "err",
2366 "warning",
2367 "notice",
2368 "info",
2369 "debug",
2370 "nolog"
2371 ],
2372 "optional" : 1,
2373 "type" : "string"
2374 },
44660702 2375 "macro" : {
e94f0d56 2376 "description" : "Use predefined standard macro.",
44660702
DM
2377 "maxLength" : 128,
2378 "optional" : 1,
013dc89f
DM
2379 "type" : "string",
2380 "typetext" : "<string>"
44660702
DM
2381 },
2382 "pos" : {
2383 "description" : "Update rule at position <pos>.",
2384 "minimum" : 0,
2385 "optional" : 1,
4bd7df8b 2386 "type" : "integer",
013dc89f 2387 "typetext" : "<integer> (0 - N)"
44660702
DM
2388 },
2389 "proto" : {
2390 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
2391 "format" : "pve-fw-protocol-spec",
2392 "optional" : 1,
013dc89f
DM
2393 "type" : "string",
2394 "typetext" : "<string>"
44660702
DM
2395 },
2396 "source" : {
2397 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
2398 "format" : "pve-fw-addr-spec",
0695fdaf 2399 "maxLength" : 512,
44660702 2400 "optional" : 1,
013dc89f
DM
2401 "type" : "string",
2402 "typetext" : "<string>"
44660702
DM
2403 },
2404 "sport" : {
2405 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
2406 "format" : "pve-fw-sport-spec",
2407 "optional" : 1,
013dc89f
DM
2408 "type" : "string",
2409 "typetext" : "<string>"
44660702
DM
2410 },
2411 "type" : {
e94f0d56 2412 "description" : "Rule type.",
44660702
DM
2413 "enum" : [
2414 "in",
2415 "out",
2416 "group"
2417 ],
2418 "optional" : 0,
2419 "type" : "string"
7aacca6f
DM
2420 }
2421 }
2422 },
2423 "permissions" : {
2424 "check" : [
2425 "perm",
2426 "/",
2427 [
2428 "Sys.Modify"
2429 ]
2430 ]
2431 },
44660702
DM
2432 "protected" : 1,
2433 "proxyto" : null,
7aacca6f 2434 "returns" : {
44660702
DM
2435 "type" : "null"
2436 }
2437 }
2438 },
2439 "leaf" : 0,
2440 "path" : "/cluster/firewall/rules",
2441 "text" : "rules"
2442 },
2443 {
2444 "children" : [
2445 {
2446 "children" : [
2447 {
2448 "info" : {
2449 "DELETE" : {
e9cd3bd4 2450 "allowtoken" : 1,
44660702
DM
2451 "description" : "Remove IP or Network from IPSet.",
2452 "method" : "DELETE",
2453 "name" : "remove_ip",
2454 "parameters" : {
2455 "additionalProperties" : 0,
2456 "properties" : {
2457 "cidr" : {
2458 "description" : "Network/IP specification in CIDR format.",
2459 "format" : "IPorCIDRorAlias",
013dc89f
DM
2460 "type" : "string",
2461 "typetext" : "<string>"
44660702
DM
2462 },
2463 "digest" : {
2464 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2465 "maxLength" : 40,
2466 "optional" : 1,
013dc89f
DM
2467 "type" : "string",
2468 "typetext" : "<string>"
44660702
DM
2469 },
2470 "name" : {
2471 "description" : "IP set name.",
2472 "maxLength" : 64,
2473 "minLength" : 2,
2474 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2475 "type" : "string"
2476 }
2477 }
2478 },
2479 "permissions" : {
2480 "check" : [
2481 "perm",
2482 "/",
2483 [
2484 "Sys.Modify"
2485 ]
2486 ]
2487 },
2488 "protected" : 1,
2489 "returns" : {
2490 "type" : "null"
2491 }
7aacca6f 2492 },
44660702 2493 "GET" : {
e9cd3bd4 2494 "allowtoken" : 1,
44660702
DM
2495 "description" : "Read IP or Network settings from IPSet.",
2496 "method" : "GET",
2497 "name" : "read_ip",
2498 "parameters" : {
2499 "additionalProperties" : 0,
2500 "properties" : {
2501 "cidr" : {
2502 "description" : "Network/IP specification in CIDR format.",
2503 "format" : "IPorCIDRorAlias",
013dc89f
DM
2504 "type" : "string",
2505 "typetext" : "<string>"
44660702
DM
2506 },
2507 "name" : {
2508 "description" : "IP set name.",
2509 "maxLength" : 64,
2510 "minLength" : 2,
2511 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2512 "type" : "string"
2513 }
2514 }
2515 },
2516 "permissions" : {
2517 "check" : [
2518 "perm",
2519 "/",
2520 [
2521 "Sys.Audit"
2522 ]
2523 ]
2524 },
2525 "protected" : 1,
2526 "returns" : {
2527 "type" : "object"
2528 }
7aacca6f 2529 },
44660702 2530 "PUT" : {
e9cd3bd4 2531 "allowtoken" : 1,
44660702
DM
2532 "description" : "Update IP or Network settings",
2533 "method" : "PUT",
2534 "name" : "update_ip",
2535 "parameters" : {
2536 "additionalProperties" : 0,
2537 "properties" : {
2538 "cidr" : {
2539 "description" : "Network/IP specification in CIDR format.",
2540 "format" : "IPorCIDRorAlias",
013dc89f
DM
2541 "type" : "string",
2542 "typetext" : "<string>"
44660702
DM
2543 },
2544 "comment" : {
2545 "optional" : 1,
013dc89f
DM
2546 "type" : "string",
2547 "typetext" : "<string>"
44660702
DM
2548 },
2549 "digest" : {
2550 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2551 "maxLength" : 40,
2552 "optional" : 1,
013dc89f
DM
2553 "type" : "string",
2554 "typetext" : "<string>"
44660702
DM
2555 },
2556 "name" : {
2557 "description" : "IP set name.",
2558 "maxLength" : 64,
2559 "minLength" : 2,
2560 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2561 "type" : "string"
2562 },
2563 "nomatch" : {
2564 "optional" : 1,
013dc89f
DM
2565 "type" : "boolean",
2566 "typetext" : "<boolean>"
44660702
DM
2567 }
2568 }
2569 },
2570 "permissions" : {
2571 "check" : [
2572 "perm",
2573 "/",
2574 [
2575 "Sys.Modify"
2576 ]
2577 ]
2578 },
2579 "protected" : 1,
2580 "returns" : {
2581 "type" : "null"
2582 }
7aacca6f
DM
2583 }
2584 },
44660702
DM
2585 "leaf" : 1,
2586 "path" : "/cluster/firewall/ipset/{name}/{cidr}",
2587 "text" : "{cidr}"
7aacca6f 2588 }
44660702 2589 ],
7aacca6f
DM
2590 "info" : {
2591 "DELETE" : {
e9cd3bd4 2592 "allowtoken" : 1,
44660702
DM
2593 "description" : "Delete IPSet",
2594 "method" : "DELETE",
2595 "name" : "delete_ipset",
56122987 2596 "parameters" : {
44660702 2597 "additionalProperties" : 0,
56122987 2598 "properties" : {
81a3384d
TL
2599 "force" : {
2600 "description" : "Delete all members of the IPSet, if there are any.",
2601 "optional" : 1,
2602 "type" : "boolean",
2603 "typetext" : "<boolean>"
2604 },
56122987 2605 "name" : {
44660702 2606 "description" : "IP set name.",
56122987 2607 "maxLength" : 64,
44660702 2608 "minLength" : 2,
56122987 2609 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 2610 "type" : "string"
56122987 2611 }
44660702 2612 }
7aacca6f 2613 },
56122987
DM
2614 "permissions" : {
2615 "check" : [
2616 "perm",
2617 "/",
2618 [
2619 "Sys.Modify"
2620 ]
2621 ]
2622 },
7aacca6f
DM
2623 "protected" : 1,
2624 "returns" : {
2625 "type" : "null"
44660702 2626 }
7aacca6f 2627 },
44660702 2628 "GET" : {
e9cd3bd4 2629 "allowtoken" : 1,
44660702
DM
2630 "description" : "List IPSet content",
2631 "method" : "GET",
2632 "name" : "get_ipset",
56122987
DM
2633 "parameters" : {
2634 "additionalProperties" : 0,
2635 "properties" : {
7aacca6f 2636 "name" : {
44660702 2637 "description" : "IP set name.",
7aacca6f 2638 "maxLength" : 64,
7aacca6f 2639 "minLength" : 2,
44660702 2640 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987 2641 "type" : "string"
56122987 2642 }
7aacca6f 2643 }
56122987 2644 },
56122987
DM
2645 "permissions" : {
2646 "check" : [
2647 "perm",
2648 "/",
2649 [
44660702 2650 "Sys.Audit"
56122987
DM
2651 ]
2652 ]
44660702
DM
2653 },
2654 "returns" : {
2655 "items" : {
2656 "properties" : {
2657 "cidr" : {
2658 "type" : "string"
2659 },
2660 "comment" : {
2661 "optional" : 1,
2662 "type" : "string"
2663 },
2664 "digest" : {
2665 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2666 "maxLength" : 40,
2667 "optional" : 0,
2668 "type" : "string"
2669 },
2670 "nomatch" : {
2671 "optional" : 1,
2672 "type" : "boolean"
2673 }
2674 },
2675 "type" : "object"
2676 },
2677 "links" : [
2678 {
2679 "href" : "{cidr}",
2680 "rel" : "child"
2681 }
2682 ],
2683 "type" : "array"
7aacca6f
DM
2684 }
2685 },
44660702 2686 "POST" : {
e9cd3bd4 2687 "allowtoken" : 1,
44660702
DM
2688 "description" : "Add IP or Network to IPSet.",
2689 "method" : "POST",
2690 "name" : "create_ip",
56122987
DM
2691 "parameters" : {
2692 "additionalProperties" : 0,
2693 "properties" : {
44660702
DM
2694 "cidr" : {
2695 "description" : "Network/IP specification in CIDR format.",
2696 "format" : "IPorCIDRorAlias",
013dc89f
DM
2697 "type" : "string",
2698 "typetext" : "<string>"
44660702
DM
2699 },
2700 "comment" : {
2701 "optional" : 1,
013dc89f
DM
2702 "type" : "string",
2703 "typetext" : "<string>"
44660702
DM
2704 },
2705 "name" : {
2706 "description" : "IP set name.",
2707 "maxLength" : 64,
2708 "minLength" : 2,
2709 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2710 "type" : "string"
2711 },
2712 "nomatch" : {
2713 "optional" : 1,
013dc89f
DM
2714 "type" : "boolean",
2715 "typetext" : "<boolean>"
56122987
DM
2716 }
2717 }
2718 },
56122987
DM
2719 "permissions" : {
2720 "check" : [
2721 "perm",
2722 "/",
2723 [
44660702 2724 "Sys.Modify"
56122987
DM
2725 ]
2726 ]
2727 },
44660702 2728 "protected" : 1,
56122987 2729 "returns" : {
44660702
DM
2730 "type" : "null"
2731 }
56122987
DM
2732 }
2733 },
44660702
DM
2734 "leaf" : 0,
2735 "path" : "/cluster/firewall/ipset/{name}",
2736 "text" : "{name}"
56122987
DM
2737 }
2738 ],
56122987 2739 "info" : {
44660702 2740 "GET" : {
e9cd3bd4 2741 "allowtoken" : 1,
44660702
DM
2742 "description" : "List IPSets",
2743 "method" : "GET",
2744 "name" : "ipset_index",
56122987 2745 "parameters" : {
7aacca6f 2746 "additionalProperties" : 0
56122987 2747 },
56122987
DM
2748 "permissions" : {
2749 "check" : [
2750 "perm",
2751 "/",
2752 [
7aacca6f 2753 "Sys.Audit"
56122987
DM
2754 ]
2755 ]
2756 },
56122987
DM
2757 "returns" : {
2758 "items" : {
2759 "properties" : {
44660702
DM
2760 "comment" : {
2761 "optional" : 1,
2762 "type" : "string"
56122987 2763 },
44660702
DM
2764 "digest" : {
2765 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2766 "maxLength" : 40,
2767 "optional" : 0,
2768 "type" : "string"
2769 },
2770 "name" : {
2771 "description" : "IP set name.",
2772 "maxLength" : 64,
2773 "minLength" : 2,
2774 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f 2775 "type" : "string"
56122987
DM
2776 }
2777 },
2778 "type" : "object"
44660702
DM
2779 },
2780 "links" : [
2781 {
2782 "href" : "{name}",
2783 "rel" : "child"
2784 }
2785 ],
2786 "type" : "array"
56122987 2787 }
44660702
DM
2788 },
2789 "POST" : {
e9cd3bd4 2790 "allowtoken" : 1,
44660702
DM
2791 "description" : "Create new IPSet",
2792 "method" : "POST",
2793 "name" : "create_ipset",
7aacca6f
DM
2794 "parameters" : {
2795 "additionalProperties" : 0,
2796 "properties" : {
44660702
DM
2797 "comment" : {
2798 "optional" : 1,
013dc89f
DM
2799 "type" : "string",
2800 "typetext" : "<string>"
44660702
DM
2801 },
2802 "digest" : {
2803 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2804 "maxLength" : 40,
2805 "optional" : 1,
013dc89f
DM
2806 "type" : "string",
2807 "typetext" : "<string>"
44660702
DM
2808 },
2809 "name" : {
2810 "description" : "IP set name.",
2811 "maxLength" : 64,
2812 "minLength" : 2,
2813 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2814 "type" : "string"
2815 },
2816 "rename" : {
2817 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
2818 "maxLength" : 64,
2819 "minLength" : 2,
2820 "optional" : 1,
2821 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2822 "type" : "string"
7aacca6f
DM
2823 }
2824 }
2825 },
56122987
DM
2826 "permissions" : {
2827 "check" : [
2828 "perm",
2829 "/",
2830 [
44660702 2831 "Sys.Modify"
56122987
DM
2832 ]
2833 ]
2834 },
44660702 2835 "protected" : 1,
56122987 2836 "returns" : {
44660702
DM
2837 "type" : "null"
2838 }
56122987 2839 }
7aacca6f 2840 },
44660702
DM
2841 "leaf" : 0,
2842 "path" : "/cluster/firewall/ipset",
2843 "text" : "ipset"
2844 },
56122987 2845 {
44660702
DM
2846 "children" : [
2847 {
2848 "info" : {
2849 "DELETE" : {
e9cd3bd4 2850 "allowtoken" : 1,
44660702
DM
2851 "description" : "Remove IP or Network alias.",
2852 "method" : "DELETE",
2853 "name" : "remove_alias",
2854 "parameters" : {
2855 "additionalProperties" : 0,
2856 "properties" : {
2857 "digest" : {
2858 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2859 "maxLength" : 40,
2860 "optional" : 1,
013dc89f
DM
2861 "type" : "string",
2862 "typetext" : "<string>"
44660702
DM
2863 },
2864 "name" : {
2865 "description" : "Alias name.",
2866 "maxLength" : 64,
2867 "minLength" : 2,
2868 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2869 "type" : "string"
2870 }
2871 }
2872 },
2873 "permissions" : {
2874 "check" : [
2875 "perm",
2876 "/",
2877 [
2878 "Sys.Modify"
2879 ]
2880 ]
2881 },
2882 "protected" : 1,
2883 "returns" : {
2884 "type" : "null"
2885 }
2886 },
2887 "GET" : {
e9cd3bd4 2888 "allowtoken" : 1,
44660702
DM
2889 "description" : "Read alias.",
2890 "method" : "GET",
2891 "name" : "read_alias",
2892 "parameters" : {
2893 "additionalProperties" : 0,
2894 "properties" : {
2895 "name" : {
2896 "description" : "Alias name.",
2897 "maxLength" : 64,
2898 "minLength" : 2,
2899 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2900 "type" : "string"
2901 }
2902 }
2903 },
2904 "permissions" : {
2905 "check" : [
2906 "perm",
2907 "/",
2908 [
2909 "Sys.Audit"
2910 ]
2911 ]
2912 },
2913 "returns" : {
2914 "type" : "object"
2915 }
2916 },
2917 "PUT" : {
e9cd3bd4 2918 "allowtoken" : 1,
44660702
DM
2919 "description" : "Update IP or Network alias.",
2920 "method" : "PUT",
2921 "name" : "update_alias",
2922 "parameters" : {
2923 "additionalProperties" : 0,
2924 "properties" : {
2925 "cidr" : {
2926 "description" : "Network/IP specification in CIDR format.",
2927 "format" : "IPorCIDR",
013dc89f
DM
2928 "type" : "string",
2929 "typetext" : "<string>"
44660702
DM
2930 },
2931 "comment" : {
2932 "optional" : 1,
013dc89f
DM
2933 "type" : "string",
2934 "typetext" : "<string>"
44660702
DM
2935 },
2936 "digest" : {
2937 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2938 "maxLength" : 40,
2939 "optional" : 1,
013dc89f
DM
2940 "type" : "string",
2941 "typetext" : "<string>"
44660702
DM
2942 },
2943 "name" : {
2944 "description" : "Alias name.",
2945 "maxLength" : 64,
2946 "minLength" : 2,
2947 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2948 "type" : "string"
2949 },
2950 "rename" : {
2951 "description" : "Rename an existing alias.",
2952 "maxLength" : 64,
2953 "minLength" : 2,
2954 "optional" : 1,
2955 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2956 "type" : "string"
2957 }
2958 }
2959 },
2960 "permissions" : {
2961 "check" : [
2962 "perm",
2963 "/",
2964 [
2965 "Sys.Modify"
2966 ]
2967 ]
2968 },
2969 "protected" : 1,
2970 "returns" : {
2971 "type" : "null"
2972 }
2973 }
2974 },
2975 "leaf" : 1,
2976 "path" : "/cluster/firewall/aliases/{name}",
2977 "text" : "{name}"
2978 }
2979 ],
2980 "info" : {
2981 "GET" : {
e9cd3bd4 2982 "allowtoken" : 1,
44660702
DM
2983 "description" : "List aliases",
2984 "method" : "GET",
2985 "name" : "get_aliases",
2986 "parameters" : {
2987 "additionalProperties" : 0
2988 },
2989 "permissions" : {
2990 "check" : [
2991 "perm",
2992 "/",
2993 [
2994 "Sys.Audit"
2995 ]
2996 ]
2997 },
2998 "returns" : {
2999 "items" : {
3000 "properties" : {
3001 "cidr" : {
3002 "type" : "string"
3003 },
3004 "comment" : {
3005 "optional" : 1,
3006 "type" : "string"
3007 },
3008 "digest" : {
3009 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
3010 "maxLength" : 40,
3011 "optional" : 0,
3012 "type" : "string"
3013 },
3014 "name" : {
3015 "type" : "string"
3016 }
3017 },
3018 "type" : "object"
3019 },
3020 "links" : [
3021 {
3022 "href" : "{name}",
3023 "rel" : "child"
3024 }
3025 ],
3026 "type" : "array"
3027 }
3028 },
3029 "POST" : {
e9cd3bd4 3030 "allowtoken" : 1,
44660702
DM
3031 "description" : "Create IP or Network Alias.",
3032 "method" : "POST",
3033 "name" : "create_alias",
56122987
DM
3034 "parameters" : {
3035 "additionalProperties" : 0,
3036 "properties" : {
44660702
DM
3037 "cidr" : {
3038 "description" : "Network/IP specification in CIDR format.",
3039 "format" : "IPorCIDR",
013dc89f
DM
3040 "type" : "string",
3041 "typetext" : "<string>"
44660702
DM
3042 },
3043 "comment" : {
3044 "optional" : 1,
013dc89f
DM
3045 "type" : "string",
3046 "typetext" : "<string>"
44660702
DM
3047 },
3048 "name" : {
3049 "description" : "Alias name.",
3050 "maxLength" : 64,
3051 "minLength" : 2,
3052 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3053 "type" : "string"
56122987
DM
3054 }
3055 }
3056 },
56122987
DM
3057 "permissions" : {
3058 "check" : [
3059 "perm",
3060 "/",
3061 [
3062 "Sys.Modify"
3063 ]
3064 ]
3065 },
44660702 3066 "protected" : 1,
56122987
DM
3067 "returns" : {
3068 "type" : "null"
3069 }
44660702
DM
3070 }
3071 },
3072 "leaf" : 0,
3073 "path" : "/cluster/firewall/aliases",
3074 "text" : "aliases"
3075 },
3076 {
3077 "info" : {
3078 "GET" : {
e9cd3bd4 3079 "allowtoken" : 1,
44660702
DM
3080 "description" : "Get Firewall options.",
3081 "method" : "GET",
3082 "name" : "get_options",
3083 "parameters" : {
3084 "additionalProperties" : 0
7aacca6f 3085 },
56122987
DM
3086 "permissions" : {
3087 "check" : [
3088 "perm",
3089 "/",
3090 [
44660702 3091 "Sys.Audit"
56122987
DM
3092 ]
3093 ]
3094 },
44660702 3095 "returns" : {
56122987 3096 "properties" : {
5da3d723
TL
3097 "ebtables" : {
3098 "default" : 1,
3099 "description" : "Enable ebtables rules cluster wide.",
3100 "optional" : 1,
3101 "type" : "boolean"
3102 },
44660702
DM
3103 "enable" : {
3104 "description" : "Enable or disable the firewall cluster wide.",
3105 "minimum" : 0,
56122987 3106 "optional" : 1,
7aacca6f 3107 "type" : "integer"
56122987 3108 },
95895385
TL
3109 "log_ratelimit" : {
3110 "description" : "Log ratelimiting settings",
3111 "format" : {
3112 "burst" : {
3113 "default" : 5,
4772952b 3114 "description" : "Initial burst of packages which will always get logged before the rate is applied",
95895385
TL
3115 "minimum" : 0,
3116 "optional" : 1,
3117 "type" : "integer"
3118 },
3119 "enable" : {
3120 "default" : "1",
3121 "default_key" : 1,
3122 "description" : "Enable or disable log rate limiting",
3123 "type" : "boolean"
3124 },
3125 "rate" : {
3126 "default" : "1/second",
3127 "description" : "Frequency with which the burst bucket gets refilled",
3128 "format_description" : "rate",
3129 "optional" : 1,
3130 "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
3131 "type" : "string"
3132 }
3133 },
3134 "optional" : 1,
3135 "type" : "string"
3136 },
44660702
DM
3137 "policy_in" : {
3138 "description" : "Input policy.",
3139 "enum" : [
3140 "ACCEPT",
3141 "REJECT",
3142 "DROP"
3143 ],
56122987 3144 "optional" : 1,
44660702 3145 "type" : "string"
7aacca6f 3146 },
44660702
DM
3147 "policy_out" : {
3148 "description" : "Output policy.",
3149 "enum" : [
3150 "ACCEPT",
3151 "REJECT",
3152 "DROP"
3153 ],
7aacca6f 3154 "optional" : 1,
44660702
DM
3155 "type" : "string"
3156 }
3157 },
3158 "type" : "object"
3159 }
3160 },
3161 "PUT" : {
e9cd3bd4 3162 "allowtoken" : 1,
44660702
DM
3163 "description" : "Set Firewall options.",
3164 "method" : "PUT",
3165 "name" : "set_options",
3166 "parameters" : {
3167 "additionalProperties" : 0,
3168 "properties" : {
3169 "delete" : {
3170 "description" : "A list of settings you want to delete.",
3171 "format" : "pve-configid-list",
56122987 3172 "optional" : 1,
013dc89f
DM
3173 "type" : "string",
3174 "typetext" : "<string>"
56122987 3175 },
44660702
DM
3176 "digest" : {
3177 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
3178 "maxLength" : 40,
56122987 3179 "optional" : 1,
013dc89f
DM
3180 "type" : "string",
3181 "typetext" : "<string>"
56122987 3182 },
5da3d723
TL
3183 "ebtables" : {
3184 "default" : 1,
3185 "description" : "Enable ebtables rules cluster wide.",
3186 "optional" : 1,
3187 "type" : "boolean",
3188 "typetext" : "<boolean>"
3189 },
44660702
DM
3190 "enable" : {
3191 "description" : "Enable or disable the firewall cluster wide.",
7aacca6f 3192 "minimum" : 0,
56122987 3193 "optional" : 1,
4bd7df8b 3194 "type" : "integer",
013dc89f 3195 "typetext" : "<integer> (0 - N)"
56122987 3196 },
95895385
TL
3197 "log_ratelimit" : {
3198 "description" : "Log ratelimiting settings",
3199 "format" : {
3200 "burst" : {
3201 "default" : 5,
4772952b 3202 "description" : "Initial burst of packages which will always get logged before the rate is applied",
95895385
TL
3203 "minimum" : 0,
3204 "optional" : 1,
3205 "type" : "integer"
3206 },
3207 "enable" : {
3208 "default" : "1",
3209 "default_key" : 1,
3210 "description" : "Enable or disable log rate limiting",
3211 "type" : "boolean"
3212 },
3213 "rate" : {
3214 "default" : "1/second",
3215 "description" : "Frequency with which the burst bucket gets refilled",
3216 "format_description" : "rate",
3217 "optional" : 1,
3218 "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
3219 "type" : "string"
3220 }
3221 },
3222 "optional" : 1,
3223 "type" : "string",
3224 "typetext" : "[enable=]<1|0> [,burst=<integer>] [,rate=<rate>]"
3225 },
44660702
DM
3226 "policy_in" : {
3227 "description" : "Input policy.",
56122987 3228 "enum" : [
44660702
DM
3229 "ACCEPT",
3230 "REJECT",
3231 "DROP"
56122987 3232 ],
56122987 3233 "optional" : 1,
44660702 3234 "type" : "string"
56122987 3235 },
44660702
DM
3236 "policy_out" : {
3237 "description" : "Output policy.",
56122987 3238 "enum" : [
44660702
DM
3239 "ACCEPT",
3240 "REJECT",
3241 "DROP"
56122987 3242 ],
7aacca6f 3243 "optional" : 1,
44660702 3244 "type" : "string"
56122987 3245 }
44660702
DM
3246 }
3247 },
3248 "permissions" : {
3249 "check" : [
3250 "perm",
3251 "/",
3252 [
3253 "Sys.Modify"
3254 ]
3255 ]
7aacca6f
DM
3256 },
3257 "protected" : 1,
44660702
DM
3258 "returns" : {
3259 "type" : "null"
3260 }
3261 }
3262 },
3263 "leaf" : 1,
3264 "path" : "/cluster/firewall/options",
3265 "text" : "options"
3266 },
3267 {
3268 "info" : {
7aacca6f 3269 "GET" : {
e9cd3bd4 3270 "allowtoken" : 1,
44660702 3271 "description" : "List available macros",
7aacca6f 3272 "method" : "GET",
44660702
DM
3273 "name" : "get_macros",
3274 "parameters" : {
3275 "additionalProperties" : 0
7aacca6f 3276 },
44660702
DM
3277 "permissions" : {
3278 "user" : "all"
3279 },
3280 "returns" : {
3281 "items" : {
3282 "properties" : {
3283 "descr" : {
3284 "description" : "More verbose description (if available).",
3285 "type" : "string"
3286 },
3287 "macro" : {
3288 "description" : "Macro name.",
3289 "type" : "string"
3290 }
3291 },
3292 "type" : "object"
3293 },
3294 "type" : "array"
3295 }
3296 }
3297 },
3298 "leaf" : 1,
3299 "path" : "/cluster/firewall/macros",
3300 "text" : "macros"
3301 },
3302 {
3303 "info" : {
3304 "GET" : {
e9cd3bd4 3305 "allowtoken" : 1,
44660702
DM
3306 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
3307 "method" : "GET",
3308 "name" : "refs",
7aacca6f 3309 "parameters" : {
44660702 3310 "additionalProperties" : 0,
7aacca6f 3311 "properties" : {
44660702
DM
3312 "type" : {
3313 "description" : "Only list references of specified type.",
3314 "enum" : [
3315 "alias",
3316 "ipset"
3317 ],
3318 "optional" : 1,
3319 "type" : "string"
7aacca6f 3320 }
44660702 3321 }
7aacca6f
DM
3322 },
3323 "permissions" : {
3324 "check" : [
3325 "perm",
3326 "/",
3327 [
3328 "Sys.Audit"
3329 ]
3330 ]
3331 },
44660702
DM
3332 "returns" : {
3333 "items" : {
3334 "properties" : {
3335 "comment" : {
3336 "optional" : 1,
3337 "type" : "string"
3338 },
3339 "name" : {
3340 "type" : "string"
3341 },
3342 "ref" : {
3343 "type" : "string"
3344 },
3345 "type" : {
3346 "enum" : [
3347 "alias",
3348 "ipset"
3349 ],
3350 "type" : "string"
3351 }
3352 },
3353 "type" : "object"
3354 },
3355 "type" : "array"
3356 }
56122987
DM
3357 }
3358 },
7aacca6f 3359 "leaf" : 1,
44660702
DM
3360 "path" : "/cluster/firewall/refs",
3361 "text" : "refs"
56122987
DM
3362 }
3363 ],
56122987 3364 "info" : {
44660702 3365 "GET" : {
e9cd3bd4 3366 "allowtoken" : 1,
44660702
DM
3367 "description" : "Directory index.",
3368 "method" : "GET",
3369 "name" : "index",
56122987 3370 "parameters" : {
56122987
DM
3371 "additionalProperties" : 0
3372 },
44660702
DM
3373 "permissions" : {
3374 "user" : "all"
3375 },
56122987 3376 "returns" : {
44660702
DM
3377 "items" : {
3378 "properties" : {},
3379 "type" : "object"
3380 },
7aacca6f
DM
3381 "links" : [
3382 {
44660702
DM
3383 "href" : "{name}",
3384 "rel" : "child"
7aacca6f
DM
3385 }
3386 ],
7aacca6f 3387 "type" : "array"
7aacca6f 3388 }
56122987
DM
3389 }
3390 },
44660702
DM
3391 "leaf" : 0,
3392 "path" : "/cluster/firewall",
3393 "text" : "firewall"
7aacca6f
DM
3394 },
3395 {
56122987
DM
3396 "children" : [
3397 {
04d22a9f
TL
3398 "children" : [
3399 {
3400 "info" : {
3401 "GET" : {
3402 "allowtoken" : 1,
3403 "description" : "Returns included guests and the backup status of their disks. Optimized to be used in ExtJS tree views.",
3404 "method" : "GET",
3405 "name" : "get_volume_backup_included",
3406 "parameters" : {
3407 "additionalProperties" : 0,
3408 "properties" : {
3409 "id" : {
3410 "description" : "The job ID.",
3411 "maxLength" : 50,
3412 "type" : "string",
3413 "typetext" : "<string>"
3414 }
3415 }
3416 },
3417 "permissions" : {
3418 "check" : [
3419 "perm",
3420 "/",
3421 [
3422 "Sys.Audit"
3423 ]
3424 ]
3425 },
3426 "protected" : 1,
3427 "returns" : {
3428 "description" : "Root node of the tree object. Children represent guests, grandchildren represent volumes of that guest.",
3429 "properties" : {
3430 "children" : {
3431 "items" : {
3432 "properties" : {
3433 "children" : {
3434 "description" : "The volumes of the guest with the information if they will be included in backups.",
3435 "items" : {
3436 "properties" : {
3437 "id" : {
3438 "description" : "Configuration key of the volume.",
3439 "type" : "string"
3440 },
3441 "included" : {
3442 "description" : "Whether the volume is included in the backup or not.",
3443 "type" : "boolean"
3444 },
3445 "name" : {
3446 "description" : "Name of the volume.",
3447 "type" : "string"
3448 },
3449 "reason" : {
3450 "description" : "The reason why the volume is included (or excluded).",
3451 "type" : "string"
3452 }
3453 },
3454 "type" : "object"
3455 },
3456 "optional" : 1,
3457 "type" : "array"
3458 },
3459 "id" : {
3460 "description" : "VMID of the guest.",
3461 "type" : "integer"
3462 },
3463 "name" : {
3464 "description" : "Name of the guest",
3465 "optional" : 1,
3466 "type" : "string"
3467 },
3468 "type" : {
3469 "description" : "Type of the guest, VM, CT or unknown for removed but not purged guests.",
3470 "enum" : [
3471 "qemu",
3472 "lxc",
3473 "unknown"
3474 ],
3475 "type" : "string"
3476 }
3477 },
3478 "type" : "object"
3479 },
3480 "type" : "array"
3481 }
3482 },
3483 "type" : "object"
3484 }
3485 }
3486 },
3487 "leaf" : 1,
3488 "path" : "/cluster/backup/{id}/included_volumes",
3489 "text" : "included_volumes"
3490 }
3491 ],
56122987 3492 "info" : {
44660702 3493 "DELETE" : {
e9cd3bd4 3494 "allowtoken" : 1,
44660702
DM
3495 "description" : "Delete vzdump backup job definition.",
3496 "method" : "DELETE",
3497 "name" : "delete_job",
3498 "parameters" : {
3499 "additionalProperties" : 0,
3500 "properties" : {
3501 "id" : {
3502 "description" : "The job ID.",
3503 "maxLength" : 50,
013dc89f
DM
3504 "type" : "string",
3505 "typetext" : "<string>"
44660702
DM
3506 }
3507 }
3508 },
3509 "permissions" : {
3510 "check" : [
3511 "perm",
3512 "/",
3513 [
3514 "Sys.Modify"
3515 ]
3516 ]
3517 },
3518 "protected" : 1,
56122987
DM
3519 "returns" : {
3520 "type" : "null"
44660702
DM
3521 }
3522 },
3523 "GET" : {
e9cd3bd4 3524 "allowtoken" : 1,
44660702
DM
3525 "description" : "Read vzdump backup job definition.",
3526 "method" : "GET",
3527 "name" : "read_job",
3528 "parameters" : {
3529 "additionalProperties" : 0,
3530 "properties" : {
3531 "id" : {
3532 "description" : "The job ID.",
3533 "maxLength" : 50,
013dc89f
DM
3534 "type" : "string",
3535 "typetext" : "<string>"
44660702
DM
3536 }
3537 }
56122987 3538 },
7aacca6f
DM
3539 "permissions" : {
3540 "check" : [
3541 "perm",
3542 "/",
3543 [
44660702 3544 "Sys.Audit"
7aacca6f
DM
3545 ]
3546 ]
3547 },
44660702
DM
3548 "returns" : {
3549 "type" : "object"
3550 }
3551 },
3552 "PUT" : {
e9cd3bd4 3553 "allowtoken" : 1,
44660702
DM
3554 "description" : "Update vzdump backup job definition.",
3555 "method" : "PUT",
3556 "name" : "update_job",
56122987 3557 "parameters" : {
44660702 3558 "additionalProperties" : 0,
56122987 3559 "properties" : {
44660702
DM
3560 "all" : {
3561 "default" : 0,
3562 "description" : "Backup all known guest systems on this host.",
7aacca6f 3563 "optional" : 1,
013dc89f
DM
3564 "type" : "boolean",
3565 "typetext" : "<boolean>"
7aacca6f 3566 },
44660702
DM
3567 "bwlimit" : {
3568 "default" : 0,
4a407cfd 3569 "description" : "Limit I/O bandwidth (in KiB/s).",
44660702
DM
3570 "minimum" : 0,
3571 "optional" : 1,
4bd7df8b 3572 "type" : "integer",
013dc89f 3573 "typetext" : "<integer> (0 - N)"
44660702 3574 },
5370fa8c
TL
3575 "comment" : {
3576 "description" : "Description for the Job.",
3577 "maxLength" : 512,
3578 "optional" : 1,
3579 "type" : "string",
3580 "typetext" : "<string>"
3581 },
44660702
DM
3582 "compress" : {
3583 "default" : "0",
3584 "description" : "Compress dump file.",
7aacca6f 3585 "enum" : [
44660702
DM
3586 "0",
3587 "1",
3588 "gzip",
c5aa7e14
TL
3589 "lzo",
3590 "zstd"
7aacca6f 3591 ],
44660702
DM
3592 "optional" : 1,
3593 "type" : "string"
7aacca6f 3594 },
44660702
DM
3595 "delete" : {
3596 "description" : "A list of settings you want to delete.",
3597 "format" : "pve-configid-list",
7aacca6f 3598 "optional" : 1,
013dc89f
DM
3599 "type" : "string",
3600 "typetext" : "<string>"
56122987 3601 },
44660702
DM
3602 "dow" : {
3603 "description" : "Day of week selection.",
3604 "format" : "pve-day-of-week-list",
7aacca6f 3605 "optional" : 1,
5370fa8c 3606 "requires" : "starttime",
013dc89f
DM
3607 "type" : "string",
3608 "typetext" : "<string>"
56122987 3609 },
44660702
DM
3610 "dumpdir" : {
3611 "description" : "Store resulting files to specified directory.",
56122987 3612 "optional" : 1,
013dc89f
DM
3613 "type" : "string",
3614 "typetext" : "<string>"
56122987 3615 },
44660702
DM
3616 "enabled" : {
3617 "default" : "1",
3618 "description" : "Enable or disable the job.",
3619 "optional" : 1,
013dc89f
DM
3620 "type" : "boolean",
3621 "typetext" : "<boolean>"
44660702
DM
3622 },
3623 "exclude" : {
3624 "description" : "Exclude specified guest systems (assumes --all)",
3625 "format" : "pve-vmid-list",
3626 "optional" : 1,
013dc89f
DM
3627 "type" : "string",
3628 "typetext" : "<string>"
44660702
DM
3629 },
3630 "exclude-path" : {
d2656385 3631 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
4a407cfd
TL
3632 "items" : {
3633 "type" : "string"
3634 },
44660702 3635 "optional" : 1,
4a407cfd
TL
3636 "type" : "array",
3637 "typetext" : "<array>"
44660702
DM
3638 },
3639 "id" : {
3640 "description" : "The job ID.",
3641 "maxLength" : 50,
013dc89f
DM
3642 "type" : "string",
3643 "typetext" : "<string>"
44660702
DM
3644 },
3645 "ionice" : {
3646 "default" : 7,
159464a9 3647 "description" : "Set IO priority when using the BFQ scheduler. For snapshot and suspend mode backups of VMs, this only affects the compressor. A value of 8 means the idle priority is used, otherwise the best-effort priority is used with the specified value.",
44660702
DM
3648 "maximum" : 8,
3649 "minimum" : 0,
3650 "optional" : 1,
4bd7df8b 3651 "type" : "integer",
013dc89f 3652 "typetext" : "<integer> (0 - 8)"
44660702
DM
3653 },
3654 "lockwait" : {
3655 "default" : 180,
3656 "description" : "Maximal time to wait for the global lock (minutes).",
3657 "minimum" : 0,
3658 "optional" : 1,
4bd7df8b 3659 "type" : "integer",
013dc89f 3660 "typetext" : "<integer> (0 - N)"
44660702
DM
3661 },
3662 "mailnotification" : {
3663 "default" : "always",
3664 "description" : "Specify when to send an email",
56122987 3665 "enum" : [
44660702
DM
3666 "always",
3667 "failure"
56122987 3668 ],
44660702
DM
3669 "optional" : 1,
3670 "type" : "string"
3671 },
3672 "mailto" : {
d2656385
TL
3673 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
3674 "format" : "email-or-username-list",
44660702 3675 "optional" : 1,
013dc89f
DM
3676 "type" : "string",
3677 "typetext" : "<string>"
44660702
DM
3678 },
3679 "maxfiles" : {
0695fdaf 3680 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
44660702
DM
3681 "minimum" : 1,
3682 "optional" : 1,
4bd7df8b 3683 "type" : "integer",
013dc89f 3684 "typetext" : "<integer> (1 - N)"
44660702
DM
3685 },
3686 "mode" : {
3687 "default" : "snapshot",
3688 "description" : "Backup mode.",
3689 "enum" : [
3690 "snapshot",
3691 "suspend",
3692 "stop"
3693 ],
3694 "optional" : 1,
3695 "type" : "string"
3696 },
3697 "node" : {
3698 "description" : "Only run if executed on this node.",
3699 "format" : "pve-node",
3700 "optional" : 1,
013dc89f
DM
3701 "type" : "string",
3702 "typetext" : "<string>"
44660702 3703 },
7af2edf9 3704 "notes-template" : {
4e7f60c2
TL
3705 "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future. Needs to be a single line, newline and backslash need to be escaped as '\\n' and '\\\\' respectively.",
3706 "maxLength" : 1024,
7af2edf9
TL
3707 "optional" : 1,
3708 "requires" : "storage",
3709 "type" : "string",
3710 "typetext" : "<string>"
3711 },
4e7f60c2
TL
3712 "performance" : {
3713 "description" : "Other performance-related settings.",
3714 "format" : "backup-performance",
3715 "optional" : 1,
3716 "type" : "string",
3717 "typetext" : "[max-workers=<integer>]"
3718 },
44660702
DM
3719 "pigz" : {
3720 "default" : 0,
3721 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
3722 "optional" : 1,
013dc89f
DM
3723 "type" : "integer",
3724 "typetext" : "<integer>"
44660702 3725 },
9226ccbc
TL
3726 "pool" : {
3727 "description" : "Backup all known guest systems included in the specified pool.",
3728 "optional" : 1,
3729 "type" : "string",
3730 "typetext" : "<string>"
3731 },
7af2edf9
TL
3732 "protected" : {
3733 "description" : "If true, mark backup(s) as protected.",
3734 "optional" : 1,
3735 "requires" : "storage",
3736 "type" : "boolean",
3737 "typetext" : "<boolean>"
3738 },
739d4d64 3739 "prune-backups" : {
0695fdaf 3740 "default" : "keep-all=1",
739d4d64
TL
3741 "description" : "Use these retention options instead of those from the storage configuration.",
3742 "format" : "prune-backups",
3743 "optional" : 1,
3744 "type" : "string",
4772952b 3745 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 3746 },
44660702
DM
3747 "quiet" : {
3748 "default" : 0,
3749 "description" : "Be quiet.",
3750 "optional" : 1,
013dc89f
DM
3751 "type" : "boolean",
3752 "typetext" : "<boolean>"
44660702
DM
3753 },
3754 "remove" : {
3755 "default" : 1,
0695fdaf 3756 "description" : "Prune older backups according to 'prune-backups'.",
44660702 3757 "optional" : 1,
013dc89f
DM
3758 "type" : "boolean",
3759 "typetext" : "<boolean>"
44660702 3760 },
de786b48
TL
3761 "repeat-missed" : {
3762 "default" : 0,
3763 "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
3764 "optional" : 1,
3765 "type" : "boolean",
3766 "typetext" : "<boolean>"
3767 },
5370fa8c
TL
3768 "schedule" : {
3769 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
3770 "format" : "pve-calendar-event",
3771 "maxLength" : 128,
3772 "optional" : 1,
3773 "type" : "string",
3774 "typetext" : "<string>"
3775 },
44660702
DM
3776 "script" : {
3777 "description" : "Use specified hook script.",
3778 "optional" : 1,
013dc89f
DM
3779 "type" : "string",
3780 "typetext" : "<string>"
44660702 3781 },
44660702
DM
3782 "starttime" : {
3783 "description" : "Job Start time.",
5370fa8c 3784 "optional" : 1,
44660702 3785 "pattern" : "\\d{1,2}:\\d{1,2}",
56122987 3786 "type" : "string",
44660702 3787 "typetext" : "HH:MM"
7aacca6f 3788 },
44660702
DM
3789 "stdexcludes" : {
3790 "default" : 1,
3791 "description" : "Exclude temporary files and logs.",
3792 "optional" : 1,
013dc89f
DM
3793 "type" : "boolean",
3794 "typetext" : "<boolean>"
44660702
DM
3795 },
3796 "stop" : {
3797 "default" : 0,
1e3f8156 3798 "description" : "Stop running backup jobs on this host.",
44660702 3799 "optional" : 1,
013dc89f
DM
3800 "type" : "boolean",
3801 "typetext" : "<boolean>"
44660702
DM
3802 },
3803 "stopwait" : {
3804 "default" : 10,
3805 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
3806 "minimum" : 0,
3807 "optional" : 1,
4bd7df8b 3808 "type" : "integer",
013dc89f 3809 "typetext" : "<integer> (0 - N)"
44660702
DM
3810 },
3811 "storage" : {
3812 "description" : "Store resulting file to this storage.",
3813 "format" : "pve-storage-id",
3814 "optional" : 1,
013dc89f
DM
3815 "type" : "string",
3816 "typetext" : "<string>"
56122987 3817 },
44660702
DM
3818 "tmpdir" : {
3819 "description" : "Store temporary files to specified directory.",
3820 "optional" : 1,
013dc89f
DM
3821 "type" : "string",
3822 "typetext" : "<string>"
44660702
DM
3823 },
3824 "vmid" : {
3825 "description" : "The ID of the guest system you want to backup.",
3826 "format" : "pve-vmid-list",
3827 "optional" : 1,
013dc89f
DM
3828 "type" : "string",
3829 "typetext" : "<string>"
c5aa7e14
TL
3830 },
3831 "zstd" : {
3832 "default" : 1,
3833 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
3834 "optional" : 1,
3835 "type" : "integer",
3836 "typetext" : "<integer>"
56122987 3837 }
44660702 3838 }
56122987
DM
3839 },
3840 "permissions" : {
3841 "check" : [
3842 "perm",
3843 "/",
3844 [
44660702 3845 "Sys.Modify"
56122987 3846 ]
04d22a9f
TL
3847 ],
3848 "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
56122987 3849 },
44660702
DM
3850 "protected" : 1,
3851 "returns" : {
3852 "type" : "null"
7aacca6f 3853 }
56122987
DM
3854 }
3855 },
04d22a9f 3856 "leaf" : 0,
44660702
DM
3857 "path" : "/cluster/backup/{id}",
3858 "text" : "{id}"
3859 }
3860 ],
3861 "info" : {
3862 "GET" : {
e9cd3bd4 3863 "allowtoken" : 1,
44660702
DM
3864 "description" : "List vzdump backup schedule.",
3865 "method" : "GET",
3866 "name" : "index",
3867 "parameters" : {
3868 "additionalProperties" : 0
3869 },
3870 "permissions" : {
3871 "check" : [
3872 "perm",
3873 "/",
3874 [
3875 "Sys.Audit"
3876 ]
3877 ]
3878 },
3879 "returns" : {
3880 "items" : {
3881 "properties" : {
3882 "id" : {
1c532546
TL
3883 "description" : "The job ID.",
3884 "maxLength" : 50,
44660702
DM
3885 "type" : "string"
3886 }
3887 },
3888 "type" : "object"
3889 },
3890 "links" : [
3891 {
3892 "href" : "{id}",
3893 "rel" : "child"
3894 }
3895 ],
3896 "type" : "array"
3897 }
3898 },
3899 "POST" : {
e9cd3bd4 3900 "allowtoken" : 1,
44660702
DM
3901 "description" : "Create new vzdump backup job.",
3902 "method" : "POST",
3903 "name" : "create_job",
3904 "parameters" : {
3905 "additionalProperties" : 0,
3906 "properties" : {
3907 "all" : {
3908 "default" : 0,
3909 "description" : "Backup all known guest systems on this host.",
3910 "optional" : 1,
013dc89f
DM
3911 "type" : "boolean",
3912 "typetext" : "<boolean>"
44660702
DM
3913 },
3914 "bwlimit" : {
3915 "default" : 0,
4a407cfd 3916 "description" : "Limit I/O bandwidth (in KiB/s).",
44660702
DM
3917 "minimum" : 0,
3918 "optional" : 1,
4bd7df8b 3919 "type" : "integer",
013dc89f 3920 "typetext" : "<integer> (0 - N)"
44660702 3921 },
5370fa8c
TL
3922 "comment" : {
3923 "description" : "Description for the Job.",
3924 "maxLength" : 512,
3925 "optional" : 1,
3926 "type" : "string",
3927 "typetext" : "<string>"
3928 },
44660702
DM
3929 "compress" : {
3930 "default" : "0",
3931 "description" : "Compress dump file.",
3932 "enum" : [
3933 "0",
3934 "1",
3935 "gzip",
c5aa7e14
TL
3936 "lzo",
3937 "zstd"
44660702
DM
3938 ],
3939 "optional" : 1,
3940 "type" : "string"
3941 },
3942 "dow" : {
3943 "default" : "mon,tue,wed,thu,fri,sat,sun",
3944 "description" : "Day of week selection.",
3945 "format" : "pve-day-of-week-list",
3946 "optional" : 1,
5370fa8c 3947 "requires" : "starttime",
013dc89f
DM
3948 "type" : "string",
3949 "typetext" : "<string>"
44660702
DM
3950 },
3951 "dumpdir" : {
3952 "description" : "Store resulting files to specified directory.",
3953 "optional" : 1,
013dc89f
DM
3954 "type" : "string",
3955 "typetext" : "<string>"
44660702
DM
3956 },
3957 "enabled" : {
3958 "default" : "1",
3959 "description" : "Enable or disable the job.",
3960 "optional" : 1,
013dc89f
DM
3961 "type" : "boolean",
3962 "typetext" : "<boolean>"
44660702
DM
3963 },
3964 "exclude" : {
3965 "description" : "Exclude specified guest systems (assumes --all)",
3966 "format" : "pve-vmid-list",
3967 "optional" : 1,
013dc89f
DM
3968 "type" : "string",
3969 "typetext" : "<string>"
44660702
DM
3970 },
3971 "exclude-path" : {
d2656385 3972 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
4a407cfd
TL
3973 "items" : {
3974 "type" : "string"
3975 },
44660702 3976 "optional" : 1,
4a407cfd
TL
3977 "type" : "array",
3978 "typetext" : "<array>"
44660702 3979 },
5370fa8c
TL
3980 "id" : {
3981 "description" : "Job ID (will be autogenerated).",
3982 "format" : "pve-configid",
3983 "optional" : 1,
3984 "type" : "string",
3985 "typetext" : "<string>"
3986 },
44660702
DM
3987 "ionice" : {
3988 "default" : 7,
159464a9 3989 "description" : "Set IO priority when using the BFQ scheduler. For snapshot and suspend mode backups of VMs, this only affects the compressor. A value of 8 means the idle priority is used, otherwise the best-effort priority is used with the specified value.",
44660702
DM
3990 "maximum" : 8,
3991 "minimum" : 0,
3992 "optional" : 1,
4bd7df8b 3993 "type" : "integer",
013dc89f 3994 "typetext" : "<integer> (0 - 8)"
44660702
DM
3995 },
3996 "lockwait" : {
3997 "default" : 180,
3998 "description" : "Maximal time to wait for the global lock (minutes).",
3999 "minimum" : 0,
4000 "optional" : 1,
4bd7df8b 4001 "type" : "integer",
013dc89f 4002 "typetext" : "<integer> (0 - N)"
44660702
DM
4003 },
4004 "mailnotification" : {
4005 "default" : "always",
4006 "description" : "Specify when to send an email",
4007 "enum" : [
4008 "always",
4009 "failure"
4010 ],
4011 "optional" : 1,
4012 "type" : "string"
4013 },
4014 "mailto" : {
d2656385
TL
4015 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
4016 "format" : "email-or-username-list",
44660702 4017 "optional" : 1,
013dc89f
DM
4018 "type" : "string",
4019 "typetext" : "<string>"
44660702
DM
4020 },
4021 "maxfiles" : {
0695fdaf 4022 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
44660702
DM
4023 "minimum" : 1,
4024 "optional" : 1,
4bd7df8b 4025 "type" : "integer",
013dc89f 4026 "typetext" : "<integer> (1 - N)"
44660702
DM
4027 },
4028 "mode" : {
4029 "default" : "snapshot",
4030 "description" : "Backup mode.",
4031 "enum" : [
4032 "snapshot",
4033 "suspend",
4034 "stop"
4035 ],
4036 "optional" : 1,
4037 "type" : "string"
4038 },
4039 "node" : {
4040 "description" : "Only run if executed on this node.",
4041 "format" : "pve-node",
4042 "optional" : 1,
013dc89f
DM
4043 "type" : "string",
4044 "typetext" : "<string>"
44660702 4045 },
7af2edf9 4046 "notes-template" : {
4e7f60c2
TL
4047 "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future. Needs to be a single line, newline and backslash need to be escaped as '\\n' and '\\\\' respectively.",
4048 "maxLength" : 1024,
7af2edf9
TL
4049 "optional" : 1,
4050 "requires" : "storage",
4051 "type" : "string",
4052 "typetext" : "<string>"
4053 },
4e7f60c2
TL
4054 "performance" : {
4055 "description" : "Other performance-related settings.",
4056 "format" : "backup-performance",
4057 "optional" : 1,
4058 "type" : "string",
4059 "typetext" : "[max-workers=<integer>]"
4060 },
44660702
DM
4061 "pigz" : {
4062 "default" : 0,
4063 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
4064 "optional" : 1,
013dc89f
DM
4065 "type" : "integer",
4066 "typetext" : "<integer>"
44660702 4067 },
9226ccbc
TL
4068 "pool" : {
4069 "description" : "Backup all known guest systems included in the specified pool.",
4070 "optional" : 1,
4071 "type" : "string",
4072 "typetext" : "<string>"
4073 },
7af2edf9
TL
4074 "protected" : {
4075 "description" : "If true, mark backup(s) as protected.",
4076 "optional" : 1,
4077 "requires" : "storage",
4078 "type" : "boolean",
4079 "typetext" : "<boolean>"
4080 },
739d4d64 4081 "prune-backups" : {
0695fdaf 4082 "default" : "keep-all=1",
739d4d64
TL
4083 "description" : "Use these retention options instead of those from the storage configuration.",
4084 "format" : "prune-backups",
4085 "optional" : 1,
4086 "type" : "string",
4772952b 4087 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 4088 },
44660702
DM
4089 "quiet" : {
4090 "default" : 0,
4091 "description" : "Be quiet.",
4092 "optional" : 1,
013dc89f
DM
4093 "type" : "boolean",
4094 "typetext" : "<boolean>"
44660702
DM
4095 },
4096 "remove" : {
4097 "default" : 1,
0695fdaf 4098 "description" : "Prune older backups according to 'prune-backups'.",
44660702 4099 "optional" : 1,
013dc89f
DM
4100 "type" : "boolean",
4101 "typetext" : "<boolean>"
44660702 4102 },
de786b48
TL
4103 "repeat-missed" : {
4104 "default" : 0,
4105 "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
4106 "optional" : 1,
4107 "type" : "boolean",
4108 "typetext" : "<boolean>"
4109 },
5370fa8c
TL
4110 "schedule" : {
4111 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
4112 "format" : "pve-calendar-event",
4113 "maxLength" : 128,
4114 "optional" : 1,
4115 "type" : "string",
4116 "typetext" : "<string>"
4117 },
44660702
DM
4118 "script" : {
4119 "description" : "Use specified hook script.",
4120 "optional" : 1,
013dc89f
DM
4121 "type" : "string",
4122 "typetext" : "<string>"
44660702 4123 },
44660702
DM
4124 "starttime" : {
4125 "description" : "Job Start time.",
5370fa8c 4126 "optional" : 1,
44660702
DM
4127 "pattern" : "\\d{1,2}:\\d{1,2}",
4128 "type" : "string",
4129 "typetext" : "HH:MM"
4130 },
4131 "stdexcludes" : {
4132 "default" : 1,
4133 "description" : "Exclude temporary files and logs.",
4134 "optional" : 1,
013dc89f
DM
4135 "type" : "boolean",
4136 "typetext" : "<boolean>"
44660702
DM
4137 },
4138 "stop" : {
4139 "default" : 0,
1e3f8156 4140 "description" : "Stop running backup jobs on this host.",
44660702 4141 "optional" : 1,
013dc89f
DM
4142 "type" : "boolean",
4143 "typetext" : "<boolean>"
44660702
DM
4144 },
4145 "stopwait" : {
4146 "default" : 10,
4147 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
4148 "minimum" : 0,
4149 "optional" : 1,
4bd7df8b 4150 "type" : "integer",
013dc89f 4151 "typetext" : "<integer> (0 - N)"
44660702
DM
4152 },
4153 "storage" : {
4154 "description" : "Store resulting file to this storage.",
4155 "format" : "pve-storage-id",
4156 "optional" : 1,
013dc89f
DM
4157 "type" : "string",
4158 "typetext" : "<string>"
44660702
DM
4159 },
4160 "tmpdir" : {
4161 "description" : "Store temporary files to specified directory.",
4162 "optional" : 1,
013dc89f
DM
4163 "type" : "string",
4164 "typetext" : "<string>"
44660702
DM
4165 },
4166 "vmid" : {
4167 "description" : "The ID of the guest system you want to backup.",
4168 "format" : "pve-vmid-list",
4169 "optional" : 1,
013dc89f
DM
4170 "type" : "string",
4171 "typetext" : "<string>"
c5aa7e14
TL
4172 },
4173 "zstd" : {
4174 "default" : 1,
4175 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
4176 "optional" : 1,
4177 "type" : "integer",
4178 "typetext" : "<integer>"
44660702
DM
4179 }
4180 }
4181 },
4182 "permissions" : {
4183 "check" : [
4184 "perm",
4185 "/",
4186 [
4187 "Sys.Modify"
4188 ]
de0983cb
DM
4189 ],
4190 "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
44660702
DM
4191 },
4192 "protected" : 1,
4193 "returns" : {
4194 "type" : "null"
4195 }
4196 }
4197 },
4198 "leaf" : 0,
4199 "path" : "/cluster/backup",
4200 "text" : "backup"
4201 },
04d22a9f
TL
4202 {
4203 "children" : [
4204 {
4205 "info" : {
4206 "GET" : {
4207 "allowtoken" : 1,
4208 "description" : "Shows all guests which are not covered by any backup job.",
4209 "method" : "GET",
4210 "name" : "get_guests_not_in_backup",
4211 "parameters" : {
4212 "additionalProperties" : 0
4213 },
4214 "permissions" : {
4215 "check" : [
4216 "perm",
4217 "/",
4218 [
4219 "Sys.Audit"
4220 ]
4221 ]
4222 },
4223 "protected" : 1,
4224 "returns" : {
4225 "description" : "Contains the guest objects.",
4226 "items" : {
4227 "properties" : {
4228 "name" : {
4229 "description" : "Name of the guest",
4230 "optional" : 1,
4231 "type" : "string"
4232 },
4233 "type" : {
4234 "description" : "Type of the guest.",
4235 "enum" : [
4236 "qemu",
4237 "lxc"
4238 ],
4239 "type" : "string"
4240 },
4241 "vmid" : {
4242 "description" : "VMID of the guest.",
4243 "type" : "integer"
4244 }
4245 },
4246 "type" : "object"
4247 },
4248 "type" : "array"
4249 }
4250 }
4251 },
4252 "leaf" : 1,
34f3e481
TL
4253 "path" : "/cluster/backup-info/not-backed-up",
4254 "text" : "not-backed-up"
04d22a9f
TL
4255 }
4256 ],
4257 "info" : {
4258 "GET" : {
4259 "allowtoken" : 1,
34f3e481 4260 "description" : "Index for backup info related endpoints",
04d22a9f 4261 "method" : "GET",
34f3e481 4262 "name" : "index",
04d22a9f
TL
4263 "parameters" : {
4264 "additionalProperties" : 0
4265 },
04d22a9f 4266 "returns" : {
34f3e481
TL
4267 "description" : "Directory index.",
4268 "items" : {
4269 "properties" : {
4270 "subdir" : {
4271 "description" : "API sub-directory endpoint",
4272 "type" : "string"
4273 }
4274 },
4275 "type" : "object"
4276 },
4277 "links" : [
4278 {
4279 "href" : "{subdir}",
4280 "rel" : "child"
4281 }
4282 ],
4283 "type" : "array"
04d22a9f
TL
4284 }
4285 }
4286 },
4287 "leaf" : 0,
34f3e481
TL
4288 "path" : "/cluster/backup-info",
4289 "text" : "backup-info"
04d22a9f 4290 },
44660702
DM
4291 {
4292 "children" : [
4293 {
4294 "children" : [
4295 {
4296 "children" : [
56122987 4297 {
56122987
DM
4298 "info" : {
4299 "POST" : {
e9cd3bd4 4300 "allowtoken" : 1,
44660702
DM
4301 "description" : "Request resource migration (online) to another node.",
4302 "method" : "POST",
4303 "name" : "migrate",
56122987 4304 "parameters" : {
7aacca6f 4305 "additionalProperties" : 0,
56122987
DM
4306 "properties" : {
4307 "node" : {
95895385 4308 "description" : "Target node.",
44660702 4309 "format" : "pve-node",
013dc89f
DM
4310 "type" : "string",
4311 "typetext" : "<string>"
56122987
DM
4312 },
4313 "sid" : {
44660702 4314 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
56122987 4315 "format" : "pve-ha-resource-or-vm-id",
7aacca6f 4316 "type" : "string",
44660702 4317 "typetext" : "<type>:<name>"
56122987 4318 }
7aacca6f 4319 }
56122987 4320 },
56122987
DM
4321 "permissions" : {
4322 "check" : [
4323 "perm",
4324 "/",
4325 [
4326 "Sys.Console"
4327 ]
4328 ]
4329 },
7aacca6f 4330 "protected" : 1,
7aacca6f
DM
4331 "returns" : {
4332 "type" : "null"
44660702 4333 }
56122987 4334 }
44660702
DM
4335 },
4336 "leaf" : 1,
4337 "path" : "/cluster/ha/resources/{sid}/migrate",
4338 "text" : "migrate"
4339 },
4340 {
4341 "info" : {
4342 "POST" : {
e9cd3bd4 4343 "allowtoken" : 1,
44660702
DM
4344 "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.",
4345 "method" : "POST",
4346 "name" : "relocate",
4347 "parameters" : {
4348 "additionalProperties" : 0,
4349 "properties" : {
4350 "node" : {
95895385 4351 "description" : "Target node.",
44660702 4352 "format" : "pve-node",
013dc89f
DM
4353 "type" : "string",
4354 "typetext" : "<string>"
44660702
DM
4355 },
4356 "sid" : {
4357 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
4358 "format" : "pve-ha-resource-or-vm-id",
4359 "type" : "string",
4360 "typetext" : "<type>:<name>"
4361 }
4362 }
4363 },
4364 "permissions" : {
4365 "check" : [
4366 "perm",
4367 "/",
4368 [
4369 "Sys.Console"
4370 ]
4371 ]
4372 },
4373 "protected" : 1,
4374 "returns" : {
4375 "type" : "null"
4376 }
4377 }
4378 },
4379 "leaf" : 1,
4380 "path" : "/cluster/ha/resources/{sid}/relocate",
4381 "text" : "relocate"
4382 }
4383 ],
4384 "info" : {
4385 "DELETE" : {
e9cd3bd4 4386 "allowtoken" : 1,
44660702
DM
4387 "description" : "Delete resource configuration.",
4388 "method" : "DELETE",
4389 "name" : "delete",
7aacca6f 4390 "parameters" : {
44660702 4391 "additionalProperties" : 0,
7aacca6f
DM
4392 "properties" : {
4393 "sid" : {
4394 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
44660702 4395 "format" : "pve-ha-resource-or-vm-id",
7aacca6f 4396 "type" : "string",
44660702
DM
4397 "typetext" : "<type>:<name>"
4398 }
4399 }
4400 },
4401 "permissions" : {
4402 "check" : [
4403 "perm",
4404 "/",
4405 [
4406 "Sys.Console"
4407 ]
4408 ]
4409 },
4410 "protected" : 1,
4411 "returns" : {
4412 "type" : "null"
4413 }
4414 },
4415 "GET" : {
e9cd3bd4 4416 "allowtoken" : 1,
44660702
DM
4417 "description" : "Read resource configuration.",
4418 "method" : "GET",
4419 "name" : "read",
4420 "parameters" : {
4421 "additionalProperties" : 0,
4422 "properties" : {
4423 "sid" : {
4424 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
7aacca6f 4425 "format" : "pve-ha-resource-or-vm-id",
44660702 4426 "type" : "string",
7aacca6f
DM
4427 "typetext" : "<type>:<name>"
4428 }
44660702 4429 }
7aacca6f
DM
4430 },
4431 "permissions" : {
4432 "check" : [
4433 "perm",
4434 "/",
4435 [
4436 "Sys.Audit"
4437 ]
4438 ]
4439 },
5f26e15b
TL
4440 "returns" : {
4441 "properties" : {
4442 "comment" : {
4443 "description" : "Description.",
4444 "optional" : 1,
4445 "type" : "string"
4446 },
4447 "digest" : {
4448 "description" : "Can be used to prevent concurrent modifications.",
4449 "type" : "string"
4450 },
4451 "group" : {
4452 "description" : "The HA group identifier.",
4453 "format" : "pve-configid",
4454 "optional" : 1,
4455 "type" : "string"
4456 },
4457 "max_relocate" : {
4458 "description" : "Maximal number of service relocate tries when a service failes to start.",
4459 "optional" : 1,
4460 "type" : "integer"
4461 },
4462 "max_restart" : {
4463 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4464 "optional" : 1,
4465 "type" : "integer"
4466 },
4467 "sid" : {
4468 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
4469 "format" : "pve-ha-resource-or-vm-id",
4470 "type" : "string",
4471 "typetext" : "<type>:<name>"
4472 },
4473 "state" : {
4474 "description" : "Requested resource state.",
4475 "enum" : [
4476 "started",
4477 "stopped",
4478 "enabled",
4479 "disabled",
4480 "ignored"
4481 ],
4482 "optional" : 1,
4483 "type" : "string"
4484 },
4485 "type" : {
4486 "description" : "The type of the resources.",
4487 "type" : "string"
4488 }
4489 },
4490 "type" : "object"
4491 }
7aacca6f 4492 },
56122987 4493 "PUT" : {
e9cd3bd4 4494 "allowtoken" : 1,
44660702 4495 "description" : "Update resource configuration.",
7aacca6f 4496 "method" : "PUT",
44660702 4497 "name" : "update",
56122987
DM
4498 "parameters" : {
4499 "additionalProperties" : 0,
4500 "properties" : {
44660702
DM
4501 "comment" : {
4502 "description" : "Description.",
4503 "maxLength" : 4096,
56122987 4504 "optional" : 1,
013dc89f
DM
4505 "type" : "string",
4506 "typetext" : "<string>"
56122987 4507 },
7aacca6f
DM
4508 "delete" : {
4509 "description" : "A list of settings you want to delete.",
7aacca6f 4510 "format" : "pve-configid-list",
44660702
DM
4511 "maxLength" : 4096,
4512 "optional" : 1,
013dc89f
DM
4513 "type" : "string",
4514 "typetext" : "<string>"
56122987 4515 },
44660702
DM
4516 "digest" : {
4517 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
4518 "maxLength" : 40,
4519 "optional" : 1,
013dc89f
DM
4520 "type" : "string",
4521 "typetext" : "<string>"
56122987 4522 },
44660702
DM
4523 "group" : {
4524 "description" : "The HA group identifier.",
4525 "format" : "pve-configid",
7aacca6f 4526 "optional" : 1,
013dc89f
DM
4527 "type" : "string",
4528 "typetext" : "<string>"
56122987
DM
4529 },
4530 "max_relocate" : {
7aacca6f 4531 "default" : 1,
56122987 4532 "description" : "Maximal number of service relocate tries when a service failes to start.",
44660702
DM
4533 "minimum" : 0,
4534 "optional" : 1,
4bd7df8b 4535 "type" : "integer",
013dc89f 4536 "typetext" : "<integer> (0 - N)"
7aacca6f 4537 },
44660702
DM
4538 "max_restart" : {
4539 "default" : 1,
4540 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4541 "minimum" : 0,
7aacca6f 4542 "optional" : 1,
4bd7df8b 4543 "type" : "integer",
013dc89f 4544 "typetext" : "<integer> (0 - N)"
44660702
DM
4545 },
4546 "sid" : {
4547 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
4548 "format" : "pve-ha-resource-or-vm-id",
4549 "type" : "string",
4550 "typetext" : "<type>:<name>"
7aacca6f
DM
4551 },
4552 "state" : {
f13c1238
DM
4553 "default" : "started",
4554 "description" : "Requested resource state.",
7aacca6f 4555 "enum" : [
f13c1238
DM
4556 "started",
4557 "stopped",
7aacca6f 4558 "enabled",
2489d6df
WB
4559 "disabled",
4560 "ignored"
7aacca6f 4561 ],
7aacca6f 4562 "optional" : 1,
f13c1238 4563 "type" : "string",
2489d6df 4564 "verbose_description" : "Requested resource state. The CRM reads this state and acts accordingly.\nPlease note that `enabled` is just an alias for `started`.\n\n`started`;;\n\nThe CRM tries to start the resource. Service state is\nset to `started` after successful start. On node failures, or when start\nfails, it tries to recover the resource. If everything fails, service\nstate it set to `error`.\n\n`stopped`;;\n\nThe CRM tries to keep the resource in `stopped` state, but it\nstill tries to relocate the resources on node failures.\n\n`disabled`;;\n\nThe CRM tries to put the resource in `stopped` state, but does not try\nto relocate the resources on node failures. The main purpose of this\nstate is error recovery, because it is the only way to move a resource out\nof the `error` state.\n\n`ignored`;;\n\nThe resource gets removed from the manager status and so the CRM and the LRM do\nnot touch the resource anymore. All {pve} API calls affecting this resource\nwill be executed, directly bypassing the HA stack. CRM commands will be thrown\naway while there source is in this state. The resource will not get relocated\non node failures.\n\n"
56122987 4565 }
44660702
DM
4566 },
4567 "type" : "object"
56122987 4568 },
56122987
DM
4569 "permissions" : {
4570 "check" : [
4571 "perm",
4572 "/",
4573 [
4574 "Sys.Console"
4575 ]
4576 ]
4577 },
7aacca6f 4578 "protected" : 1,
56122987
DM
4579 "returns" : {
4580 "type" : "null"
4581 }
4582 }
4583 },
44660702 4584 "leaf" : 0,
7aacca6f 4585 "path" : "/cluster/ha/resources/{sid}",
44660702 4586 "text" : "{sid}"
56122987
DM
4587 }
4588 ],
7aacca6f
DM
4589 "info" : {
4590 "GET" : {
e9cd3bd4 4591 "allowtoken" : 1,
44660702
DM
4592 "description" : "List HA resources.",
4593 "method" : "GET",
4594 "name" : "index",
7aacca6f 4595 "parameters" : {
44660702
DM
4596 "additionalProperties" : 0,
4597 "properties" : {
4598 "type" : {
4599 "description" : "Only list resources of specific type",
4600 "enum" : [
4601 "ct",
4602 "vm"
4603 ],
4604 "optional" : 1,
4605 "type" : "string"
4606 }
4607 }
7aacca6f 4608 },
7aacca6f
DM
4609 "permissions" : {
4610 "check" : [
4611 "perm",
4612 "/",
4613 [
4614 "Sys.Audit"
4615 ]
4616 ]
4617 },
7aacca6f 4618 "returns" : {
7aacca6f 4619 "items" : {
7aacca6f 4620 "properties" : {
44660702 4621 "sid" : {
7aacca6f
DM
4622 "type" : "string"
4623 }
44660702
DM
4624 },
4625 "type" : "object"
7aacca6f
DM
4626 },
4627 "links" : [
4628 {
44660702 4629 "href" : "{sid}",
7aacca6f
DM
4630 "rel" : "child"
4631 }
44660702
DM
4632 ],
4633 "type" : "array"
7aacca6f
DM
4634 }
4635 },
4636 "POST" : {
e9cd3bd4 4637 "allowtoken" : 1,
44660702 4638 "description" : "Create a new HA resource.",
7aacca6f 4639 "method" : "POST",
44660702 4640 "name" : "create",
7aacca6f 4641 "parameters" : {
44660702 4642 "additionalProperties" : 0,
7aacca6f
DM
4643 "properties" : {
4644 "comment" : {
7aacca6f 4645 "description" : "Description.",
44660702 4646 "maxLength" : 4096,
7aacca6f 4647 "optional" : 1,
013dc89f
DM
4648 "type" : "string",
4649 "typetext" : "<string>"
7aacca6f 4650 },
44660702
DM
4651 "group" : {
4652 "description" : "The HA group identifier.",
4653 "format" : "pve-configid",
7aacca6f 4654 "optional" : 1,
013dc89f
DM
4655 "type" : "string",
4656 "typetext" : "<string>"
7aacca6f 4657 },
44660702
DM
4658 "max_relocate" : {
4659 "default" : 1,
4660 "description" : "Maximal number of service relocate tries when a service failes to start.",
4661 "minimum" : 0,
7aacca6f 4662 "optional" : 1,
4bd7df8b 4663 "type" : "integer",
013dc89f 4664 "typetext" : "<integer> (0 - N)"
7aacca6f 4665 },
44660702
DM
4666 "max_restart" : {
4667 "default" : 1,
4668 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4669 "minimum" : 0,
4670 "optional" : 1,
4bd7df8b 4671 "type" : "integer",
013dc89f 4672 "typetext" : "<integer> (0 - N)"
44660702
DM
4673 },
4674 "sid" : {
4675 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
4676 "format" : "pve-ha-resource-or-vm-id",
4677 "type" : "string",
4678 "typetext" : "<type>:<name>"
4679 },
4680 "state" : {
f13c1238
DM
4681 "default" : "started",
4682 "description" : "Requested resource state.",
7aacca6f 4683 "enum" : [
f13c1238
DM
4684 "started",
4685 "stopped",
44660702 4686 "enabled",
2489d6df
WB
4687 "disabled",
4688 "ignored"
7aacca6f 4689 ],
7aacca6f 4690 "optional" : 1,
f13c1238 4691 "type" : "string",
2489d6df 4692 "verbose_description" : "Requested resource state. The CRM reads this state and acts accordingly.\nPlease note that `enabled` is just an alias for `started`.\n\n`started`;;\n\nThe CRM tries to start the resource. Service state is\nset to `started` after successful start. On node failures, or when start\nfails, it tries to recover the resource. If everything fails, service\nstate it set to `error`.\n\n`stopped`;;\n\nThe CRM tries to keep the resource in `stopped` state, but it\nstill tries to relocate the resources on node failures.\n\n`disabled`;;\n\nThe CRM tries to put the resource in `stopped` state, but does not try\nto relocate the resources on node failures. The main purpose of this\nstate is error recovery, because it is the only way to move a resource out\nof the `error` state.\n\n`ignored`;;\n\nThe resource gets removed from the manager status and so the CRM and the LRM do\nnot touch the resource anymore. All {pve} API calls affecting this resource\nwill be executed, directly bypassing the HA stack. CRM commands will be thrown\naway while there source is in this state. The resource will not get relocated\non node failures.\n\n"
7aacca6f 4693 },
44660702
DM
4694 "type" : {
4695 "description" : "Resource type.",
4696 "enum" : [
4697 "ct",
4698 "vm"
4699 ],
4700 "optional" : 1,
4701 "type" : "string"
4702 }
7aacca6f 4703 },
44660702 4704 "type" : "object"
7aacca6f
DM
4705 },
4706 "permissions" : {
4707 "check" : [
4708 "perm",
4709 "/",
4710 [
4711 "Sys.Console"
4712 ]
4713 ]
4714 },
44660702
DM
4715 "protected" : 1,
4716 "returns" : {
4717 "type" : "null"
4718 }
7aacca6f
DM
4719 }
4720 },
44660702
DM
4721 "leaf" : 0,
4722 "path" : "/cluster/ha/resources",
4723 "text" : "resources"
4724 },
4725 {
56122987
DM
4726 "children" : [
4727 {
56122987 4728 "info" : {
44660702 4729 "DELETE" : {
e9cd3bd4 4730 "allowtoken" : 1,
44660702
DM
4731 "description" : "Delete ha group configuration.",
4732 "method" : "DELETE",
4733 "name" : "delete",
56122987 4734 "parameters" : {
7aacca6f 4735 "additionalProperties" : 0,
56122987 4736 "properties" : {
7aacca6f
DM
4737 "group" : {
4738 "description" : "The HA group identifier.",
44660702 4739 "format" : "pve-configid",
013dc89f
DM
4740 "type" : "string",
4741 "typetext" : "<string>"
56122987 4742 }
7aacca6f 4743 }
56122987 4744 },
56122987
DM
4745 "permissions" : {
4746 "check" : [
4747 "perm",
4748 "/",
4749 [
7aacca6f 4750 "Sys.Console"
56122987
DM
4751 ]
4752 ]
4753 },
44660702 4754 "protected" : 1,
7aacca6f
DM
4755 "returns" : {
4756 "type" : "null"
56122987
DM
4757 }
4758 },
44660702 4759 "GET" : {
e9cd3bd4 4760 "allowtoken" : 1,
44660702
DM
4761 "description" : "Read ha group configuration.",
4762 "method" : "GET",
4763 "name" : "read",
56122987 4764 "parameters" : {
44660702 4765 "additionalProperties" : 0,
56122987
DM
4766 "properties" : {
4767 "group" : {
4768 "description" : "The HA group identifier.",
44660702 4769 "format" : "pve-configid",
013dc89f
DM
4770 "type" : "string",
4771 "typetext" : "<string>"
56122987 4772 }
44660702 4773 }
56122987 4774 },
56122987
DM
4775 "permissions" : {
4776 "check" : [
4777 "perm",
4778 "/",
4779 [
44660702 4780 "Sys.Audit"
56122987
DM
4781 ]
4782 ]
4783 },
44660702 4784 "returns" : {}
7aacca6f 4785 },
44660702 4786 "PUT" : {
e9cd3bd4 4787 "allowtoken" : 1,
44660702
DM
4788 "description" : "Update ha group configuration.",
4789 "method" : "PUT",
4790 "name" : "update",
7aacca6f 4791 "parameters" : {
44660702 4792 "additionalProperties" : 0,
7aacca6f 4793 "properties" : {
44660702
DM
4794 "comment" : {
4795 "description" : "Description.",
4796 "maxLength" : 4096,
4797 "optional" : 1,
013dc89f
DM
4798 "type" : "string",
4799 "typetext" : "<string>"
44660702
DM
4800 },
4801 "delete" : {
4802 "description" : "A list of settings you want to delete.",
4803 "format" : "pve-configid-list",
4804 "maxLength" : 4096,
4805 "optional" : 1,
013dc89f
DM
4806 "type" : "string",
4807 "typetext" : "<string>"
44660702
DM
4808 },
4809 "digest" : {
4810 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
4811 "maxLength" : 40,
4812 "optional" : 1,
013dc89f
DM
4813 "type" : "string",
4814 "typetext" : "<string>"
44660702 4815 },
7aacca6f
DM
4816 "group" : {
4817 "description" : "The HA group identifier.",
44660702 4818 "format" : "pve-configid",
013dc89f
DM
4819 "type" : "string",
4820 "typetext" : "<string>"
44660702
DM
4821 },
4822 "nodes" : {
f13c1238 4823 "description" : "List of cluster node names with optional priority.",
44660702
DM
4824 "format" : "pve-ha-group-node-list",
4825 "optional" : 1,
7aacca6f 4826 "type" : "string",
f13c1238
DM
4827 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
4828 "verbose_description" : "List of cluster node members, where a priority can be given to each node. A resource bound to a group will run on the available nodes with the highest priority. If there are more nodes in the highest priority class, the services will get distributed to those nodes. The priorities have a relative meaning only."
44660702
DM
4829 },
4830 "nofailback" : {
4831 "default" : 0,
4832 "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
4833 "optional" : 1,
013dc89f
DM
4834 "type" : "boolean",
4835 "typetext" : "<boolean>"
44660702
DM
4836 },
4837 "restricted" : {
4838 "default" : 0,
c4808e75 4839 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
44660702 4840 "optional" : 1,
013dc89f 4841 "type" : "boolean",
c4808e75
DM
4842 "typetext" : "<boolean>",
4843 "verbose_description" : "Resources bound to restricted groups may only run on nodes defined by the group. The resource will be placed in the stopped state if no group node member is online. Resources on unrestricted groups may run on any cluster node if all group members are offline, but they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with only one member."
7aacca6f
DM
4844 }
4845 },
44660702 4846 "type" : "object"
7aacca6f 4847 },
7aacca6f
DM
4848 "permissions" : {
4849 "check" : [
4850 "perm",
4851 "/",
4852 [
44660702 4853 "Sys.Console"
7aacca6f
DM
4854 ]
4855 ]
4856 },
44660702
DM
4857 "protected" : 1,
4858 "returns" : {
4859 "type" : "null"
4860 }
56122987
DM
4861 }
4862 },
4863 "leaf" : 1,
44660702
DM
4864 "path" : "/cluster/ha/groups/{group}",
4865 "text" : "{group}"
56122987 4866 }
44660702
DM
4867 ],
4868 "info" : {
4869 "GET" : {
e9cd3bd4 4870 "allowtoken" : 1,
44660702
DM
4871 "description" : "Get HA groups.",
4872 "method" : "GET",
4873 "name" : "index",
4874 "parameters" : {
4875 "additionalProperties" : 0
4876 },
4877 "permissions" : {
4878 "check" : [
4879 "perm",
4880 "/",
4881 [
4882 "Sys.Audit"
4883 ]
4884 ]
4885 },
4886 "returns" : {
4887 "items" : {
4888 "properties" : {
4889 "group" : {
4890 "type" : "string"
4891 }
4892 },
4893 "type" : "object"
4894 },
4895 "links" : [
4896 {
4897 "href" : "{group}",
4898 "rel" : "child"
4899 }
4900 ],
4901 "type" : "array"
4902 }
4903 },
4904 "POST" : {
e9cd3bd4 4905 "allowtoken" : 1,
44660702
DM
4906 "description" : "Create a new HA group.",
4907 "method" : "POST",
4908 "name" : "create",
4909 "parameters" : {
4910 "additionalProperties" : 0,
4911 "properties" : {
4912 "comment" : {
4913 "description" : "Description.",
4914 "maxLength" : 4096,
4915 "optional" : 1,
013dc89f
DM
4916 "type" : "string",
4917 "typetext" : "<string>"
44660702
DM
4918 },
4919 "group" : {
4920 "description" : "The HA group identifier.",
4921 "format" : "pve-configid",
013dc89f
DM
4922 "type" : "string",
4923 "typetext" : "<string>"
44660702
DM
4924 },
4925 "nodes" : {
f13c1238 4926 "description" : "List of cluster node names with optional priority.",
44660702
DM
4927 "format" : "pve-ha-group-node-list",
4928 "optional" : 0,
4929 "type" : "string",
f13c1238
DM
4930 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
4931 "verbose_description" : "List of cluster node members, where a priority can be given to each node. A resource bound to a group will run on the available nodes with the highest priority. If there are more nodes in the highest priority class, the services will get distributed to those nodes. The priorities have a relative meaning only."
44660702
DM
4932 },
4933 "nofailback" : {
4934 "default" : 0,
4935 "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
4936 "optional" : 1,
013dc89f
DM
4937 "type" : "boolean",
4938 "typetext" : "<boolean>"
44660702
DM
4939 },
4940 "restricted" : {
4941 "default" : 0,
c4808e75 4942 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
44660702 4943 "optional" : 1,
013dc89f 4944 "type" : "boolean",
c4808e75
DM
4945 "typetext" : "<boolean>",
4946 "verbose_description" : "Resources bound to restricted groups may only run on nodes defined by the group. The resource will be placed in the stopped state if no group node member is online. Resources on unrestricted groups may run on any cluster node if all group members are offline, but they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with only one member."
44660702
DM
4947 },
4948 "type" : {
4949 "description" : "Group type.",
4950 "enum" : [
4951 "group"
4952 ],
4953 "optional" : 1,
4954 "type" : "string"
4955 }
4956 },
4957 "type" : "object"
4958 },
4959 "permissions" : {
4960 "check" : [
4961 "perm",
4962 "/",
4963 [
4964 "Sys.Console"
4965 ]
4966 ]
4967 },
4968 "protected" : 1,
4969 "returns" : {
4970 "type" : "null"
4971 }
4972 }
4973 },
4974 "leaf" : 0,
4975 "path" : "/cluster/ha/groups",
4976 "text" : "groups"
7aacca6f
DM
4977 },
4978 {
7aacca6f
DM
4979 "children" : [
4980 {
4981 "info" : {
4982 "GET" : {
e9cd3bd4 4983 "allowtoken" : 1,
56122987 4984 "description" : "Get HA manger status.",
44660702 4985 "method" : "GET",
7aacca6f 4986 "name" : "status",
44660702
DM
4987 "parameters" : {
4988 "additionalProperties" : 0
4989 },
56122987
DM
4990 "permissions" : {
4991 "check" : [
4992 "perm",
4993 "/",
4994 [
4995 "Sys.Audit"
4996 ]
4997 ]
7aacca6f 4998 },
44660702 4999 "returns" : {
159464a9
TL
5000 "items" : {
5001 "properties" : {
5002 "crm_state" : {
5003 "description" : "For type 'service'. Service state as seen by the CRM.",
5004 "optional" : 1,
5005 "type" : "string"
5006 },
5007 "id" : {
5008 "description" : "Status entry ID (quorum, master, lrm:<node>, service:<sid>).",
5009 "type" : "string"
5010 },
5011 "max_relocate" : {
5012 "description" : "For type 'service'.",
5013 "optional" : 1,
5014 "type" : "integer"
5015 },
5016 "max_restart" : {
5017 "description" : "For type 'service'.",
5018 "optional" : 1,
5019 "type" : "integer"
5020 },
5021 "node" : {
5022 "description" : "Node associated to status entry.",
5023 "type" : "string"
5024 },
5025 "quorate" : {
5026 "description" : "For type 'quorum'. Whether the cluster is quorate or not.",
5027 "optional" : 1,
5028 "type" : "boolean"
5029 },
5030 "request_state" : {
5031 "description" : "For type 'service'. Requested service state.",
5032 "optional" : 1,
5033 "type" : "string"
5034 },
5035 "sid" : {
5036 "description" : "For type 'service'. Service ID.",
5037 "optional" : 1,
5038 "type" : "string"
5039 },
5040 "state" : {
5041 "description" : "For type 'service'. Verbose service state.",
5042 "optional" : 1,
5043 "type" : "string"
5044 },
5045 "status" : {
5046 "description" : "Status of the entry (value depends on type).",
5047 "type" : "string"
5048 },
5049 "timestamp" : {
5050 "description" : "For type 'lrm','master'. Timestamp of the status information.",
5051 "optional" : 1,
5052 "type" : "integer"
5053 },
5054 "type" : {
5055 "description" : "Type of status entry.",
5056 "enum" : [
5057 "quorum",
5058 "master",
5059 "lrm",
5060 "service"
5061 ]
5062 }
5063 },
5064 "type" : "object"
5065 },
44660702 5066 "type" : "array"
56122987
DM
5067 }
5068 }
7aacca6f 5069 },
7aacca6f 5070 "leaf" : 1,
44660702
DM
5071 "path" : "/cluster/ha/status/current",
5072 "text" : "current"
56122987
DM
5073 },
5074 {
5075 "info" : {
5076 "GET" : {
e9cd3bd4 5077 "allowtoken" : 1,
7aacca6f 5078 "description" : "Get full HA manger status, including LRM status.",
44660702
DM
5079 "method" : "GET",
5080 "name" : "manager_status",
7aacca6f
DM
5081 "parameters" : {
5082 "additionalProperties" : 0
5083 },
56122987
DM
5084 "permissions" : {
5085 "check" : [
5086 "perm",
5087 "/",
5088 [
5089 "Sys.Audit"
5090 ]
5091 ]
44660702
DM
5092 },
5093 "returns" : {
5094 "type" : "object"
7aacca6f 5095 }
56122987
DM
5096 }
5097 },
56122987 5098 "leaf" : 1,
44660702
DM
5099 "path" : "/cluster/ha/status/manager_status",
5100 "text" : "manager_status"
56122987
DM
5101 }
5102 ],
56122987
DM
5103 "info" : {
5104 "GET" : {
e9cd3bd4 5105 "allowtoken" : 1,
44660702 5106 "description" : "Directory index.",
7aacca6f 5107 "method" : "GET",
44660702
DM
5108 "name" : "index",
5109 "parameters" : {
5110 "additionalProperties" : 0
5111 },
5112 "permissions" : {
5113 "user" : "all"
5114 },
56122987 5115 "returns" : {
56122987
DM
5116 "items" : {
5117 "properties" : {},
5118 "type" : "object"
5119 },
5120 "links" : [
5121 {
44660702
DM
5122 "href" : "{name}",
5123 "rel" : "child"
56122987 5124 }
7aacca6f
DM
5125 ],
5126 "type" : "array"
44660702 5127 }
56122987 5128 }
7aacca6f 5129 },
44660702 5130 "leaf" : 0,
7aacca6f 5131 "path" : "/cluster/ha/status",
44660702 5132 "text" : "status"
56122987
DM
5133 }
5134 ],
56122987
DM
5135 "info" : {
5136 "GET" : {
e9cd3bd4 5137 "allowtoken" : 1,
7aacca6f 5138 "description" : "Directory index.",
44660702
DM
5139 "method" : "GET",
5140 "name" : "index",
5141 "parameters" : {
5142 "additionalProperties" : 0
5143 },
7aacca6f
DM
5144 "permissions" : {
5145 "check" : [
5146 "perm",
5147 "/",
5148 [
5149 "Sys.Audit"
5150 ]
5151 ]
5152 },
56122987 5153 "returns" : {
56122987 5154 "items" : {
7aacca6f
DM
5155 "properties" : {
5156 "id" : {
5157 "type" : "string"
5158 }
44660702
DM
5159 },
5160 "type" : "object"
7aacca6f
DM
5161 },
5162 "links" : [
5163 {
5164 "href" : "{id}",
5165 "rel" : "child"
5166 }
44660702
DM
5167 ],
5168 "type" : "array"
7aacca6f
DM
5169 }
5170 }
44660702
DM
5171 },
5172 "leaf" : 0,
5173 "path" : "/cluster/ha",
5174 "text" : "ha"
7aacca6f 5175 },
a9a8e3d1
DM
5176 {
5177 "children" : [
c5aa7e14
TL
5178 {
5179 "children" : [
5180 {
5181 "info" : {
5182 "DELETE" : {
5183 "allowtoken" : 1,
5184 "description" : "Delete ACME plugin configuration.",
5185 "method" : "DELETE",
5186 "name" : "delete_plugin",
5187 "parameters" : {
5188 "additionalProperties" : 0,
5189 "properties" : {
5190 "id" : {
5191 "description" : "Unique identifier for ACME plugin instance.",
5192 "format" : "pve-configid",
5193 "type" : "string",
5194 "typetext" : "<string>"
5195 }
5196 }
5197 },
5198 "permissions" : {
5199 "check" : [
5200 "perm",
5201 "/",
5202 [
5203 "Sys.Modify"
5204 ]
5205 ]
5206 },
5207 "protected" : 1,
5208 "returns" : {
5209 "type" : "null"
5210 }
5211 },
5212 "GET" : {
5213 "allowtoken" : 1,
5214 "description" : "Get ACME plugin configuration.",
5215 "method" : "GET",
5216 "name" : "get_plugin_config",
5217 "parameters" : {
5218 "additionalProperties" : 0,
5219 "properties" : {
5220 "id" : {
5221 "description" : "Unique identifier for ACME plugin instance.",
5222 "format" : "pve-configid",
5223 "type" : "string",
5224 "typetext" : "<string>"
5225 }
5226 }
5227 },
5228 "permissions" : {
5229 "check" : [
5230 "perm",
5231 "/",
5232 [
5233 "Sys.Modify"
5234 ]
5235 ]
5236 },
5237 "protected" : 1,
5238 "returns" : {
5239 "type" : "object"
5240 }
5241 },
5242 "PUT" : {
5243 "allowtoken" : 1,
5244 "description" : "Update ACME plugin configuration.",
5245 "method" : "PUT",
5246 "name" : "update_plugin",
5247 "parameters" : {
5248 "additionalProperties" : 0,
5249 "properties" : {
5250 "api" : {
5251 "description" : "API plugin name",
5252 "enum" : [
d2656385 5253 "1984hosting",
c5aa7e14
TL
5254 "acmedns",
5255 "acmeproxy",
5256 "active24",
5257 "ad",
5258 "ali",
d2656385
TL
5259 "anx",
5260 "arvan",
e7084ef7 5261 "aurora",
c5aa7e14
TL
5262 "autodns",
5263 "aws",
5370fa8c 5264 "azion",
c5aa7e14 5265 "azure",
9d2e98ed 5266 "bunny",
c5aa7e14
TL
5267 "cf",
5268 "clouddns",
5269 "cloudns",
5270 "cn",
5271 "conoha",
5272 "constellix",
9d2e98ed
TL
5273 "cpanel",
5274 "curanet",
c5aa7e14
TL
5275 "cyon",
5276 "da",
5277 "ddnss",
5278 "desec",
ac70d7d1 5279 "df",
c5aa7e14 5280 "dgon",
9d2e98ed 5281 "dnshome",
c5aa7e14 5282 "dnsimple",
9d2e98ed 5283 "dnsservices",
c5aa7e14
TL
5284 "do",
5285 "doapi",
5286 "domeneshop",
5287 "dp",
5288 "dpi",
5289 "dreamhost",
5290 "duckdns",
5291 "durabledns",
5292 "dyn",
5293 "dynu",
5294 "dynv6",
5295 "easydns",
d2656385 5296 "edgedns",
c5aa7e14
TL
5297 "euserv",
5298 "exoscale",
9d2e98ed 5299 "fornex",
c5aa7e14
TL
5300 "freedns",
5301 "gandi_livedns",
5302 "gcloud",
5303 "gd",
9d2e98ed 5304 "geoscaling",
c5aa7e14 5305 "he",
d2656385 5306 "hetzner",
c5aa7e14
TL
5307 "hexonet",
5308 "hostingde",
d2656385 5309 "huaweicloud",
c5aa7e14 5310 "infoblox",
d2656385 5311 "infomaniak",
c5aa7e14
TL
5312 "internetbs",
5313 "inwx",
d2656385 5314 "ionos",
c5aa7e14
TL
5315 "ispconfig",
5316 "jd",
d2656385
TL
5317 "joker",
5318 "kappernet",
c5aa7e14
TL
5319 "kas",
5320 "kinghost",
5321 "knot",
9d2e98ed 5322 "la",
c5aa7e14
TL
5323 "leaseweb",
5324 "lexicon",
5325 "linode",
5326 "linode_v4",
5327 "loopia",
5328 "lua",
5329 "maradns",
5330 "me",
5331 "miab",
5332 "misaka",
5333 "myapi",
5334 "mydevil",
5335 "mydnsjp",
9d2e98ed 5336 "mythic_beasts",
c5aa7e14
TL
5337 "namecheap",
5338 "namecom",
5339 "namesilo",
5340 "nederhost",
5341 "neodigit",
5342 "netcup",
d2656385 5343 "netlify",
c5aa7e14 5344 "nic",
d2656385
TL
5345 "njalla",
5346 "nm",
c5aa7e14
TL
5347 "nsd",
5348 "nsone",
5349 "nsupdate",
5350 "nw",
5370fa8c 5351 "oci",
c5aa7e14
TL
5352 "one",
5353 "online",
5354 "openprovider",
d2656385 5355 "openstack",
c5aa7e14
TL
5356 "opnsense",
5357 "ovh",
5358 "pdns",
5359 "pleskxml",
5360 "pointhq",
e7084ef7 5361 "porkbun",
d2656385 5362 "rackcorp",
c5aa7e14 5363 "rackspace",
9d2e98ed 5364 "rage4",
c5aa7e14
TL
5365 "rcode0",
5366 "regru",
d2656385 5367 "scaleway",
c5aa7e14
TL
5368 "schlundtech",
5369 "selectel",
9d2e98ed 5370 "selfhost",
c5aa7e14 5371 "servercow",
d2656385 5372 "simply",
c5aa7e14 5373 "tele3",
d2656385 5374 "transip",
9d2e98ed 5375 "udr",
c5aa7e14
TL
5376 "ultra",
5377 "unoeuro",
5378 "variomedia",
5370fa8c 5379 "veesp",
9d2e98ed 5380 "vercel",
c5aa7e14
TL
5381 "vscale",
5382 "vultr",
e7084ef7 5383 "websupport",
d2656385 5384 "world4you",
c5aa7e14 5385 "yandex",
9d2e98ed 5386 "yc",
c5aa7e14
TL
5387 "zilore",
5388 "zone",
5389 "zonomi"
5390 ],
5391 "optional" : 1,
5392 "type" : "string"
5393 },
5394 "data" : {
5395 "description" : "DNS plugin data. (base64 encoded)",
5396 "optional" : 1,
5397 "type" : "string",
5398 "typetext" : "<string>"
5399 },
5400 "delete" : {
5401 "description" : "A list of settings you want to delete.",
5402 "format" : "pve-configid-list",
5403 "maxLength" : 4096,
5404 "optional" : 1,
5405 "type" : "string",
5406 "typetext" : "<string>"
5407 },
5408 "digest" : {
5409 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
5410 "maxLength" : 40,
5411 "optional" : 1,
5412 "type" : "string",
5413 "typetext" : "<string>"
5414 },
5415 "disable" : {
5416 "description" : "Flag to disable the config.",
5417 "optional" : 1,
5418 "type" : "boolean",
5419 "typetext" : "<boolean>"
5420 },
5421 "id" : {
5422 "description" : "ACME Plugin ID name",
5423 "format" : "pve-configid",
5424 "type" : "string",
5425 "typetext" : "<string>"
5426 },
5427 "nodes" : {
5428 "description" : "List of cluster node names.",
5429 "format" : "pve-node-list",
5430 "optional" : 1,
5431 "type" : "string",
5432 "typetext" : "<string>"
5433 },
5434 "validation-delay" : {
5435 "default" : 30,
5436 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
5437 "maximum" : 172800,
5438 "minimum" : 0,
5439 "optional" : 1,
5440 "type" : "integer",
5441 "typetext" : "<integer> (0 - 172800)"
5442 }
5443 },
5444 "type" : "object"
5445 },
5446 "permissions" : {
5447 "check" : [
5448 "perm",
5449 "/",
5450 [
5451 "Sys.Modify"
5452 ]
5453 ]
5454 },
5455 "protected" : 1,
5456 "returns" : {
5457 "type" : "null"
5458 }
5459 }
5460 },
5461 "leaf" : 1,
5462 "path" : "/cluster/acme/plugins/{id}",
5463 "text" : "{id}"
5464 }
5465 ],
5466 "info" : {
5467 "GET" : {
5468 "allowtoken" : 1,
5469 "description" : "ACME plugin index.",
5470 "method" : "GET",
5471 "name" : "index",
5472 "parameters" : {
5473 "additionalProperties" : 0,
5474 "properties" : {
5475 "type" : {
5476 "description" : "Only list ACME plugins of a specific type",
5477 "enum" : [
5478 "dns",
5479 "standalone"
5480 ],
5481 "optional" : 1,
5482 "type" : "string"
5483 }
5484 }
5485 },
5486 "permissions" : {
5487 "check" : [
5488 "perm",
5489 "/",
5490 [
5491 "Sys.Modify"
5492 ]
5493 ]
5494 },
5495 "protected" : 1,
5496 "returns" : {
5497 "items" : {
5498 "properties" : {
5499 "plugin" : {
5500 "description" : "Unique identifier for ACME plugin instance.",
5501 "format" : "pve-configid",
5502 "type" : "string"
5503 }
5504 },
5505 "type" : "object"
5506 },
5507 "links" : [
5508 {
5509 "href" : "{plugin}",
5510 "rel" : "child"
5511 }
5512 ],
5513 "type" : "array"
5514 }
5515 },
5516 "POST" : {
5517 "allowtoken" : 1,
5518 "description" : "Add ACME plugin configuration.",
5519 "method" : "POST",
5520 "name" : "add_plugin",
5521 "parameters" : {
5522 "additionalProperties" : 0,
5523 "properties" : {
5524 "api" : {
5525 "description" : "API plugin name",
5526 "enum" : [
d2656385 5527 "1984hosting",
c5aa7e14
TL
5528 "acmedns",
5529 "acmeproxy",
5530 "active24",
5531 "ad",
5532 "ali",
d2656385
TL
5533 "anx",
5534 "arvan",
e7084ef7 5535 "aurora",
c5aa7e14
TL
5536 "autodns",
5537 "aws",
5370fa8c 5538 "azion",
c5aa7e14 5539 "azure",
9d2e98ed 5540 "bunny",
c5aa7e14
TL
5541 "cf",
5542 "clouddns",
5543 "cloudns",
5544 "cn",
5545 "conoha",
5546 "constellix",
9d2e98ed
TL
5547 "cpanel",
5548 "curanet",
c5aa7e14
TL
5549 "cyon",
5550 "da",
5551 "ddnss",
5552 "desec",
ac70d7d1 5553 "df",
c5aa7e14 5554 "dgon",
9d2e98ed 5555 "dnshome",
c5aa7e14 5556 "dnsimple",
9d2e98ed 5557 "dnsservices",
c5aa7e14
TL
5558 "do",
5559 "doapi",
5560 "domeneshop",
5561 "dp",
5562 "dpi",
5563 "dreamhost",
5564 "duckdns",
5565 "durabledns",
5566 "dyn",
5567 "dynu",
5568 "dynv6",
5569 "easydns",
d2656385 5570 "edgedns",
c5aa7e14
TL
5571 "euserv",
5572 "exoscale",
9d2e98ed 5573 "fornex",
c5aa7e14
TL
5574 "freedns",
5575 "gandi_livedns",
5576 "gcloud",
5577 "gd",
9d2e98ed 5578 "geoscaling",
c5aa7e14 5579 "he",
d2656385 5580 "hetzner",
c5aa7e14
TL
5581 "hexonet",
5582 "hostingde",
d2656385 5583 "huaweicloud",
c5aa7e14 5584 "infoblox",
d2656385 5585 "infomaniak",
c5aa7e14
TL
5586 "internetbs",
5587 "inwx",
d2656385 5588 "ionos",
c5aa7e14
TL
5589 "ispconfig",
5590 "jd",
d2656385
TL
5591 "joker",
5592 "kappernet",
c5aa7e14
TL
5593 "kas",
5594 "kinghost",
5595 "knot",
9d2e98ed 5596 "la",
c5aa7e14
TL
5597 "leaseweb",
5598 "lexicon",
5599 "linode",
5600 "linode_v4",
5601 "loopia",
5602 "lua",
5603 "maradns",
5604 "me",
5605 "miab",
5606 "misaka",
5607 "myapi",
5608 "mydevil",
5609 "mydnsjp",
9d2e98ed 5610 "mythic_beasts",
c5aa7e14
TL
5611 "namecheap",
5612 "namecom",
5613 "namesilo",
5614 "nederhost",
5615 "neodigit",
5616 "netcup",
d2656385 5617 "netlify",
c5aa7e14 5618 "nic",
d2656385
TL
5619 "njalla",
5620 "nm",
c5aa7e14
TL
5621 "nsd",
5622 "nsone",
5623 "nsupdate",
5624 "nw",
5370fa8c 5625 "oci",
c5aa7e14
TL
5626 "one",
5627 "online",
5628 "openprovider",
d2656385 5629 "openstack",
c5aa7e14
TL
5630 "opnsense",
5631 "ovh",
5632 "pdns",
5633 "pleskxml",
5634 "pointhq",
e7084ef7 5635 "porkbun",
d2656385 5636 "rackcorp",
c5aa7e14 5637 "rackspace",
9d2e98ed 5638 "rage4",
c5aa7e14
TL
5639 "rcode0",
5640 "regru",
d2656385 5641 "scaleway",
c5aa7e14
TL
5642 "schlundtech",
5643 "selectel",
9d2e98ed 5644 "selfhost",
c5aa7e14 5645 "servercow",
d2656385 5646 "simply",
c5aa7e14 5647 "tele3",
d2656385 5648 "transip",
9d2e98ed 5649 "udr",
c5aa7e14
TL
5650 "ultra",
5651 "unoeuro",
5652 "variomedia",
5370fa8c 5653 "veesp",
9d2e98ed 5654 "vercel",
c5aa7e14
TL
5655 "vscale",
5656 "vultr",
e7084ef7 5657 "websupport",
d2656385 5658 "world4you",
c5aa7e14 5659 "yandex",
9d2e98ed 5660 "yc",
c5aa7e14
TL
5661 "zilore",
5662 "zone",
5663 "zonomi"
5664 ],
5665 "optional" : 1,
5666 "type" : "string"
5667 },
5668 "data" : {
5669 "description" : "DNS plugin data. (base64 encoded)",
5670 "optional" : 1,
5671 "type" : "string",
5672 "typetext" : "<string>"
5673 },
5674 "disable" : {
5675 "description" : "Flag to disable the config.",
5676 "optional" : 1,
5677 "type" : "boolean",
5678 "typetext" : "<boolean>"
5679 },
5680 "id" : {
5681 "description" : "ACME Plugin ID name",
5682 "format" : "pve-configid",
5683 "type" : "string",
5684 "typetext" : "<string>"
5685 },
5686 "nodes" : {
5687 "description" : "List of cluster node names.",
5688 "format" : "pve-node-list",
5689 "optional" : 1,
5690 "type" : "string",
5691 "typetext" : "<string>"
5692 },
5693 "type" : {
5694 "description" : "ACME challenge type.",
5695 "enum" : [
5696 "dns",
5697 "standalone"
5698 ],
5699 "type" : "string"
5700 },
5701 "validation-delay" : {
5702 "default" : 30,
5703 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
5704 "maximum" : 172800,
5705 "minimum" : 0,
5706 "optional" : 1,
5707 "type" : "integer",
5708 "typetext" : "<integer> (0 - 172800)"
5709 }
5710 },
5711 "type" : "object"
5712 },
5713 "permissions" : {
5714 "check" : [
5715 "perm",
5716 "/",
5717 [
5718 "Sys.Modify"
5719 ]
5720 ]
5721 },
5722 "protected" : 1,
5723 "returns" : {
5724 "type" : "null"
5725 }
5726 }
5727 },
5728 "leaf" : 0,
5729 "path" : "/cluster/acme/plugins",
5730 "text" : "plugins"
5731 },
a9a8e3d1
DM
5732 {
5733 "children" : [
5734 {
5735 "info" : {
5736 "DELETE" : {
e9cd3bd4 5737 "allowtoken" : 1,
a9a8e3d1
DM
5738 "description" : "Deactivate existing ACME account at CA.",
5739 "method" : "DELETE",
5740 "name" : "deactivate_account",
5741 "parameters" : {
5742 "additionalProperties" : 0,
5743 "properties" : {
5744 "name" : {
5745 "default" : "default",
5746 "description" : "ACME account config file name.",
5747 "format" : "pve-configid",
5748 "format_description" : "name",
5749 "optional" : 1,
5750 "type" : "string",
5751 "typetext" : "<name>"
5752 }
5753 }
5754 },
5755 "protected" : 1,
5756 "returns" : {
5757 "type" : "string"
5758 }
5759 },
5760 "GET" : {
e9cd3bd4 5761 "allowtoken" : 1,
a9a8e3d1
DM
5762 "description" : "Return existing ACME account information.",
5763 "method" : "GET",
5764 "name" : "get_account",
5765 "parameters" : {
5766 "additionalProperties" : 0,
5767 "properties" : {
5768 "name" : {
5769 "default" : "default",
5770 "description" : "ACME account config file name.",
5771 "format" : "pve-configid",
5772 "format_description" : "name",
5773 "optional" : 1,
5774 "type" : "string",
5775 "typetext" : "<name>"
5776 }
5777 }
5778 },
5779 "protected" : 1,
5780 "returns" : {
5781 "additionalProperties" : 0,
5782 "properties" : {
5783 "account" : {
5784 "optional" : 1,
4d47f125 5785 "renderer" : "yaml",
a9a8e3d1
DM
5786 "type" : "object"
5787 },
5788 "directory" : {
5789 "description" : "URL of ACME CA directory endpoint.",
5790 "optional" : 1,
5791 "pattern" : "^https?://.*",
5792 "type" : "string"
5793 },
5794 "location" : {
5795 "optional" : 1,
5796 "type" : "string"
5797 },
5798 "tos" : {
5799 "optional" : 1,
5800 "type" : "string"
5801 }
5802 },
5803 "type" : "object"
5804 }
5805 },
5806 "PUT" : {
e9cd3bd4 5807 "allowtoken" : 1,
a9a8e3d1
DM
5808 "description" : "Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.",
5809 "method" : "PUT",
5810 "name" : "update_account",
5811 "parameters" : {
5812 "additionalProperties" : 0,
5813 "properties" : {
5814 "contact" : {
5815 "description" : "Contact email addresses.",
5816 "format" : "email-list",
5817 "optional" : 1,
5818 "type" : "string",
5819 "typetext" : "<string>"
5820 },
5821 "name" : {
5822 "default" : "default",
5823 "description" : "ACME account config file name.",
5824 "format" : "pve-configid",
5825 "format_description" : "name",
5826 "optional" : 1,
5827 "type" : "string",
5828 "typetext" : "<name>"
5829 }
5830 }
5831 },
5832 "protected" : 1,
5833 "returns" : {
5834 "type" : "string"
5835 }
5836 }
5837 },
5838 "leaf" : 1,
5839 "path" : "/cluster/acme/account/{name}",
5840 "text" : "{name}"
5841 }
5842 ],
5843 "info" : {
5844 "GET" : {
e9cd3bd4 5845 "allowtoken" : 1,
a9a8e3d1
DM
5846 "description" : "ACMEAccount index.",
5847 "method" : "GET",
5848 "name" : "account_index",
5849 "parameters" : {
5850 "additionalProperties" : 0
5851 },
5852 "permissions" : {
5853 "user" : "all"
5854 },
5855 "protected" : 1,
5856 "returns" : {
5857 "items" : {
5858 "properties" : {},
5859 "type" : "object"
5860 },
5861 "links" : [
5862 {
5863 "href" : "{name}",
5864 "rel" : "child"
5865 }
5866 ],
5867 "type" : "array"
5868 }
5869 },
5870 "POST" : {
e9cd3bd4 5871 "allowtoken" : 1,
a9a8e3d1
DM
5872 "description" : "Register a new ACME account with CA.",
5873 "method" : "POST",
5874 "name" : "register_account",
5875 "parameters" : {
5876 "additionalProperties" : 0,
5877 "properties" : {
5878 "contact" : {
5879 "description" : "Contact email addresses.",
5880 "format" : "email-list",
5881 "type" : "string",
5882 "typetext" : "<string>"
5883 },
5884 "directory" : {
5885 "default" : "https://acme-v02.api.letsencrypt.org/directory",
5886 "description" : "URL of ACME CA directory endpoint.",
5887 "optional" : 1,
5888 "pattern" : "^https?://.*",
5889 "type" : "string"
5890 },
5891 "name" : {
5892 "default" : "default",
5893 "description" : "ACME account config file name.",
5894 "format" : "pve-configid",
5895 "format_description" : "name",
5896 "optional" : 1,
5897 "type" : "string",
5898 "typetext" : "<name>"
5899 },
5900 "tos_url" : {
5901 "description" : "URL of CA TermsOfService - setting this indicates agreement.",
5902 "optional" : 1,
5903 "type" : "string",
5904 "typetext" : "<string>"
5905 }
5906 }
5907 },
5908 "protected" : 1,
5909 "returns" : {
5910 "type" : "string"
5911 }
5912 }
5913 },
5914 "leaf" : 0,
5915 "path" : "/cluster/acme/account",
5916 "text" : "account"
5917 },
5918 {
5919 "info" : {
5920 "GET" : {
e9cd3bd4 5921 "allowtoken" : 1,
a9a8e3d1
DM
5922 "description" : "Retrieve ACME TermsOfService URL from CA.",
5923 "method" : "GET",
5924 "name" : "get_tos",
5925 "parameters" : {
5926 "additionalProperties" : 0,
5927 "properties" : {
5928 "directory" : {
5929 "default" : "https://acme-v02.api.letsencrypt.org/directory",
5930 "description" : "URL of ACME CA directory endpoint.",
5931 "optional" : 1,
5932 "pattern" : "^https?://.*",
5933 "type" : "string"
5934 }
5935 }
5936 },
5da3d723
TL
5937 "permissions" : {
5938 "user" : "all"
5939 },
a9a8e3d1
DM
5940 "returns" : {
5941 "description" : "ACME TermsOfService URL.",
5c1699e5 5942 "optional" : 1,
a9a8e3d1
DM
5943 "type" : "string"
5944 }
5945 }
5946 },
5947 "leaf" : 1,
5948 "path" : "/cluster/acme/tos",
5949 "text" : "tos"
5950 },
5951 {
5952 "info" : {
5953 "GET" : {
e9cd3bd4 5954 "allowtoken" : 1,
a9a8e3d1
DM
5955 "description" : "Get named known ACME directory endpoints.",
5956 "method" : "GET",
5957 "name" : "get_directories",
5958 "parameters" : {
5959 "additionalProperties" : 0
5960 },
5da3d723
TL
5961 "permissions" : {
5962 "user" : "all"
5963 },
a9a8e3d1
DM
5964 "returns" : {
5965 "items" : {
5966 "additionalProperties" : 0,
5967 "properties" : {
5968 "name" : {
5969 "type" : "string"
5970 },
5971 "url" : {
5972 "description" : "URL of ACME CA directory endpoint.",
5973 "pattern" : "^https?://.*",
5974 "type" : "string"
5975 }
5976 },
5977 "type" : "object"
5978 },
5979 "type" : "array"
5980 }
5981 }
5982 },
5983 "leaf" : 1,
5984 "path" : "/cluster/acme/directories",
5985 "text" : "directories"
ac70d7d1
TL
5986 },
5987 {
5988 "info" : {
5989 "GET" : {
5990 "allowtoken" : 1,
5991 "description" : "Get schema of ACME challenge types.",
5992 "method" : "GET",
5993 "name" : "challengeschema",
5994 "parameters" : {
5995 "additionalProperties" : 0
5996 },
5997 "permissions" : {
5998 "user" : "all"
5999 },
6000 "returns" : {
6001 "items" : {
6002 "additionalProperties" : 0,
6003 "properties" : {
6004 "id" : {
6005 "type" : "string"
6006 },
6007 "name" : {
6008 "description" : "Human readable name, falls back to id",
6009 "type" : "string"
6010 },
6011 "schema" : {
6012 "type" : "object"
6013 },
6014 "type" : {
6015 "type" : "string"
6016 }
6017 },
6018 "type" : "object"
6019 },
6020 "type" : "array"
6021 }
6022 }
6023 },
6024 "leaf" : 1,
6025 "path" : "/cluster/acme/challenge-schema",
6026 "text" : "challenge-schema"
a9a8e3d1
DM
6027 }
6028 ],
6029 "info" : {
6030 "GET" : {
e9cd3bd4 6031 "allowtoken" : 1,
a9a8e3d1
DM
6032 "description" : "ACMEAccount index.",
6033 "method" : "GET",
6034 "name" : "index",
6035 "parameters" : {
6036 "additionalProperties" : 0
6037 },
6038 "permissions" : {
6039 "user" : "all"
6040 },
6041 "returns" : {
6042 "items" : {
6043 "properties" : {},
6044 "type" : "object"
6045 },
6046 "links" : [
6047 {
6048 "href" : "{name}",
6049 "rel" : "child"
6050 }
6051 ],
6052 "type" : "array"
6053 }
6054 }
6055 },
6056 "leaf" : 0,
6057 "path" : "/cluster/acme",
6058 "text" : "acme"
6059 },
1c532546
TL
6060 {
6061 "children" : [
6062 {
6063 "info" : {
6064 "GET" : {
e9cd3bd4 6065 "allowtoken" : 1,
1c532546
TL
6066 "description" : "Get ceph metadata.",
6067 "method" : "GET",
6068 "name" : "metadata",
6069 "parameters" : {
c5aa7e14
TL
6070 "additionalProperties" : 0,
6071 "properties" : {
6072 "scope" : {
6073 "default" : "all",
6074 "enum" : [
6075 "all",
6076 "versions"
6077 ],
6078 "optional" : 1,
6079 "type" : "string"
6080 }
6081 }
1c532546
TL
6082 },
6083 "permissions" : {
6084 "check" : [
6085 "perm",
6086 "/",
6087 [
6088 "Sys.Audit",
6089 "Datastore.Audit"
6090 ],
6091 "any",
6092 1
6093 ]
6094 },
6095 "protected" : 1,
6096 "returns" : {
9d2e98ed
TL
6097 "description" : "Items for each type of service containing objects for each instance.",
6098 "properties" : {
6099 "mds" : {
6100 "description" : "Metadata servers configured in the cluster and their properties.",
6101 "properties" : {
6102 "{id}" : {
6103 "description" : "Useful properties are listed, but not the full list.",
6104 "properties" : {
6105 "addr" : {
6106 "description" : "Bind addresses and ports.",
6107 "type" : "string"
6108 },
6109 "ceph_release" : {
6110 "description" : "Ceph release codename currently used.",
6111 "type" : "string"
6112 },
6113 "ceph_version" : {
6114 "description" : "Version info currently used by the service.",
6115 "type" : "string"
6116 },
6117 "ceph_version_short" : {
6118 "description" : "Short version (numerical) info currently used by the service.",
6119 "type" : "string"
6120 },
6121 "hostname" : {
6122 "description" : "Hostname on which the service is running.",
6123 "type" : "string"
6124 },
6125 "mem_swap_kb" : {
6126 "description" : "Memory of the service currently in swap.",
6127 "type" : "integer"
6128 },
6129 "mem_total_kb" : {
6130 "description" : "Memory consumption of the service.",
6131 "type" : "integer"
6132 },
6133 "name" : {
6134 "description" : "Name of the service instance.",
6135 "type" : "string"
6136 }
6137 },
6138 "type" : "object"
6139 }
6140 },
6141 "type" : "object"
6142 },
6143 "mgr" : {
6144 "description" : "Managers configured in the cluster and their properties.",
6145 "properties" : {
6146 "{id}" : {
6147 "description" : "Useful properties are listed, but not the full list.",
6148 "properties" : {
6149 "addr" : {
6150 "description" : "Bind address",
6151 "type" : "string"
6152 },
6153 "ceph_release" : {
6154 "description" : "Ceph release codename currently used.",
6155 "type" : "string"
6156 },
6157 "ceph_version" : {
6158 "description" : "Version info currently used by the service.",
6159 "type" : "string"
6160 },
6161 "ceph_version_short" : {
6162 "description" : "Short version (numerical) info currently used by the service.",
6163 "type" : "string"
6164 },
6165 "hostname" : {
6166 "description" : "Hostname on which the service is running.",
6167 "type" : "string"
6168 },
6169 "mem_swap_kb" : {
6170 "description" : "Memory of the service currently in swap.",
6171 "type" : "integer"
6172 },
6173 "mem_total_kb" : {
6174 "description" : "Memory consumption of the service.",
6175 "type" : "integer"
6176 },
6177 "name" : {
6178 "description" : "Name of the service instance.",
6179 "type" : "string"
6180 }
6181 },
6182 "type" : "object"
6183 }
6184 },
6185 "type" : "object"
6186 },
6187 "mon" : {
6188 "description" : "Monitors configured in the cluster and their properties.",
6189 "properties" : {
6190 "{id}" : {
6191 "description" : "Useful properties are listed, but not the full list.",
6192 "properties" : {
6193 "addrs" : {
6194 "description" : "Bind addresses and ports.",
6195 "type" : "string"
6196 },
6197 "ceph_release" : {
6198 "description" : "Ceph release codename currently used.",
6199 "type" : "string"
6200 },
6201 "ceph_version" : {
6202 "description" : "Version info currently used by the service.",
6203 "type" : "string"
6204 },
6205 "ceph_version_short" : {
6206 "description" : "Short version (numerical) info currently used by the service.",
6207 "type" : "string"
6208 },
6209 "hostname" : {
6210 "description" : "Hostname on which the service is running.",
6211 "type" : "string"
6212 },
6213 "mem_swap_kb" : {
6214 "description" : "Memory of the service currently in swap.",
6215 "type" : "integer"
6216 },
6217 "mem_total_kb" : {
6218 "description" : "Memory consumption of the service.",
6219 "type" : "integer"
6220 },
6221 "name" : {
6222 "description" : "Name of the service instance.",
6223 "type" : "string"
6224 }
6225 },
6226 "type" : "object"
6227 }
6228 },
6229 "type" : "object"
6230 },
6231 "node" : {
6232 "description" : "Ceph version installed on the nodes.",
6233 "properties" : {
6234 "{node}" : {
6235 "properties" : {
6236 "buildcommit" : {
6237 "description" : "GIT commit used for the build.",
6238 "type" : "string"
6239 },
6240 "version" : {
6241 "description" : "Version info.",
6242 "properties" : {
6243 "parts" : {
6244 "description" : "major, minor & patch",
6245 "type" : "array"
6246 },
6247 "str" : {
6248 "description" : "Version as single string.",
6249 "type" : "string"
6250 }
6251 },
6252 "type" : "object"
6253 }
6254 },
6255 "type" : "object"
6256 }
6257 },
6258 "type" : "object"
6259 },
6260 "osd" : {
6261 "description" : "OSDs configured in the cluster and their properties.",
6262 "properties" : {
6263 "{id}" : {
6264 "description" : "Useful properties are listed, but not the full list.",
6265 "properties" : {
6266 "back_addr" : {
6267 "description" : "Bind addresses and ports for backend inter OSD traffic.",
6268 "type" : "string"
6269 },
6270 "ceph_release" : {
6271 "description" : "Ceph release codename currently used.",
6272 "type" : "string"
6273 },
6274 "ceph_version" : {
6275 "description" : "Version info currently used by the service.",
6276 "type" : "string"
6277 },
6278 "ceph_version_short" : {
6279 "description" : "Short version (numerical) info currently used by the service.",
6280 "type" : "string"
6281 },
6282 "device_id" : {
6283 "description" : "Devices used by the OSD.",
6284 "type" : "string"
6285 },
6286 "front_addr" : {
6287 "description" : "Bind addresses and ports for frontend traffic to OSDs.",
6288 "type" : "string"
6289 },
6290 "hostname" : {
6291 "description" : "Hostname on which the service is running.",
6292 "type" : "string"
6293 },
6294 "id" : {
6295 "description" : "OSD ID.",
6296 "type" : "integer"
6297 },
6298 "mem_swap_kb" : {
6299 "description" : "Memory of the service currently in swap.",
6300 "type" : "integer"
6301 },
6302 "mem_total_kb" : {
6303 "description" : "Memory consumption of the service.",
6304 "type" : "integer"
6305 },
6306 "osd_data" : {
6307 "description" : "Path to the OSD data directory.",
6308 "type" : "string"
6309 },
6310 "osd_objectstore" : {
6311 "description" : "OSD objectstore type.",
6312 "type" : "string"
6313 }
6314 },
6315 "type" : "object"
6316 }
6317 },
6318 "type" : "array"
6319 }
6320 },
1c532546
TL
6321 "type" : "object"
6322 }
6323 }
6324 },
6325 "leaf" : 1,
6326 "path" : "/cluster/ceph/metadata",
6327 "text" : "metadata"
6328 },
6329 {
6330 "info" : {
6331 "GET" : {
e9cd3bd4 6332 "allowtoken" : 1,
1c532546
TL
6333 "description" : "Get ceph status.",
6334 "method" : "GET",
6335 "name" : "status",
6336 "parameters" : {
6337 "additionalProperties" : 0
6338 },
6339 "permissions" : {
6340 "check" : [
6341 "perm",
6342 "/",
6343 [
6344 "Sys.Audit",
6345 "Datastore.Audit"
6346 ],
6347 "any",
6348 1
6349 ]
6350 },
6351 "protected" : 1,
6352 "returns" : {
6353 "type" : "object"
6354 }
6355 }
6356 },
6357 "leaf" : 1,
6358 "path" : "/cluster/ceph/status",
6359 "text" : "status"
6360 },
6361 {
6362 "children" : [
6363 {
6364 "info" : {
6365 "GET" : {
e9cd3bd4 6366 "allowtoken" : 1,
1c532546
TL
6367 "description" : "Get the status of a specific ceph flag.",
6368 "method" : "GET",
6369 "name" : "get_flag",
6370 "parameters" : {
6371 "additionalProperties" : 0,
6372 "properties" : {
6373 "flag" : {
6374 "description" : "The name of the flag name to get.",
6375 "enum" : [
6376 "nobackfill",
6377 "nodeep-scrub",
6378 "nodown",
6379 "noin",
6380 "noout",
6381 "norebalance",
6382 "norecover",
6383 "noscrub",
6384 "notieragent",
6385 "noup",
6386 "pause"
6387 ],
6388 "type" : "string"
6389 }
6390 }
6391 },
6392 "permissions" : {
6393 "check" : [
6394 "perm",
6395 "/",
6396 [
6397 "Sys.Audit"
6398 ]
6399 ]
6400 },
6401 "protected" : 1,
6402 "returns" : {
6403 "type" : "boolean"
6404 }
6405 },
6406 "PUT" : {
e9cd3bd4 6407 "allowtoken" : 1,
1c532546
TL
6408 "description" : "Set or clear (unset) a specific ceph flag",
6409 "method" : "PUT",
6410 "name" : "update_flag",
6411 "parameters" : {
6412 "additionalProperties" : 0,
6413 "properties" : {
6414 "flag" : {
6415 "description" : "The ceph flag to update",
6416 "enum" : [
6417 "nobackfill",
6418 "nodeep-scrub",
6419 "nodown",
6420 "noin",
6421 "noout",
6422 "norebalance",
6423 "norecover",
6424 "noscrub",
6425 "notieragent",
6426 "noup",
6427 "pause"
6428 ],
6429 "type" : "string"
6430 },
6431 "value" : {
6432 "description" : "The new value of the flag",
6433 "type" : "boolean",
6434 "typetext" : "<boolean>"
6435 }
6436 }
6437 },
6438 "permissions" : {
6439 "check" : [
6440 "perm",
6441 "/",
6442 [
6443 "Sys.Modify"
6444 ]
6445 ]
6446 },
6447 "protected" : 1,
6448 "returns" : {
6449 "type" : "null"
6450 }
6451 }
6452 },
6453 "leaf" : 1,
6454 "path" : "/cluster/ceph/flags/{flag}",
6455 "text" : "{flag}"
6456 }
6457 ],
6458 "info" : {
6459 "GET" : {
e9cd3bd4 6460 "allowtoken" : 1,
1c532546
TL
6461 "description" : "get the status of all ceph flags",
6462 "method" : "GET",
6463 "name" : "get_all_flags",
6464 "parameters" : {
6465 "additionalProperties" : 0
6466 },
6467 "permissions" : {
6468 "check" : [
6469 "perm",
6470 "/",
6471 [
6472 "Sys.Audit"
6473 ]
6474 ]
6475 },
6476 "protected" : 1,
6477 "returns" : {
6478 "items" : {
6479 "additionalProperties" : 1,
6480 "properties" : {
9d2e98ed
TL
6481 "description" : {
6482 "description" : "Flag description.",
6483 "type" : "string"
6484 },
1c532546
TL
6485 "name" : {
6486 "description" : "Flag name.",
6487 "enum" : [
6488 "nobackfill",
6489 "nodeep-scrub",
6490 "nodown",
6491 "noin",
6492 "noout",
6493 "norebalance",
6494 "norecover",
6495 "noscrub",
6496 "notieragent",
6497 "noup",
6498 "pause"
6499 ],
6500 "type" : "string"
9d2e98ed
TL
6501 },
6502 "value" : {
6503 "description" : "Flag value.",
6504 "type" : "boolean"
1c532546
TL
6505 }
6506 },
6507 "type" : "object"
6508 },
6509 "links" : [
6510 {
6511 "href" : "{name}",
6512 "rel" : "child"
6513 }
6514 ],
6515 "type" : "array"
6516 }
6517 },
6518 "PUT" : {
e9cd3bd4 6519 "allowtoken" : 1,
1c532546
TL
6520 "description" : "Set/Unset multiple ceph flags at once.",
6521 "method" : "PUT",
6522 "name" : "set_flags",
6523 "parameters" : {
6524 "additionalProperties" : 0,
6525 "properties" : {
6526 "nobackfill" : {
6527 "description" : "Backfilling of PGs is suspended.",
6528 "optional" : 1,
6529 "type" : "boolean",
6530 "typetext" : "<boolean>"
6531 },
6532 "nodeep-scrub" : {
6533 "description" : "Deep Scrubbing is disabled.",
6534 "optional" : 1,
6535 "type" : "boolean",
6536 "typetext" : "<boolean>"
6537 },
6538 "nodown" : {
6539 "description" : "OSD failure reports are being ignored, such that the monitors will not mark OSDs down.",
6540 "optional" : 1,
6541 "type" : "boolean",
6542 "typetext" : "<boolean>"
6543 },
6544 "noin" : {
6545 "description" : "OSDs that were previously marked out will not be marked back in when they start.",
6546 "optional" : 1,
6547 "type" : "boolean",
6548 "typetext" : "<boolean>"
6549 },
6550 "noout" : {
6551 "description" : "OSDs will not automatically be marked out after the configured interval.",
6552 "optional" : 1,
6553 "type" : "boolean",
6554 "typetext" : "<boolean>"
6555 },
6556 "norebalance" : {
6557 "description" : "Rebalancing of PGs is suspended.",
6558 "optional" : 1,
6559 "type" : "boolean",
6560 "typetext" : "<boolean>"
6561 },
6562 "norecover" : {
6563 "description" : "Recovery of PGs is suspended.",
6564 "optional" : 1,
6565 "type" : "boolean",
6566 "typetext" : "<boolean>"
6567 },
6568 "noscrub" : {
6569 "description" : "Scrubbing is disabled.",
6570 "optional" : 1,
6571 "type" : "boolean",
6572 "typetext" : "<boolean>"
6573 },
6574 "notieragent" : {
6575 "description" : "Cache tiering activity is suspended.",
6576 "optional" : 1,
6577 "type" : "boolean",
6578 "typetext" : "<boolean>"
6579 },
6580 "noup" : {
6581 "description" : "OSDs are not allowed to start.",
6582 "optional" : 1,
6583 "type" : "boolean",
6584 "typetext" : "<boolean>"
6585 },
6586 "pause" : {
6587 "description" : "Pauses read and writes.",
6588 "optional" : 1,
6589 "type" : "boolean",
6590 "typetext" : "<boolean>"
6591 }
6592 }
6593 },
6594 "permissions" : {
6595 "check" : [
6596 "perm",
6597 "/",
6598 [
6599 "Sys.Modify"
6600 ]
6601 ]
6602 },
6603 "protected" : 1,
6604 "returns" : {
6605 "type" : "string"
6606 }
6607 }
6608 },
6609 "leaf" : 0,
6610 "path" : "/cluster/ceph/flags",
6611 "text" : "flags"
6612 }
6613 ],
6614 "info" : {
6615 "GET" : {
e9cd3bd4 6616 "allowtoken" : 1,
1c532546
TL
6617 "description" : "Cluster ceph index.",
6618 "method" : "GET",
6619 "name" : "cephindex",
6620 "parameters" : {
6621 "additionalProperties" : 0
6622 },
6623 "permissions" : {
6624 "user" : "all"
6625 },
6626 "returns" : {
6627 "items" : {
6628 "properties" : {},
6629 "type" : "object"
6630 },
6631 "links" : [
6632 {
6633 "href" : "{name}",
6634 "rel" : "child"
6635 }
6636 ],
6637 "type" : "array"
6638 }
6639 }
6640 },
6641 "leaf" : 0,
6642 "path" : "/cluster/ceph",
6643 "text" : "ceph"
6644 },
5370fa8c
TL
6645 {
6646 "children" : [
159464a9
TL
6647 {
6648 "children" : [
6649 {
6650 "info" : {
6651 "DELETE" : {
6652 "allowtoken" : 1,
6653 "description" : "Delete realm-sync job definition.",
6654 "method" : "DELETE",
6655 "name" : "delete_job",
6656 "parameters" : {
6657 "additionalProperties" : 0,
6658 "properties" : {
6659 "id" : {
6660 "format" : "pve-configid",
6661 "type" : "string",
6662 "typetext" : "<string>"
6663 }
6664 }
6665 },
6666 "permissions" : {
6667 "check" : [
6668 "perm",
6669 "/",
6670 [
6671 "Sys.Modify"
6672 ]
6673 ]
6674 },
6675 "protected" : 1,
6676 "returns" : {
6677 "type" : "null"
6678 }
6679 },
6680 "GET" : {
6681 "allowtoken" : 1,
6682 "description" : "Read realm-sync job definition.",
6683 "method" : "GET",
6684 "name" : "read_job",
6685 "parameters" : {
6686 "additionalProperties" : 0,
6687 "properties" : {
6688 "id" : {
6689 "format" : "pve-configid",
6690 "type" : "string",
6691 "typetext" : "<string>"
6692 }
6693 }
6694 },
6695 "permissions" : {
6696 "check" : [
6697 "perm",
6698 "/",
6699 [
6700 "Sys.Audit"
6701 ]
6702 ]
6703 },
6704 "returns" : {
6705 "type" : "object"
6706 }
6707 },
6708 "POST" : {
6709 "allowtoken" : 1,
6710 "description" : "Create new realm-sync job.",
6711 "method" : "POST",
6712 "name" : "create_job",
6713 "parameters" : {
6714 "additionalProperties" : 0,
6715 "properties" : {
6716 "comment" : {
6717 "description" : "Description for the Job.",
6718 "maxLength" : 512,
6719 "optional" : 1,
6720 "type" : "string",
6721 "typetext" : "<string>"
6722 },
6723 "enable-new" : {
6724 "default" : "1",
6725 "description" : "Enable newly synced users immediately.",
6726 "optional" : 1,
6727 "type" : "boolean",
6728 "typetext" : "<boolean>"
6729 },
6730 "enabled" : {
6731 "default" : 1,
6732 "description" : "Determines if the job is enabled.",
6733 "optional" : 1,
6734 "type" : "boolean",
6735 "typetext" : "<boolean>"
6736 },
6737 "id" : {
6738 "description" : "The ID of the job.",
6739 "format" : "pve-configid",
6740 "maxLength" : 64,
6741 "type" : "string",
6742 "typetext" : "<string>"
6743 },
6744 "realm" : {
6745 "description" : "Authentication domain ID",
6746 "format" : "pve-realm",
6747 "maxLength" : 32,
6748 "optional" : 1,
6749 "type" : "string",
6750 "typetext" : "<string>"
6751 },
6752 "remove-vanished" : {
6753 "default" : "none",
6754 "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync. Instead of a list it also can be 'none' (the default).",
6755 "optional" : 1,
6756 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
6757 "type" : "string",
6758 "typetext" : "([acl];[properties];[entry])|none"
6759 },
6760 "schedule" : {
6761 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
6762 "format" : "pve-calendar-event",
6763 "maxLength" : 128,
6764 "type" : "string",
6765 "typetext" : "<string>"
6766 },
6767 "scope" : {
6768 "description" : "Select what to sync.",
6769 "enum" : [
6770 "users",
6771 "groups",
6772 "both"
6773 ],
6774 "optional" : 1,
6775 "type" : "string"
6776 }
6777 },
6778 "type" : "object"
6779 },
6780 "permissions" : {
6781 "check" : [
6782 "and",
6783 [
6784 "perm",
6785 "/access/realm/{realm}",
6786 [
6787 "Realm.AllocateUser"
6788 ]
6789 ],
6790 [
6791 "perm",
6792 "/access/groups",
6793 [
6794 "User.Modify"
6795 ]
6796 ]
6797 ],
6798 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
6799 },
6800 "protected" : 1,
6801 "returns" : {
6802 "type" : "null"
6803 }
6804 },
6805 "PUT" : {
6806 "allowtoken" : 1,
6807 "description" : "Update realm-sync job definition.",
6808 "method" : "PUT",
6809 "name" : "update_job",
6810 "parameters" : {
6811 "additionalProperties" : 0,
6812 "properties" : {
6813 "comment" : {
6814 "description" : "Description for the Job.",
6815 "maxLength" : 512,
6816 "optional" : 1,
6817 "type" : "string",
6818 "typetext" : "<string>"
6819 },
6820 "delete" : {
6821 "description" : "A list of settings you want to delete.",
6822 "format" : "pve-configid-list",
6823 "maxLength" : 4096,
6824 "optional" : 1,
6825 "type" : "string",
6826 "typetext" : "<string>"
6827 },
6828 "enable-new" : {
6829 "default" : "1",
6830 "description" : "Enable newly synced users immediately.",
6831 "optional" : 1,
6832 "type" : "boolean",
6833 "typetext" : "<boolean>"
6834 },
6835 "enabled" : {
6836 "default" : 1,
6837 "description" : "Determines if the job is enabled.",
6838 "optional" : 1,
6839 "type" : "boolean",
6840 "typetext" : "<boolean>"
6841 },
6842 "id" : {
6843 "description" : "The ID of the job.",
6844 "format" : "pve-configid",
6845 "maxLength" : 64,
6846 "type" : "string",
6847 "typetext" : "<string>"
6848 },
6849 "remove-vanished" : {
6850 "default" : "none",
6851 "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync. Instead of a list it also can be 'none' (the default).",
6852 "optional" : 1,
6853 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
6854 "type" : "string",
6855 "typetext" : "([acl];[properties];[entry])|none"
6856 },
6857 "schedule" : {
6858 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
6859 "format" : "pve-calendar-event",
6860 "maxLength" : 128,
6861 "type" : "string",
6862 "typetext" : "<string>"
6863 },
6864 "scope" : {
6865 "description" : "Select what to sync.",
6866 "enum" : [
6867 "users",
6868 "groups",
6869 "both"
6870 ],
6871 "optional" : 1,
6872 "type" : "string"
6873 }
6874 },
6875 "type" : "object"
6876 },
6877 "permissions" : {
6878 "check" : [
6879 "and",
6880 [
6881 "perm",
6882 "/access/realm/{realm}",
6883 [
6884 "Realm.AllocateUser"
6885 ]
6886 ],
6887 [
6888 "perm",
6889 "/access/groups",
6890 [
6891 "User.Modify"
6892 ]
6893 ]
6894 ],
6895 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
6896 },
6897 "protected" : 1,
6898 "returns" : {
6899 "type" : "null"
6900 }
6901 }
6902 },
6903 "leaf" : 1,
6904 "path" : "/cluster/jobs/realm-sync/{id}",
6905 "text" : "{id}"
6906 }
6907 ],
6908 "info" : {
6909 "GET" : {
6910 "allowtoken" : 1,
6911 "description" : "List configured realm-sync-jobs.",
6912 "method" : "GET",
6913 "name" : "syncjob_index",
6914 "parameters" : {
6915 "additionalProperties" : 0
6916 },
6917 "permissions" : {
6918 "check" : [
6919 "perm",
6920 "/",
6921 [
6922 "Sys.Audit"
6923 ]
6924 ]
6925 },
6926 "returns" : {
6927 "items" : {
6928 "properties" : {
6929 "comment" : {
6930 "description" : "A comment for the job.",
6931 "optional" : 1,
6932 "type" : "string"
6933 },
6934 "enabled" : {
6935 "description" : "If the job is enabled or not.",
6936 "type" : "boolean"
6937 },
6938 "id" : {
6939 "description" : "The ID of the entry.",
6940 "type" : "string"
6941 },
6942 "last-run" : {
6943 "description" : "Last execution time of the job in seconds since the beginning of the UNIX epoch",
6944 "optional" : 1,
6945 "type" : "integer"
6946 },
6947 "next-run" : {
6948 "description" : "Next planned execution time of the job in seconds since the beginning of the UNIX epoch.",
6949 "optional" : 1,
6950 "type" : "integer"
6951 },
6952 "realm" : {
6953 "description" : "Authentication domain ID",
6954 "format" : "pve-realm",
6955 "maxLength" : 32,
6956 "type" : "string"
6957 },
6958 "remove-vanished" : {
6959 "default" : "none",
6960 "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync. Instead of a list it also can be 'none' (the default).",
6961 "optional" : "1",
6962 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
6963 "type" : "string",
6964 "typetext" : "([acl];[properties];[entry])|none"
6965 },
6966 "schedule" : {
6967 "description" : "The configured sync schedule.",
6968 "type" : "string"
6969 },
6970 "scope" : {
6971 "description" : "Select what to sync.",
6972 "enum" : [
6973 "users",
6974 "groups",
6975 "both"
6976 ],
6977 "optional" : "1",
6978 "type" : "string"
6979 }
6980 },
6981 "type" : "object"
6982 },
6983 "links" : [
6984 {
6985 "href" : "{id}",
6986 "rel" : "child"
6987 }
6988 ],
6989 "type" : "array"
6990 }
6991 }
6992 },
6993 "leaf" : 0,
6994 "path" : "/cluster/jobs/realm-sync",
6995 "text" : "realm-sync"
6996 },
5370fa8c
TL
6997 {
6998 "info" : {
6999 "GET" : {
7000 "allowtoken" : 1,
7001 "description" : "Returns a list of future schedule runtimes.",
7002 "method" : "GET",
7003 "name" : "schedule-analyze",
7004 "parameters" : {
7005 "additionalProperties" : 0,
7006 "properties" : {
7007 "iterations" : {
7008 "default" : 10,
7009 "description" : "Number of event-iteration to simulate and return.",
7010 "maximum" : 100,
7011 "minimum" : 1,
7012 "optional" : 1,
7013 "type" : "integer",
7014 "typetext" : "<integer> (1 - 100)"
7015 },
7016 "schedule" : {
7017 "description" : "Job schedule. The format is a subset of `systemd` calendar events.",
7018 "format" : "pve-calendar-event",
7019 "maxLength" : 128,
7020 "type" : "string",
7021 "typetext" : "<string>"
7022 },
7023 "starttime" : {
7024 "description" : "UNIX timestamp to start the calculation from. Defaults to the current time.",
7025 "optional" : 1,
7026 "type" : "integer",
7027 "typetext" : "<integer>"
7028 }
7029 }
7030 },
7031 "permissions" : {
7032 "user" : "all"
7033 },
7034 "returns" : {
7035 "description" : "An array of the next <iterations> events since <starttime>.",
7036 "items" : {
7037 "properties" : {
7038 "timestamp" : {
7039 "description" : "UNIX timestamp for the run.",
7040 "type" : "integer"
7041 },
7042 "utc" : {
7043 "description" : "UTC timestamp for the run.",
7044 "type" : "string"
7045 }
7046 },
7047 "type" : "object"
7048 },
7049 "type" : "array"
7050 }
7051 }
7052 },
7053 "leaf" : 1,
7054 "path" : "/cluster/jobs/schedule-analyze",
7055 "text" : "schedule-analyze"
7056 }
7057 ],
7058 "info" : {
7059 "GET" : {
7060 "allowtoken" : 1,
7061 "description" : "Index for jobs related endpoints.",
7062 "method" : "GET",
7063 "name" : "index",
7064 "parameters" : {
7065 "additionalProperties" : 0
7066 },
7067 "permissions" : {
7068 "user" : "all"
7069 },
7070 "returns" : {
7071 "description" : "Directory index.",
7072 "items" : {
7073 "properties" : {
7074 "subdir" : {
7075 "description" : "API sub-directory endpoint",
7076 "type" : "string"
7077 }
7078 },
7079 "type" : "object"
7080 },
7081 "links" : [
7082 {
7083 "href" : "{subdir}",
7084 "rel" : "child"
7085 }
7086 ],
7087 "type" : "array"
7088 }
7089 }
7090 },
7091 "leaf" : 0,
7092 "path" : "/cluster/jobs",
7093 "text" : "jobs"
7094 },
c5aa7e14
TL
7095 {
7096 "children" : [
7097 {
7098 "children" : [
7099 {
d2656385
TL
7100 "children" : [
7101 {
7102 "children" : [
7103 {
7104 "info" : {
7105 "DELETE" : {
7106 "allowtoken" : 1,
7107 "description" : "Delete sdn subnet object configuration.",
7108 "method" : "DELETE",
7109 "name" : "delete",
7110 "parameters" : {
7111 "additionalProperties" : 0,
7112 "properties" : {
7113 "subnet" : {
7114 "description" : "The SDN subnet object identifier.",
7115 "format" : "pve-sdn-subnet-id",
7116 "type" : "string",
7117 "typetext" : "<string>"
7118 },
7119 "vnet" : {
7120 "description" : "The SDN vnet object identifier.",
7121 "format" : "pve-sdn-vnet-id",
7122 "type" : "string",
7123 "typetext" : "<string>"
7124 }
7125 }
7126 },
7127 "permissions" : {
7128 "check" : [
7129 "perm",
7130 "/sdn/vnets/{vnet}/subnets",
7131 [
7132 "SDN.Allocate"
7133 ]
7134 ]
7135 },
7136 "protected" : 1,
7137 "returns" : {
7138 "type" : "null"
7139 }
7140 },
7141 "GET" : {
7142 "allowtoken" : 1,
7143 "description" : "Read sdn subnet configuration.",
7144 "method" : "GET",
7145 "name" : "read",
7146 "parameters" : {
7147 "additionalProperties" : 0,
7148 "properties" : {
7149 "pending" : {
7150 "description" : "Display pending config.",
7151 "optional" : 1,
7152 "type" : "boolean",
7153 "typetext" : "<boolean>"
7154 },
7155 "running" : {
7156 "description" : "Display running config.",
7157 "optional" : 1,
7158 "type" : "boolean",
7159 "typetext" : "<boolean>"
7160 },
7161 "subnet" : {
7162 "description" : "The SDN subnet object identifier.",
7163 "format" : "pve-sdn-subnet-id",
7164 "type" : "string",
7165 "typetext" : "<string>"
7166 },
7167 "vnet" : {
7168 "description" : "The SDN vnet object identifier.",
7169 "format" : "pve-sdn-vnet-id",
7170 "type" : "string",
7171 "typetext" : "<string>"
7172 }
7173 }
7174 },
7175 "permissions" : {
7176 "check" : [
7177 "perm",
7178 "/sdn/vnets/{vnet}/subnets/{subnet}",
7179 [
7180 "SDN.Allocate"
7181 ]
7182 ]
7183 },
7184 "returns" : {
7185 "type" : "object"
7186 }
7187 },
7188 "PUT" : {
7189 "allowtoken" : 1,
7190 "description" : "Update sdn subnet object configuration.",
7191 "method" : "PUT",
7192 "name" : "update",
7193 "parameters" : {
7194 "additionalProperties" : 0,
7195 "properties" : {
7196 "delete" : {
7197 "description" : "A list of settings you want to delete.",
7198 "format" : "pve-configid-list",
7199 "maxLength" : 4096,
7200 "optional" : 1,
7201 "type" : "string",
7202 "typetext" : "<string>"
7203 },
7204 "digest" : {
7205 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7206 "maxLength" : 40,
7207 "optional" : 1,
7208 "type" : "string",
7209 "typetext" : "<string>"
7210 },
7211 "dnszoneprefix" : {
7212 "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
7213 "format" : "dns-name",
7214 "optional" : 1,
7215 "type" : "string",
7216 "typetext" : "<string>"
7217 },
7218 "gateway" : {
7219 "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
7220 "format" : "ip",
7221 "optional" : 1,
7222 "type" : "string",
7223 "typetext" : "<string>"
7224 },
7225 "snat" : {
7226 "description" : "enable masquerade for this subnet if pve-firewall",
7227 "optional" : 1,
7228 "type" : "boolean",
7229 "typetext" : "<boolean>"
7230 },
7231 "subnet" : {
7232 "description" : "The SDN subnet object identifier.",
7233 "format" : "pve-sdn-subnet-id",
7234 "type" : "string",
7235 "typetext" : "<string>"
7236 },
7237 "vnet" : {
7238 "description" : "associated vnet",
7239 "optional" : 1,
7240 "type" : "string",
7241 "typetext" : "<string>"
7242 }
7243 },
7244 "type" : "object"
7245 },
7246 "permissions" : {
7247 "check" : [
7248 "perm",
7249 "/sdn/vnets/{vnet}/subnets",
7250 [
7251 "SDN.Allocate"
7252 ]
7253 ]
7254 },
7255 "protected" : 1,
7256 "returns" : {
7257 "type" : "null"
7258 }
7259 }
7260 },
7261 "leaf" : 1,
7262 "path" : "/cluster/sdn/vnets/{vnet}/subnets/{subnet}",
7263 "text" : "{subnet}"
7264 }
7265 ],
7266 "info" : {
7267 "GET" : {
7268 "allowtoken" : 1,
7269 "description" : "SDN subnets index.",
7270 "method" : "GET",
7271 "name" : "index",
7272 "parameters" : {
7273 "additionalProperties" : 0,
7274 "properties" : {
7275 "pending" : {
7276 "description" : "Display pending config.",
7277 "optional" : 1,
7278 "type" : "boolean",
7279 "typetext" : "<boolean>"
7280 },
7281 "running" : {
7282 "description" : "Display running config.",
7283 "optional" : 1,
7284 "type" : "boolean",
7285 "typetext" : "<boolean>"
7286 },
7287 "vnet" : {
7288 "description" : "The SDN vnet object identifier.",
7289 "format" : "pve-sdn-vnet-id",
7290 "type" : "string",
7291 "typetext" : "<string>"
7292 }
7293 }
7294 },
7295 "permissions" : {
7296 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/subnets/<subnet>'",
7297 "user" : "all"
7298 },
7299 "returns" : {
7300 "items" : {
7301 "properties" : {},
7302 "type" : "object"
7303 },
7304 "links" : [
7305 {
7306 "href" : "{subnet}",
7307 "rel" : "child"
7308 }
7309 ],
7310 "type" : "array"
7311 }
7312 },
7313 "POST" : {
7314 "allowtoken" : 1,
7315 "description" : "Create a new sdn subnet object.",
7316 "method" : "POST",
7317 "name" : "create",
7318 "parameters" : {
7319 "additionalProperties" : 0,
7320 "properties" : {
7321 "dnszoneprefix" : {
7322 "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
7323 "format" : "dns-name",
7324 "optional" : 1,
7325 "type" : "string",
7326 "typetext" : "<string>"
7327 },
7328 "gateway" : {
7329 "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
7330 "format" : "ip",
7331 "optional" : 1,
7332 "type" : "string",
7333 "typetext" : "<string>"
7334 },
7335 "snat" : {
7336 "description" : "enable masquerade for this subnet if pve-firewall",
7337 "optional" : 1,
7338 "type" : "boolean",
7339 "typetext" : "<boolean>"
7340 },
7341 "subnet" : {
7342 "description" : "The SDN subnet object identifier.",
7343 "format" : "pve-sdn-subnet-id",
7344 "type" : "string",
7345 "typetext" : "<string>"
7346 },
7347 "type" : {
7348 "enum" : [
7349 "subnet"
7350 ],
7351 "type" : "string"
7352 },
7353 "vnet" : {
7354 "description" : "associated vnet",
7355 "optional" : 0,
7356 "type" : "string",
7357 "typetext" : "<string>"
7358 }
7359 },
7360 "type" : "object"
7361 },
7362 "permissions" : {
7363 "check" : [
7364 "perm",
7365 "/sdn/vnets/{vnet}/subnets",
7366 [
7367 "SDN.Allocate"
7368 ]
7369 ]
7370 },
7371 "protected" : 1,
7372 "returns" : {
7373 "type" : "null"
7374 }
7375 }
7376 },
7377 "leaf" : 0,
7378 "path" : "/cluster/sdn/vnets/{vnet}/subnets",
7379 "text" : "subnets"
7380 }
7381 ],
c5aa7e14
TL
7382 "info" : {
7383 "DELETE" : {
7384 "allowtoken" : 1,
7385 "description" : "Delete sdn vnet object configuration.",
7386 "method" : "DELETE",
7387 "name" : "delete",
7388 "parameters" : {
7389 "additionalProperties" : 0,
7390 "properties" : {
7391 "vnet" : {
7392 "description" : "The SDN vnet object identifier.",
7393 "format" : "pve-sdn-vnet-id",
7394 "type" : "string",
7395 "typetext" : "<string>"
7396 }
7397 }
7398 },
7399 "permissions" : {
7400 "check" : [
7401 "perm",
7402 "/sdn/vnets",
7403 [
7404 "SDN.Allocate"
7405 ]
7406 ]
7407 },
7408 "protected" : 1,
7409 "returns" : {
7410 "type" : "null"
7411 }
7412 },
7413 "GET" : {
7414 "allowtoken" : 1,
7415 "description" : "Read sdn vnet configuration.",
7416 "method" : "GET",
7417 "name" : "read",
7418 "parameters" : {
7419 "additionalProperties" : 0,
7420 "properties" : {
d2656385
TL
7421 "pending" : {
7422 "description" : "Display pending config.",
7423 "optional" : 1,
7424 "type" : "boolean",
7425 "typetext" : "<boolean>"
7426 },
7427 "running" : {
7428 "description" : "Display running config.",
7429 "optional" : 1,
7430 "type" : "boolean",
7431 "typetext" : "<boolean>"
7432 },
c5aa7e14
TL
7433 "vnet" : {
7434 "description" : "The SDN vnet object identifier.",
7435 "format" : "pve-sdn-vnet-id",
7436 "type" : "string",
7437 "typetext" : "<string>"
7438 }
7439 }
7440 },
7441 "permissions" : {
7442 "check" : [
7443 "perm",
7444 "/sdn/vnets/{vnet}",
7445 [
7446 "SDN.Allocate"
7447 ]
7448 ]
7449 },
7450 "returns" : {
7451 "type" : "object"
7452 }
7453 },
7454 "PUT" : {
7455 "allowtoken" : 1,
7456 "description" : "Update sdn vnet object configuration.",
7457 "method" : "PUT",
7458 "name" : "update",
7459 "parameters" : {
7460 "additionalProperties" : 0,
7461 "properties" : {
7462 "alias" : {
7463 "description" : "alias name of the vnet",
5370fa8c 7464 "maxLength" : 256,
c5aa7e14 7465 "optional" : 1,
5370fa8c
TL
7466 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
7467 "type" : "string"
c5aa7e14
TL
7468 },
7469 "delete" : {
7470 "description" : "A list of settings you want to delete.",
7471 "format" : "pve-configid-list",
7472 "maxLength" : 4096,
7473 "optional" : 1,
7474 "type" : "string",
7475 "typetext" : "<string>"
7476 },
7477 "digest" : {
7478 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7479 "maxLength" : 40,
7480 "optional" : 1,
7481 "type" : "string",
7482 "typetext" : "<string>"
7483 },
c5aa7e14
TL
7484 "tag" : {
7485 "description" : "vlan or vxlan id",
7486 "optional" : 1,
7487 "type" : "integer",
7488 "typetext" : "<integer>"
7489 },
ac70d7d1
TL
7490 "vlanaware" : {
7491 "description" : "Allow vm VLANs to pass through this vnet.",
7492 "optional" : 1,
7493 "type" : "boolean",
7494 "typetext" : "<boolean>"
7495 },
c5aa7e14
TL
7496 "vnet" : {
7497 "description" : "The SDN vnet object identifier.",
7498 "format" : "pve-sdn-vnet-id",
7499 "type" : "string",
7500 "typetext" : "<string>"
7501 },
7502 "zone" : {
7503 "description" : "zone id",
7504 "optional" : 1,
7505 "type" : "string",
7506 "typetext" : "<string>"
7507 }
7508 },
7509 "type" : "object"
7510 },
7511 "permissions" : {
7512 "check" : [
7513 "perm",
7514 "/sdn/vnets",
7515 [
7516 "SDN.Allocate"
7517 ]
7518 ]
7519 },
7520 "protected" : 1,
7521 "returns" : {
7522 "type" : "null"
7523 }
7524 }
7525 },
d2656385 7526 "leaf" : 0,
c5aa7e14
TL
7527 "path" : "/cluster/sdn/vnets/{vnet}",
7528 "text" : "{vnet}"
7529 }
7530 ],
7531 "info" : {
7532 "GET" : {
7533 "allowtoken" : 1,
7534 "description" : "SDN vnets index.",
7535 "method" : "GET",
7536 "name" : "index",
7537 "parameters" : {
d2656385
TL
7538 "additionalProperties" : 0,
7539 "properties" : {
7540 "pending" : {
7541 "description" : "Display pending config.",
7542 "optional" : 1,
7543 "type" : "boolean",
7544 "typetext" : "<boolean>"
7545 },
7546 "running" : {
7547 "description" : "Display running config.",
7548 "optional" : 1,
7549 "type" : "boolean",
7550 "typetext" : "<boolean>"
7551 }
7552 }
c5aa7e14
TL
7553 },
7554 "permissions" : {
7555 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/vnets/<vnet>'",
7556 "user" : "all"
7557 },
7558 "returns" : {
7559 "items" : {
7560 "properties" : {},
7561 "type" : "object"
7562 },
7563 "links" : [
7564 {
7565 "href" : "{vnet}",
7566 "rel" : "child"
7567 }
7568 ],
7569 "type" : "array"
7570 }
7571 },
7572 "POST" : {
7573 "allowtoken" : 1,
7574 "description" : "Create a new sdn vnet object.",
7575 "method" : "POST",
7576 "name" : "create",
7577 "parameters" : {
7578 "additionalProperties" : 0,
7579 "properties" : {
7580 "alias" : {
7581 "description" : "alias name of the vnet",
5370fa8c 7582 "maxLength" : 256,
c5aa7e14 7583 "optional" : 1,
5370fa8c
TL
7584 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
7585 "type" : "string"
c5aa7e14 7586 },
c5aa7e14
TL
7587 "tag" : {
7588 "description" : "vlan or vxlan id",
ac70d7d1 7589 "optional" : 1,
c5aa7e14
TL
7590 "type" : "integer",
7591 "typetext" : "<integer>"
7592 },
7593 "type" : {
7594 "description" : "Type",
7595 "enum" : [
7596 "vnet"
7597 ],
7598 "optional" : 1,
7599 "type" : "string"
7600 },
ac70d7d1
TL
7601 "vlanaware" : {
7602 "description" : "Allow vm VLANs to pass through this vnet.",
7603 "optional" : 1,
7604 "type" : "boolean",
7605 "typetext" : "<boolean>"
7606 },
c5aa7e14
TL
7607 "vnet" : {
7608 "description" : "The SDN vnet object identifier.",
7609 "format" : "pve-sdn-vnet-id",
7610 "type" : "string",
7611 "typetext" : "<string>"
7612 },
7613 "zone" : {
7614 "description" : "zone id",
7615 "optional" : 0,
7616 "type" : "string",
7617 "typetext" : "<string>"
7618 }
7619 },
7620 "type" : "object"
7621 },
7622 "permissions" : {
7623 "check" : [
7624 "perm",
7625 "/sdn/vnets",
7626 [
7627 "SDN.Allocate"
7628 ]
7629 ]
7630 },
7631 "protected" : 1,
7632 "returns" : {
7633 "type" : "null"
7634 }
7635 }
7636 },
7637 "leaf" : 0,
7638 "path" : "/cluster/sdn/vnets",
7639 "text" : "vnets"
7640 },
7641 {
7642 "children" : [
7643 {
7644 "info" : {
7645 "DELETE" : {
7646 "allowtoken" : 1,
7647 "description" : "Delete sdn zone object configuration.",
7648 "method" : "DELETE",
7649 "name" : "delete",
7650 "parameters" : {
7651 "additionalProperties" : 0,
7652 "properties" : {
7653 "zone" : {
7654 "description" : "The SDN zone object identifier.",
7655 "format" : "pve-sdn-zone-id",
7656 "type" : "string",
7657 "typetext" : "<string>"
7658 }
7659 }
7660 },
7661 "permissions" : {
7662 "check" : [
7663 "perm",
7664 "/sdn/zones",
7665 [
7666 "SDN.Allocate"
7667 ]
7668 ]
7669 },
7670 "protected" : 1,
7671 "returns" : {
7672 "type" : "null"
7673 }
7674 },
7675 "GET" : {
7676 "allowtoken" : 1,
7677 "description" : "Read sdn zone configuration.",
7678 "method" : "GET",
7679 "name" : "read",
7680 "parameters" : {
7681 "additionalProperties" : 0,
7682 "properties" : {
d2656385
TL
7683 "pending" : {
7684 "description" : "Display pending config.",
7685 "optional" : 1,
7686 "type" : "boolean",
7687 "typetext" : "<boolean>"
7688 },
7689 "running" : {
7690 "description" : "Display running config.",
7691 "optional" : 1,
7692 "type" : "boolean",
7693 "typetext" : "<boolean>"
7694 },
c5aa7e14
TL
7695 "zone" : {
7696 "description" : "The SDN zone object identifier.",
7697 "format" : "pve-sdn-zone-id",
7698 "type" : "string",
7699 "typetext" : "<string>"
7700 }
7701 }
7702 },
7703 "permissions" : {
7704 "check" : [
7705 "perm",
7706 "/sdn/zones/{zone}",
7707 [
7708 "SDN.Allocate"
7709 ]
7710 ]
7711 },
7712 "returns" : {
7713 "type" : "object"
7714 }
7715 },
7716 "PUT" : {
7717 "allowtoken" : 1,
7718 "description" : "Update sdn zone object configuration.",
7719 "method" : "PUT",
7720 "name" : "update",
7721 "parameters" : {
7722 "additionalProperties" : 0,
7723 "properties" : {
5370fa8c
TL
7724 "advertise-subnets" : {
7725 "description" : "Advertise evpn subnets if you have silent hosts",
7726 "optional" : 1,
7727 "type" : "boolean",
7728 "typetext" : "<boolean>"
7729 },
c5aa7e14
TL
7730 "bridge" : {
7731 "optional" : 1,
7732 "type" : "string",
7733 "typetext" : "<string>"
7734 },
7af2edf9
TL
7735 "bridge-disable-mac-learning" : {
7736 "description" : "Disable auto mac learning.",
7737 "optional" : 1,
7738 "type" : "boolean",
7739 "typetext" : "<boolean>"
7740 },
c5aa7e14
TL
7741 "controller" : {
7742 "description" : "Frr router name",
7743 "optional" : 1,
7744 "type" : "string",
7745 "typetext" : "<string>"
7746 },
7747 "delete" : {
7748 "description" : "A list of settings you want to delete.",
7749 "format" : "pve-configid-list",
7750 "maxLength" : 4096,
7751 "optional" : 1,
7752 "type" : "string",
7753 "typetext" : "<string>"
7754 },
7755 "digest" : {
7756 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7757 "maxLength" : 40,
7758 "optional" : 1,
7759 "type" : "string",
7760 "typetext" : "<string>"
7761 },
5370fa8c
TL
7762 "disable-arp-nd-suppression" : {
7763 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
7764 "optional" : 1,
7765 "type" : "boolean",
7766 "typetext" : "<boolean>"
7767 },
d2656385
TL
7768 "dns" : {
7769 "description" : "dns api server",
7770 "optional" : 1,
7771 "type" : "string",
7772 "typetext" : "<string>"
7773 },
7774 "dnszone" : {
7775 "description" : "dns domain zone ex: mydomain.com",
7776 "format" : "dns-name",
7777 "optional" : 1,
7778 "type" : "string",
7779 "typetext" : "<string>"
7780 },
c5aa7e14
TL
7781 "dp-id" : {
7782 "description" : "Faucet dataplane id",
7783 "optional" : 1,
7784 "type" : "integer",
7785 "typetext" : "<integer>"
7786 },
d2656385
TL
7787 "exitnodes" : {
7788 "description" : "List of cluster node names.",
7789 "format" : "pve-node-list",
7790 "optional" : 1,
7791 "type" : "string",
7792 "typetext" : "<string>"
7793 },
5370fa8c
TL
7794 "exitnodes-local-routing" : {
7795 "description" : "Allow exitnodes to connect to evpn guests",
7796 "optional" : 1,
7797 "type" : "boolean",
7798 "typetext" : "<boolean>"
7799 },
c30bb419
TL
7800 "exitnodes-primary" : {
7801 "description" : "Force traffic to this exitnode first.",
7802 "format" : "pve-node",
7803 "optional" : 1,
7804 "type" : "string",
7805 "typetext" : "<string>"
7806 },
d2656385
TL
7807 "ipam" : {
7808 "description" : "use a specific ipam",
e7084ef7 7809 "optional" : 1,
d2656385
TL
7810 "type" : "string",
7811 "typetext" : "<string>"
7812 },
7813 "mac" : {
7814 "description" : "Anycast logical router mac address",
7815 "format" : "mac-addr",
7816 "optional" : 1,
7817 "type" : "string",
7818 "typetext" : "<string>"
7819 },
c5aa7e14 7820 "mtu" : {
ac70d7d1 7821 "description" : "MTU",
c5aa7e14
TL
7822 "optional" : 1,
7823 "type" : "integer",
7824 "typetext" : "<integer>"
7825 },
7826 "nodes" : {
7827 "description" : "List of cluster node names.",
7828 "format" : "pve-node-list",
7829 "optional" : 1,
7830 "type" : "string",
7831 "typetext" : "<string>"
7832 },
7833 "peers" : {
7834 "description" : "peers address list.",
7835 "format" : "ip-list",
7836 "optional" : 1,
7837 "type" : "string",
7838 "typetext" : "<string>"
7839 },
d2656385
TL
7840 "reversedns" : {
7841 "description" : "reverse dns api server",
7842 "optional" : 1,
7843 "type" : "string",
7844 "typetext" : "<string>"
7845 },
c30bb419
TL
7846 "rt-import" : {
7847 "description" : "Route-Target import",
7848 "format" : "pve-sdn-bgp-rt-list",
7849 "optional" : 1,
7850 "type" : "string",
7851 "typetext" : "<string>"
7852 },
c5aa7e14 7853 "tag" : {
ac70d7d1
TL
7854 "description" : "Service-VLAN Tag",
7855 "minimum" : 0,
c5aa7e14
TL
7856 "optional" : 1,
7857 "type" : "integer",
ac70d7d1
TL
7858 "typetext" : "<integer> (0 - N)"
7859 },
7860 "vlan-protocol" : {
7861 "default" : "802.1q",
7862 "enum" : [
7863 "802.1q",
7864 "802.1ad"
7865 ],
7866 "optional" : 1,
7867 "type" : "string"
c5aa7e14
TL
7868 },
7869 "vrf-vxlan" : {
7870 "description" : "l3vni.",
7871 "optional" : 1,
7872 "type" : "integer",
7873 "typetext" : "<integer>"
7874 },
4a407cfd
TL
7875 "vxlan-port" : {
7876 "description" : "Vxlan tunnel udp port (default 4789).",
7877 "maximum" : 65536,
7878 "minimum" : 1,
7879 "optional" : 1,
7880 "type" : "integer",
7881 "typetext" : "<integer> (1 - 65536)"
7882 },
c5aa7e14
TL
7883 "zone" : {
7884 "description" : "The SDN zone object identifier.",
7885 "format" : "pve-sdn-zone-id",
7886 "type" : "string",
7887 "typetext" : "<string>"
7888 }
7889 },
7890 "type" : "object"
7891 },
7892 "permissions" : {
7893 "check" : [
7894 "perm",
7895 "/sdn/zones",
7896 [
7897 "SDN.Allocate"
7898 ]
7899 ]
7900 },
7901 "protected" : 1,
7902 "returns" : {
7903 "type" : "null"
7904 }
7905 }
7906 },
7907 "leaf" : 1,
7908 "path" : "/cluster/sdn/zones/{zone}",
7909 "text" : "{zone}"
7910 }
7911 ],
7912 "info" : {
7913 "GET" : {
7914 "allowtoken" : 1,
7915 "description" : "SDN zones index.",
7916 "method" : "GET",
7917 "name" : "index",
7918 "parameters" : {
7919 "additionalProperties" : 0,
7920 "properties" : {
d2656385
TL
7921 "pending" : {
7922 "description" : "Display pending config.",
7923 "optional" : 1,
7924 "type" : "boolean",
7925 "typetext" : "<boolean>"
7926 },
7927 "running" : {
7928 "description" : "Display running config.",
7929 "optional" : 1,
7930 "type" : "boolean",
7931 "typetext" : "<boolean>"
7932 },
c5aa7e14 7933 "type" : {
e7084ef7 7934 "description" : "Only list SDN zones of specific type",
c5aa7e14
TL
7935 "enum" : [
7936 "evpn",
7937 "faucet",
7938 "qinq",
ac70d7d1 7939 "simple",
c5aa7e14
TL
7940 "vlan",
7941 "vxlan"
7942 ],
7943 "optional" : 1,
7944 "type" : "string"
7945 }
7946 }
7947 },
7948 "permissions" : {
7949 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>'",
7950 "user" : "all"
7951 },
7952 "returns" : {
7953 "items" : {
7954 "properties" : {
d2656385
TL
7955 "dns" : {
7956 "optional" : 1,
7957 "type" : "string"
7958 },
7959 "dnszone" : {
7960 "optional" : 1,
7961 "type" : "string"
7962 },
7963 "ipam" : {
7964 "optional" : 1,
7965 "type" : "string"
7966 },
7967 "mtu" : {
7968 "optional" : 1,
7969 "type" : "integer"
7970 },
7971 "nodes" : {
7972 "optional" : 1,
7973 "type" : "string"
7974 },
7975 "pending" : {
7976 "optional" : 1
7977 },
7978 "reversedns" : {
7979 "optional" : 1,
7980 "type" : "string"
7981 },
7982 "state" : {
7983 "optional" : 1,
7984 "type" : "string"
7985 },
c5aa7e14
TL
7986 "type" : {
7987 "type" : "string"
7988 },
7989 "zone" : {
7990 "type" : "string"
7991 }
7992 },
7993 "type" : "object"
7994 },
7995 "links" : [
7996 {
7997 "href" : "{zone}",
7998 "rel" : "child"
7999 }
8000 ],
8001 "type" : "array"
8002 }
8003 },
8004 "POST" : {
8005 "allowtoken" : 1,
8006 "description" : "Create a new sdn zone object.",
8007 "method" : "POST",
8008 "name" : "create",
8009 "parameters" : {
8010 "additionalProperties" : 0,
8011 "properties" : {
5370fa8c
TL
8012 "advertise-subnets" : {
8013 "description" : "Advertise evpn subnets if you have silent hosts",
8014 "optional" : 1,
8015 "type" : "boolean",
8016 "typetext" : "<boolean>"
8017 },
c5aa7e14
TL
8018 "bridge" : {
8019 "optional" : 1,
8020 "type" : "string",
8021 "typetext" : "<string>"
8022 },
7af2edf9
TL
8023 "bridge-disable-mac-learning" : {
8024 "description" : "Disable auto mac learning.",
8025 "optional" : 1,
8026 "type" : "boolean",
8027 "typetext" : "<boolean>"
8028 },
c5aa7e14
TL
8029 "controller" : {
8030 "description" : "Frr router name",
8031 "optional" : 1,
8032 "type" : "string",
8033 "typetext" : "<string>"
8034 },
5370fa8c
TL
8035 "disable-arp-nd-suppression" : {
8036 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
8037 "optional" : 1,
8038 "type" : "boolean",
8039 "typetext" : "<boolean>"
8040 },
d2656385
TL
8041 "dns" : {
8042 "description" : "dns api server",
8043 "optional" : 1,
8044 "type" : "string",
8045 "typetext" : "<string>"
8046 },
8047 "dnszone" : {
8048 "description" : "dns domain zone ex: mydomain.com",
8049 "format" : "dns-name",
8050 "optional" : 1,
8051 "type" : "string",
8052 "typetext" : "<string>"
8053 },
c5aa7e14
TL
8054 "dp-id" : {
8055 "description" : "Faucet dataplane id",
8056 "optional" : 1,
8057 "type" : "integer",
8058 "typetext" : "<integer>"
8059 },
d2656385
TL
8060 "exitnodes" : {
8061 "description" : "List of cluster node names.",
8062 "format" : "pve-node-list",
8063 "optional" : 1,
8064 "type" : "string",
8065 "typetext" : "<string>"
8066 },
5370fa8c
TL
8067 "exitnodes-local-routing" : {
8068 "description" : "Allow exitnodes to connect to evpn guests",
8069 "optional" : 1,
8070 "type" : "boolean",
8071 "typetext" : "<boolean>"
8072 },
c30bb419
TL
8073 "exitnodes-primary" : {
8074 "description" : "Force traffic to this exitnode first.",
8075 "format" : "pve-node",
8076 "optional" : 1,
8077 "type" : "string",
8078 "typetext" : "<string>"
8079 },
d2656385
TL
8080 "ipam" : {
8081 "description" : "use a specific ipam",
e7084ef7 8082 "optional" : 1,
d2656385
TL
8083 "type" : "string",
8084 "typetext" : "<string>"
8085 },
8086 "mac" : {
8087 "description" : "Anycast logical router mac address",
8088 "format" : "mac-addr",
8089 "optional" : 1,
8090 "type" : "string",
8091 "typetext" : "<string>"
8092 },
c5aa7e14 8093 "mtu" : {
ac70d7d1 8094 "description" : "MTU",
c5aa7e14
TL
8095 "optional" : 1,
8096 "type" : "integer",
8097 "typetext" : "<integer>"
8098 },
8099 "nodes" : {
8100 "description" : "List of cluster node names.",
8101 "format" : "pve-node-list",
8102 "optional" : 1,
8103 "type" : "string",
8104 "typetext" : "<string>"
8105 },
8106 "peers" : {
8107 "description" : "peers address list.",
8108 "format" : "ip-list",
8109 "optional" : 1,
8110 "type" : "string",
8111 "typetext" : "<string>"
8112 },
d2656385
TL
8113 "reversedns" : {
8114 "description" : "reverse dns api server",
8115 "optional" : 1,
8116 "type" : "string",
8117 "typetext" : "<string>"
8118 },
c30bb419
TL
8119 "rt-import" : {
8120 "description" : "Route-Target import",
8121 "format" : "pve-sdn-bgp-rt-list",
8122 "optional" : 1,
8123 "type" : "string",
8124 "typetext" : "<string>"
8125 },
c5aa7e14 8126 "tag" : {
ac70d7d1
TL
8127 "description" : "Service-VLAN Tag",
8128 "minimum" : 0,
c5aa7e14
TL
8129 "optional" : 1,
8130 "type" : "integer",
ac70d7d1 8131 "typetext" : "<integer> (0 - N)"
c5aa7e14
TL
8132 },
8133 "type" : {
8134 "description" : "Plugin type.",
8135 "enum" : [
8136 "evpn",
8137 "faucet",
8138 "qinq",
ac70d7d1 8139 "simple",
c5aa7e14
TL
8140 "vlan",
8141 "vxlan"
8142 ],
8143 "format" : "pve-configid",
8144 "type" : "string"
8145 },
ac70d7d1
TL
8146 "vlan-protocol" : {
8147 "default" : "802.1q",
8148 "enum" : [
8149 "802.1q",
8150 "802.1ad"
8151 ],
8152 "optional" : 1,
8153 "type" : "string"
8154 },
c5aa7e14
TL
8155 "vrf-vxlan" : {
8156 "description" : "l3vni.",
8157 "optional" : 1,
8158 "type" : "integer",
8159 "typetext" : "<integer>"
8160 },
4a407cfd
TL
8161 "vxlan-port" : {
8162 "description" : "Vxlan tunnel udp port (default 4789).",
8163 "maximum" : 65536,
8164 "minimum" : 1,
8165 "optional" : 1,
8166 "type" : "integer",
8167 "typetext" : "<integer> (1 - 65536)"
8168 },
c5aa7e14
TL
8169 "zone" : {
8170 "description" : "The SDN zone object identifier.",
8171 "format" : "pve-sdn-zone-id",
8172 "type" : "string",
8173 "typetext" : "<string>"
8174 }
8175 },
8176 "type" : "object"
8177 },
8178 "permissions" : {
8179 "check" : [
8180 "perm",
8181 "/sdn/zones",
8182 [
8183 "SDN.Allocate"
8184 ]
8185 ]
8186 },
8187 "protected" : 1,
8188 "returns" : {
8189 "type" : "null"
8190 }
8191 }
8192 },
8193 "leaf" : 0,
8194 "path" : "/cluster/sdn/zones",
8195 "text" : "zones"
8196 },
8197 {
8198 "children" : [
8199 {
8200 "info" : {
8201 "DELETE" : {
8202 "allowtoken" : 1,
8203 "description" : "Delete sdn controller object configuration.",
8204 "method" : "DELETE",
8205 "name" : "delete",
8206 "parameters" : {
8207 "additionalProperties" : 0,
8208 "properties" : {
8209 "controller" : {
8210 "description" : "The SDN controller object identifier.",
8211 "format" : "pve-sdn-controller-id",
8212 "type" : "string",
8213 "typetext" : "<string>"
8214 }
8215 }
8216 },
8217 "permissions" : {
8218 "check" : [
8219 "perm",
8220 "/sdn/controllers",
8221 [
8222 "SDN.Allocate"
8223 ]
8224 ]
8225 },
8226 "protected" : 1,
8227 "returns" : {
8228 "type" : "null"
8229 }
8230 },
8231 "GET" : {
8232 "allowtoken" : 1,
8233 "description" : "Read sdn controller configuration.",
8234 "method" : "GET",
8235 "name" : "read",
8236 "parameters" : {
8237 "additionalProperties" : 0,
8238 "properties" : {
8239 "controller" : {
8240 "description" : "The SDN controller object identifier.",
8241 "format" : "pve-sdn-controller-id",
8242 "type" : "string",
8243 "typetext" : "<string>"
d2656385
TL
8244 },
8245 "pending" : {
8246 "description" : "Display pending config.",
8247 "optional" : 1,
8248 "type" : "boolean",
8249 "typetext" : "<boolean>"
8250 },
8251 "running" : {
8252 "description" : "Display running config.",
8253 "optional" : 1,
8254 "type" : "boolean",
8255 "typetext" : "<boolean>"
c5aa7e14
TL
8256 }
8257 }
8258 },
8259 "permissions" : {
8260 "check" : [
8261 "perm",
8262 "/sdn/controllers/{controller}",
8263 [
8264 "SDN.Allocate"
8265 ]
8266 ]
8267 },
8268 "returns" : {
8269 "type" : "object"
8270 }
8271 },
8272 "PUT" : {
8273 "allowtoken" : 1,
8274 "description" : "Update sdn controller object configuration.",
8275 "method" : "PUT",
8276 "name" : "update",
8277 "parameters" : {
8278 "additionalProperties" : 0,
8279 "properties" : {
8280 "asn" : {
8281 "description" : "autonomous system number",
c30bb419
TL
8282 "maximum" : 4294967296,
8283 "minimum" : 0,
c5aa7e14
TL
8284 "optional" : 1,
8285 "type" : "integer",
c30bb419
TL
8286 "typetext" : "<integer> (0 - 4294967296)"
8287 },
8288 "bgp-multipath-as-path-relax" : {
8289 "optional" : 1,
8290 "type" : "boolean",
8291 "typetext" : "<boolean>"
c5aa7e14
TL
8292 },
8293 "controller" : {
8294 "description" : "The SDN controller object identifier.",
8295 "format" : "pve-sdn-controller-id",
8296 "type" : "string",
8297 "typetext" : "<string>"
8298 },
8299 "delete" : {
8300 "description" : "A list of settings you want to delete.",
8301 "format" : "pve-configid-list",
8302 "maxLength" : 4096,
8303 "optional" : 1,
8304 "type" : "string",
8305 "typetext" : "<string>"
8306 },
8307 "digest" : {
8308 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
8309 "maxLength" : 40,
8310 "optional" : 1,
8311 "type" : "string",
8312 "typetext" : "<string>"
8313 },
d2656385
TL
8314 "ebgp" : {
8315 "description" : "Enable ebgp. (remote-as external)",
8316 "optional" : 1,
8317 "type" : "boolean",
8318 "typetext" : "<boolean>"
8319 },
8320 "ebgp-multihop" : {
8321 "optional" : 1,
8322 "type" : "integer",
8323 "typetext" : "<integer>"
8324 },
8325 "loopback" : {
8326 "description" : "source loopback interface.",
c5aa7e14
TL
8327 "optional" : 1,
8328 "type" : "string",
8329 "typetext" : "<string>"
8330 },
d2656385
TL
8331 "node" : {
8332 "description" : "The cluster node name.",
8333 "format" : "pve-node",
c5aa7e14
TL
8334 "optional" : 1,
8335 "type" : "string",
8336 "typetext" : "<string>"
8337 },
8338 "peers" : {
8339 "description" : "peers address list.",
8340 "format" : "ip-list",
8341 "optional" : 1,
8342 "type" : "string",
8343 "typetext" : "<string>"
8344 }
8345 },
8346 "type" : "object"
8347 },
8348 "permissions" : {
8349 "check" : [
8350 "perm",
8351 "/sdn/controllers",
8352 [
8353 "SDN.Allocate"
8354 ]
8355 ]
8356 },
8357 "protected" : 1,
8358 "returns" : {
8359 "type" : "null"
8360 }
8361 }
8362 },
8363 "leaf" : 1,
8364 "path" : "/cluster/sdn/controllers/{controller}",
8365 "text" : "{controller}"
8366 }
8367 ],
8368 "info" : {
8369 "GET" : {
8370 "allowtoken" : 1,
8371 "description" : "SDN controllers index.",
8372 "method" : "GET",
8373 "name" : "index",
8374 "parameters" : {
8375 "additionalProperties" : 0,
8376 "properties" : {
d2656385
TL
8377 "pending" : {
8378 "description" : "Display pending config.",
8379 "optional" : 1,
8380 "type" : "boolean",
8381 "typetext" : "<boolean>"
8382 },
8383 "running" : {
8384 "description" : "Display running config.",
8385 "optional" : 1,
8386 "type" : "boolean",
8387 "typetext" : "<boolean>"
8388 },
c5aa7e14
TL
8389 "type" : {
8390 "description" : "Only list sdn controllers of specific type",
8391 "enum" : [
d2656385 8392 "bgp",
c5aa7e14
TL
8393 "evpn",
8394 "faucet"
8395 ],
8396 "optional" : 1,
8397 "type" : "string"
8398 }
8399 }
8400 },
8401 "permissions" : {
8402 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/controllers/<controller>'",
8403 "user" : "all"
8404 },
8405 "returns" : {
8406 "items" : {
8407 "properties" : {
8408 "controller" : {
8409 "type" : "string"
8410 },
d2656385
TL
8411 "pending" : {
8412 "optional" : 1
8413 },
8414 "state" : {
8415 "optional" : 1,
8416 "type" : "string"
8417 },
c5aa7e14
TL
8418 "type" : {
8419 "type" : "string"
8420 }
8421 },
8422 "type" : "object"
8423 },
8424 "links" : [
8425 {
8426 "href" : "{controller}",
8427 "rel" : "child"
8428 }
8429 ],
8430 "type" : "array"
8431 }
8432 },
8433 "POST" : {
8434 "allowtoken" : 1,
8435 "description" : "Create a new sdn controller object.",
8436 "method" : "POST",
8437 "name" : "create",
8438 "parameters" : {
8439 "additionalProperties" : 0,
8440 "properties" : {
8441 "asn" : {
8442 "description" : "autonomous system number",
c30bb419
TL
8443 "maximum" : 4294967296,
8444 "minimum" : 0,
c5aa7e14
TL
8445 "optional" : 1,
8446 "type" : "integer",
c30bb419
TL
8447 "typetext" : "<integer> (0 - 4294967296)"
8448 },
8449 "bgp-multipath-as-path-relax" : {
8450 "optional" : 1,
8451 "type" : "boolean",
8452 "typetext" : "<boolean>"
c5aa7e14
TL
8453 },
8454 "controller" : {
8455 "description" : "The SDN controller object identifier.",
8456 "format" : "pve-sdn-controller-id",
8457 "type" : "string",
8458 "typetext" : "<string>"
8459 },
d2656385
TL
8460 "ebgp" : {
8461 "description" : "Enable ebgp. (remote-as external)",
8462 "optional" : 1,
8463 "type" : "boolean",
8464 "typetext" : "<boolean>"
8465 },
8466 "ebgp-multihop" : {
8467 "optional" : 1,
8468 "type" : "integer",
8469 "typetext" : "<integer>"
8470 },
8471 "loopback" : {
8472 "description" : "source loopback interface.",
c5aa7e14
TL
8473 "optional" : 1,
8474 "type" : "string",
8475 "typetext" : "<string>"
8476 },
d2656385
TL
8477 "node" : {
8478 "description" : "The cluster node name.",
8479 "format" : "pve-node",
c5aa7e14
TL
8480 "optional" : 1,
8481 "type" : "string",
8482 "typetext" : "<string>"
8483 },
8484 "peers" : {
8485 "description" : "peers address list.",
8486 "format" : "ip-list",
8487 "optional" : 1,
8488 "type" : "string",
8489 "typetext" : "<string>"
8490 },
8491 "type" : {
8492 "description" : "Plugin type.",
8493 "enum" : [
d2656385 8494 "bgp",
c5aa7e14
TL
8495 "evpn",
8496 "faucet"
8497 ],
8498 "format" : "pve-configid",
8499 "type" : "string"
8500 }
8501 },
8502 "type" : "object"
8503 },
8504 "permissions" : {
8505 "check" : [
8506 "perm",
8507 "/sdn/controllers",
8508 [
8509 "SDN.Allocate"
8510 ]
8511 ]
8512 },
8513 "protected" : 1,
8514 "returns" : {
8515 "type" : "null"
8516 }
8517 }
8518 },
8519 "leaf" : 0,
8520 "path" : "/cluster/sdn/controllers",
8521 "text" : "controllers"
d2656385
TL
8522 },
8523 {
8524 "children" : [
8525 {
8526 "info" : {
8527 "DELETE" : {
8528 "allowtoken" : 1,
8529 "description" : "Delete sdn ipam object configuration.",
8530 "method" : "DELETE",
8531 "name" : "delete",
8532 "parameters" : {
8533 "additionalProperties" : 0,
8534 "properties" : {
8535 "ipam" : {
8536 "description" : "The SDN ipam object identifier.",
8537 "format" : "pve-sdn-ipam-id",
8538 "type" : "string",
8539 "typetext" : "<string>"
8540 }
8541 }
8542 },
8543 "permissions" : {
8544 "check" : [
8545 "perm",
8546 "/sdn/ipams",
8547 [
8548 "SDN.Allocate"
8549 ]
8550 ]
8551 },
8552 "protected" : 1,
8553 "returns" : {
8554 "type" : "null"
8555 }
8556 },
8557 "GET" : {
8558 "allowtoken" : 1,
8559 "description" : "Read sdn ipam configuration.",
8560 "method" : "GET",
8561 "name" : "read",
8562 "parameters" : {
8563 "additionalProperties" : 0,
8564 "properties" : {
8565 "ipam" : {
8566 "description" : "The SDN ipam object identifier.",
8567 "format" : "pve-sdn-ipam-id",
8568 "type" : "string",
8569 "typetext" : "<string>"
8570 }
8571 }
8572 },
8573 "permissions" : {
8574 "check" : [
8575 "perm",
8576 "/sdn/ipams/{ipam}",
8577 [
8578 "SDN.Allocate"
8579 ]
8580 ]
8581 },
8582 "returns" : {
8583 "type" : "object"
8584 }
8585 },
8586 "PUT" : {
8587 "allowtoken" : 1,
8588 "description" : "Update sdn ipam object configuration.",
8589 "method" : "PUT",
8590 "name" : "update",
8591 "parameters" : {
8592 "additionalProperties" : 0,
8593 "properties" : {
8594 "delete" : {
8595 "description" : "A list of settings you want to delete.",
8596 "format" : "pve-configid-list",
8597 "maxLength" : 4096,
8598 "optional" : 1,
8599 "type" : "string",
8600 "typetext" : "<string>"
8601 },
8602 "digest" : {
8603 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
8604 "maxLength" : 40,
8605 "optional" : 1,
8606 "type" : "string",
8607 "typetext" : "<string>"
8608 },
8609 "ipam" : {
8610 "description" : "The SDN ipam object identifier.",
8611 "format" : "pve-sdn-ipam-id",
8612 "type" : "string",
8613 "typetext" : "<string>"
8614 },
8615 "section" : {
8616 "optional" : 1,
8617 "type" : "integer",
8618 "typetext" : "<integer>"
8619 },
8620 "token" : {
8621 "optional" : 1,
8622 "type" : "string",
8623 "typetext" : "<string>"
8624 },
8625 "url" : {
8626 "optional" : 1,
8627 "type" : "string",
8628 "typetext" : "<string>"
8629 }
8630 },
8631 "type" : "object"
8632 },
8633 "permissions" : {
8634 "check" : [
8635 "perm",
8636 "/sdn/ipams",
8637 [
8638 "SDN.Allocate"
8639 ]
8640 ]
8641 },
8642 "protected" : 1,
8643 "returns" : {
8644 "type" : "null"
8645 }
c5aa7e14
TL
8646 }
8647 },
d2656385
TL
8648 "leaf" : 1,
8649 "path" : "/cluster/sdn/ipams/{ipam}",
8650 "text" : "{ipam}"
7aacca6f 8651 }
d2656385
TL
8652 ],
8653 "info" : {
8654 "GET" : {
8655 "allowtoken" : 1,
8656 "description" : "SDN ipams index.",
8657 "method" : "GET",
8658 "name" : "index",
8659 "parameters" : {
8660 "additionalProperties" : 0,
8661 "properties" : {
8662 "type" : {
8663 "description" : "Only list sdn ipams of specific type",
8664 "enum" : [
8665 "netbox",
8666 "phpipam",
8667 "pve"
8668 ],
8669 "optional" : 1,
8670 "type" : "string"
8671 }
8672 }
8673 },
8674 "permissions" : {
8675 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/ipams/<ipam>'",
8676 "user" : "all"
8677 },
8678 "returns" : {
8679 "items" : {
8680 "properties" : {
8681 "ipam" : {
8682 "type" : "string"
8683 },
8684 "type" : {
8685 "type" : "string"
8686 }
8687 },
8688 "type" : "object"
8689 },
8690 "links" : [
8691 {
8692 "href" : "{ipam}",
8693 "rel" : "child"
8694 }
44660702 8695 ],
d2656385
TL
8696 "type" : "array"
8697 }
8698 },
8699 "POST" : {
8700 "allowtoken" : 1,
8701 "description" : "Create a new sdn ipam object.",
8702 "method" : "POST",
8703 "name" : "create",
8704 "parameters" : {
8705 "additionalProperties" : 0,
8706 "properties" : {
8707 "ipam" : {
8708 "description" : "The SDN ipam object identifier.",
8709 "format" : "pve-sdn-ipam-id",
8710 "type" : "string",
8711 "typetext" : "<string>"
8712 },
8713 "section" : {
8714 "optional" : 1,
8715 "type" : "integer",
8716 "typetext" : "<integer>"
8717 },
8718 "token" : {
8719 "optional" : 1,
8720 "type" : "string",
8721 "typetext" : "<string>"
8722 },
8723 "type" : {
8724 "description" : "Plugin type.",
8725 "enum" : [
8726 "netbox",
8727 "phpipam",
8728 "pve"
8729 ],
8730 "format" : "pve-configid",
8731 "type" : "string"
8732 },
8733 "url" : {
8734 "optional" : 1,
8735 "type" : "string",
8736 "typetext" : "<string>"
8737 }
8738 },
8739 "type" : "object"
8740 },
8741 "permissions" : {
8742 "check" : [
8743 "perm",
8744 "/sdn/ipams",
8745 [
8746 "SDN.Allocate"
8747 ]
8748 ]
8749 },
8750 "protected" : 1,
8751 "returns" : {
8752 "type" : "null"
56122987
DM
8753 }
8754 }
8755 },
d2656385
TL
8756 "leaf" : 0,
8757 "path" : "/cluster/sdn/ipams",
8758 "text" : "ipams"
8759 },
8760 {
8761 "children" : [
8762 {
8763 "info" : {
8764 "DELETE" : {
8765 "allowtoken" : 1,
8766 "description" : "Delete sdn dns object configuration.",
8767 "method" : "DELETE",
8768 "name" : "delete",
8769 "parameters" : {
8770 "additionalProperties" : 0,
8771 "properties" : {
8772 "dns" : {
8773 "description" : "The SDN dns object identifier.",
8774 "format" : "pve-sdn-dns-id",
8775 "type" : "string",
8776 "typetext" : "<string>"
8777 }
8778 }
8779 },
8780 "permissions" : {
8781 "check" : [
8782 "perm",
8783 "/sdn/dns",
8784 [
8785 "SDN.Allocate"
8786 ]
8787 ]
8788 },
8789 "protected" : 1,
8790 "returns" : {
8791 "type" : "null"
8792 }
8793 },
8794 "GET" : {
8795 "allowtoken" : 1,
8796 "description" : "Read sdn dns configuration.",
8797 "method" : "GET",
8798 "name" : "read",
8799 "parameters" : {
8800 "additionalProperties" : 0,
8801 "properties" : {
8802 "dns" : {
8803 "description" : "The SDN dns object identifier.",
8804 "format" : "pve-sdn-dns-id",
8805 "type" : "string",
8806 "typetext" : "<string>"
8807 }
8808 }
8809 },
8810 "permissions" : {
8811 "check" : [
8812 "perm",
8813 "/sdn/dns/{dns}",
8814 [
8815 "SDN.Allocate"
8816 ]
8817 ]
8818 },
8819 "returns" : {
8820 "type" : "object"
8821 }
8822 },
8823 "PUT" : {
8824 "allowtoken" : 1,
8825 "description" : "Update sdn dns object configuration.",
8826 "method" : "PUT",
8827 "name" : "update",
8828 "parameters" : {
8829 "additionalProperties" : 0,
8830 "properties" : {
8831 "delete" : {
8832 "description" : "A list of settings you want to delete.",
8833 "format" : "pve-configid-list",
8834 "maxLength" : 4096,
8835 "optional" : 1,
8836 "type" : "string",
8837 "typetext" : "<string>"
8838 },
8839 "digest" : {
8840 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
8841 "maxLength" : 40,
8842 "optional" : 1,
8843 "type" : "string",
8844 "typetext" : "<string>"
8845 },
8846 "dns" : {
8847 "description" : "The SDN dns object identifier.",
8848 "format" : "pve-sdn-dns-id",
8849 "type" : "string",
8850 "typetext" : "<string>"
8851 },
8852 "key" : {
8853 "optional" : 1,
8854 "type" : "string",
8855 "typetext" : "<string>"
8856 },
8857 "reversemaskv6" : {
8858 "optional" : 1,
8859 "type" : "integer",
8860 "typetext" : "<integer>"
8861 },
8862 "ttl" : {
8863 "optional" : 1,
8864 "type" : "integer",
8865 "typetext" : "<integer>"
8866 },
8867 "url" : {
8868 "optional" : 1,
8869 "type" : "string",
8870 "typetext" : "<string>"
8871 }
8872 },
8873 "type" : "object"
8874 },
8875 "permissions" : {
8876 "check" : [
8877 "perm",
8878 "/sdn/dns",
8879 [
8880 "SDN.Allocate"
8881 ]
8882 ]
8883 },
8884 "protected" : 1,
8885 "returns" : {
8886 "type" : "null"
8887 }
8888 }
8889 },
8890 "leaf" : 1,
8891 "path" : "/cluster/sdn/dns/{dns}",
8892 "text" : "{dns}"
8893 }
8894 ],
8895 "info" : {
8896 "GET" : {
8897 "allowtoken" : 1,
8898 "description" : "SDN dns index.",
8899 "method" : "GET",
8900 "name" : "index",
8901 "parameters" : {
8902 "additionalProperties" : 0,
8903 "properties" : {
8904 "type" : {
8905 "description" : "Only list sdn dns of specific type",
8906 "enum" : [
8907 "powerdns"
8908 ],
8909 "optional" : 1,
8910 "type" : "string"
8911 }
8912 }
8913 },
8914 "permissions" : {
8915 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/dns/<dns>'",
8916 "user" : "all"
8917 },
8918 "returns" : {
8919 "items" : {
8920 "properties" : {
8921 "dns" : {
8922 "type" : "string"
8923 },
8924 "type" : {
8925 "type" : "string"
8926 }
8927 },
8928 "type" : "object"
8929 },
8930 "links" : [
8931 {
8932 "href" : "{dns}",
8933 "rel" : "child"
8934 }
8935 ],
8936 "type" : "array"
8937 }
8938 },
8939 "POST" : {
8940 "allowtoken" : 1,
8941 "description" : "Create a new sdn dns object.",
8942 "method" : "POST",
8943 "name" : "create",
8944 "parameters" : {
8945 "additionalProperties" : 0,
8946 "properties" : {
8947 "dns" : {
8948 "description" : "The SDN dns object identifier.",
8949 "format" : "pve-sdn-dns-id",
8950 "type" : "string",
8951 "typetext" : "<string>"
8952 },
8953 "key" : {
8954 "optional" : 0,
8955 "type" : "string",
8956 "typetext" : "<string>"
8957 },
8958 "reversemaskv6" : {
8959 "optional" : 1,
8960 "type" : "integer",
8961 "typetext" : "<integer>"
8962 },
8963 "reversev6mask" : {
8964 "optional" : 1,
8965 "type" : "integer",
8966 "typetext" : "<integer>"
8967 },
8968 "ttl" : {
8969 "optional" : 1,
8970 "type" : "integer",
8971 "typetext" : "<integer>"
8972 },
8973 "type" : {
8974 "description" : "Plugin type.",
8975 "enum" : [
8976 "powerdns"
8977 ],
8978 "format" : "pve-configid",
8979 "type" : "string"
8980 },
8981 "url" : {
8982 "optional" : 0,
8983 "type" : "string",
8984 "typetext" : "<string>"
8985 }
8986 },
8987 "type" : "object"
8988 },
8989 "permissions" : {
8990 "check" : [
8991 "perm",
8992 "/sdn/dns",
8993 [
8994 "SDN.Allocate"
8995 ]
8996 ]
8997 },
8998 "protected" : 1,
8999 "returns" : {
9000 "type" : "null"
9001 }
9002 }
9003 },
9004 "leaf" : 0,
9005 "path" : "/cluster/sdn/dns",
9006 "text" : "dns"
9007 }
9008 ],
9009 "info" : {
9010 "GET" : {
9011 "allowtoken" : 1,
9012 "description" : "Directory index.",
9013 "method" : "GET",
9014 "name" : "index",
9015 "parameters" : {
9016 "additionalProperties" : 0
9017 },
9018 "permissions" : {
9019 "check" : [
9020 "perm",
9021 "/",
9022 [
9023 "SDN.Audit"
9024 ]
9025 ]
9026 },
9027 "returns" : {
9028 "items" : {
9029 "properties" : {
9030 "id" : {
9031 "type" : "string"
9032 }
9033 },
9034 "type" : "object"
9035 },
9036 "links" : [
9037 {
9038 "href" : "{id}",
9039 "rel" : "child"
9040 }
9041 ],
9042 "type" : "array"
9043 }
9044 },
9045 "PUT" : {
9046 "allowtoken" : 1,
9047 "description" : "Apply sdn controller changes && reload.",
9048 "method" : "PUT",
9049 "name" : "reload",
9050 "parameters" : {
9051 "additionalProperties" : 0
9052 },
9053 "permissions" : {
9054 "check" : [
9055 "perm",
9056 "/sdn",
9057 [
9058 "SDN.Allocate"
9059 ]
9060 ]
9061 },
9062 "protected" : 1,
9063 "returns" : {
9064 "type" : "string"
9065 }
9066 }
9067 },
9068 "leaf" : 0,
9069 "path" : "/cluster/sdn",
9070 "text" : "sdn"
9071 },
9072 {
9073 "info" : {
9074 "GET" : {
9075 "allowtoken" : 1,
9076 "description" : "Read cluster log",
9077 "method" : "GET",
9078 "name" : "log",
9079 "parameters" : {
9080 "additionalProperties" : 0,
9081 "properties" : {
9082 "max" : {
9083 "description" : "Maximum number of entries.",
9084 "minimum" : 1,
9085 "optional" : 1,
9086 "type" : "integer",
9087 "typetext" : "<integer> (1 - N)"
9088 }
9089 }
9090 },
9091 "permissions" : {
9092 "user" : "all"
9093 },
9094 "returns" : {
9095 "items" : {
9096 "properties" : {},
9097 "type" : "object"
9098 },
9099 "type" : "array"
9100 }
9101 }
9102 },
9103 "leaf" : 1,
9104 "path" : "/cluster/log",
9105 "text" : "log"
9106 },
9107 {
9108 "info" : {
9109 "GET" : {
9110 "allowtoken" : 1,
9111 "description" : "Resources index (cluster wide).",
9112 "method" : "GET",
9113 "name" : "resources",
9114 "parameters" : {
9115 "additionalProperties" : 0,
9116 "properties" : {
9117 "type" : {
9118 "enum" : [
9119 "vm",
9120 "storage",
9121 "node",
9122 "sdn"
9123 ],
9124 "optional" : 1,
9125 "type" : "string"
9126 }
9127 }
9128 },
9129 "permissions" : {
9130 "user" : "all"
9131 },
9132 "returns" : {
9133 "items" : {
9134 "properties" : {
81a3384d
TL
9135 "cgroup-mode" : {
9136 "description" : "The cgroup mode the node operates under (when type == node).",
9137 "optional" : 1,
9138 "type" : "integer"
9139 },
d2656385
TL
9140 "content" : {
9141 "description" : "Allowed storage content types (when type == storage).",
9142 "format" : "pve-storage-content-list",
9143 "optional" : 1,
9144 "type" : "string"
9145 },
9146 "cpu" : {
9147 "description" : "CPU utilization (when type in node,qemu,lxc).",
4e7f60c2 9148 "minimum" : 0,
4d47f125
TL
9149 "optional" : 1,
9150 "renderer" : "fraction_as_percentage",
9151 "type" : "number"
9152 },
9153 "disk" : {
9154 "description" : "Used disk space in bytes (when type in storage), used root image spave for VMs (type in qemu,lxc).",
4e7f60c2 9155 "minimum" : 0,
4d47f125
TL
9156 "optional" : 1,
9157 "renderer" : "bytes",
4e7f60c2 9158 "type" : "integer"
4d47f125
TL
9159 },
9160 "hastate" : {
9161 "description" : "HA service status (for HA managed VMs).",
9162 "optional" : 1,
9163 "type" : "string"
9164 },
9165 "id" : {
287a95cf 9166 "description" : "Resource id.",
4d47f125
TL
9167 "type" : "string"
9168 },
9169 "level" : {
9170 "description" : "Support level (when type == node).",
9171 "optional" : 1,
9172 "type" : "string"
9173 },
9174 "maxcpu" : {
9175 "description" : "Number of available CPUs (when type in node,qemu,lxc).",
4e7f60c2 9176 "minimum" : 0,
4d47f125
TL
9177 "optional" : 1,
9178 "type" : "number"
9179 },
9180 "maxdisk" : {
9181 "description" : "Storage size in bytes (when type in storage), root image size for VMs (type in qemu,lxc).",
4e7f60c2 9182 "minimum" : 0,
4d47f125
TL
9183 "optional" : 1,
9184 "renderer" : "bytes",
9185 "type" : "integer"
9186 },
9187 "maxmem" : {
9188 "description" : "Number of available memory in bytes (when type in node,qemu,lxc).",
9189 "optional" : 1,
9190 "renderer" : "bytes",
9191 "type" : "integer"
9192 },
9193 "mem" : {
9194 "description" : "Used memory in bytes (when type in node,qemu,lxc).",
4e7f60c2 9195 "minimum" : 0,
4d47f125
TL
9196 "optional" : 1,
9197 "renderer" : "bytes",
4e7f60c2 9198 "type" : "integer"
4d47f125 9199 },
34f3e481
TL
9200 "name" : {
9201 "description" : "Name of the resource.",
9202 "optional" : 1,
9203 "type" : "string"
9204 },
4d47f125
TL
9205 "node" : {
9206 "description" : "The cluster node name (when type in node,storage,qemu,lxc).",
9207 "format" : "pve-node",
9208 "optional" : 1,
9209 "type" : "string"
9210 },
d2656385
TL
9211 "plugintype" : {
9212 "description" : "More specific type, if available.",
9213 "optional" : 1,
9214 "type" : "string"
9215 },
4d47f125
TL
9216 "pool" : {
9217 "description" : "The pool name (when type in pool,qemu,lxc).",
9218 "optional" : 1,
9219 "type" : "string"
9220 },
9221 "status" : {
9222 "description" : "Resource type dependent status.",
9223 "optional" : 1,
9224 "type" : "string"
9225 },
9226 "storage" : {
9227 "description" : "The storage identifier (when type == storage).",
9228 "format" : "pve-storage-id",
9229 "optional" : 1,
9230 "type" : "string"
9231 },
9232 "type" : {
9233 "description" : "Resource type.",
9234 "enum" : [
9235 "node",
9236 "storage",
9237 "pool",
9238 "qemu",
9239 "lxc",
1c532546
TL
9240 "openvz",
9241 "sdn"
4d47f125
TL
9242 ],
9243 "type" : "string"
9244 },
9245 "uptime" : {
9246 "description" : "Node uptime in seconds (when type in node,qemu,lxc).",
9247 "optional" : 1,
9248 "renderer" : "duration",
9249 "type" : "integer"
4e7f60c2
TL
9250 },
9251 "vmid" : {
9252 "description" : "The numerical vmid (when type in qemu,lxc).",
9253 "minimum" : 1,
9254 "optional" : 1,
9255 "type" : "integer"
4d47f125
TL
9256 }
9257 },
44660702
DM
9258 "type" : "object"
9259 },
9260 "type" : "array"
9261 }
56122987
DM
9262 }
9263 },
7aacca6f 9264 "leaf" : 1,
44660702
DM
9265 "path" : "/cluster/resources",
9266 "text" : "resources"
56122987
DM
9267 },
9268 {
56122987
DM
9269 "info" : {
9270 "GET" : {
e9cd3bd4 9271 "allowtoken" : 1,
7aacca6f 9272 "description" : "List recent tasks (cluster wide).",
44660702 9273 "method" : "GET",
7aacca6f 9274 "name" : "tasks",
56122987
DM
9275 "parameters" : {
9276 "additionalProperties" : 0
9277 },
44660702
DM
9278 "permissions" : {
9279 "user" : "all"
9280 },
56122987
DM
9281 "returns" : {
9282 "items" : {
9283 "properties" : {
9284 "upid" : {
9285 "type" : "string"
9286 }
44660702
DM
9287 },
9288 "type" : "object"
9289 },
9290 "type" : "array"
7aacca6f 9291 }
56122987
DM
9292 }
9293 },
7aacca6f 9294 "leaf" : 1,
44660702
DM
9295 "path" : "/cluster/tasks",
9296 "text" : "tasks"
56122987
DM
9297 },
9298 {
56122987 9299 "info" : {
7aacca6f 9300 "GET" : {
e9cd3bd4 9301 "allowtoken" : 1,
81a3384d 9302 "description" : "Get datacenter options. Without 'Sys.Audit' on '/' not all options are returned.",
44660702
DM
9303 "method" : "GET",
9304 "name" : "get_options",
56122987 9305 "parameters" : {
7aacca6f
DM
9306 "additionalProperties" : 0
9307 },
9308 "permissions" : {
9309 "check" : [
9310 "perm",
9311 "/",
9312 [
9313 "Sys.Audit"
9314 ]
81a3384d
TL
9315 ],
9316 "user" : "all"
7aacca6f 9317 },
7aacca6f 9318 "returns" : {
44660702 9319 "type" : "object"
7aacca6f
DM
9320 }
9321 },
9322 "PUT" : {
e9cd3bd4 9323 "allowtoken" : 1,
44660702
DM
9324 "description" : "Set datacenter options.",
9325 "method" : "PUT",
7aacca6f
DM
9326 "name" : "set_options",
9327 "parameters" : {
9328 "additionalProperties" : 0,
9329 "properties" : {
27a7acb2 9330 "bwlimit" : {
4a407cfd 9331 "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
27a7acb2
DM
9332 "format" : {
9333 "clone" : {
95895385 9334 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
9335 "format_description" : "LIMIT",
9336 "minimum" : "0",
9337 "optional" : 1,
9338 "type" : "number"
9339 },
9340 "default" : {
95895385 9341 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
9342 "format_description" : "LIMIT",
9343 "minimum" : "0",
9344 "optional" : 1,
9345 "type" : "number"
9346 },
9347 "migration" : {
95895385 9348 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
9349 "format_description" : "LIMIT",
9350 "minimum" : "0",
9351 "optional" : 1,
9352 "type" : "number"
9353 },
9354 "move" : {
95895385 9355 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
9356 "format_description" : "LIMIT",
9357 "minimum" : "0",
9358 "optional" : 1,
9359 "type" : "number"
9360 },
9361 "restore" : {
95895385 9362 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
9363 "format_description" : "LIMIT",
9364 "minimum" : "0",
9365 "optional" : 1,
9366 "type" : "number"
9367 }
9368 },
9369 "optional" : 1,
9370 "type" : "string",
9371 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
9372 },
56122987 9373 "console" : {
a9a8e3d1 9374 "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
9375 "enum" : [
9376 "applet",
9377 "vv",
a9a8e3d1
DM
9378 "html5",
9379 "xtermjs"
44660702
DM
9380 ],
9381 "optional" : 1,
9382 "type" : "string"
56122987 9383 },
81a3384d
TL
9384 "crs" : {
9385 "description" : "Cluster resource scheduling settings.",
9386 "format" : {
9387 "ha" : {
9388 "default" : "basic",
9389 "description" : "Use this resource scheduler mode for HA.",
9390 "enum" : [
9391 "basic",
9392 "static"
9393 ],
9d2e98ed 9394 "optional" : 1,
81a3384d
TL
9395 "type" : "string",
9396 "verbose_description" : "Configures how the HA manager should select nodes to start or recover services. With 'basic', only the number of services is used, with 'static', static CPU and memory configuration of services is considered."
9d2e98ed
TL
9397 },
9398 "ha-rebalance-on-start" : {
9399 "default" : 0,
9400 "description" : "Set to use CRS for selecting a suited node when a HA services request-state changes from stop to start.",
9401 "optional" : 1,
9402 "type" : "boolean"
81a3384d
TL
9403 }
9404 },
9405 "optional" : 1,
9406 "type" : "string",
9d2e98ed 9407 "typetext" : "[ha=<basic|static>] [,ha-rebalance-on-start=<1|0>]"
81a3384d 9408 },
7aacca6f 9409 "delete" : {
7aacca6f 9410 "description" : "A list of settings you want to delete.",
44660702 9411 "format" : "pve-configid-list",
7aacca6f 9412 "optional" : 1,
013dc89f
DM
9413 "type" : "string",
9414 "typetext" : "<string>"
7aacca6f 9415 },
5370fa8c
TL
9416 "description" : {
9417 "description" : "Datacenter description. Shown in the web-interface datacenter notes panel. This is saved as comment inside the configuration file.",
9418 "maxLength" : 65536,
9419 "optional" : 1,
9420 "type" : "string",
9421 "typetext" : "<string>"
9422 },
44660702
DM
9423 "email_from" : {
9424 "description" : "Specify email address to send notification from (default is root@$hostname)",
9425 "format" : "email-opt",
7aacca6f 9426 "optional" : 1,
013dc89f
DM
9427 "type" : "string",
9428 "typetext" : "<string>"
44660702
DM
9429 },
9430 "fencing" : {
9431 "default" : "watchdog",
9432 "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 9433 "enum" : [
44660702
DM
9434 "watchdog",
9435 "hardware",
9436 "both"
7aacca6f 9437 ],
44660702
DM
9438 "optional" : 1,
9439 "type" : "string"
9440 },
5f26e15b
TL
9441 "ha" : {
9442 "description" : "Cluster wide HA settings.",
9443 "format" : {
9444 "shutdown_policy" : {
9445 "default" : "conditional",
5c1699e5 9446 "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
9447 "enum" : [
9448 "freeze",
9449 "failover",
5c1699e5
TL
9450 "conditional",
9451 "migrate"
5f26e15b
TL
9452 ],
9453 "type" : "string",
e9cd3bd4 9454 "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
9455 }
9456 },
9457 "optional" : 1,
9458 "type" : "string",
5c1699e5 9459 "typetext" : "shutdown_policy=<enum>"
5f26e15b 9460 },
44660702
DM
9461 "http_proxy" : {
9462 "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')",
9463 "optional" : 1,
9464 "pattern" : "http://.*",
9465 "type" : "string"
7aacca6f 9466 },
56122987 9467 "keyboard" : {
44660702 9468 "description" : "Default keybord layout for vnc server.",
56122987 9469 "enum" : [
44660702
DM
9470 "de",
9471 "de-ch",
7aacca6f 9472 "da",
56122987 9473 "en-gb",
44660702
DM
9474 "en-us",
9475 "es",
9476 "fi",
9477 "fr",
9478 "fr-be",
9479 "fr-ca",
9480 "fr-ch",
9481 "hu",
7aacca6f 9482 "is",
44660702
DM
9483 "it",
9484 "ja",
9485 "lt",
56122987 9486 "mk",
7aacca6f 9487 "nl",
56122987 9488 "no",
44660702 9489 "pl",
7aacca6f 9490 "pt",
44660702
DM
9491 "pt-br",
9492 "sv",
9493 "sl",
9494 "tr"
56122987 9495 ],
56122987
DM
9496 "optional" : 1,
9497 "type" : "string"
9498 },
44660702
DM
9499 "language" : {
9500 "description" : "Default GUI language.",
9501 "enum" : [
4d47f125 9502 "ca",
1c532546
TL
9503 "da",
9504 "de",
44660702 9505 "en",
1c532546 9506 "es",
4d47f125 9507 "eu",
1c532546 9508 "fa",
4d47f125 9509 "fr",
1c532546 9510 "he",
4d47f125 9511 "it",
4d47f125
TL
9512 "ja",
9513 "nb",
9514 "nn",
4d47f125
TL
9515 "pl",
9516 "pt_BR",
9517 "ru",
9518 "sl",
9519 "sv",
1c532546
TL
9520 "tr",
9521 "zh_CN",
9522 "zh_TW"
44660702 9523 ],
56122987 9524 "optional" : 1,
44660702 9525 "type" : "string"
56122987 9526 },
4bd7df8b
DM
9527 "mac_prefix" : {
9528 "description" : "Prefix for autogenerated MAC addresses.",
95895385 9529 "format" : "mac-prefix",
4bd7df8b 9530 "optional" : 1,
95895385
TL
9531 "type" : "string",
9532 "typetext" : "<string>"
4bd7df8b 9533 },
44660702
DM
9534 "max_workers" : {
9535 "description" : "Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager.",
9536 "minimum" : 1,
56122987 9537 "optional" : 1,
4bd7df8b 9538 "type" : "integer",
013dc89f 9539 "typetext" : "<integer> (1 - N)"
56122987 9540 },
de0983cb
DM
9541 "migration" : {
9542 "description" : "For cluster wide migration settings.",
9543 "format" : {
9544 "network" : {
9545 "description" : "CIDR of the (sub) network that is used for migration.",
9546 "format" : "CIDR",
9547 "format_description" : "CIDR",
9548 "optional" : 1,
9549 "type" : "string"
9550 },
9551 "type" : {
9552 "default" : "secure",
9553 "default_key" : 1,
9554 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
9555 "enum" : [
9556 "secure",
9557 "insecure"
9558 ],
9559 "type" : "string"
9560 }
9561 },
9562 "optional" : 1,
9563 "type" : "string",
9564 "typetext" : "[type=]<secure|insecure> [,network=<CIDR>]"
9565 },
7aacca6f 9566 "migration_unsecure" : {
de0983cb 9567 "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 9568 "optional" : 1,
013dc89f
DM
9569 "type" : "boolean",
9570 "typetext" : "<boolean>"
95895385 9571 },
7af2edf9
TL
9572 "next-id" : {
9573 "description" : "Control the range for the free VMID auto-selection pool.",
9574 "format" : {
9575 "lower" : {
9576 "default" : 100,
9577 "description" : "Lower, inclusive boundary for free next-id API range.",
9578 "max" : 999999999,
9579 "min" : 100,
9580 "optional" : 1,
9581 "type" : "integer"
9582 },
9583 "upper" : {
9584 "default" : 1000000,
460359c5 9585 "description" : "Upper, exclusive boundary for free next-id API range.",
de786b48 9586 "max" : 1000000000,
7af2edf9
TL
9587 "min" : 100,
9588 "optional" : 1,
9589 "type" : "integer"
9590 }
9591 },
9592 "optional" : 1,
9593 "type" : "string",
9594 "typetext" : "[lower=<integer>] [,upper=<integer>]"
9595 },
9d2e98ed
TL
9596 "notify" : {
9597 "description" : "Cluster-wide notification settings.",
9598 "format" : {
9599 "package-updates" : {
9600 "default" : "auto",
9601 "description" : "Control when the daily update job should send out notification mails.",
9602 "enum" : [
9603 "auto",
9604 "always",
9605 "never"
9606 ],
9607 "type" : "string",
9608 "verbose_description" : "Control how often the daily update job should send out notification mails:\n* 'auto' daily for systems with a valid subscription, as those are assumed to be production-ready and thus should know about pending updates.\n* 'always' every update, if there are new pending updates.\n* 'never' never send a notification for new pending updates.\n"
9609 }
9610 },
9611 "optional" : 1,
9612 "type" : "string",
9613 "typetext" : "package-updates=<auto|always|never>"
9614 },
81a3384d
TL
9615 "registered-tags" : {
9616 "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`.",
9617 "optional" : 1,
9618 "pattern" : "(?:(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*);)*(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*)",
9619 "type" : "string",
9620 "typetext" : "<tag>[;<tag>...]"
9621 },
9622 "tag-style" : {
9623 "description" : "Tag style options.",
9624 "format" : {
e7e885f9
TL
9625 "case-sensitive" : {
9626 "default" : 0,
9627 "description" : "Controls if filtering for unique tags on update should check case-sensitive.",
9628 "optional" : 1,
9629 "type" : "boolean"
9630 },
81a3384d
TL
9631 "color-map" : {
9632 "description" : "Manual color mapping for tags (semicolon separated).",
9633 "optional" : 1,
9634 "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})?))*",
9635 "type" : "string",
9636 "typetext" : "<tag>:<hex-color>[:<hex-color-for-text>][;<tag>=...]"
9637 },
9638 "ordering" : {
9639 "default" : "alphabetical",
e7e885f9 9640 "description" : "Controls the sorting of the tags in the web-interface and the API update.",
81a3384d
TL
9641 "enum" : [
9642 "config",
9643 "alphabetical"
9644 ],
9645 "optional" : 1,
9646 "type" : "string"
9647 },
9648 "shape" : {
9649 "default" : "circle",
9650 "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.",
9651 "enum" : [
9652 "full",
9653 "circle",
9654 "dense",
9655 "none"
9656 ],
9657 "optional" : 1,
9658 "type" : "string"
9659 }
9660 },
9661 "optional" : 1,
9662 "type" : "string",
e7e885f9 9663 "typetext" : "[case-sensitive=<1|0>] [,color-map=<tag>:<hex-color>[:<hex-color-for-text>][;<tag>=...]] [,ordering=<config|alphabetical>] [,shape=<enum>]"
81a3384d 9664 },
95895385
TL
9665 "u2f" : {
9666 "description" : "u2f",
9667 "format" : {
9668 "appid" : {
9669 "description" : "U2F AppId URL override. Defaults to the origin.",
9670 "format_description" : "APPID",
9671 "optional" : 1,
9672 "type" : "string"
9673 },
9674 "origin" : {
9675 "description" : "U2F Origin override. Mostly useful for single nodes with a single URL.",
9676 "format_description" : "URL",
9677 "optional" : 1,
9678 "type" : "string"
9679 }
9680 },
9681 "optional" : 1,
9682 "type" : "string",
9683 "typetext" : "[appid=<APPID>] [,origin=<URL>]"
5370fa8c 9684 },
81a3384d
TL
9685 "user-tag-access" : {
9686 "description" : "Privilege options for user-settable tags",
9687 "format" : {
9688 "user-allow" : {
9689 "default" : "free",
9690 "description" : "Controls tag usage for users without `Sys.Modify` on `/` by either allowing `none`, a `list`, already `existing` or anything (`free`).",
9691 "enum" : [
9692 "none",
9693 "list",
9694 "existing",
9695 "free"
9696 ],
9697 "optional" : 1,
9698 "type" : "string",
9d2e98ed 9699 "verbose_description" : "Controls which tags can be set or deleted on resources a user controls (such as guests). Users with the `Sys.Modify` privilege on `/` are always unrestricted. * 'none' no tags are usable. * 'list' tags from 'user-allow-list' are usable. * 'existing' like list, but already existing tags of resources are also usable.* 'free' no tag restrictions."
81a3384d
TL
9700 },
9701 "user-allow-list" : {
9702 "description" : "List of tags users are allowed to set and delete (semicolon separated) for 'user-allow' values 'list' and 'existing'.",
9703 "optional" : 1,
9704 "pattern" : "(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*)(?:;(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*))*",
9705 "type" : "string",
9706 "typetext" : "<tag>[;<tag>...]"
9707 }
9708 },
9709 "optional" : 1,
9710 "type" : "string",
9711 "typetext" : "[user-allow=<enum>] [,user-allow-list=<tag>[;<tag>...]]"
9712 },
5370fa8c
TL
9713 "webauthn" : {
9714 "description" : "webauthn configuration",
9715 "format" : {
81a3384d
TL
9716 "allow-subdomains" : {
9717 "default" : 1,
9718 "description" : "Whether to allow the origin to be a subdomain, rather than the exact URL.",
9719 "optional" : 1,
9720 "type" : "boolean"
9721 },
5370fa8c 9722 "id" : {
81a3384d 9723 "description" : "Relying party ID. Must be the domain name without protocol, port or location. Changing this *will* break existing credentials.",
5370fa8c
TL
9724 "format_description" : "DOMAINNAME",
9725 "optional" : 1,
9726 "type" : "string"
9727 },
9728 "origin" : {
9729 "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.",
9730 "format_description" : "URL",
9731 "optional" : 1,
9732 "type" : "string"
9733 },
9734 "rp" : {
9735 "description" : "Relying party name. Any text identifier. Changing this *may* break existing credentials.",
9736 "format_description" : "RELYING_PARTY",
9737 "optional" : 1,
9738 "type" : "string"
9739 }
9740 },
9741 "optional" : 1,
9742 "type" : "string",
81a3384d 9743 "typetext" : "[allow-subdomains=<1|0>] [,id=<DOMAINNAME>] [,origin=<URL>] [,rp=<RELYING_PARTY>]"
56122987
DM
9744 }
9745 }
9746 },
44660702
DM
9747 "permissions" : {
9748 "check" : [
9749 "perm",
9750 "/",
9751 [
9752 "Sys.Modify"
9753 ]
9754 ]
9755 },
56122987 9756 "protected" : 1,
7aacca6f
DM
9757 "returns" : {
9758 "type" : "null"
44660702 9759 }
7aacca6f
DM
9760 }
9761 },
44660702
DM
9762 "leaf" : 1,
9763 "path" : "/cluster/options",
7aacca6f
DM
9764 "text" : "options"
9765 },
9766 {
7aacca6f 9767 "info" : {
56122987 9768 "GET" : {
e9cd3bd4 9769 "allowtoken" : 1,
1e3f8156 9770 "description" : "Get cluster status information.",
44660702
DM
9771 "method" : "GET",
9772 "name" : "get_status",
56122987
DM
9773 "parameters" : {
9774 "additionalProperties" : 0
9775 },
56122987
DM
9776 "permissions" : {
9777 "check" : [
9778 "perm",
9779 "/",
9780 [
9781 "Sys.Audit"
9782 ]
9783 ]
9784 },
7aacca6f 9785 "protected" : 1,
56122987 9786 "returns" : {
56122987 9787 "items" : {
56122987 9788 "properties" : {
e9cd3bd4
TL
9789 "id" : {
9790 "type" : "string"
9791 },
9792 "ip" : {
9793 "description" : "[node] IP of the resolved nodename.",
9794 "optional" : 1,
9795 "type" : "string"
9796 },
9797 "level" : {
9798 "description" : "[node] Proxmox VE Subscription level, indicates if eligible for enterprise support as well as access to the stable Proxmox VE Enterprise Repository.",
9799 "optional" : 1,
9800 "type" : "string"
9801 },
9802 "local" : {
9803 "description" : "[node] Indicates if this is the responding node.",
9804 "optional" : 1,
9805 "type" : "boolean"
9806 },
9807 "name" : {
9808 "type" : "string"
9809 },
9810 "nodeid" : {
9811 "description" : "[node] ID of the node from the corosync configuration.",
9812 "optional" : 1,
9813 "type" : "integer"
9814 },
9815 "nodes" : {
9816 "description" : "[cluster] Nodes count, including offline nodes.",
9817 "optional" : 1,
9818 "type" : "integer"
9819 },
9820 "online" : {
9821 "description" : "[node] Indicates if the node is online or offline.",
9822 "optional" : 1,
9823 "type" : "boolean"
9824 },
9825 "quorate" : {
9826 "description" : "[cluster] Indicates if there is a majority of nodes online to make decisions",
9827 "optional" : 1,
9828 "type" : "boolean"
9829 },
56122987 9830 "type" : {
e9cd3bd4
TL
9831 "description" : "Indicates the type, either cluster or node. The type defines the object properties e.g. quorate available for type cluster.",
9832 "enum" : [
9833 "cluster",
9834 "node"
9835 ],
56122987 9836 "type" : "string"
e9cd3bd4
TL
9837 },
9838 "version" : {
9839 "description" : "[cluster] Current version of the corosync configuration file.",
9840 "optional" : 1,
9841 "type" : "integer"
56122987 9842 }
44660702
DM
9843 },
9844 "type" : "object"
7aacca6f
DM
9845 },
9846 "type" : "array"
56122987
DM
9847 }
9848 }
9849 },
44660702 9850 "leaf" : 1,
7aacca6f 9851 "path" : "/cluster/status",
44660702 9852 "text" : "status"
56122987
DM
9853 },
9854 {
56122987
DM
9855 "info" : {
9856 "GET" : {
e9cd3bd4 9857 "allowtoken" : 1,
c30bb419 9858 "description" : "Get next free VMID. Pass a VMID to assert that its free (at time of check).",
44660702
DM
9859 "method" : "GET",
9860 "name" : "nextid",
56122987 9861 "parameters" : {
44660702 9862 "additionalProperties" : 0,
56122987
DM
9863 "properties" : {
9864 "vmid" : {
44660702 9865 "description" : "The (unique) ID of the VM.",
56122987 9866 "format" : "pve-vmid",
7aacca6f 9867 "minimum" : 1,
7aacca6f 9868 "optional" : 1,
4bd7df8b 9869 "type" : "integer",
013dc89f 9870 "typetext" : "<integer> (1 - N)"
56122987 9871 }
44660702 9872 }
56122987 9873 },
7aacca6f
DM
9874 "permissions" : {
9875 "user" : "all"
44660702
DM
9876 },
9877 "returns" : {
9878 "description" : "The next free VMID.",
9879 "type" : "integer"
7aacca6f 9880 }
56122987
DM
9881 }
9882 },
7aacca6f 9883 "leaf" : 1,
44660702
DM
9884 "path" : "/cluster/nextid",
9885 "text" : "nextid"
56122987
DM
9886 }
9887 ],
44660702
DM
9888 "info" : {
9889 "GET" : {
e9cd3bd4 9890 "allowtoken" : 1,
44660702
DM
9891 "description" : "Cluster index.",
9892 "method" : "GET",
9893 "name" : "index",
9894 "parameters" : {
9895 "additionalProperties" : 0
9896 },
9897 "permissions" : {
9898 "user" : "all"
9899 },
9900 "returns" : {
9901 "items" : {
9902 "properties" : {},
9903 "type" : "object"
9904 },
9905 "links" : [
9906 {
9907 "href" : "{name}",
9908 "rel" : "child"
9909 }
9910 ],
9911 "type" : "array"
9912 }
9913 }
9914 },
9915 "leaf" : 0,
9916 "path" : "/cluster",
7aacca6f 9917 "text" : "cluster"
56122987
DM
9918 },
9919 {
56122987
DM
9920 "children" : [
9921 {
7aacca6f
DM
9922 "children" : [
9923 {
9924 "children" : [
9925 {
56122987
DM
9926 "children" : [
9927 {
56122987
DM
9928 "children" : [
9929 {
9930 "children" : [
9931 {
56122987
DM
9932 "info" : {
9933 "DELETE" : {
e9cd3bd4 9934 "allowtoken" : 1,
44660702 9935 "description" : "Delete rule.",
7aacca6f 9936 "method" : "DELETE",
44660702 9937 "name" : "delete_rule",
56122987 9938 "parameters" : {
44660702 9939 "additionalProperties" : 0,
56122987 9940 "properties" : {
44660702
DM
9941 "digest" : {
9942 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9943 "maxLength" : 40,
9944 "optional" : 1,
013dc89f
DM
9945 "type" : "string",
9946 "typetext" : "<string>"
44660702 9947 },
56122987 9948 "node" : {
7aacca6f 9949 "description" : "The cluster node name.",
44660702 9950 "format" : "pve-node",
013dc89f
DM
9951 "type" : "string",
9952 "typetext" : "<string>"
7aacca6f 9953 },
56122987 9954 "pos" : {
7aacca6f 9955 "description" : "Update rule at position <pos>.",
44660702 9956 "minimum" : 0,
56122987 9957 "optional" : 1,
4bd7df8b 9958 "type" : "integer",
013dc89f 9959 "typetext" : "<integer> (0 - N)"
44660702
DM
9960 },
9961 "vmid" : {
9962 "description" : "The (unique) ID of the VM.",
9963 "format" : "pve-vmid",
9964 "minimum" : 1,
4bd7df8b 9965 "type" : "integer",
013dc89f 9966 "typetext" : "<integer> (1 - N)"
56122987 9967 }
44660702 9968 }
7aacca6f 9969 },
56122987
DM
9970 "permissions" : {
9971 "check" : [
9972 "perm",
9973 "/vms/{vmid}",
9974 [
9975 "VM.Config.Network"
9976 ]
9977 ]
9978 },
44660702
DM
9979 "protected" : 1,
9980 "proxyto" : null,
56122987
DM
9981 "returns" : {
9982 "type" : "null"
44660702
DM
9983 }
9984 },
9985 "GET" : {
e9cd3bd4 9986 "allowtoken" : 1,
44660702
DM
9987 "description" : "Get single rule data.",
9988 "method" : "GET",
9989 "name" : "get_rule",
9990 "parameters" : {
9991 "additionalProperties" : 0,
9992 "properties" : {
9993 "node" : {
9994 "description" : "The cluster node name.",
9995 "format" : "pve-node",
013dc89f
DM
9996 "type" : "string",
9997 "typetext" : "<string>"
44660702
DM
9998 },
9999 "pos" : {
10000 "description" : "Update rule at position <pos>.",
10001 "minimum" : 0,
10002 "optional" : 1,
4bd7df8b 10003 "type" : "integer",
013dc89f 10004 "typetext" : "<integer> (0 - N)"
44660702
DM
10005 },
10006 "vmid" : {
10007 "description" : "The (unique) ID of the VM.",
10008 "format" : "pve-vmid",
10009 "minimum" : 1,
4bd7df8b 10010 "type" : "integer",
013dc89f 10011 "typetext" : "<integer> (1 - N)"
44660702
DM
10012 }
10013 }
56122987 10014 },
56122987
DM
10015 "permissions" : {
10016 "check" : [
10017 "perm",
10018 "/vms/{vmid}",
10019 [
44660702 10020 "VM.Audit"
56122987
DM
10021 ]
10022 ]
10023 },
56122987 10024 "proxyto" : null,
44660702
DM
10025 "returns" : {
10026 "properties" : {
e2d681b3
TL
10027 "action" : {
10028 "type" : "string"
10029 },
10030 "comment" : {
10031 "optional" : 1,
10032 "type" : "string"
10033 },
10034 "dest" : {
10035 "optional" : 1,
10036 "type" : "string"
10037 },
10038 "dport" : {
10039 "optional" : 1,
10040 "type" : "string"
10041 },
10042 "enable" : {
10043 "optional" : 1,
10044 "type" : "integer"
10045 },
4772952b
TL
10046 "icmp-type" : {
10047 "optional" : 1,
10048 "type" : "string"
10049 },
e2d681b3
TL
10050 "iface" : {
10051 "optional" : 1,
10052 "type" : "string"
10053 },
10054 "ipversion" : {
10055 "optional" : 1,
10056 "type" : "integer"
10057 },
95895385
TL
10058 "log" : {
10059 "description" : "Log level for firewall rule",
10060 "enum" : [
10061 "emerg",
10062 "alert",
10063 "crit",
10064 "err",
10065 "warning",
10066 "notice",
10067 "info",
10068 "debug",
10069 "nolog"
10070 ],
10071 "optional" : 1,
10072 "type" : "string"
10073 },
e2d681b3
TL
10074 "macro" : {
10075 "optional" : 1,
5f26e15b 10076 "type" : "string"
e2d681b3 10077 },
44660702
DM
10078 "pos" : {
10079 "type" : "integer"
e2d681b3
TL
10080 },
10081 "proto" : {
10082 "optional" : 1,
10083 "type" : "string"
10084 },
10085 "source" : {
10086 "optional" : 1,
10087 "type" : "string"
10088 },
10089 "sport" : {
10090 "optional" : 1,
10091 "type" : "string"
10092 },
10093 "type" : {
10094 "type" : "string"
44660702
DM
10095 }
10096 },
10097 "type" : "object"
10098 }
10099 },
10100 "PUT" : {
e9cd3bd4 10101 "allowtoken" : 1,
7aacca6f
DM
10102 "description" : "Modify rule data.",
10103 "method" : "PUT",
44660702 10104 "name" : "update_rule",
56122987 10105 "parameters" : {
44660702 10106 "additionalProperties" : 0,
56122987 10107 "properties" : {
44660702
DM
10108 "action" : {
10109 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
10110 "maxLength" : 20,
10111 "minLength" : 2,
56122987 10112 "optional" : 1,
44660702 10113 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f
DM
10114 "type" : "string"
10115 },
7aacca6f 10116 "comment" : {
e94f0d56 10117 "description" : "Descriptive comment.",
7aacca6f 10118 "optional" : 1,
013dc89f
DM
10119 "type" : "string",
10120 "typetext" : "<string>"
7aacca6f
DM
10121 },
10122 "delete" : {
7aacca6f 10123 "description" : "A list of settings you want to delete.",
44660702
DM
10124 "format" : "pve-configid-list",
10125 "optional" : 1,
013dc89f
DM
10126 "type" : "string",
10127 "typetext" : "<string>"
7aacca6f
DM
10128 },
10129 "dest" : {
44660702 10130 "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 10131 "format" : "pve-fw-addr-spec",
0695fdaf 10132 "maxLength" : 512,
56122987 10133 "optional" : 1,
013dc89f
DM
10134 "type" : "string",
10135 "typetext" : "<string>"
56122987 10136 },
7aacca6f 10137 "digest" : {
44660702 10138 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7aacca6f 10139 "maxLength" : 40,
56122987 10140 "optional" : 1,
013dc89f
DM
10141 "type" : "string",
10142 "typetext" : "<string>"
44660702
DM
10143 },
10144 "dport" : {
10145 "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.",
10146 "format" : "pve-fw-dport-spec",
10147 "optional" : 1,
013dc89f
DM
10148 "type" : "string",
10149 "typetext" : "<string>"
56122987 10150 },
7aacca6f 10151 "enable" : {
e94f0d56 10152 "description" : "Flag to enable/disable a rule.",
44660702 10153 "minimum" : 0,
56122987 10154 "optional" : 1,
4bd7df8b 10155 "type" : "integer",
013dc89f 10156 "typetext" : "<integer> (0 - N)"
7aacca6f 10157 },
4772952b 10158 "icmp-type" : {
287a95cf 10159 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
10160 "format" : "pve-fw-icmp-type-spec",
10161 "optional" : 1,
10162 "type" : "string",
10163 "typetext" : "<string>"
10164 },
44660702
DM
10165 "iface" : {
10166 "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.",
10167 "format" : "pve-iface",
10168 "maxLength" : 20,
7aacca6f 10169 "minLength" : 2,
56122987 10170 "optional" : 1,
013dc89f
DM
10171 "type" : "string",
10172 "typetext" : "<string>"
56122987 10173 },
95895385
TL
10174 "log" : {
10175 "description" : "Log level for firewall rule.",
10176 "enum" : [
10177 "emerg",
10178 "alert",
10179 "crit",
10180 "err",
10181 "warning",
10182 "notice",
10183 "info",
10184 "debug",
10185 "nolog"
10186 ],
10187 "optional" : 1,
10188 "type" : "string"
10189 },
44660702 10190 "macro" : {
e94f0d56 10191 "description" : "Use predefined standard macro.",
44660702 10192 "maxLength" : 128,
56122987 10193 "optional" : 1,
013dc89f
DM
10194 "type" : "string",
10195 "typetext" : "<string>"
56122987 10196 },
44660702
DM
10197 "moveto" : {
10198 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
10199 "minimum" : 0,
56122987 10200 "optional" : 1,
4bd7df8b 10201 "type" : "integer",
013dc89f 10202 "typetext" : "<integer> (0 - N)"
56122987 10203 },
44660702
DM
10204 "node" : {
10205 "description" : "The cluster node name.",
10206 "format" : "pve-node",
013dc89f
DM
10207 "type" : "string",
10208 "typetext" : "<string>"
44660702
DM
10209 },
10210 "pos" : {
10211 "description" : "Update rule at position <pos>.",
10212 "minimum" : 0,
10213 "optional" : 1,
4bd7df8b 10214 "type" : "integer",
013dc89f 10215 "typetext" : "<integer> (0 - N)"
56122987 10216 },
44660702
DM
10217 "proto" : {
10218 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
10219 "format" : "pve-fw-protocol-spec",
10220 "optional" : 1,
013dc89f
DM
10221 "type" : "string",
10222 "typetext" : "<string>"
7aacca6f 10223 },
44660702
DM
10224 "source" : {
10225 "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.",
10226 "format" : "pve-fw-addr-spec",
0695fdaf 10227 "maxLength" : 512,
56122987 10228 "optional" : 1,
013dc89f
DM
10229 "type" : "string",
10230 "typetext" : "<string>"
56122987
DM
10231 },
10232 "sport" : {
10233 "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
10234 "format" : "pve-fw-sport-spec",
10235 "optional" : 1,
013dc89f
DM
10236 "type" : "string",
10237 "typetext" : "<string>"
44660702
DM
10238 },
10239 "type" : {
e94f0d56 10240 "description" : "Rule type.",
44660702
DM
10241 "enum" : [
10242 "in",
10243 "out",
10244 "group"
10245 ],
56122987 10246 "optional" : 1,
56122987 10247 "type" : "string"
44660702
DM
10248 },
10249 "vmid" : {
10250 "description" : "The (unique) ID of the VM.",
10251 "format" : "pve-vmid",
10252 "minimum" : 1,
4bd7df8b 10253 "type" : "integer",
013dc89f 10254 "typetext" : "<integer> (1 - N)"
56122987 10255 }
44660702 10256 }
56122987 10257 },
56122987
DM
10258 "permissions" : {
10259 "check" : [
10260 "perm",
10261 "/vms/{vmid}",
10262 [
44660702 10263 "VM.Config.Network"
56122987
DM
10264 ]
10265 ]
7aacca6f 10266 },
44660702 10267 "protected" : 1,
7aacca6f 10268 "proxyto" : null,
7aacca6f 10269 "returns" : {
44660702
DM
10270 "type" : "null"
10271 }
56122987 10272 }
7aacca6f 10273 },
44660702 10274 "leaf" : 1,
7aacca6f 10275 "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}",
44660702 10276 "text" : "{pos}"
56122987
DM
10277 }
10278 ],
56122987 10279 "info" : {
44660702 10280 "GET" : {
e9cd3bd4 10281 "allowtoken" : 1,
44660702
DM
10282 "description" : "List rules.",
10283 "method" : "GET",
10284 "name" : "get_rules",
10285 "parameters" : {
10286 "additionalProperties" : 0,
10287 "properties" : {
10288 "node" : {
10289 "description" : "The cluster node name.",
10290 "format" : "pve-node",
013dc89f
DM
10291 "type" : "string",
10292 "typetext" : "<string>"
44660702
DM
10293 },
10294 "vmid" : {
10295 "description" : "The (unique) ID of the VM.",
10296 "format" : "pve-vmid",
10297 "minimum" : 1,
4bd7df8b 10298 "type" : "integer",
013dc89f 10299 "typetext" : "<integer> (1 - N)"
44660702
DM
10300 }
10301 }
56122987 10302 },
56122987
DM
10303 "permissions" : {
10304 "check" : [
10305 "perm",
10306 "/vms/{vmid}",
10307 [
44660702 10308 "VM.Audit"
56122987
DM
10309 ]
10310 ]
7aacca6f 10311 },
44660702
DM
10312 "proxyto" : null,
10313 "returns" : {
10314 "items" : {
10315 "properties" : {
10316 "pos" : {
10317 "type" : "integer"
10318 }
10319 },
10320 "type" : "object"
10321 },
10322 "links" : [
10323 {
10324 "href" : "{pos}",
10325 "rel" : "child"
10326 }
10327 ],
10328 "type" : "array"
10329 }
10330 },
10331 "POST" : {
e9cd3bd4 10332 "allowtoken" : 1,
44660702 10333 "description" : "Create new rule.",
7aacca6f 10334 "method" : "POST",
44660702 10335 "name" : "create_rule",
56122987 10336 "parameters" : {
44660702 10337 "additionalProperties" : 0,
56122987 10338 "properties" : {
44660702
DM
10339 "action" : {
10340 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
10341 "maxLength" : 20,
10342 "minLength" : 2,
10343 "optional" : 0,
10344 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10345 "type" : "string"
56122987 10346 },
44660702 10347 "comment" : {
e94f0d56 10348 "description" : "Descriptive comment.",
56122987 10349 "optional" : 1,
013dc89f
DM
10350 "type" : "string",
10351 "typetext" : "<string>"
56122987 10352 },
44660702
DM
10353 "dest" : {
10354 "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.",
10355 "format" : "pve-fw-addr-spec",
0695fdaf 10356 "maxLength" : 512,
44660702 10357 "optional" : 1,
013dc89f
DM
10358 "type" : "string",
10359 "typetext" : "<string>"
56122987 10360 },
44660702
DM
10361 "digest" : {
10362 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
10363 "maxLength" : 40,
56122987 10364 "optional" : 1,
013dc89f
DM
10365 "type" : "string",
10366 "typetext" : "<string>"
56122987 10367 },
7aacca6f
DM
10368 "dport" : {
10369 "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 10370 "format" : "pve-fw-dport-spec",
7aacca6f 10371 "optional" : 1,
013dc89f
DM
10372 "type" : "string",
10373 "typetext" : "<string>"
56122987
DM
10374 },
10375 "enable" : {
e94f0d56 10376 "description" : "Flag to enable/disable a rule.",
56122987 10377 "minimum" : 0,
44660702 10378 "optional" : 1,
4bd7df8b 10379 "type" : "integer",
013dc89f 10380 "typetext" : "<integer> (0 - N)"
56122987 10381 },
4772952b 10382 "icmp-type" : {
287a95cf 10383 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
10384 "format" : "pve-fw-icmp-type-spec",
10385 "optional" : 1,
10386 "type" : "string",
10387 "typetext" : "<string>"
10388 },
44660702
DM
10389 "iface" : {
10390 "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.",
10391 "format" : "pve-iface",
10392 "maxLength" : 20,
7aacca6f 10393 "minLength" : 2,
44660702 10394 "optional" : 1,
013dc89f
DM
10395 "type" : "string",
10396 "typetext" : "<string>"
56122987 10397 },
95895385
TL
10398 "log" : {
10399 "description" : "Log level for firewall rule.",
10400 "enum" : [
10401 "emerg",
10402 "alert",
10403 "crit",
10404 "err",
10405 "warning",
10406 "notice",
10407 "info",
10408 "debug",
10409 "nolog"
10410 ],
10411 "optional" : 1,
10412 "type" : "string"
10413 },
44660702 10414 "macro" : {
e94f0d56 10415 "description" : "Use predefined standard macro.",
44660702 10416 "maxLength" : 128,
56122987 10417 "optional" : 1,
013dc89f
DM
10418 "type" : "string",
10419 "typetext" : "<string>"
7aacca6f 10420 },
44660702
DM
10421 "node" : {
10422 "description" : "The cluster node name.",
10423 "format" : "pve-node",
013dc89f
DM
10424 "type" : "string",
10425 "typetext" : "<string>"
44660702
DM
10426 },
10427 "pos" : {
10428 "description" : "Update rule at position <pos>.",
10429 "minimum" : 0,
10430 "optional" : 1,
4bd7df8b 10431 "type" : "integer",
013dc89f 10432 "typetext" : "<integer> (0 - N)"
44660702
DM
10433 },
10434 "proto" : {
10435 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
10436 "format" : "pve-fw-protocol-spec",
7aacca6f 10437 "optional" : 1,
013dc89f
DM
10438 "type" : "string",
10439 "typetext" : "<string>"
7aacca6f
DM
10440 },
10441 "source" : {
10442 "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 10443 "format" : "pve-fw-addr-spec",
0695fdaf 10444 "maxLength" : 512,
7aacca6f 10445 "optional" : 1,
013dc89f
DM
10446 "type" : "string",
10447 "typetext" : "<string>"
7aacca6f 10448 },
44660702
DM
10449 "sport" : {
10450 "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.",
10451 "format" : "pve-fw-sport-spec",
7aacca6f 10452 "optional" : 1,
013dc89f
DM
10453 "type" : "string",
10454 "typetext" : "<string>"
7aacca6f 10455 },
44660702 10456 "type" : {
e94f0d56 10457 "description" : "Rule type.",
44660702
DM
10458 "enum" : [
10459 "in",
10460 "out",
10461 "group"
10462 ],
10463 "optional" : 0,
10464 "type" : "string"
7aacca6f 10465 },
7aacca6f 10466 "vmid" : {
44660702 10467 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
10468 "format" : "pve-vmid",
10469 "minimum" : 1,
4bd7df8b 10470 "type" : "integer",
013dc89f 10471 "typetext" : "<integer> (1 - N)"
7aacca6f
DM
10472 }
10473 }
10474 },
56122987
DM
10475 "permissions" : {
10476 "check" : [
10477 "perm",
10478 "/vms/{vmid}",
10479 [
44660702 10480 "VM.Config.Network"
56122987
DM
10481 ]
10482 ]
10483 },
44660702
DM
10484 "protected" : 1,
10485 "proxyto" : null,
56122987 10486 "returns" : {
44660702
DM
10487 "type" : "null"
10488 }
56122987
DM
10489 }
10490 },
44660702 10491 "leaf" : 0,
7aacca6f 10492 "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules",
44660702 10493 "text" : "rules"
56122987
DM
10494 },
10495 {
10496 "children" : [
10497 {
56122987 10498 "info" : {
44660702 10499 "DELETE" : {
e9cd3bd4 10500 "allowtoken" : 1,
44660702
DM
10501 "description" : "Remove IP or Network alias.",
10502 "method" : "DELETE",
10503 "name" : "remove_alias",
56122987 10504 "parameters" : {
44660702 10505 "additionalProperties" : 0,
56122987 10506 "properties" : {
44660702
DM
10507 "digest" : {
10508 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
10509 "maxLength" : 40,
10510 "optional" : 1,
013dc89f
DM
10511 "type" : "string",
10512 "typetext" : "<string>"
56122987
DM
10513 },
10514 "name" : {
56122987 10515 "description" : "Alias name.",
44660702 10516 "maxLength" : 64,
7aacca6f 10517 "minLength" : 2,
44660702 10518 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987
DM
10519 "type" : "string"
10520 },
7aacca6f 10521 "node" : {
44660702 10522 "description" : "The cluster node name.",
7aacca6f 10523 "format" : "pve-node",
013dc89f
DM
10524 "type" : "string",
10525 "typetext" : "<string>"
44660702
DM
10526 },
10527 "vmid" : {
10528 "description" : "The (unique) ID of the VM.",
10529 "format" : "pve-vmid",
10530 "minimum" : 1,
4bd7df8b 10531 "type" : "integer",
013dc89f 10532 "typetext" : "<integer> (1 - N)"
56122987 10533 }
44660702 10534 }
56122987 10535 },
7aacca6f
DM
10536 "permissions" : {
10537 "check" : [
10538 "perm",
10539 "/vms/{vmid}",
10540 [
10541 "VM.Config.Network"
10542 ]
10543 ]
56122987 10544 },
44660702
DM
10545 "protected" : 1,
10546 "returns" : {
10547 "type" : "null"
10548 }
10549 },
10550 "GET" : {
e9cd3bd4 10551 "allowtoken" : 1,
44660702
DM
10552 "description" : "Read alias.",
10553 "method" : "GET",
10554 "name" : "read_alias",
56122987 10555 "parameters" : {
44660702 10556 "additionalProperties" : 0,
56122987 10557 "properties" : {
56122987 10558 "name" : {
7aacca6f 10559 "description" : "Alias name.",
44660702 10560 "maxLength" : 64,
56122987 10561 "minLength" : 2,
44660702 10562 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987 10563 "type" : "string"
7aacca6f
DM
10564 },
10565 "node" : {
10566 "description" : "The cluster node name.",
44660702 10567 "format" : "pve-node",
013dc89f
DM
10568 "type" : "string",
10569 "typetext" : "<string>"
44660702
DM
10570 },
10571 "vmid" : {
10572 "description" : "The (unique) ID of the VM.",
10573 "format" : "pve-vmid",
10574 "minimum" : 1,
4bd7df8b 10575 "type" : "integer",
013dc89f 10576 "typetext" : "<integer> (1 - N)"
56122987 10577 }
44660702 10578 }
56122987 10579 },
44660702
DM
10580 "permissions" : {
10581 "check" : [
10582 "perm",
10583 "/vms/{vmid}",
10584 [
10585 "VM.Audit"
10586 ]
10587 ]
56122987 10588 },
44660702
DM
10589 "returns" : {
10590 "type" : "object"
10591 }
7aacca6f 10592 },
44660702 10593 "PUT" : {
e9cd3bd4 10594 "allowtoken" : 1,
44660702
DM
10595 "description" : "Update IP or Network alias.",
10596 "method" : "PUT",
10597 "name" : "update_alias",
56122987
DM
10598 "parameters" : {
10599 "additionalProperties" : 0,
10600 "properties" : {
44660702
DM
10601 "cidr" : {
10602 "description" : "Network/IP specification in CIDR format.",
10603 "format" : "IPorCIDR",
013dc89f
DM
10604 "type" : "string",
10605 "typetext" : "<string>"
44660702
DM
10606 },
10607 "comment" : {
10608 "optional" : 1,
013dc89f
DM
10609 "type" : "string",
10610 "typetext" : "<string>"
56122987
DM
10611 },
10612 "digest" : {
44660702 10613 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
56122987
DM
10614 "maxLength" : 40,
10615 "optional" : 1,
013dc89f
DM
10616 "type" : "string",
10617 "typetext" : "<string>"
56122987 10618 },
7aacca6f 10619 "name" : {
44660702 10620 "description" : "Alias name.",
56122987
DM
10621 "maxLength" : 64,
10622 "minLength" : 2,
10623 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 10624 "type" : "string"
7aacca6f
DM
10625 },
10626 "node" : {
7aacca6f 10627 "description" : "The cluster node name.",
44660702 10628 "format" : "pve-node",
013dc89f
DM
10629 "type" : "string",
10630 "typetext" : "<string>"
44660702
DM
10631 },
10632 "rename" : {
10633 "description" : "Rename an existing alias.",
10634 "maxLength" : 64,
10635 "minLength" : 2,
10636 "optional" : 1,
10637 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10638 "type" : "string"
10639 },
10640 "vmid" : {
10641 "description" : "The (unique) ID of the VM.",
10642 "format" : "pve-vmid",
10643 "minimum" : 1,
4bd7df8b 10644 "type" : "integer",
013dc89f 10645 "typetext" : "<integer> (1 - N)"
56122987
DM
10646 }
10647 }
10648 },
7aacca6f
DM
10649 "permissions" : {
10650 "check" : [
10651 "perm",
10652 "/vms/{vmid}",
10653 [
10654 "VM.Config.Network"
10655 ]
10656 ]
10657 },
10658 "protected" : 1,
7aacca6f
DM
10659 "returns" : {
10660 "type" : "null"
44660702 10661 }
56122987
DM
10662 }
10663 },
44660702 10664 "leaf" : 1,
7aacca6f 10665 "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}",
44660702 10666 "text" : "{name}"
56122987
DM
10667 }
10668 ],
10669 "info" : {
44660702 10670 "GET" : {
e9cd3bd4 10671 "allowtoken" : 1,
44660702
DM
10672 "description" : "List aliases",
10673 "method" : "GET",
10674 "name" : "get_aliases",
56122987 10675 "parameters" : {
44660702 10676 "additionalProperties" : 0,
56122987 10677 "properties" : {
7aacca6f 10678 "node" : {
7aacca6f 10679 "description" : "The cluster node name.",
44660702 10680 "format" : "pve-node",
013dc89f
DM
10681 "type" : "string",
10682 "typetext" : "<string>"
56122987 10683 },
44660702
DM
10684 "vmid" : {
10685 "description" : "The (unique) ID of the VM.",
10686 "format" : "pve-vmid",
10687 "minimum" : 1,
4bd7df8b 10688 "type" : "integer",
013dc89f 10689 "typetext" : "<integer> (1 - N)"
56122987 10690 }
44660702 10691 }
56122987 10692 },
56122987
DM
10693 "permissions" : {
10694 "check" : [
10695 "perm",
10696 "/vms/{vmid}",
10697 [
44660702 10698 "VM.Audit"
56122987
DM
10699 ]
10700 ]
10701 },
56122987
DM
10702 "returns" : {
10703 "items" : {
10704 "properties" : {
44660702 10705 "cidr" : {
56122987
DM
10706 "type" : "string"
10707 },
44660702
DM
10708 "comment" : {
10709 "optional" : 1,
7aacca6f 10710 "type" : "string"
56122987
DM
10711 },
10712 "digest" : {
56122987 10713 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 10714 "maxLength" : 40,
56122987
DM
10715 "optional" : 0,
10716 "type" : "string"
10717 },
44660702 10718 "name" : {
56122987
DM
10719 "type" : "string"
10720 }
44660702
DM
10721 },
10722 "type" : "object"
56122987 10723 },
56122987
DM
10724 "links" : [
10725 {
10726 "href" : "{name}",
10727 "rel" : "child"
10728 }
44660702
DM
10729 ],
10730 "type" : "array"
10731 }
10732 },
10733 "POST" : {
e9cd3bd4 10734 "allowtoken" : 1,
44660702
DM
10735 "description" : "Create IP or Network Alias.",
10736 "method" : "POST",
10737 "name" : "create_alias",
56122987 10738 "parameters" : {
7aacca6f 10739 "additionalProperties" : 0,
56122987 10740 "properties" : {
44660702
DM
10741 "cidr" : {
10742 "description" : "Network/IP specification in CIDR format.",
10743 "format" : "IPorCIDR",
013dc89f
DM
10744 "type" : "string",
10745 "typetext" : "<string>"
44660702
DM
10746 },
10747 "comment" : {
10748 "optional" : 1,
013dc89f
DM
10749 "type" : "string",
10750 "typetext" : "<string>"
44660702
DM
10751 },
10752 "name" : {
10753 "description" : "Alias name.",
10754 "maxLength" : 64,
10755 "minLength" : 2,
10756 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10757 "type" : "string"
56122987
DM
10758 },
10759 "node" : {
7aacca6f 10760 "description" : "The cluster node name.",
44660702 10761 "format" : "pve-node",
013dc89f
DM
10762 "type" : "string",
10763 "typetext" : "<string>"
44660702
DM
10764 },
10765 "vmid" : {
10766 "description" : "The (unique) ID of the VM.",
10767 "format" : "pve-vmid",
10768 "minimum" : 1,
4bd7df8b 10769 "type" : "integer",
013dc89f 10770 "typetext" : "<integer> (1 - N)"
56122987 10771 }
7aacca6f 10772 }
56122987 10773 },
44660702
DM
10774 "permissions" : {
10775 "check" : [
10776 "perm",
10777 "/vms/{vmid}",
10778 [
10779 "VM.Config.Network"
10780 ]
10781 ]
10782 },
10783 "protected" : 1,
10784 "returns" : {
10785 "type" : "null"
10786 }
56122987 10787 }
44660702
DM
10788 },
10789 "leaf" : 0,
10790 "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases",
10791 "text" : "aliases"
56122987
DM
10792 },
10793 {
56122987
DM
10794 "children" : [
10795 {
7aacca6f
DM
10796 "children" : [
10797 {
10798 "info" : {
10799 "DELETE" : {
e9cd3bd4 10800 "allowtoken" : 1,
44660702 10801 "description" : "Remove IP or Network from IPSet.",
7aacca6f 10802 "method" : "DELETE",
44660702 10803 "name" : "remove_ip",
7aacca6f 10804 "parameters" : {
44660702 10805 "additionalProperties" : 0,
7aacca6f 10806 "properties" : {
44660702
DM
10807 "cidr" : {
10808 "description" : "Network/IP specification in CIDR format.",
10809 "format" : "IPorCIDRorAlias",
013dc89f
DM
10810 "type" : "string",
10811 "typetext" : "<string>"
44660702
DM
10812 },
10813 "digest" : {
10814 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
10815 "maxLength" : 40,
10816 "optional" : 1,
013dc89f
DM
10817 "type" : "string",
10818 "typetext" : "<string>"
44660702 10819 },
7aacca6f 10820 "name" : {
7aacca6f 10821 "description" : "IP set name.",
44660702
DM
10822 "maxLength" : 64,
10823 "minLength" : 2,
7aacca6f 10824 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 10825 "type" : "string"
7aacca6f
DM
10826 },
10827 "node" : {
10828 "description" : "The cluster node name.",
44660702 10829 "format" : "pve-node",
013dc89f
DM
10830 "type" : "string",
10831 "typetext" : "<string>"
7aacca6f
DM
10832 },
10833 "vmid" : {
44660702 10834 "description" : "The (unique) ID of the VM.",
7aacca6f 10835 "format" : "pve-vmid",
44660702 10836 "minimum" : 1,
4bd7df8b 10837 "type" : "integer",
013dc89f 10838 "typetext" : "<integer> (1 - N)"
7aacca6f 10839 }
44660702 10840 }
7aacca6f 10841 },
7aacca6f
DM
10842 "permissions" : {
10843 "check" : [
10844 "perm",
10845 "/vms/{vmid}",
10846 [
10847 "VM.Config.Network"
10848 ]
10849 ]
10850 },
10851 "protected" : 1,
44660702
DM
10852 "returns" : {
10853 "type" : "null"
10854 }
56122987 10855 },
44660702 10856 "GET" : {
e9cd3bd4 10857 "allowtoken" : 1,
44660702
DM
10858 "description" : "Read IP or Network settings from IPSet.",
10859 "method" : "GET",
10860 "name" : "read_ip",
7aacca6f 10861 "parameters" : {
44660702 10862 "additionalProperties" : 0,
7aacca6f 10863 "properties" : {
7aacca6f 10864 "cidr" : {
44660702 10865 "description" : "Network/IP specification in CIDR format.",
7aacca6f 10866 "format" : "IPorCIDRorAlias",
013dc89f
DM
10867 "type" : "string",
10868 "typetext" : "<string>"
7aacca6f
DM
10869 },
10870 "name" : {
7aacca6f 10871 "description" : "IP set name.",
44660702 10872 "maxLength" : 64,
7aacca6f 10873 "minLength" : 2,
44660702
DM
10874 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10875 "type" : "string"
7aacca6f 10876 },
44660702
DM
10877 "node" : {
10878 "description" : "The cluster node name.",
10879 "format" : "pve-node",
013dc89f
DM
10880 "type" : "string",
10881 "typetext" : "<string>"
7aacca6f 10882 },
44660702
DM
10883 "vmid" : {
10884 "description" : "The (unique) ID of the VM.",
10885 "format" : "pve-vmid",
10886 "minimum" : 1,
4bd7df8b 10887 "type" : "integer",
013dc89f 10888 "typetext" : "<integer> (1 - N)"
7aacca6f 10889 }
44660702 10890 }
7aacca6f 10891 },
44660702
DM
10892 "permissions" : {
10893 "check" : [
10894 "perm",
10895 "/vms/{vmid}",
10896 [
10897 "VM.Audit"
10898 ]
10899 ]
10900 },
10901 "protected" : 1,
7aacca6f 10902 "returns" : {
44660702 10903 "type" : "object"
7aacca6f 10904 }
56122987 10905 },
44660702 10906 "PUT" : {
e9cd3bd4 10907 "allowtoken" : 1,
44660702
DM
10908 "description" : "Update IP or Network settings",
10909 "method" : "PUT",
10910 "name" : "update_ip",
7aacca6f
DM
10911 "parameters" : {
10912 "additionalProperties" : 0,
10913 "properties" : {
44660702
DM
10914 "cidr" : {
10915 "description" : "Network/IP specification in CIDR format.",
10916 "format" : "IPorCIDRorAlias",
013dc89f
DM
10917 "type" : "string",
10918 "typetext" : "<string>"
44660702
DM
10919 },
10920 "comment" : {
10921 "optional" : 1,
013dc89f
DM
10922 "type" : "string",
10923 "typetext" : "<string>"
44660702
DM
10924 },
10925 "digest" : {
10926 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
10927 "maxLength" : 40,
10928 "optional" : 1,
013dc89f
DM
10929 "type" : "string",
10930 "typetext" : "<string>"
44660702 10931 },
7aacca6f 10932 "name" : {
7aacca6f 10933 "description" : "IP set name.",
44660702 10934 "maxLength" : 64,
7aacca6f 10935 "minLength" : 2,
44660702
DM
10936 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10937 "type" : "string"
7aacca6f
DM
10938 },
10939 "node" : {
7aacca6f 10940 "description" : "The cluster node name.",
44660702 10941 "format" : "pve-node",
013dc89f
DM
10942 "type" : "string",
10943 "typetext" : "<string>"
7aacca6f 10944 },
44660702
DM
10945 "nomatch" : {
10946 "optional" : 1,
013dc89f
DM
10947 "type" : "boolean",
10948 "typetext" : "<boolean>"
7aacca6f
DM
10949 },
10950 "vmid" : {
10951 "description" : "The (unique) ID of the VM.",
44660702 10952 "format" : "pve-vmid",
7aacca6f 10953 "minimum" : 1,
4bd7df8b 10954 "type" : "integer",
013dc89f 10955 "typetext" : "<integer> (1 - N)"
7aacca6f
DM
10956 }
10957 }
10958 },
10959 "permissions" : {
10960 "check" : [
10961 "perm",
10962 "/vms/{vmid}",
10963 [
44660702 10964 "VM.Config.Network"
7aacca6f
DM
10965 ]
10966 ]
10967 },
7aacca6f 10968 "protected" : 1,
7aacca6f 10969 "returns" : {
44660702 10970 "type" : "null"
7aacca6f 10971 }
56122987 10972 }
7aacca6f 10973 },
7aacca6f 10974 "leaf" : 1,
44660702
DM
10975 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}",
10976 "text" : "{cidr}"
7aacca6f 10977 }
44660702
DM
10978 ],
10979 "info" : {
10980 "DELETE" : {
e9cd3bd4 10981 "allowtoken" : 1,
44660702
DM
10982 "description" : "Delete IPSet",
10983 "method" : "DELETE",
10984 "name" : "delete_ipset",
10985 "parameters" : {
10986 "additionalProperties" : 0,
10987 "properties" : {
81a3384d
TL
10988 "force" : {
10989 "description" : "Delete all members of the IPSet, if there are any.",
10990 "optional" : 1,
10991 "type" : "boolean",
10992 "typetext" : "<boolean>"
10993 },
44660702
DM
10994 "name" : {
10995 "description" : "IP set name.",
10996 "maxLength" : 64,
10997 "minLength" : 2,
10998 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10999 "type" : "string"
11000 },
11001 "node" : {
11002 "description" : "The cluster node name.",
11003 "format" : "pve-node",
013dc89f
DM
11004 "type" : "string",
11005 "typetext" : "<string>"
44660702
DM
11006 },
11007 "vmid" : {
11008 "description" : "The (unique) ID of the VM.",
11009 "format" : "pve-vmid",
11010 "minimum" : 1,
4bd7df8b 11011 "type" : "integer",
013dc89f 11012 "typetext" : "<integer> (1 - N)"
44660702
DM
11013 }
11014 }
7aacca6f 11015 },
44660702
DM
11016 "permissions" : {
11017 "check" : [
11018 "perm",
11019 "/vms/{vmid}",
11020 [
11021 "VM.Config.Network"
11022 ]
11023 ]
7aacca6f 11024 },
44660702
DM
11025 "protected" : 1,
11026 "returns" : {
11027 "type" : "null"
11028 }
11029 },
11030 "GET" : {
e9cd3bd4 11031 "allowtoken" : 1,
44660702
DM
11032 "description" : "List IPSet content",
11033 "method" : "GET",
11034 "name" : "get_ipset",
11035 "parameters" : {
11036 "additionalProperties" : 0,
11037 "properties" : {
11038 "name" : {
11039 "description" : "IP set name.",
11040 "maxLength" : 64,
11041 "minLength" : 2,
11042 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11043 "type" : "string"
11044 },
11045 "node" : {
11046 "description" : "The cluster node name.",
11047 "format" : "pve-node",
013dc89f
DM
11048 "type" : "string",
11049 "typetext" : "<string>"
44660702
DM
11050 },
11051 "vmid" : {
11052 "description" : "The (unique) ID of the VM.",
11053 "format" : "pve-vmid",
11054 "minimum" : 1,
4bd7df8b 11055 "type" : "integer",
013dc89f 11056 "typetext" : "<integer> (1 - N)"
44660702
DM
11057 }
11058 }
7aacca6f 11059 },
44660702
DM
11060 "permissions" : {
11061 "check" : [
11062 "perm",
11063 "/vms/{vmid}",
11064 [
11065 "VM.Audit"
11066 ]
11067 ]
7aacca6f 11068 },
44660702
DM
11069 "returns" : {
11070 "items" : {
11071 "properties" : {
11072 "cidr" : {
11073 "type" : "string"
11074 },
11075 "comment" : {
11076 "optional" : 1,
11077 "type" : "string"
11078 },
11079 "digest" : {
11080 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
11081 "maxLength" : 40,
11082 "optional" : 0,
11083 "type" : "string"
11084 },
11085 "nomatch" : {
11086 "optional" : 1,
11087 "type" : "boolean"
11088 }
11089 },
11090 "type" : "object"
11091 },
11092 "links" : [
11093 {
11094 "href" : "{cidr}",
11095 "rel" : "child"
11096 }
11097 ],
11098 "type" : "array"
56122987
DM
11099 }
11100 },
44660702 11101 "POST" : {
e9cd3bd4 11102 "allowtoken" : 1,
44660702
DM
11103 "description" : "Add IP or Network to IPSet.",
11104 "method" : "POST",
11105 "name" : "create_ip",
11106 "parameters" : {
11107 "additionalProperties" : 0,
11108 "properties" : {
11109 "cidr" : {
11110 "description" : "Network/IP specification in CIDR format.",
11111 "format" : "IPorCIDRorAlias",
013dc89f
DM
11112 "type" : "string",
11113 "typetext" : "<string>"
44660702
DM
11114 },
11115 "comment" : {
11116 "optional" : 1,
013dc89f
DM
11117 "type" : "string",
11118 "typetext" : "<string>"
44660702
DM
11119 },
11120 "name" : {
11121 "description" : "IP set name.",
11122 "maxLength" : 64,
11123 "minLength" : 2,
11124 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11125 "type" : "string"
11126 },
11127 "node" : {
11128 "description" : "The cluster node name.",
11129 "format" : "pve-node",
013dc89f
DM
11130 "type" : "string",
11131 "typetext" : "<string>"
44660702
DM
11132 },
11133 "nomatch" : {
11134 "optional" : 1,
013dc89f
DM
11135 "type" : "boolean",
11136 "typetext" : "<boolean>"
44660702
DM
11137 },
11138 "vmid" : {
11139 "description" : "The (unique) ID of the VM.",
11140 "format" : "pve-vmid",
11141 "minimum" : 1,
4bd7df8b 11142 "type" : "integer",
013dc89f 11143 "typetext" : "<integer> (1 - N)"
44660702
DM
11144 }
11145 }
11146 },
11147 "permissions" : {
11148 "check" : [
11149 "perm",
11150 "/vms/{vmid}",
11151 [
11152 "VM.Config.Network"
11153 ]
11154 ]
11155 },
11156 "protected" : 1,
11157 "returns" : {
11158 "type" : "null"
11159 }
11160 }
11161 },
11162 "leaf" : 0,
11163 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}",
11164 "text" : "{name}"
11165 }
11166 ],
11167 "info" : {
11168 "GET" : {
e9cd3bd4 11169 "allowtoken" : 1,
44660702
DM
11170 "description" : "List IPSets",
11171 "method" : "GET",
11172 "name" : "ipset_index",
11173 "parameters" : {
11174 "additionalProperties" : 0,
11175 "properties" : {
11176 "node" : {
11177 "description" : "The cluster node name.",
11178 "format" : "pve-node",
013dc89f
DM
11179 "type" : "string",
11180 "typetext" : "<string>"
44660702
DM
11181 },
11182 "vmid" : {
11183 "description" : "The (unique) ID of the VM.",
11184 "format" : "pve-vmid",
11185 "minimum" : 1,
4bd7df8b 11186 "type" : "integer",
013dc89f 11187 "typetext" : "<integer> (1 - N)"
44660702
DM
11188 }
11189 }
56122987
DM
11190 },
11191 "permissions" : {
11192 "check" : [
11193 "perm",
11194 "/vms/{vmid}",
11195 [
44660702 11196 "VM.Audit"
56122987
DM
11197 ]
11198 ]
11199 },
7aacca6f 11200 "returns" : {
7aacca6f
DM
11201 "items" : {
11202 "properties" : {
7aacca6f
DM
11203 "comment" : {
11204 "optional" : 1,
11205 "type" : "string"
11206 },
11207 "digest" : {
7aacca6f 11208 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702
DM
11209 "maxLength" : 40,
11210 "optional" : 0,
11211 "type" : "string"
11212 },
11213 "name" : {
11214 "description" : "IP set name.",
11215 "maxLength" : 64,
11216 "minLength" : 2,
11217 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11218 "type" : "string"
7aacca6f
DM
11219 }
11220 },
11221 "type" : "object"
11222 },
11223 "links" : [
11224 {
44660702
DM
11225 "href" : "{name}",
11226 "rel" : "child"
7aacca6f 11227 }
44660702
DM
11228 ],
11229 "type" : "array"
11230 }
11231 },
11232 "POST" : {
e9cd3bd4 11233 "allowtoken" : 1,
44660702
DM
11234 "description" : "Create new IPSet",
11235 "method" : "POST",
11236 "name" : "create_ipset",
56122987
DM
11237 "parameters" : {
11238 "additionalProperties" : 0,
11239 "properties" : {
44660702
DM
11240 "comment" : {
11241 "optional" : 1,
013dc89f
DM
11242 "type" : "string",
11243 "typetext" : "<string>"
56122987 11244 },
44660702
DM
11245 "digest" : {
11246 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
11247 "maxLength" : 40,
11248 "optional" : 1,
013dc89f
DM
11249 "type" : "string",
11250 "typetext" : "<string>"
44660702
DM
11251 },
11252 "name" : {
11253 "description" : "IP set name.",
11254 "maxLength" : 64,
11255 "minLength" : 2,
11256 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11257 "type" : "string"
11258 },
11259 "node" : {
11260 "description" : "The cluster node name.",
11261 "format" : "pve-node",
013dc89f
DM
11262 "type" : "string",
11263 "typetext" : "<string>"
44660702
DM
11264 },
11265 "rename" : {
11266 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
11267 "maxLength" : 64,
11268 "minLength" : 2,
11269 "optional" : 1,
11270 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
11271 "type" : "string"
11272 },
11273 "vmid" : {
11274 "description" : "The (unique) ID of the VM.",
11275 "format" : "pve-vmid",
11276 "minimum" : 1,
4bd7df8b 11277 "type" : "integer",
013dc89f 11278 "typetext" : "<integer> (1 - N)"
44660702
DM
11279 }
11280 }
11281 },
7aacca6f
DM
11282 "permissions" : {
11283 "check" : [
11284 "perm",
11285 "/vms/{vmid}",
11286 [
11287 "VM.Config.Network"
11288 ]
11289 ]
11290 },
44660702 11291 "protected" : 1,
56122987 11292 "returns" : {
7aacca6f 11293 "type" : "null"
44660702
DM
11294 }
11295 }
11296 },
11297 "leaf" : 0,
11298 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset",
11299 "text" : "ipset"
11300 },
11301 {
11302 "info" : {
11303 "GET" : {
e9cd3bd4 11304 "allowtoken" : 1,
44660702
DM
11305 "description" : "Get VM firewall options.",
11306 "method" : "GET",
11307 "name" : "get_options",
7aacca6f
DM
11308 "parameters" : {
11309 "additionalProperties" : 0,
56122987 11310 "properties" : {
7aacca6f
DM
11311 "node" : {
11312 "description" : "The cluster node name.",
44660702 11313 "format" : "pve-node",
013dc89f
DM
11314 "type" : "string",
11315 "typetext" : "<string>"
7aacca6f 11316 },
44660702
DM
11317 "vmid" : {
11318 "description" : "The (unique) ID of the VM.",
11319 "format" : "pve-vmid",
11320 "minimum" : 1,
4bd7df8b 11321 "type" : "integer",
013dc89f 11322 "typetext" : "<integer> (1 - N)"
44660702
DM
11323 }
11324 }
11325 },
11326 "permissions" : {
11327 "check" : [
11328 "perm",
11329 "/vms/{vmid}",
11330 [
11331 "VM.Audit"
11332 ]
11333 ]
11334 },
11335 "proxyto" : "node",
11336 "returns" : {
11337 "properties" : {
11338 "dhcp" : {
5c1699e5 11339 "default" : 0,
44660702 11340 "description" : "Enable DHCP.",
56122987 11341 "optional" : 1,
44660702 11342 "type" : "boolean"
56122987 11343 },
44660702 11344 "enable" : {
5c1699e5 11345 "default" : 0,
44660702 11346 "description" : "Enable/disable firewall rules.",
7aacca6f 11347 "optional" : 1,
44660702 11348 "type" : "boolean"
56122987 11349 },
44660702
DM
11350 "ipfilter" : {
11351 "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 11352 "optional" : 1,
44660702 11353 "type" : "boolean"
7aacca6f 11354 },
56122987 11355 "log_level_in" : {
7aacca6f 11356 "description" : "Log level for incoming traffic.",
56122987
DM
11357 "enum" : [
11358 "emerg",
11359 "alert",
11360 "crit",
11361 "err",
11362 "warning",
11363 "notice",
11364 "info",
11365 "debug",
11366 "nolog"
11367 ],
56122987
DM
11368 "optional" : 1,
11369 "type" : "string"
11370 },
44660702
DM
11371 "log_level_out" : {
11372 "description" : "Log level for outgoing traffic.",
11373 "enum" : [
11374 "emerg",
11375 "alert",
11376 "crit",
11377 "err",
11378 "warning",
11379 "notice",
11380 "info",
11381 "debug",
11382 "nolog"
11383 ],
11384 "optional" : 1,
11385 "type" : "string"
11386 },
11387 "macfilter" : {
de786b48 11388 "default" : 1,
44660702 11389 "description" : "Enable/disable MAC address filter.",
56122987 11390 "optional" : 1,
7aacca6f 11391 "type" : "boolean"
56122987
DM
11392 },
11393 "ndp" : {
5c1699e5
TL
11394 "default" : 0,
11395 "description" : "Enable NDP (Neighbor Discovery Protocol).",
56122987 11396 "optional" : 1,
44660702 11397 "type" : "boolean"
56122987
DM
11398 },
11399 "policy_in" : {
56122987
DM
11400 "description" : "Input policy.",
11401 "enum" : [
11402 "ACCEPT",
11403 "REJECT",
11404 "DROP"
44660702
DM
11405 ],
11406 "optional" : 1,
11407 "type" : "string"
56122987 11408 },
44660702
DM
11409 "policy_out" : {
11410 "description" : "Output policy.",
11411 "enum" : [
11412 "ACCEPT",
11413 "REJECT",
11414 "DROP"
11415 ],
11416 "optional" : 1,
11417 "type" : "string"
11418 },
11419 "radv" : {
11420 "description" : "Allow sending Router Advertisement.",
11421 "optional" : 1,
11422 "type" : "boolean"
11423 }
11424 },
11425 "type" : "object"
11426 }
11427 },
11428 "PUT" : {
e9cd3bd4 11429 "allowtoken" : 1,
44660702
DM
11430 "description" : "Set Firewall options.",
11431 "method" : "PUT",
11432 "name" : "set_options",
11433 "parameters" : {
11434 "additionalProperties" : 0,
11435 "properties" : {
11436 "delete" : {
11437 "description" : "A list of settings you want to delete.",
11438 "format" : "pve-configid-list",
11439 "optional" : 1,
013dc89f
DM
11440 "type" : "string",
11441 "typetext" : "<string>"
44660702
DM
11442 },
11443 "dhcp" : {
5c1699e5 11444 "default" : 0,
44660702 11445 "description" : "Enable DHCP.",
7aacca6f 11446 "optional" : 1,
013dc89f
DM
11447 "type" : "boolean",
11448 "typetext" : "<boolean>"
7aacca6f
DM
11449 },
11450 "digest" : {
11451 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 11452 "maxLength" : 40,
7aacca6f 11453 "optional" : 1,
013dc89f
DM
11454 "type" : "string",
11455 "typetext" : "<string>"
7aacca6f
DM
11456 },
11457 "enable" : {
5c1699e5 11458 "default" : 0,
7aacca6f 11459 "description" : "Enable/disable firewall rules.",
56122987 11460 "optional" : 1,
013dc89f
DM
11461 "type" : "boolean",
11462 "typetext" : "<boolean>"
7aacca6f 11463 },
44660702
DM
11464 "ipfilter" : {
11465 "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.",
11466 "optional" : 1,
013dc89f
DM
11467 "type" : "boolean",
11468 "typetext" : "<boolean>"
44660702
DM
11469 },
11470 "log_level_in" : {
11471 "description" : "Log level for incoming traffic.",
56122987
DM
11472 "enum" : [
11473 "emerg",
11474 "alert",
11475 "crit",
11476 "err",
11477 "warning",
11478 "notice",
11479 "info",
11480 "debug",
11481 "nolog"
7aacca6f 11482 ],
7aacca6f 11483 "optional" : 1,
44660702 11484 "type" : "string"
7aacca6f 11485 },
44660702
DM
11486 "log_level_out" : {
11487 "description" : "Log level for outgoing traffic.",
56122987
DM
11488 "enum" : [
11489 "emerg",
11490 "alert",
11491 "crit",
11492 "err",
11493 "warning",
11494 "notice",
11495 "info",
11496 "debug",
11497 "nolog"
11498 ],
56122987 11499 "optional" : 1,
44660702 11500 "type" : "string"
56122987
DM
11501 },
11502 "macfilter" : {
de786b48 11503 "default" : 1,
56122987 11504 "description" : "Enable/disable MAC address filter.",
7aacca6f 11505 "optional" : 1,
013dc89f
DM
11506 "type" : "boolean",
11507 "typetext" : "<boolean>"
56122987 11508 },
44660702 11509 "ndp" : {
5c1699e5
TL
11510 "default" : 0,
11511 "description" : "Enable NDP (Neighbor Discovery Protocol).",
44660702 11512 "optional" : 1,
013dc89f
DM
11513 "type" : "boolean",
11514 "typetext" : "<boolean>"
44660702
DM
11515 },
11516 "node" : {
11517 "description" : "The cluster node name.",
11518 "format" : "pve-node",
013dc89f
DM
11519 "type" : "string",
11520 "typetext" : "<string>"
44660702 11521 },
56122987 11522 "policy_in" : {
44660702 11523 "description" : "Input policy.",
56122987
DM
11524 "enum" : [
11525 "ACCEPT",
11526 "REJECT",
11527 "DROP"
7aacca6f 11528 ],
56122987 11529 "optional" : 1,
7aacca6f 11530 "type" : "string"
56122987 11531 },
44660702
DM
11532 "policy_out" : {
11533 "description" : "Output policy.",
11534 "enum" : [
11535 "ACCEPT",
11536 "REJECT",
11537 "DROP"
11538 ],
56122987 11539 "optional" : 1,
44660702 11540 "type" : "string"
56122987 11541 },
44660702
DM
11542 "radv" : {
11543 "description" : "Allow sending Router Advertisement.",
56122987 11544 "optional" : 1,
013dc89f
DM
11545 "type" : "boolean",
11546 "typetext" : "<boolean>"
7aacca6f
DM
11547 },
11548 "vmid" : {
11549 "description" : "The (unique) ID of the VM.",
44660702 11550 "format" : "pve-vmid",
7aacca6f 11551 "minimum" : 1,
4bd7df8b 11552 "type" : "integer",
013dc89f 11553 "typetext" : "<integer> (1 - N)"
56122987
DM
11554 }
11555 }
11556 },
56122987
DM
11557 "permissions" : {
11558 "check" : [
11559 "perm",
11560 "/vms/{vmid}",
11561 [
44660702 11562 "VM.Config.Network"
56122987
DM
11563 ]
11564 ]
7aacca6f 11565 },
44660702 11566 "protected" : 1,
7aacca6f 11567 "proxyto" : "node",
44660702
DM
11568 "returns" : {
11569 "type" : "null"
11570 }
56122987
DM
11571 }
11572 },
44660702 11573 "leaf" : 1,
7aacca6f 11574 "path" : "/nodes/{node}/qemu/{vmid}/firewall/options",
44660702 11575 "text" : "options"
56122987
DM
11576 },
11577 {
56122987
DM
11578 "info" : {
11579 "GET" : {
e9cd3bd4 11580 "allowtoken" : 1,
44660702
DM
11581 "description" : "Read firewall log",
11582 "method" : "GET",
11583 "name" : "log",
11584 "parameters" : {
11585 "additionalProperties" : 0,
11586 "properties" : {
11587 "limit" : {
11588 "minimum" : 0,
11589 "optional" : 1,
4bd7df8b 11590 "type" : "integer",
013dc89f 11591 "typetext" : "<integer> (0 - N)"
56122987 11592 },
44660702
DM
11593 "node" : {
11594 "description" : "The cluster node name.",
11595 "format" : "pve-node",
013dc89f
DM
11596 "type" : "string",
11597 "typetext" : "<string>"
44660702 11598 },
9d2e98ed
TL
11599 "since" : {
11600 "description" : "Display log since this UNIX epoch.",
11601 "minimum" : 0,
11602 "optional" : 1,
11603 "type" : "integer",
11604 "typetext" : "<integer> (0 - N)"
11605 },
44660702
DM
11606 "start" : {
11607 "minimum" : 0,
11608 "optional" : 1,
4bd7df8b 11609 "type" : "integer",
013dc89f 11610 "typetext" : "<integer> (0 - N)"
44660702 11611 },
9d2e98ed
TL
11612 "until" : {
11613 "description" : "Display log until this UNIX epoch.",
11614 "minimum" : 0,
11615 "optional" : 1,
11616 "type" : "integer",
11617 "typetext" : "<integer> (0 - N)"
11618 },
44660702
DM
11619 "vmid" : {
11620 "description" : "The (unique) ID of the VM.",
11621 "format" : "pve-vmid",
11622 "minimum" : 1,
4bd7df8b 11623 "type" : "integer",
013dc89f 11624 "typetext" : "<integer> (1 - N)"
44660702
DM
11625 }
11626 }
7aacca6f 11627 },
7aacca6f
DM
11628 "permissions" : {
11629 "check" : [
11630 "perm",
11631 "/vms/{vmid}",
11632 [
11633 "VM.Console"
11634 ]
11635 ]
56122987 11636 },
7aacca6f 11637 "protected" : 1,
44660702
DM
11638 "proxyto" : "node",
11639 "returns" : {
11640 "items" : {
11641 "properties" : {
11642 "n" : {
11643 "description" : "Line number",
11644 "type" : "integer"
11645 },
11646 "t" : {
11647 "description" : "Line text",
11648 "type" : "string"
11649 }
56122987 11650 },
44660702 11651 "type" : "object"
7aacca6f 11652 },
44660702 11653 "type" : "array"
7aacca6f
DM
11654 }
11655 }
11656 },
44660702 11657 "leaf" : 1,
7aacca6f 11658 "path" : "/nodes/{node}/qemu/{vmid}/firewall/log",
44660702 11659 "text" : "log"
7aacca6f
DM
11660 },
11661 {
7aacca6f
DM
11662 "info" : {
11663 "GET" : {
e9cd3bd4 11664 "allowtoken" : 1,
7aacca6f 11665 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
44660702
DM
11666 "method" : "GET",
11667 "name" : "refs",
56122987 11668 "parameters" : {
44660702 11669 "additionalProperties" : 0,
56122987
DM
11670 "properties" : {
11671 "node" : {
7aacca6f 11672 "description" : "The cluster node name.",
44660702 11673 "format" : "pve-node",
013dc89f
DM
11674 "type" : "string",
11675 "typetext" : "<string>"
56122987
DM
11676 },
11677 "type" : {
56122987
DM
11678 "description" : "Only list references of specified type.",
11679 "enum" : [
11680 "alias",
11681 "ipset"
7aacca6f 11682 ],
44660702
DM
11683 "optional" : 1,
11684 "type" : "string"
11685 },
11686 "vmid" : {
11687 "description" : "The (unique) ID of the VM.",
11688 "format" : "pve-vmid",
11689 "minimum" : 1,
4bd7df8b 11690 "type" : "integer",
013dc89f 11691 "typetext" : "<integer> (1 - N)"
56122987 11692 }
44660702
DM
11693 }
11694 },
11695 "permissions" : {
11696 "check" : [
11697 "perm",
11698 "/vms/{vmid}",
11699 [
11700 "VM.Audit"
11701 ]
11702 ]
56122987
DM
11703 },
11704 "returns" : {
56122987
DM
11705 "items" : {
11706 "properties" : {
44660702
DM
11707 "comment" : {
11708 "optional" : 1,
56122987
DM
11709 "type" : "string"
11710 },
11711 "name" : {
11712 "type" : "string"
11713 },
44660702
DM
11714 "type" : {
11715 "enum" : [
11716 "alias",
11717 "ipset"
11718 ],
7aacca6f 11719 "type" : "string"
56122987
DM
11720 }
11721 },
11722 "type" : "object"
7aacca6f
DM
11723 },
11724 "type" : "array"
11725 }
56122987 11726 }
44660702
DM
11727 },
11728 "leaf" : 1,
11729 "path" : "/nodes/{node}/qemu/{vmid}/firewall/refs",
11730 "text" : "refs"
56122987
DM
11731 }
11732 ],
56122987
DM
11733 "info" : {
11734 "GET" : {
e9cd3bd4 11735 "allowtoken" : 1,
44660702 11736 "description" : "Directory index.",
56122987 11737 "method" : "GET",
44660702 11738 "name" : "index",
56122987 11739 "parameters" : {
44660702 11740 "additionalProperties" : 0,
56122987
DM
11741 "properties" : {
11742 "node" : {
11743 "description" : "The cluster node name.",
44660702 11744 "format" : "pve-node",
013dc89f
DM
11745 "type" : "string",
11746 "typetext" : "<string>"
56122987
DM
11747 },
11748 "vmid" : {
44660702 11749 "description" : "The (unique) ID of the VM.",
56122987
DM
11750 "format" : "pve-vmid",
11751 "minimum" : 1,
4bd7df8b 11752 "type" : "integer",
013dc89f 11753 "typetext" : "<integer> (1 - N)"
56122987 11754 }
44660702 11755 }
56122987 11756 },
56122987 11757 "permissions" : {
27a7acb2
DM
11758 "user" : "all"
11759 },
11760 "returns" : {
11761 "items" : {
11762 "properties" : {},
11763 "type" : "object"
11764 },
11765 "links" : [
11766 {
11767 "href" : "{name}",
11768 "rel" : "child"
11769 }
11770 ],
11771 "type" : "array"
11772 }
11773 }
11774 },
11775 "leaf" : 0,
11776 "path" : "/nodes/{node}/qemu/{vmid}/firewall",
11777 "text" : "firewall"
11778 },
11779 {
11780 "children" : [
11781 {
11782 "info" : {
11783 "POST" : {
e9cd3bd4 11784 "allowtoken" : 1,
27a7acb2
DM
11785 "description" : "Execute fsfreeze-freeze.",
11786 "method" : "POST",
11787 "name" : "fsfreeze-freeze",
11788 "parameters" : {
11789 "additionalProperties" : 0,
11790 "properties" : {
11791 "node" : {
11792 "description" : "The cluster node name.",
11793 "format" : "pve-node",
11794 "type" : "string",
11795 "typetext" : "<string>"
11796 },
11797 "vmid" : {
11798 "description" : "The (unique) ID of the VM.",
11799 "format" : "pve-vmid",
11800 "minimum" : 1,
11801 "type" : "integer",
11802 "typetext" : "<integer> (1 - N)"
11803 }
11804 }
11805 },
11806 "permissions" : {
11807 "check" : [
11808 "perm",
11809 "/vms/{vmid}",
11810 [
11811 "VM.Monitor"
11812 ]
11813 ]
11814 },
11815 "protected" : 1,
11816 "proxyto" : "node",
11817 "returns" : {
11818 "description" : "Returns an object with a single `result` property.",
11819 "type" : "object"
11820 }
11821 }
11822 },
11823 "leaf" : 1,
11824 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-freeze",
11825 "text" : "fsfreeze-freeze"
11826 },
11827 {
11828 "info" : {
11829 "POST" : {
e9cd3bd4 11830 "allowtoken" : 1,
27a7acb2
DM
11831 "description" : "Execute fsfreeze-status.",
11832 "method" : "POST",
11833 "name" : "fsfreeze-status",
11834 "parameters" : {
11835 "additionalProperties" : 0,
11836 "properties" : {
11837 "node" : {
11838 "description" : "The cluster node name.",
11839 "format" : "pve-node",
11840 "type" : "string",
11841 "typetext" : "<string>"
11842 },
11843 "vmid" : {
11844 "description" : "The (unique) ID of the VM.",
11845 "format" : "pve-vmid",
11846 "minimum" : 1,
11847 "type" : "integer",
11848 "typetext" : "<integer> (1 - N)"
11849 }
11850 }
11851 },
11852 "permissions" : {
11853 "check" : [
11854 "perm",
11855 "/vms/{vmid}",
11856 [
11857 "VM.Monitor"
11858 ]
11859 ]
11860 },
11861 "protected" : 1,
11862 "proxyto" : "node",
11863 "returns" : {
11864 "description" : "Returns an object with a single `result` property.",
11865 "type" : "object"
11866 }
11867 }
11868 },
11869 "leaf" : 1,
11870 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-status",
11871 "text" : "fsfreeze-status"
11872 },
11873 {
11874 "info" : {
11875 "POST" : {
e9cd3bd4 11876 "allowtoken" : 1,
27a7acb2
DM
11877 "description" : "Execute fsfreeze-thaw.",
11878 "method" : "POST",
11879 "name" : "fsfreeze-thaw",
11880 "parameters" : {
11881 "additionalProperties" : 0,
11882 "properties" : {
11883 "node" : {
11884 "description" : "The cluster node name.",
11885 "format" : "pve-node",
11886 "type" : "string",
11887 "typetext" : "<string>"
11888 },
11889 "vmid" : {
11890 "description" : "The (unique) ID of the VM.",
11891 "format" : "pve-vmid",
11892 "minimum" : 1,
11893 "type" : "integer",
11894 "typetext" : "<integer> (1 - N)"
11895 }
11896 }
11897 },
11898 "permissions" : {
11899 "check" : [
11900 "perm",
11901 "/vms/{vmid}",
11902 [
11903 "VM.Monitor"
11904 ]
11905 ]
11906 },
11907 "protected" : 1,
11908 "proxyto" : "node",
11909 "returns" : {
11910 "description" : "Returns an object with a single `result` property.",
11911 "type" : "object"
11912 }
11913 }
11914 },
11915 "leaf" : 1,
11916 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-thaw",
11917 "text" : "fsfreeze-thaw"
11918 },
11919 {
11920 "info" : {
11921 "POST" : {
e9cd3bd4 11922 "allowtoken" : 1,
27a7acb2
DM
11923 "description" : "Execute fstrim.",
11924 "method" : "POST",
11925 "name" : "fstrim",
11926 "parameters" : {
11927 "additionalProperties" : 0,
11928 "properties" : {
11929 "node" : {
11930 "description" : "The cluster node name.",
11931 "format" : "pve-node",
11932 "type" : "string",
11933 "typetext" : "<string>"
11934 },
11935 "vmid" : {
11936 "description" : "The (unique) ID of the VM.",
11937 "format" : "pve-vmid",
11938 "minimum" : 1,
11939 "type" : "integer",
11940 "typetext" : "<integer> (1 - N)"
11941 }
11942 }
11943 },
11944 "permissions" : {
11945 "check" : [
11946 "perm",
11947 "/vms/{vmid}",
11948 [
11949 "VM.Monitor"
11950 ]
11951 ]
11952 },
11953 "protected" : 1,
11954 "proxyto" : "node",
11955 "returns" : {
11956 "description" : "Returns an object with a single `result` property.",
11957 "type" : "object"
11958 }
11959 }
11960 },
11961 "leaf" : 1,
11962 "path" : "/nodes/{node}/qemu/{vmid}/agent/fstrim",
11963 "text" : "fstrim"
11964 },
11965 {
11966 "info" : {
11967 "GET" : {
e9cd3bd4 11968 "allowtoken" : 1,
27a7acb2
DM
11969 "description" : "Execute get-fsinfo.",
11970 "method" : "GET",
11971 "name" : "get-fsinfo",
11972 "parameters" : {
11973 "additionalProperties" : 0,
11974 "properties" : {
11975 "node" : {
11976 "description" : "The cluster node name.",
11977 "format" : "pve-node",
11978 "type" : "string",
11979 "typetext" : "<string>"
11980 },
11981 "vmid" : {
11982 "description" : "The (unique) ID of the VM.",
11983 "format" : "pve-vmid",
11984 "minimum" : 1,
11985 "type" : "integer",
11986 "typetext" : "<integer> (1 - N)"
11987 }
11988 }
11989 },
11990 "permissions" : {
11991 "check" : [
11992 "perm",
11993 "/vms/{vmid}",
11994 [
11995 "VM.Monitor"
11996 ]
11997 ]
11998 },
11999 "protected" : 1,
12000 "proxyto" : "node",
12001 "returns" : {
12002 "description" : "Returns an object with a single `result` property.",
12003 "type" : "object"
12004 }
12005 }
12006 },
12007 "leaf" : 1,
12008 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-fsinfo",
12009 "text" : "get-fsinfo"
12010 },
12011 {
12012 "info" : {
12013 "GET" : {
e9cd3bd4 12014 "allowtoken" : 1,
27a7acb2
DM
12015 "description" : "Execute get-host-name.",
12016 "method" : "GET",
12017 "name" : "get-host-name",
12018 "parameters" : {
12019 "additionalProperties" : 0,
12020 "properties" : {
12021 "node" : {
12022 "description" : "The cluster node name.",
12023 "format" : "pve-node",
12024 "type" : "string",
12025 "typetext" : "<string>"
12026 },
12027 "vmid" : {
12028 "description" : "The (unique) ID of the VM.",
12029 "format" : "pve-vmid",
12030 "minimum" : 1,
12031 "type" : "integer",
12032 "typetext" : "<integer> (1 - N)"
12033 }
12034 }
12035 },
12036 "permissions" : {
12037 "check" : [
12038 "perm",
12039 "/vms/{vmid}",
12040 [
12041 "VM.Monitor"
12042 ]
12043 ]
12044 },
12045 "protected" : 1,
12046 "proxyto" : "node",
12047 "returns" : {
12048 "description" : "Returns an object with a single `result` property.",
12049 "type" : "object"
12050 }
12051 }
12052 },
12053 "leaf" : 1,
12054 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-host-name",
12055 "text" : "get-host-name"
12056 },
12057 {
12058 "info" : {
12059 "GET" : {
e9cd3bd4 12060 "allowtoken" : 1,
27a7acb2
DM
12061 "description" : "Execute get-memory-block-info.",
12062 "method" : "GET",
12063 "name" : "get-memory-block-info",
12064 "parameters" : {
12065 "additionalProperties" : 0,
12066 "properties" : {
12067 "node" : {
12068 "description" : "The cluster node name.",
12069 "format" : "pve-node",
12070 "type" : "string",
12071 "typetext" : "<string>"
12072 },
12073 "vmid" : {
12074 "description" : "The (unique) ID of the VM.",
12075 "format" : "pve-vmid",
12076 "minimum" : 1,
12077 "type" : "integer",
12078 "typetext" : "<integer> (1 - N)"
12079 }
12080 }
12081 },
12082 "permissions" : {
12083 "check" : [
12084 "perm",
12085 "/vms/{vmid}",
12086 [
12087 "VM.Monitor"
12088 ]
12089 ]
12090 },
12091 "protected" : 1,
12092 "proxyto" : "node",
12093 "returns" : {
12094 "description" : "Returns an object with a single `result` property.",
12095 "type" : "object"
12096 }
12097 }
12098 },
12099 "leaf" : 1,
12100 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-block-info",
12101 "text" : "get-memory-block-info"
12102 },
12103 {
12104 "info" : {
12105 "GET" : {
e9cd3bd4 12106 "allowtoken" : 1,
27a7acb2
DM
12107 "description" : "Execute get-memory-blocks.",
12108 "method" : "GET",
12109 "name" : "get-memory-blocks",
12110 "parameters" : {
12111 "additionalProperties" : 0,
12112 "properties" : {
12113 "node" : {
12114 "description" : "The cluster node name.",
12115 "format" : "pve-node",
12116 "type" : "string",
12117 "typetext" : "<string>"
12118 },
12119 "vmid" : {
12120 "description" : "The (unique) ID of the VM.",
12121 "format" : "pve-vmid",
12122 "minimum" : 1,
12123 "type" : "integer",
12124 "typetext" : "<integer> (1 - N)"
12125 }
12126 }
12127 },
12128 "permissions" : {
12129 "check" : [
12130 "perm",
12131 "/vms/{vmid}",
12132 [
12133 "VM.Monitor"
12134 ]
12135 ]
12136 },
12137 "protected" : 1,
12138 "proxyto" : "node",
12139 "returns" : {
12140 "description" : "Returns an object with a single `result` property.",
12141 "type" : "object"
12142 }
12143 }
12144 },
12145 "leaf" : 1,
12146 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-blocks",
12147 "text" : "get-memory-blocks"
12148 },
12149 {
12150 "info" : {
12151 "GET" : {
e9cd3bd4 12152 "allowtoken" : 1,
27a7acb2
DM
12153 "description" : "Execute get-osinfo.",
12154 "method" : "GET",
12155 "name" : "get-osinfo",
12156 "parameters" : {
12157 "additionalProperties" : 0,
12158 "properties" : {
12159 "node" : {
12160 "description" : "The cluster node name.",
12161 "format" : "pve-node",
12162 "type" : "string",
12163 "typetext" : "<string>"
12164 },
12165 "vmid" : {
12166 "description" : "The (unique) ID of the VM.",
12167 "format" : "pve-vmid",
12168 "minimum" : 1,
12169 "type" : "integer",
12170 "typetext" : "<integer> (1 - N)"
12171 }
12172 }
12173 },
12174 "permissions" : {
12175 "check" : [
12176 "perm",
12177 "/vms/{vmid}",
12178 [
12179 "VM.Monitor"
12180 ]
12181 ]
12182 },
12183 "protected" : 1,
12184 "proxyto" : "node",
12185 "returns" : {
12186 "description" : "Returns an object with a single `result` property.",
12187 "type" : "object"
12188 }
12189 }
12190 },
12191 "leaf" : 1,
12192 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-osinfo",
12193 "text" : "get-osinfo"
12194 },
12195 {
12196 "info" : {
12197 "GET" : {
e9cd3bd4 12198 "allowtoken" : 1,
27a7acb2
DM
12199 "description" : "Execute get-time.",
12200 "method" : "GET",
12201 "name" : "get-time",
12202 "parameters" : {
12203 "additionalProperties" : 0,
12204 "properties" : {
12205 "node" : {
12206 "description" : "The cluster node name.",
12207 "format" : "pve-node",
12208 "type" : "string",
12209 "typetext" : "<string>"
12210 },
12211 "vmid" : {
12212 "description" : "The (unique) ID of the VM.",
12213 "format" : "pve-vmid",
12214 "minimum" : 1,
12215 "type" : "integer",
12216 "typetext" : "<integer> (1 - N)"
12217 }
12218 }
12219 },
12220 "permissions" : {
12221 "check" : [
12222 "perm",
12223 "/vms/{vmid}",
12224 [
12225 "VM.Monitor"
12226 ]
12227 ]
12228 },
12229 "protected" : 1,
12230 "proxyto" : "node",
12231 "returns" : {
12232 "description" : "Returns an object with a single `result` property.",
12233 "type" : "object"
12234 }
12235 }
12236 },
12237 "leaf" : 1,
12238 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-time",
12239 "text" : "get-time"
12240 },
12241 {
12242 "info" : {
12243 "GET" : {
e9cd3bd4 12244 "allowtoken" : 1,
27a7acb2
DM
12245 "description" : "Execute get-timezone.",
12246 "method" : "GET",
12247 "name" : "get-timezone",
12248 "parameters" : {
12249 "additionalProperties" : 0,
12250 "properties" : {
12251 "node" : {
12252 "description" : "The cluster node name.",
12253 "format" : "pve-node",
12254 "type" : "string",
12255 "typetext" : "<string>"
12256 },
12257 "vmid" : {
12258 "description" : "The (unique) ID of the VM.",
12259 "format" : "pve-vmid",
12260 "minimum" : 1,
12261 "type" : "integer",
12262 "typetext" : "<integer> (1 - N)"
12263 }
12264 }
12265 },
12266 "permissions" : {
12267 "check" : [
12268 "perm",
12269 "/vms/{vmid}",
12270 [
12271 "VM.Monitor"
12272 ]
12273 ]
12274 },
12275 "protected" : 1,
12276 "proxyto" : "node",
12277 "returns" : {
12278 "description" : "Returns an object with a single `result` property.",
12279 "type" : "object"
12280 }
12281 }
12282 },
12283 "leaf" : 1,
12284 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-timezone",
12285 "text" : "get-timezone"
12286 },
12287 {
12288 "info" : {
12289 "GET" : {
e9cd3bd4 12290 "allowtoken" : 1,
27a7acb2
DM
12291 "description" : "Execute get-users.",
12292 "method" : "GET",
12293 "name" : "get-users",
12294 "parameters" : {
12295 "additionalProperties" : 0,
12296 "properties" : {
12297 "node" : {
12298 "description" : "The cluster node name.",
12299 "format" : "pve-node",
12300 "type" : "string",
12301 "typetext" : "<string>"
12302 },
12303 "vmid" : {
12304 "description" : "The (unique) ID of the VM.",
12305 "format" : "pve-vmid",
12306 "minimum" : 1,
12307 "type" : "integer",
12308 "typetext" : "<integer> (1 - N)"
12309 }
12310 }
12311 },
12312 "permissions" : {
12313 "check" : [
12314 "perm",
12315 "/vms/{vmid}",
12316 [
12317 "VM.Monitor"
12318 ]
12319 ]
12320 },
12321 "protected" : 1,
12322 "proxyto" : "node",
12323 "returns" : {
12324 "description" : "Returns an object with a single `result` property.",
12325 "type" : "object"
12326 }
12327 }
12328 },
12329 "leaf" : 1,
12330 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-users",
12331 "text" : "get-users"
12332 },
12333 {
12334 "info" : {
12335 "GET" : {
e9cd3bd4 12336 "allowtoken" : 1,
27a7acb2
DM
12337 "description" : "Execute get-vcpus.",
12338 "method" : "GET",
12339 "name" : "get-vcpus",
12340 "parameters" : {
12341 "additionalProperties" : 0,
12342 "properties" : {
12343 "node" : {
12344 "description" : "The cluster node name.",
12345 "format" : "pve-node",
12346 "type" : "string",
12347 "typetext" : "<string>"
12348 },
12349 "vmid" : {
12350 "description" : "The (unique) ID of the VM.",
12351 "format" : "pve-vmid",
12352 "minimum" : 1,
12353 "type" : "integer",
12354 "typetext" : "<integer> (1 - N)"
12355 }
12356 }
12357 },
12358 "permissions" : {
12359 "check" : [
12360 "perm",
12361 "/vms/{vmid}",
12362 [
12363 "VM.Monitor"
12364 ]
12365 ]
12366 },
12367 "protected" : 1,
12368 "proxyto" : "node",
12369 "returns" : {
12370 "description" : "Returns an object with a single `result` property.",
12371 "type" : "object"
12372 }
12373 }
12374 },
12375 "leaf" : 1,
12376 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-vcpus",
12377 "text" : "get-vcpus"
12378 },
12379 {
12380 "info" : {
12381 "GET" : {
e9cd3bd4 12382 "allowtoken" : 1,
27a7acb2
DM
12383 "description" : "Execute info.",
12384 "method" : "GET",
12385 "name" : "info",
12386 "parameters" : {
12387 "additionalProperties" : 0,
12388 "properties" : {
12389 "node" : {
12390 "description" : "The cluster node name.",
12391 "format" : "pve-node",
12392 "type" : "string",
12393 "typetext" : "<string>"
12394 },
12395 "vmid" : {
12396 "description" : "The (unique) ID of the VM.",
12397 "format" : "pve-vmid",
12398 "minimum" : 1,
12399 "type" : "integer",
12400 "typetext" : "<integer> (1 - N)"
12401 }
12402 }
12403 },
12404 "permissions" : {
12405 "check" : [
12406 "perm",
12407 "/vms/{vmid}",
12408 [
12409 "VM.Monitor"
12410 ]
12411 ]
12412 },
12413 "protected" : 1,
12414 "proxyto" : "node",
12415 "returns" : {
12416 "description" : "Returns an object with a single `result` property.",
12417 "type" : "object"
12418 }
12419 }
12420 },
12421 "leaf" : 1,
12422 "path" : "/nodes/{node}/qemu/{vmid}/agent/info",
12423 "text" : "info"
12424 },
12425 {
12426 "info" : {
12427 "GET" : {
e9cd3bd4 12428 "allowtoken" : 1,
27a7acb2
DM
12429 "description" : "Execute network-get-interfaces.",
12430 "method" : "GET",
12431 "name" : "network-get-interfaces",
12432 "parameters" : {
12433 "additionalProperties" : 0,
12434 "properties" : {
12435 "node" : {
12436 "description" : "The cluster node name.",
12437 "format" : "pve-node",
12438 "type" : "string",
12439 "typetext" : "<string>"
12440 },
12441 "vmid" : {
12442 "description" : "The (unique) ID of the VM.",
12443 "format" : "pve-vmid",
12444 "minimum" : 1,
12445 "type" : "integer",
12446 "typetext" : "<integer> (1 - N)"
12447 }
12448 }
12449 },
12450 "permissions" : {
12451 "check" : [
12452 "perm",
12453 "/vms/{vmid}",
12454 [
12455 "VM.Monitor"
12456 ]
12457 ]
12458 },
12459 "protected" : 1,
12460 "proxyto" : "node",
12461 "returns" : {
12462 "description" : "Returns an object with a single `result` property.",
12463 "type" : "object"
12464 }
12465 }
12466 },
12467 "leaf" : 1,
12468 "path" : "/nodes/{node}/qemu/{vmid}/agent/network-get-interfaces",
12469 "text" : "network-get-interfaces"
12470 },
12471 {
12472 "info" : {
12473 "POST" : {
e9cd3bd4 12474 "allowtoken" : 1,
27a7acb2
DM
12475 "description" : "Execute ping.",
12476 "method" : "POST",
12477 "name" : "ping",
12478 "parameters" : {
12479 "additionalProperties" : 0,
12480 "properties" : {
12481 "node" : {
12482 "description" : "The cluster node name.",
12483 "format" : "pve-node",
12484 "type" : "string",
12485 "typetext" : "<string>"
12486 },
12487 "vmid" : {
12488 "description" : "The (unique) ID of the VM.",
12489 "format" : "pve-vmid",
12490 "minimum" : 1,
12491 "type" : "integer",
12492 "typetext" : "<integer> (1 - N)"
12493 }
12494 }
12495 },
12496 "permissions" : {
12497 "check" : [
12498 "perm",
12499 "/vms/{vmid}",
12500 [
12501 "VM.Monitor"
12502 ]
12503 ]
12504 },
12505 "protected" : 1,
12506 "proxyto" : "node",
12507 "returns" : {
12508 "description" : "Returns an object with a single `result` property.",
12509 "type" : "object"
12510 }
12511 }
12512 },
12513 "leaf" : 1,
12514 "path" : "/nodes/{node}/qemu/{vmid}/agent/ping",
12515 "text" : "ping"
12516 },
12517 {
12518 "info" : {
12519 "POST" : {
e9cd3bd4 12520 "allowtoken" : 1,
27a7acb2
DM
12521 "description" : "Execute shutdown.",
12522 "method" : "POST",
12523 "name" : "shutdown",
12524 "parameters" : {
12525 "additionalProperties" : 0,
12526 "properties" : {
12527 "node" : {
12528 "description" : "The cluster node name.",
12529 "format" : "pve-node",
12530 "type" : "string",
12531 "typetext" : "<string>"
12532 },
12533 "vmid" : {
12534 "description" : "The (unique) ID of the VM.",
12535 "format" : "pve-vmid",
12536 "minimum" : 1,
12537 "type" : "integer",
12538 "typetext" : "<integer> (1 - N)"
12539 }
12540 }
12541 },
12542 "permissions" : {
12543 "check" : [
12544 "perm",
12545 "/vms/{vmid}",
12546 [
12547 "VM.Monitor"
12548 ]
12549 ]
12550 },
12551 "protected" : 1,
12552 "proxyto" : "node",
12553 "returns" : {
12554 "description" : "Returns an object with a single `result` property.",
12555 "type" : "object"
12556 }
12557 }
12558 },
12559 "leaf" : 1,
12560 "path" : "/nodes/{node}/qemu/{vmid}/agent/shutdown",
12561 "text" : "shutdown"
12562 },
12563 {
12564 "info" : {
12565 "POST" : {
e9cd3bd4 12566 "allowtoken" : 1,
27a7acb2
DM
12567 "description" : "Execute suspend-disk.",
12568 "method" : "POST",
12569 "name" : "suspend-disk",
12570 "parameters" : {
12571 "additionalProperties" : 0,
12572 "properties" : {
12573 "node" : {
12574 "description" : "The cluster node name.",
12575 "format" : "pve-node",
12576 "type" : "string",
12577 "typetext" : "<string>"
12578 },
12579 "vmid" : {
12580 "description" : "The (unique) ID of the VM.",
12581 "format" : "pve-vmid",
12582 "minimum" : 1,
12583 "type" : "integer",
12584 "typetext" : "<integer> (1 - N)"
12585 }
12586 }
12587 },
12588 "permissions" : {
12589 "check" : [
12590 "perm",
12591 "/vms/{vmid}",
12592 [
12593 "VM.Monitor"
12594 ]
12595 ]
12596 },
12597 "protected" : 1,
12598 "proxyto" : "node",
12599 "returns" : {
12600 "description" : "Returns an object with a single `result` property.",
12601 "type" : "object"
12602 }
12603 }
12604 },
12605 "leaf" : 1,
12606 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-disk",
12607 "text" : "suspend-disk"
12608 },
12609 {
12610 "info" : {
12611 "POST" : {
e9cd3bd4 12612 "allowtoken" : 1,
27a7acb2
DM
12613 "description" : "Execute suspend-hybrid.",
12614 "method" : "POST",
12615 "name" : "suspend-hybrid",
12616 "parameters" : {
12617 "additionalProperties" : 0,
12618 "properties" : {
12619 "node" : {
12620 "description" : "The cluster node name.",
12621 "format" : "pve-node",
12622 "type" : "string",
12623 "typetext" : "<string>"
12624 },
12625 "vmid" : {
12626 "description" : "The (unique) ID of the VM.",
12627 "format" : "pve-vmid",
12628 "minimum" : 1,
12629 "type" : "integer",
12630 "typetext" : "<integer> (1 - N)"
12631 }
12632 }
12633 },
12634 "permissions" : {
12635 "check" : [
12636 "perm",
12637 "/vms/{vmid}",
12638 [
12639 "VM.Monitor"
12640 ]
12641 ]
12642 },
12643 "protected" : 1,
12644 "proxyto" : "node",
12645 "returns" : {
12646 "description" : "Returns an object with a single `result` property.",
12647 "type" : "object"
12648 }
12649 }
12650 },
12651 "leaf" : 1,
12652 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-hybrid",
12653 "text" : "suspend-hybrid"
12654 },
12655 {
12656 "info" : {
12657 "POST" : {
e9cd3bd4 12658 "allowtoken" : 1,
27a7acb2
DM
12659 "description" : "Execute suspend-ram.",
12660 "method" : "POST",
12661 "name" : "suspend-ram",
12662 "parameters" : {
12663 "additionalProperties" : 0,
12664 "properties" : {
12665 "node" : {
12666 "description" : "The cluster node name.",
12667 "format" : "pve-node",
12668 "type" : "string",
12669 "typetext" : "<string>"
12670 },
12671 "vmid" : {
12672 "description" : "The (unique) ID of the VM.",
12673 "format" : "pve-vmid",
12674 "minimum" : 1,
12675 "type" : "integer",
12676 "typetext" : "<integer> (1 - N)"
12677 }
12678 }
12679 },
12680 "permissions" : {
12681 "check" : [
12682 "perm",
12683 "/vms/{vmid}",
12684 [
12685 "VM.Monitor"
12686 ]
12687 ]
12688 },
12689 "protected" : 1,
12690 "proxyto" : "node",
12691 "returns" : {
12692 "description" : "Returns an object with a single `result` property.",
12693 "type" : "object"
12694 }
12695 }
12696 },
12697 "leaf" : 1,
12698 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-ram",
12699 "text" : "suspend-ram"
4d47f125
TL
12700 },
12701 {
12702 "info" : {
12703 "POST" : {
e9cd3bd4 12704 "allowtoken" : 1,
4d47f125
TL
12705 "description" : "Sets the password for the given user to the given password",
12706 "method" : "POST",
12707 "name" : "set-user-password",
12708 "parameters" : {
12709 "additionalProperties" : 0,
12710 "properties" : {
12711 "crypted" : {
12712 "default" : 0,
12713 "description" : "set to 1 if the password has already been passed through crypt()",
12714 "optional" : 1,
12715 "type" : "boolean",
12716 "typetext" : "<boolean>"
12717 },
12718 "node" : {
12719 "description" : "The cluster node name.",
12720 "format" : "pve-node",
12721 "type" : "string",
12722 "typetext" : "<string>"
12723 },
12724 "password" : {
12725 "description" : "The new password.",
1c532546 12726 "maxLength" : 1024,
4d47f125
TL
12727 "minLength" : 5,
12728 "type" : "string",
12729 "typetext" : "<string>"
12730 },
12731 "username" : {
12732 "description" : "The user to set the password for.",
12733 "type" : "string",
12734 "typetext" : "<string>"
12735 },
12736 "vmid" : {
12737 "description" : "The (unique) ID of the VM.",
12738 "format" : "pve-vmid",
12739 "minimum" : 1,
12740 "type" : "integer",
12741 "typetext" : "<integer> (1 - N)"
12742 }
12743 }
27a7acb2 12744 },
4d47f125
TL
12745 "permissions" : {
12746 "check" : [
12747 "perm",
12748 "/vms/{vmid}",
12749 [
12750 "VM.Monitor"
12751 ]
12752 ]
12753 },
12754 "protected" : 1,
12755 "proxyto" : "node",
12756 "returns" : {
12757 "description" : "Returns an object with a single `result` property.",
12758 "type" : "object"
27a7acb2
DM
12759 }
12760 }
12761 },
4d47f125
TL
12762 "leaf" : 1,
12763 "path" : "/nodes/{node}/qemu/{vmid}/agent/set-user-password",
12764 "text" : "set-user-password"
27a7acb2 12765 },
4d47f125
TL
12766 {
12767 "info" : {
12768 "POST" : {
e9cd3bd4 12769 "allowtoken" : 1,
4d47f125
TL
12770 "description" : "Executes the given command in the vm via the guest-agent and returns an object with the pid.",
12771 "method" : "POST",
12772 "name" : "exec",
12773 "parameters" : {
12774 "additionalProperties" : 0,
12775 "properties" : {
12776 "command" : {
4a407cfd
TL
12777 "description" : "The command as a list of program + arguments.",
12778 "items" : {
12779 "description" : "A single part of the program + arguments.",
12780 "format" : "string"
12781 },
12782 "type" : "array",
12783 "typetext" : "<array>"
c5aa7e14
TL
12784 },
12785 "input-data" : {
12786 "description" : "Data to pass as 'input-data' to the guest. Usually treated as STDIN to 'command'.",
12787 "maxLength" : 65536,
12788 "optional" : 1,
4d47f125
TL
12789 "type" : "string",
12790 "typetext" : "<string>"
12791 },
12792 "node" : {
12793 "description" : "The cluster node name.",
12794 "format" : "pve-node",
12795 "type" : "string",
12796 "typetext" : "<string>"
12797 },
12798 "vmid" : {
12799 "description" : "The (unique) ID of the VM.",
12800 "format" : "pve-vmid",
12801 "minimum" : 1,
12802 "type" : "integer",
12803 "typetext" : "<integer> (1 - N)"
12804 }
12805 }
27a7acb2 12806 },
4d47f125
TL
12807 "permissions" : {
12808 "check" : [
12809 "perm",
12810 "/vms/{vmid}",
12811 [
12812 "VM.Monitor"
12813 ]
12814 ]
27a7acb2 12815 },
4d47f125
TL
12816 "protected" : 1,
12817 "proxyto" : "node",
12818 "returns" : {
12819 "properties" : {
12820 "pid" : {
12821 "description" : "The PID of the process started by the guest-agent.",
12822 "type" : "integer"
12823 }
12824 },
12825 "type" : "object"
27a7acb2
DM
12826 }
12827 }
12828 },
4d47f125
TL
12829 "leaf" : 1,
12830 "path" : "/nodes/{node}/qemu/{vmid}/agent/exec",
12831 "text" : "exec"
12832 },
12833 {
12834 "info" : {
12835 "GET" : {
e9cd3bd4 12836 "allowtoken" : 1,
4d47f125
TL
12837 "description" : "Gets the status of the given pid started by the guest-agent",
12838 "method" : "GET",
12839 "name" : "exec-status",
12840 "parameters" : {
12841 "additionalProperties" : 0,
12842 "properties" : {
12843 "node" : {
12844 "description" : "The cluster node name.",
12845 "format" : "pve-node",
12846 "type" : "string",
12847 "typetext" : "<string>"
12848 },
12849 "pid" : {
12850 "description" : "The PID to query",
12851 "type" : "integer",
12852 "typetext" : "<integer>"
12853 },
12854 "vmid" : {
12855 "description" : "The (unique) ID of the VM.",
12856 "format" : "pve-vmid",
12857 "minimum" : 1,
12858 "type" : "integer",
12859 "typetext" : "<integer> (1 - N)"
12860 }
12861 }
56122987 12862 },
4d47f125
TL
12863 "permissions" : {
12864 "check" : [
12865 "perm",
12866 "/vms/{vmid}",
12867 [
12868 "VM.Monitor"
12869 ]
12870 ]
56122987 12871 },
4d47f125
TL
12872 "protected" : 1,
12873 "proxyto" : "node",
12874 "returns" : {
12875 "properties" : {
12876 "err-data" : {
12877 "description" : "stderr of the process",
12878 "optional" : 1,
12879 "type" : "string"
12880 },
12881 "err-truncated" : {
12882 "description" : "true if stderr was not fully captured",
12883 "optional" : 1,
12884 "type" : "boolean"
12885 },
12886 "exitcode" : {
12887 "description" : "process exit code if it was normally terminated.",
12888 "optional" : 1,
12889 "type" : "integer"
12890 },
12891 "exited" : {
12892 "description" : "Tells if the given command has exited yet.",
12893 "type" : "boolean"
12894 },
12895 "out-data" : {
12896 "description" : "stdout of the process",
12897 "optional" : 1,
12898 "type" : "string"
12899 },
12900 "out-truncated" : {
12901 "description" : "true if stdout was not fully captured",
12902 "optional" : 1,
12903 "type" : "boolean"
12904 },
12905 "signal" : {
12906 "description" : "signal number or exception code if the process was abnormally terminated.",
12907 "optional" : 1,
12908 "type" : "integer"
12909 }
12910 },
12911 "type" : "object"
56122987
DM
12912 }
12913 }
12914 },
4d47f125
TL
12915 "leaf" : 1,
12916 "path" : "/nodes/{node}/qemu/{vmid}/agent/exec-status",
12917 "text" : "exec-status"
12918 },
12919 {
12920 "info" : {
12921 "GET" : {
e9cd3bd4 12922 "allowtoken" : 1,
4d47f125
TL
12923 "description" : "Reads the given file via guest agent. Is limited to 16777216 bytes.",
12924 "method" : "GET",
12925 "name" : "file-read",
12926 "parameters" : {
12927 "additionalProperties" : 0,
12928 "properties" : {
12929 "file" : {
12930 "description" : "The path to the file",
12931 "type" : "string",
12932 "typetext" : "<string>"
12933 },
12934 "node" : {
12935 "description" : "The cluster node name.",
12936 "format" : "pve-node",
12937 "type" : "string",
12938 "typetext" : "<string>"
12939 },
12940 "vmid" : {
12941 "description" : "The (unique) ID of the VM.",
12942 "format" : "pve-vmid",
12943 "minimum" : 1,
12944 "type" : "integer",
12945 "typetext" : "<integer> (1 - N)"
12946 }
12947 }
12948 },
12949 "permissions" : {
12950 "check" : [
12951 "perm",
12952 "/vms/{vmid}",
12953 [
12954 "VM.Monitor"
12955 ]
12956 ]
12957 },
12958 "protected" : 1,
12959 "proxyto" : "node",
12960 "returns" : {
12961 "description" : "Returns an object with a `content` property.",
12962 "properties" : {
12963 "content" : {
12964 "description" : "The content of the file, maximum 16777216",
12965 "type" : "string"
12966 },
12967 "truncated" : {
12968 "description" : "If set to 1, the output is truncated and not complete",
12969 "optional" : 1,
12970 "type" : "boolean"
12971 }
12972 },
12973 "type" : "object"
12974 }
12975 }
56122987 12976 },
4d47f125
TL
12977 "leaf" : 1,
12978 "path" : "/nodes/{node}/qemu/{vmid}/agent/file-read",
12979 "text" : "file-read"
12980 },
12981 {
12982 "info" : {
12983 "POST" : {
e9cd3bd4 12984 "allowtoken" : 1,
4d47f125
TL
12985 "description" : "Writes the given file via guest agent.",
12986 "method" : "POST",
12987 "name" : "file-write",
12988 "parameters" : {
12989 "additionalProperties" : 0,
12990 "properties" : {
12991 "content" : {
12992 "description" : "The content to write into the file.",
12993 "maxLength" : 61440,
12994 "type" : "string",
12995 "typetext" : "<string>"
12996 },
7af2edf9
TL
12997 "encode" : {
12998 "default" : 1,
12999 "description" : "If set, the content will be encoded as base64 (required by QEMU).Otherwise the content needs to be encoded beforehand - defaults to true.",
13000 "optional" : 1,
13001 "type" : "boolean",
13002 "typetext" : "<boolean>"
13003 },
4d47f125
TL
13004 "file" : {
13005 "description" : "The path to the file.",
13006 "type" : "string",
13007 "typetext" : "<string>"
13008 },
13009 "node" : {
13010 "description" : "The cluster node name.",
13011 "format" : "pve-node",
13012 "type" : "string",
13013 "typetext" : "<string>"
13014 },
13015 "vmid" : {
13016 "description" : "The (unique) ID of the VM.",
13017 "format" : "pve-vmid",
13018 "minimum" : 1,
13019 "type" : "integer",
13020 "typetext" : "<integer> (1 - N)"
13021 }
13022 }
13023 },
13024 "permissions" : {
13025 "check" : [
13026 "perm",
13027 "/vms/{vmid}",
13028 [
13029 "VM.Monitor"
13030 ]
13031 ]
13032 },
13033 "protected" : 1,
13034 "proxyto" : "node",
13035 "returns" : {
13036 "type" : "null"
7aacca6f 13037 }
4d47f125
TL
13038 }
13039 },
13040 "leaf" : 1,
13041 "path" : "/nodes/{node}/qemu/{vmid}/agent/file-write",
13042 "text" : "file-write"
56122987 13043 }
4d47f125 13044 ],
7aacca6f 13045 "info" : {
56122987 13046 "GET" : {
e9cd3bd4 13047 "allowtoken" : 1,
9d2e98ed 13048 "description" : "QEMU Guest Agent command index.",
44660702 13049 "method" : "GET",
4d47f125 13050 "name" : "index",
56122987 13051 "parameters" : {
4d47f125 13052 "additionalProperties" : 1,
56122987
DM
13053 "properties" : {
13054 "node" : {
44660702 13055 "description" : "The cluster node name.",
56122987 13056 "format" : "pve-node",
013dc89f
DM
13057 "type" : "string",
13058 "typetext" : "<string>"
56122987 13059 },
7aacca6f 13060 "vmid" : {
7aacca6f
DM
13061 "description" : "The (unique) ID of the VM.",
13062 "format" : "pve-vmid",
44660702 13063 "minimum" : 1,
4bd7df8b 13064 "type" : "integer",
013dc89f 13065 "typetext" : "<integer> (1 - N)"
56122987 13066 }
44660702 13067 }
56122987 13068 },
56122987 13069 "permissions" : {
4d47f125 13070 "user" : "all"
56122987 13071 },
4d47f125 13072 "proxyto" : "node",
7aacca6f 13073 "returns" : {
9d2e98ed 13074 "description" : "Returns the list of QEMU Guest Agent commands",
7aacca6f 13075 "items" : {
44660702
DM
13076 "properties" : {},
13077 "type" : "object"
13078 },
4d47f125
TL
13079 "links" : [
13080 {
13081 "href" : "{name}",
13082 "rel" : "child"
13083 }
13084 ],
44660702 13085 "type" : "array"
7aacca6f 13086 }
4d47f125
TL
13087 },
13088 "POST" : {
e9cd3bd4 13089 "allowtoken" : 1,
9d2e98ed 13090 "description" : "Execute QEMU Guest Agent commands.",
4d47f125
TL
13091 "method" : "POST",
13092 "name" : "agent",
44660702
DM
13093 "parameters" : {
13094 "additionalProperties" : 0,
13095 "properties" : {
4d47f125
TL
13096 "command" : {
13097 "description" : "The QGA command.",
13098 "enum" : [
13099 "fsfreeze-freeze",
13100 "fsfreeze-status",
13101 "fsfreeze-thaw",
13102 "fstrim",
13103 "get-fsinfo",
13104 "get-host-name",
13105 "get-memory-block-info",
13106 "get-memory-blocks",
13107 "get-osinfo",
13108 "get-time",
13109 "get-timezone",
13110 "get-users",
13111 "get-vcpus",
13112 "info",
13113 "network-get-interfaces",
13114 "ping",
13115 "shutdown",
13116 "suspend-disk",
13117 "suspend-hybrid",
13118 "suspend-ram"
13119 ],
13120 "type" : "string"
13121 },
13122 "node" : {
13123 "description" : "The cluster node name.",
13124 "format" : "pve-node",
13125 "type" : "string",
13126 "typetext" : "<string>"
13127 },
13128 "vmid" : {
13129 "description" : "The (unique) ID of the VM.",
13130 "format" : "pve-vmid",
13131 "minimum" : 1,
13132 "type" : "integer",
13133 "typetext" : "<integer> (1 - N)"
13134 }
13135 }
13136 },
13137 "permissions" : {
13138 "check" : [
13139 "perm",
13140 "/vms/{vmid}",
13141 [
13142 "VM.Monitor"
13143 ]
13144 ]
13145 },
13146 "protected" : 1,
13147 "proxyto" : "node",
13148 "returns" : {
13149 "description" : "Returns an object with a single `result` property.",
13150 "type" : "object"
13151 }
13152 }
13153 },
13154 "leaf" : 0,
13155 "path" : "/nodes/{node}/qemu/{vmid}/agent",
13156 "text" : "agent"
13157 },
13158 {
13159 "info" : {
13160 "GET" : {
e9cd3bd4 13161 "allowtoken" : 1,
4d47f125
TL
13162 "description" : "Read VM RRD statistics (returns PNG)",
13163 "method" : "GET",
13164 "name" : "rrd",
13165 "parameters" : {
13166 "additionalProperties" : 0,
13167 "properties" : {
13168 "cf" : {
13169 "description" : "The RRD consolidation function",
13170 "enum" : [
13171 "AVERAGE",
13172 "MAX"
13173 ],
44660702 13174 "optional" : 1,
4d47f125
TL
13175 "type" : "string"
13176 },
13177 "ds" : {
13178 "description" : "The list of datasources you want to display.",
13179 "format" : "pve-configid-list",
13180 "type" : "string",
13181 "typetext" : "<string>"
44660702
DM
13182 },
13183 "node" : {
13184 "description" : "The cluster node name.",
13185 "format" : "pve-node",
013dc89f
DM
13186 "type" : "string",
13187 "typetext" : "<string>"
44660702 13188 },
4d47f125
TL
13189 "timeframe" : {
13190 "description" : "Specify the time frame you are interested in.",
13191 "enum" : [
13192 "hour",
13193 "day",
13194 "week",
13195 "month",
13196 "year"
13197 ],
13198 "type" : "string"
13199 },
44660702
DM
13200 "vmid" : {
13201 "description" : "The (unique) ID of the VM.",
13202 "format" : "pve-vmid",
13203 "minimum" : 1,
4bd7df8b 13204 "type" : "integer",
013dc89f 13205 "typetext" : "<integer> (1 - N)"
44660702
DM
13206 }
13207 }
7aacca6f 13208 },
56122987
DM
13209 "permissions" : {
13210 "check" : [
13211 "perm",
13212 "/vms/{vmid}",
13213 [
44660702
DM
13214 "VM.Audit"
13215 ]
56122987
DM
13216 ]
13217 },
4d47f125 13218 "protected" : 1,
44660702
DM
13219 "returns" : {
13220 "properties" : {
4d47f125 13221 "filename" : {
44660702
DM
13222 "type" : "string"
13223 }
13224 },
13225 "type" : "object"
13226 }
4d47f125
TL
13227 }
13228 },
13229 "leaf" : 1,
13230 "path" : "/nodes/{node}/qemu/{vmid}/rrd",
13231 "text" : "rrd"
13232 },
13233 {
13234 "info" : {
13235 "GET" : {
e9cd3bd4 13236 "allowtoken" : 1,
4d47f125
TL
13237 "description" : "Read VM RRD statistics",
13238 "method" : "GET",
13239 "name" : "rrddata",
13240 "parameters" : {
13241 "additionalProperties" : 0,
13242 "properties" : {
13243 "cf" : {
13244 "description" : "The RRD consolidation function",
13245 "enum" : [
13246 "AVERAGE",
13247 "MAX"
13248 ],
13249 "optional" : 1,
13250 "type" : "string"
13251 },
13252 "node" : {
13253 "description" : "The cluster node name.",
13254 "format" : "pve-node",
13255 "type" : "string",
13256 "typetext" : "<string>"
13257 },
13258 "timeframe" : {
13259 "description" : "Specify the time frame you are interested in.",
13260 "enum" : [
13261 "hour",
13262 "day",
13263 "week",
13264 "month",
13265 "year"
13266 ],
13267 "type" : "string"
13268 },
13269 "vmid" : {
13270 "description" : "The (unique) ID of the VM.",
13271 "format" : "pve-vmid",
13272 "minimum" : 1,
13273 "type" : "integer",
13274 "typetext" : "<integer> (1 - N)"
13275 }
13276 }
13277 },
13278 "permissions" : {
13279 "check" : [
13280 "perm",
13281 "/vms/{vmid}",
13282 [
13283 "VM.Audit"
13284 ]
13285 ]
13286 },
13287 "protected" : 1,
13288 "returns" : {
13289 "items" : {
13290 "properties" : {},
13291 "type" : "object"
13292 },
13293 "type" : "array"
13294 }
13295 }
13296 },
13297 "leaf" : 1,
13298 "path" : "/nodes/{node}/qemu/{vmid}/rrddata",
13299 "text" : "rrddata"
13300 },
13301 {
13302 "info" : {
13303 "GET" : {
e9cd3bd4
TL
13304 "allowtoken" : 1,
13305 "description" : "Get the virtual machine configuration with pending configuration changes applied. Set the 'current' parameter to get the current configuration instead.",
4d47f125
TL
13306 "method" : "GET",
13307 "name" : "vm_config",
56122987 13308 "parameters" : {
44660702 13309 "additionalProperties" : 0,
4d47f125
TL
13310 "properties" : {
13311 "current" : {
13312 "default" : 0,
13313 "description" : "Get current values (instead of pending values).",
13314 "optional" : 1,
13315 "type" : "boolean",
13316 "typetext" : "<boolean>"
13317 },
13318 "node" : {
13319 "description" : "The cluster node name.",
13320 "format" : "pve-node",
13321 "type" : "string",
13322 "typetext" : "<string>"
13323 },
5f26e15b
TL
13324 "snapshot" : {
13325 "description" : "Fetch config values from given snapshot.",
13326 "format" : "pve-configid",
13327 "maxLength" : 40,
13328 "optional" : 1,
13329 "type" : "string",
13330 "typetext" : "<string>"
13331 },
4d47f125
TL
13332 "vmid" : {
13333 "description" : "The (unique) ID of the VM.",
13334 "format" : "pve-vmid",
13335 "minimum" : 1,
13336 "type" : "integer",
13337 "typetext" : "<integer> (1 - N)"
13338 }
13339 }
13340 },
13341 "permissions" : {
13342 "check" : [
13343 "perm",
13344 "/vms/{vmid}",
13345 [
13346 "VM.Audit"
13347 ]
13348 ]
13349 },
13350 "proxyto" : "node",
13351 "returns" : {
e9cd3bd4 13352 "description" : "The VM configuration.",
56122987 13353 "properties" : {
44660702
DM
13354 "acpi" : {
13355 "default" : 1,
13356 "description" : "Enable/disable ACPI.",
13357 "optional" : 1,
4d47f125 13358 "type" : "boolean"
44660702 13359 },
4e7f60c2 13360 "affinity" : {
81a3384d 13361 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
13362 "format" : "pve-cpuset",
13363 "optional" : 1,
13364 "type" : "string"
13365 },
44660702 13366 "agent" : {
9d2e98ed 13367 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
13368 "format" : {
13369 "enabled" : {
13370 "default" : 0,
13371 "default_key" : 1,
9d2e98ed
TL
13372 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
13373 "type" : "boolean"
13374 },
13375 "freeze-fs-on-backup" : {
13376 "default" : 1,
13377 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
13378 "optional" : 1,
4d47f125
TL
13379 "type" : "boolean"
13380 },
13381 "fstrim_cloned_disks" : {
13382 "default" : 0,
d2656385 13383 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
13384 "optional" : 1,
13385 "type" : "boolean"
5c1699e5
TL
13386 },
13387 "type" : {
13388 "default" : "virtio",
13389 "description" : "Select the agent type",
13390 "enum" : [
13391 "virtio",
13392 "isa"
13393 ],
13394 "optional" : 1,
13395 "type" : "string"
4d47f125
TL
13396 }
13397 },
7aacca6f 13398 "optional" : 1,
4d47f125 13399 "type" : "string"
7aacca6f 13400 },
e2d681b3
TL
13401 "arch" : {
13402 "description" : "Virtual processor architecture. Defaults to the host.",
13403 "enum" : [
13404 "x86_64",
13405 "aarch64"
13406 ],
13407 "optional" : 1,
13408 "type" : "string"
13409 },
44660702 13410 "args" : {
c2993fe5 13411 "description" : "Arbitrary arguments passed to kvm.",
44660702 13412 "optional" : 1,
c2993fe5 13413 "type" : "string",
159464a9 13414 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -smbios 'type=0,vendor=FOO'\n\nNOTE: this option is for experts only.\n"
7aacca6f 13415 },
1c532546
TL
13416 "audio0" : {
13417 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
13418 "format" : {
13419 "device" : {
13420 "description" : "Configure an audio device.",
13421 "enum" : [
13422 "ich9-intel-hda",
13423 "intel-hda",
13424 "AC97"
13425 ],
13426 "type" : "string"
13427 },
13428 "driver" : {
13429 "default" : "spice",
13430 "description" : "Driver backend for the audio device.",
13431 "enum" : [
d2656385
TL
13432 "spice",
13433 "none"
1c532546
TL
13434 ],
13435 "optional" : 1,
13436 "type" : "string"
13437 }
13438 },
13439 "optional" : 1,
13440 "type" : "string"
13441 },
44660702
DM
13442 "autostart" : {
13443 "default" : 0,
13444 "description" : "Automatic restart after crash (currently ignored).",
56122987 13445 "optional" : 1,
4d47f125 13446 "type" : "boolean"
56122987 13447 },
4d47f125 13448 "balloon" : {
9d2e98ed 13449 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
4d47f125 13450 "minimum" : 0,
7aacca6f 13451 "optional" : 1,
4d47f125 13452 "type" : "integer"
7aacca6f 13453 },
44660702
DM
13454 "bios" : {
13455 "default" : "seabios",
13456 "description" : "Select BIOS implementation.",
13457 "enum" : [
13458 "seabios",
13459 "ovmf"
13460 ],
56122987 13461 "optional" : 1,
44660702 13462 "type" : "string"
7aacca6f 13463 },
44660702 13464 "boot" : {
5370fa8c 13465 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 13466 "format" : "pve-qm-boot",
44660702 13467 "optional" : 1,
44660702
DM
13468 "type" : "string"
13469 },
13470 "bootdisk" : {
4772952b 13471 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
13472 "format" : "pve-qm-bootdisk",
13473 "optional" : 1,
13474 "pattern" : "(ide|sata|scsi|virtio)\\d+",
13475 "type" : "string"
13476 },
13477 "cdrom" : {
13478 "description" : "This is an alias for option -ide2",
de0983cb 13479 "format" : "pve-qm-ide",
44660702 13480 "optional" : 1,
7aacca6f 13481 "type" : "string",
013dc89f 13482 "typetext" : "<volume>"
44660702 13483 },
95895385
TL
13484 "cicustom" : {
13485 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
13486 "format" : "pve-qm-cicustom",
13487 "optional" : 1,
13488 "type" : "string"
13489 },
27a7acb2
DM
13490 "cipassword" : {
13491 "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.",
13492 "optional" : 1,
4d47f125 13493 "type" : "string"
27a7acb2
DM
13494 },
13495 "citype" : {
13496 "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.",
13497 "enum" : [
13498 "configdrive2",
d2656385
TL
13499 "nocloud",
13500 "opennebula"
27a7acb2
DM
13501 ],
13502 "optional" : 1,
13503 "type" : "string"
13504 },
159464a9
TL
13505 "ciupgrade" : {
13506 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
13507 "optional" : 1,
13508 "type" : "boolean"
13509 },
27a7acb2
DM
13510 "ciuser" : {
13511 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
13512 "optional" : 1,
4d47f125 13513 "type" : "string"
27a7acb2 13514 },
44660702
DM
13515 "cores" : {
13516 "default" : 1,
13517 "description" : "The number of cores per socket.",
13518 "minimum" : 1,
7aacca6f 13519 "optional" : 1,
4d47f125 13520 "type" : "integer"
7aacca6f 13521 },
44660702
DM
13522 "cpu" : {
13523 "description" : "Emulated CPU type.",
c5aa7e14 13524 "format" : "pve-vm-cpu-conf",
44660702 13525 "optional" : 1,
4d47f125 13526 "type" : "string"
44660702
DM
13527 },
13528 "cpulimit" : {
13529 "default" : 0,
c2993fe5 13530 "description" : "Limit of CPU usage.",
44660702
DM
13531 "maximum" : 128,
13532 "minimum" : 0,
13533 "optional" : 1,
c2993fe5
DM
13534 "type" : "number",
13535 "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
13536 },
13537 "cpuunits" : {
5370fa8c
TL
13538 "default" : "cgroup v1: 1024, cgroup v2: 100",
13539 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 13540 "maximum" : 262144,
7af2edf9 13541 "minimum" : 1,
44660702 13542 "optional" : 1,
c2993fe5 13543 "type" : "integer",
2489d6df 13544 "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 13545 },
44660702 13546 "description" : {
8f4d9c87
TL
13547 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
13548 "maxLength" : 8192,
44660702 13549 "optional" : 1,
4d47f125 13550 "type" : "string"
44660702
DM
13551 },
13552 "digest" : {
4d47f125
TL
13553 "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
13554 "type" : "string"
44660702 13555 },
4d47f125 13556 "efidisk0" : {
9d2e98ed 13557 "description" : "Configure a disk for storing EFI vars.",
4d47f125 13558 "format" : {
5370fa8c
TL
13559 "efitype" : {
13560 "default" : "2m",
9d2e98ed 13561 "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified. Ignored for VMs with arch=aarc64 (ARM).",
5370fa8c
TL
13562 "enum" : [
13563 "2m",
13564 "4m"
13565 ],
13566 "optional" : 1,
13567 "type" : "string"
13568 },
4d47f125
TL
13569 "file" : {
13570 "default_key" : 1,
13571 "description" : "The drive's backing volume.",
13572 "format" : "pve-volume-id-or-qm-path",
13573 "format_description" : "volume",
13574 "type" : "string"
13575 },
13576 "format" : {
13577 "description" : "The drive's backing file's data format.",
13578 "enum" : [
13579 "raw",
13580 "cow",
13581 "qcow",
13582 "qed",
13583 "qcow2",
13584 "vmdk",
13585 "cloop"
13586 ],
13587 "optional" : 1,
13588 "type" : "string"
13589 },
5370fa8c
TL
13590 "pre-enrolled-keys" : {
13591 "default" : 0,
13592 "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.",
13593 "optional" : 1,
13594 "type" : "boolean"
13595 },
4d47f125
TL
13596 "size" : {
13597 "description" : "Disk size. This is purely informational and has no effect.",
13598 "format" : "disk-size",
13599 "format_description" : "DiskSize",
13600 "optional" : 1,
13601 "type" : "string"
13602 },
13603 "volume" : {
13604 "alias" : "file"
13605 }
13606 },
44660702 13607 "optional" : 1,
4d47f125 13608 "type" : "string"
44660702
DM
13609 },
13610 "freeze" : {
13611 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
13612 "optional" : 1,
4d47f125 13613 "type" : "boolean"
44660702 13614 },
5f26e15b
TL
13615 "hookscript" : {
13616 "description" : "Script that will be executed during various steps in the vms lifetime.",
13617 "format" : "pve-volume-id",
13618 "optional" : 1,
13619 "type" : "string"
13620 },
44660702 13621 "hostpci[n]" : {
c2993fe5 13622 "description" : "Map host PCI devices into guest.",
44660702
DM
13623 "format" : "pve-qm-hostpci",
13624 "optional" : 1,
57b78691 13625 "type" : "string",
bb4c8cf8 13626 "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
13627 },
13628 "hotplug" : {
13629 "default" : "network,disk,usb",
4e7f60c2 13630 "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
13631 "format" : "pve-hotplug-features",
13632 "optional" : 1,
4d47f125 13633 "type" : "string"
44660702 13634 },
4bd7df8b
DM
13635 "hugepages" : {
13636 "description" : "Enable/disable hugepages memory.",
13637 "enum" : [
13638 "any",
13639 "2",
13640 "1024"
13641 ],
13642 "optional" : 1,
13643 "type" : "string"
13644 },
44660702 13645 "ide[n]" : {
7af2edf9 13646 "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
44660702
DM
13647 "format" : {
13648 "aio" : {
13649 "description" : "AIO type to use.",
13650 "enum" : [
13651 "native",
8f4d9c87
TL
13652 "threads",
13653 "io_uring"
56122987 13654 ],
56122987 13655 "optional" : 1,
44660702 13656 "type" : "string"
56122987 13657 },
44660702
DM
13658 "backup" : {
13659 "description" : "Whether the drive should be included when making backups.",
56122987 13660 "optional" : 1,
44660702 13661 "type" : "boolean"
56122987 13662 },
7aacca6f 13663 "bps" : {
de0983cb 13664 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
13665 "format_description" : "bps",
13666 "optional" : 1,
13667 "type" : "integer"
13668 },
de0983cb
DM
13669 "bps_max_length" : {
13670 "description" : "Maximum length of I/O bursts in seconds.",
13671 "format_description" : "seconds",
13672 "minimum" : 1,
13673 "optional" : 1,
13674 "type" : "integer"
13675 },
44660702 13676 "bps_rd" : {
de0983cb 13677 "description" : "Maximum read speed in bytes per second.",
44660702 13678 "format_description" : "bps",
56122987 13679 "optional" : 1,
44660702 13680 "type" : "integer"
56122987 13681 },
de0983cb 13682 "bps_rd_length" : {
5d9c884c
DM
13683 "alias" : "bps_rd_max_length"
13684 },
13685 "bps_rd_max_length" : {
de0983cb
DM
13686 "description" : "Maximum length of read I/O bursts in seconds.",
13687 "format_description" : "seconds",
13688 "minimum" : 1,
13689 "optional" : 1,
13690 "type" : "integer"
13691 },
44660702 13692 "bps_wr" : {
de0983cb 13693 "description" : "Maximum write speed in bytes per second.",
44660702
DM
13694 "format_description" : "bps",
13695 "optional" : 1,
13696 "type" : "integer"
13697 },
de0983cb 13698 "bps_wr_length" : {
5d9c884c
DM
13699 "alias" : "bps_wr_max_length"
13700 },
13701 "bps_wr_max_length" : {
de0983cb
DM
13702 "description" : "Maximum length of write I/O bursts in seconds.",
13703 "format_description" : "seconds",
13704 "minimum" : 1,
13705 "optional" : 1,
13706 "type" : "integer"
13707 },
44660702
DM
13708 "cache" : {
13709 "description" : "The drive's cache mode",
13710 "enum" : [
13711 "none",
13712 "writethrough",
13713 "writeback",
13714 "unsafe",
13715 "directsync"
13716 ],
44660702
DM
13717 "optional" : 1,
13718 "type" : "string"
13719 },
13720 "cyls" : {
13721 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
13722 "optional" : 1,
13723 "type" : "integer"
13724 },
13725 "detect_zeroes" : {
13726 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
13727 "optional" : 1,
13728 "type" : "boolean"
13729 },
13730 "discard" : {
13731 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
13732 "enum" : [
13733 "ignore",
13734 "on"
13735 ],
56122987 13736 "optional" : 1,
44660702
DM
13737 "type" : "string"
13738 },
13739 "file" : {
13740 "default_key" : 1,
13741 "description" : "The drive's backing volume.",
13742 "format" : "pve-volume-id-or-qm-path",
13743 "format_description" : "volume",
13744 "type" : "string"
56122987 13745 },
7aacca6f 13746 "format" : {
7aacca6f 13747 "description" : "The drive's backing file's data format.",
56122987 13748 "enum" : [
7aacca6f
DM
13749 "raw",
13750 "cow",
13751 "qcow",
13752 "qed",
13753 "qcow2",
13754 "vmdk",
13755 "cloop"
56122987
DM
13756 ],
13757 "optional" : 1,
56122987
DM
13758 "type" : "string"
13759 },
44660702
DM
13760 "heads" : {
13761 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
13762 "optional" : 1,
13763 "type" : "integer"
7aacca6f 13764 },
44660702 13765 "iops" : {
de0983cb 13766 "description" : "Maximum r/w I/O in operations per second.",
44660702 13767 "format_description" : "iops",
56122987 13768 "optional" : 1,
44660702 13769 "type" : "integer"
56122987 13770 },
44660702 13771 "iops_max" : {
de0983cb 13772 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 13773 "format_description" : "iops",
56122987 13774 "optional" : 1,
44660702 13775 "type" : "integer"
56122987 13776 },
de0983cb
DM
13777 "iops_max_length" : {
13778 "description" : "Maximum length of I/O bursts in seconds.",
13779 "format_description" : "seconds",
13780 "minimum" : 1,
13781 "optional" : 1,
13782 "type" : "integer"
13783 },
44660702 13784 "iops_rd" : {
de0983cb 13785 "description" : "Maximum read I/O in operations per second.",
44660702
DM
13786 "format_description" : "iops",
13787 "optional" : 1,
13788 "type" : "integer"
13789 },
de0983cb 13790 "iops_rd_length" : {
5d9c884c 13791 "alias" : "iops_rd_max_length"
de0983cb 13792 },
44660702 13793 "iops_rd_max" : {
de0983cb 13794 "description" : "Maximum unthrottled read I/O pool in operations per second.",
7aacca6f 13795 "format_description" : "iops",
44660702
DM
13796 "optional" : 1,
13797 "type" : "integer"
13798 },
5d9c884c
DM
13799 "iops_rd_max_length" : {
13800 "description" : "Maximum length of read I/O bursts in seconds.",
13801 "format_description" : "seconds",
13802 "minimum" : 1,
13803 "optional" : 1,
13804 "type" : "integer"
13805 },
44660702 13806 "iops_wr" : {
de0983cb 13807 "description" : "Maximum write I/O in operations per second.",
44660702 13808 "format_description" : "iops",
56122987 13809 "optional" : 1,
7aacca6f 13810 "type" : "integer"
56122987 13811 },
de0983cb 13812 "iops_wr_length" : {
5d9c884c 13813 "alias" : "iops_wr_max_length"
de0983cb 13814 },
44660702 13815 "iops_wr_max" : {
de0983cb 13816 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 13817 "format_description" : "iops",
7aacca6f 13818 "optional" : 1,
44660702 13819 "type" : "integer"
56122987 13820 },
5d9c884c
DM
13821 "iops_wr_max_length" : {
13822 "description" : "Maximum length of write I/O bursts in seconds.",
13823 "format_description" : "seconds",
13824 "minimum" : 1,
13825 "optional" : 1,
13826 "type" : "integer"
13827 },
44660702 13828 "mbps" : {
de0983cb 13829 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
13830 "format_description" : "mbps",
13831 "optional" : 1,
13832 "type" : "number"
13833 },
13834 "mbps_max" : {
de0983cb 13835 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
13836 "format_description" : "mbps",
13837 "optional" : 1,
13838 "type" : "number"
13839 },
13840 "mbps_rd" : {
de0983cb 13841 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
13842 "format_description" : "mbps",
13843 "optional" : 1,
13844 "type" : "number"
13845 },
13846 "mbps_rd_max" : {
de0983cb 13847 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
13848 "format_description" : "mbps",
13849 "optional" : 1,
13850 "type" : "number"
13851 },
13852 "mbps_wr" : {
de0983cb 13853 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
13854 "format_description" : "mbps",
13855 "optional" : 1,
13856 "type" : "number"
13857 },
13858 "mbps_wr_max" : {
de0983cb 13859 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 13860 "format_description" : "mbps",
56122987 13861 "optional" : 1,
44660702 13862 "type" : "number"
56122987 13863 },
7aacca6f 13864 "media" : {
7aacca6f 13865 "default" : "disk",
7aacca6f
DM
13866 "description" : "The drive's media type.",
13867 "enum" : [
13868 "cdrom",
13869 "disk"
44660702 13870 ],
44660702
DM
13871 "optional" : 1,
13872 "type" : "string"
56122987 13873 },
44660702
DM
13874 "model" : {
13875 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
13876 "format" : "urlencoded",
13877 "format_description" : "model",
13878 "maxLength" : 120,
56122987 13879 "optional" : 1,
44660702 13880 "type" : "string"
56122987 13881 },
5d9c884c
DM
13882 "replicate" : {
13883 "default" : 1,
13884 "description" : "Whether the drive should considered for replication jobs.",
13885 "optional" : 1,
13886 "type" : "boolean"
13887 },
44660702
DM
13888 "rerror" : {
13889 "description" : "Read error action.",
13890 "enum" : [
13891 "ignore",
13892 "report",
13893 "stop"
13894 ],
56122987 13895 "optional" : 1,
44660702
DM
13896 "type" : "string"
13897 },
13898 "secs" : {
13899 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
13900 "optional" : 1,
13901 "type" : "integer"
13902 },
13903 "serial" : {
13904 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
13905 "format" : "urlencoded",
13906 "format_description" : "serial",
13907 "maxLength" : 60,
13908 "optional" : 1,
13909 "type" : "string"
13910 },
27a7acb2
DM
13911 "shared" : {
13912 "default" : 0,
13913 "description" : "Mark this locally-managed volume as available on all nodes",
13914 "optional" : 1,
13915 "type" : "boolean",
13916 "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!"
13917 },
44660702
DM
13918 "size" : {
13919 "description" : "Disk size. This is purely informational and has no effect.",
13920 "format" : "disk-size",
f004f5b9 13921 "format_description" : "DiskSize",
44660702
DM
13922 "optional" : 1,
13923 "type" : "string"
13924 },
13925 "snapshot" : {
27a7acb2 13926 "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
13927 "optional" : 1,
13928 "type" : "boolean"
13929 },
25203dc1
NC
13930 "ssd" : {
13931 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
13932 "optional" : 1,
13933 "type" : "boolean"
13934 },
44660702
DM
13935 "trans" : {
13936 "description" : "Force disk geometry bios translation mode.",
13937 "enum" : [
13938 "none",
13939 "lba",
13940 "auto"
13941 ],
44660702
DM
13942 "optional" : 1,
13943 "type" : "string"
13944 },
13945 "volume" : {
13946 "alias" : "file"
13947 },
13948 "werror" : {
13949 "description" : "Write error action.",
13950 "enum" : [
13951 "enospc",
13952 "ignore",
13953 "report",
13954 "stop"
13955 ],
44660702
DM
13956 "optional" : 1,
13957 "type" : "string"
95895385
TL
13958 },
13959 "wwn" : {
13960 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
13961 "format_description" : "wwn",
13962 "optional" : 1,
13963 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
13964 "type" : "string"
56122987
DM
13965 }
13966 },
44660702 13967 "optional" : 1,
4d47f125 13968 "type" : "string"
27a7acb2
DM
13969 },
13970 "ipconfig[n]" : {
d2656385 13971 "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
13972 "format" : "pve-qm-ipconfig",
13973 "optional" : 1,
4d47f125 13974 "type" : "string"
56122987 13975 },
95895385
TL
13976 "ivshmem" : {
13977 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
13978 "format" : {
13979 "name" : {
13980 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
13981 "format_description" : "string",
13982 "optional" : 1,
13983 "pattern" : "[a-zA-Z0-9\\-]+",
13984 "type" : "string"
13985 },
13986 "size" : {
13987 "description" : "The size of the file in MB.",
13988 "minimum" : 1,
13989 "type" : "integer"
13990 }
13991 },
13992 "optional" : 1,
13993 "type" : "string"
13994 },
4772952b
TL
13995 "keephugepages" : {
13996 "default" : 0,
13997 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
13998 "optional" : 1,
13999 "type" : "boolean"
14000 },
44660702 14001 "keyboard" : {
35a75dd3 14002 "default" : null,
7af2edf9 14003 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
44660702
DM
14004 "enum" : [
14005 "de",
14006 "de-ch",
14007 "da",
14008 "en-gb",
14009 "en-us",
14010 "es",
14011 "fi",
14012 "fr",
14013 "fr-be",
14014 "fr-ca",
14015 "fr-ch",
14016 "hu",
14017 "is",
14018 "it",
14019 "ja",
14020 "lt",
14021 "mk",
14022 "nl",
14023 "no",
14024 "pl",
14025 "pt",
14026 "pt-br",
14027 "sv",
14028 "sl",
14029 "tr"
14030 ],
56122987 14031 "optional" : 1,
44660702
DM
14032 "type" : "string"
14033 },
14034 "kvm" : {
7aacca6f 14035 "default" : 1,
44660702
DM
14036 "description" : "Enable/disable KVM hardware virtualization.",
14037 "optional" : 1,
4d47f125 14038 "type" : "boolean"
56122987 14039 },
44660702 14040 "localtime" : {
5370fa8c 14041 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
56122987 14042 "optional" : 1,
4d47f125 14043 "type" : "boolean"
56122987 14044 },
44660702
DM
14045 "lock" : {
14046 "description" : "Lock/unlock the VM.",
14047 "enum" : [
44660702 14048 "backup",
5f26e15b
TL
14049 "clone",
14050 "create",
14051 "migrate",
14052 "rollback",
44660702 14053 "snapshot",
95895385
TL
14054 "snapshot-delete",
14055 "suspending",
14056 "suspended"
44660702 14057 ],
7aacca6f 14058 "optional" : 1,
44660702
DM
14059 "type" : "string"
14060 },
14061 "machine" : {
9d2e98ed 14062 "description" : "Specifies the QEMU machine type.",
44660702
DM
14063 "maxLength" : 40,
14064 "optional" : 1,
5c1699e5 14065 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702
DM
14066 "type" : "string"
14067 },
14068 "memory" : {
14069 "default" : 512,
9d2e98ed 14070 "description" : "Amount of RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
44660702
DM
14071 "minimum" : 16,
14072 "optional" : 1,
4d47f125 14073 "type" : "integer"
44660702
DM
14074 },
14075 "migrate_downtime" : {
14076 "default" : 0.1,
14077 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
14078 "minimum" : 0,
14079 "optional" : 1,
4d47f125 14080 "type" : "number"
44660702
DM
14081 },
14082 "migrate_speed" : {
14083 "default" : 0,
14084 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
14085 "minimum" : 0,
14086 "optional" : 1,
4d47f125 14087 "type" : "integer"
44660702
DM
14088 },
14089 "name" : {
14090 "description" : "Set a name for the VM. Only used on the configuration web interface.",
14091 "format" : "dns-name",
14092 "optional" : 1,
4d47f125 14093 "type" : "string"
44660702 14094 },
27a7acb2 14095 "nameserver" : {
de786b48 14096 "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
14097 "format" : "address-list",
14098 "optional" : 1,
4d47f125 14099 "type" : "string"
27a7acb2 14100 },
44660702 14101 "net[n]" : {
c2993fe5 14102 "description" : "Specify network devices.",
f004f5b9
DM
14103 "format" : {
14104 "bridge" : {
c2993fe5 14105 "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 14106 "format" : "pve-bridge-id",
f004f5b9
DM
14107 "format_description" : "bridge",
14108 "optional" : 1,
14109 "type" : "string"
14110 },
14111 "e1000" : {
14112 "alias" : "macaddr",
14113 "keyAlias" : "model"
14114 },
14115 "e1000-82540em" : {
14116 "alias" : "macaddr",
14117 "keyAlias" : "model"
14118 },
14119 "e1000-82544gc" : {
14120 "alias" : "macaddr",
14121 "keyAlias" : "model"
14122 },
14123 "e1000-82545em" : {
14124 "alias" : "macaddr",
14125 "keyAlias" : "model"
14126 },
5370fa8c
TL
14127 "e1000e" : {
14128 "alias" : "macaddr",
14129 "keyAlias" : "model"
14130 },
f004f5b9
DM
14131 "firewall" : {
14132 "description" : "Whether this interface should be protected by the firewall.",
14133 "optional" : 1,
14134 "type" : "boolean"
14135 },
14136 "i82551" : {
14137 "alias" : "macaddr",
14138 "keyAlias" : "model"
14139 },
14140 "i82557b" : {
14141 "alias" : "macaddr",
14142 "keyAlias" : "model"
14143 },
14144 "i82559er" : {
14145 "alias" : "macaddr",
14146 "keyAlias" : "model"
14147 },
14148 "link_down" : {
c2993fe5 14149 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
14150 "optional" : 1,
14151 "type" : "boolean"
14152 },
14153 "macaddr" : {
c2993fe5 14154 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 14155 "format" : "mac-addr",
f004f5b9 14156 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 14157 "optional" : 1,
95895385
TL
14158 "type" : "string",
14159 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
14160 },
14161 "model" : {
14162 "default_key" : 1,
c2993fe5 14163 "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 14164 "enum" : [
f004f5b9 14165 "e1000",
5370fa8c
TL
14166 "e1000-82540em",
14167 "e1000-82544gc",
14168 "e1000-82545em",
14169 "e1000e",
f004f5b9
DM
14170 "i82551",
14171 "i82557b",
14172 "i82559er",
5370fa8c
TL
14173 "ne2k_isa",
14174 "ne2k_pci",
14175 "pcnet",
14176 "rtl8139",
14177 "virtio",
14178 "vmxnet3"
f004f5b9 14179 ],
f004f5b9
DM
14180 "type" : "string"
14181 },
ac70d7d1
TL
14182 "mtu" : {
14183 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
14184 "maximum" : 65520,
14185 "minimum" : 1,
14186 "optional" : 1,
14187 "type" : "integer"
14188 },
f004f5b9
DM
14189 "ne2k_isa" : {
14190 "alias" : "macaddr",
14191 "keyAlias" : "model"
14192 },
14193 "ne2k_pci" : {
14194 "alias" : "macaddr",
14195 "keyAlias" : "model"
14196 },
14197 "pcnet" : {
14198 "alias" : "macaddr",
14199 "keyAlias" : "model"
14200 },
14201 "queues" : {
14202 "description" : "Number of packet queues to be used on the device.",
81a3384d 14203 "maximum" : 64,
f004f5b9
DM
14204 "minimum" : 0,
14205 "optional" : 1,
14206 "type" : "integer"
14207 },
14208 "rate" : {
c2993fe5 14209 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
14210 "minimum" : 0,
14211 "optional" : 1,
14212 "type" : "number"
14213 },
14214 "rtl8139" : {
14215 "alias" : "macaddr",
14216 "keyAlias" : "model"
14217 },
14218 "tag" : {
14219 "description" : "VLAN tag to apply to packets on this interface.",
14220 "maximum" : 4094,
c2993fe5 14221 "minimum" : 1,
f004f5b9
DM
14222 "optional" : 1,
14223 "type" : "integer"
14224 },
14225 "trunks" : {
14226 "description" : "VLAN trunks to pass through this interface.",
14227 "format_description" : "vlanid[;vlanid...]",
14228 "optional" : 1,
14229 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
14230 "type" : "string"
14231 },
14232 "virtio" : {
14233 "alias" : "macaddr",
14234 "keyAlias" : "model"
14235 },
14236 "vmxnet3" : {
14237 "alias" : "macaddr",
14238 "keyAlias" : "model"
14239 }
14240 },
44660702 14241 "optional" : 1,
4d47f125 14242 "type" : "string"
44660702
DM
14243 },
14244 "numa" : {
14245 "default" : 0,
14246 "description" : "Enable/disable NUMA.",
14247 "optional" : 1,
4d47f125 14248 "type" : "boolean"
44660702
DM
14249 },
14250 "numa[n]" : {
c2993fe5 14251 "description" : "NUMA topology.",
56122987 14252 "format" : {
7aacca6f 14253 "cpus" : {
c2993fe5 14254 "description" : "CPUs accessing this NUMA node.",
44660702
DM
14255 "format_description" : "id[-id];...",
14256 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
14257 "type" : "string"
7aacca6f
DM
14258 },
14259 "hostnodes" : {
c2993fe5 14260 "description" : "Host NUMA nodes to use.",
44660702 14261 "format_description" : "id[-id];...",
7aacca6f 14262 "optional" : 1,
7aacca6f 14263 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
44660702 14264 "type" : "string"
7aacca6f 14265 },
44660702 14266 "memory" : {
c2993fe5 14267 "description" : "Amount of memory this NUMA node provides.",
7aacca6f 14268 "optional" : 1,
44660702
DM
14269 "type" : "number"
14270 },
14271 "policy" : {
c2993fe5 14272 "description" : "NUMA allocation policy.",
7aacca6f
DM
14273 "enum" : [
14274 "preferred",
14275 "bind",
14276 "interleave"
14277 ],
44660702
DM
14278 "optional" : 1,
14279 "type" : "string"
56122987 14280 }
44660702 14281 },
56122987 14282 "optional" : 1,
4d47f125 14283 "type" : "string"
56122987 14284 },
44660702 14285 "onboot" : {
7aacca6f 14286 "default" : 0,
44660702
DM
14287 "description" : "Specifies whether a VM will be started during system bootup.",
14288 "optional" : 1,
4d47f125 14289 "type" : "boolean"
7aacca6f
DM
14290 },
14291 "ostype" : {
c2993fe5 14292 "description" : "Specify guest operating system.",
7aacca6f
DM
14293 "enum" : [
14294 "other",
14295 "wxp",
14296 "w2k",
14297 "w2k3",
14298 "w2k8",
14299 "wvista",
14300 "win7",
14301 "win8",
32d876b5 14302 "win10",
5370fa8c 14303 "win11",
7aacca6f
DM
14304 "l24",
14305 "l26",
14306 "solaris"
14307 ],
7aacca6f 14308 "optional" : 1,
c2993fe5 14309 "type" : "string",
9d2e98ed 14310 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
56122987 14311 },
44660702 14312 "parallel[n]" : {
c2993fe5 14313 "description" : "Map host parallel devices (n is 0 to 2).",
7aacca6f 14314 "optional" : 1,
44660702 14315 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 14316 "type" : "string",
4772952b 14317 "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
14318 },
14319 "protection" : {
14320 "default" : 0,
c2993fe5 14321 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
7aacca6f 14322 "optional" : 1,
4d47f125 14323 "type" : "boolean"
7aacca6f 14324 },
44660702
DM
14325 "reboot" : {
14326 "default" : 1,
14327 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
7aacca6f 14328 "optional" : 1,
4d47f125 14329 "type" : "boolean"
44660702 14330 },
c5aa7e14
TL
14331 "rng0" : {
14332 "description" : "Configure a VirtIO-based Random Number Generator.",
14333 "format" : {
14334 "max_bytes" : {
14335 "default" : 1024,
5370fa8c 14336 "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
14337 "optional" : 1,
14338 "type" : "integer"
14339 },
14340 "period" : {
14341 "default" : 1000,
14342 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
14343 "optional" : 1,
14344 "type" : "integer"
14345 },
14346 "source" : {
14347 "default_key" : 1,
5370fa8c 14348 "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
14349 "enum" : [
14350 "/dev/urandom",
14351 "/dev/random",
14352 "/dev/hwrng"
14353 ],
14354 "type" : "string"
14355 }
14356 },
14357 "optional" : 1,
14358 "type" : "string"
14359 },
44660702 14360 "sata[n]" : {
7af2edf9 14361 "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
56122987 14362 "format" : {
44660702
DM
14363 "aio" : {
14364 "description" : "AIO type to use.",
7aacca6f 14365 "enum" : [
44660702 14366 "native",
8f4d9c87
TL
14367 "threads",
14368 "io_uring"
7aacca6f 14369 ],
44660702
DM
14370 "optional" : 1,
14371 "type" : "string"
7aacca6f 14372 },
44660702
DM
14373 "backup" : {
14374 "description" : "Whether the drive should be included when making backups.",
56122987 14375 "optional" : 1,
7aacca6f 14376 "type" : "boolean"
44660702
DM
14377 },
14378 "bps" : {
de0983cb 14379 "description" : "Maximum r/w speed in bytes per second.",
44660702 14380 "format_description" : "bps",
7aacca6f 14381 "optional" : 1,
44660702 14382 "type" : "integer"
56122987 14383 },
de0983cb
DM
14384 "bps_max_length" : {
14385 "description" : "Maximum length of I/O bursts in seconds.",
14386 "format_description" : "seconds",
14387 "minimum" : 1,
14388 "optional" : 1,
14389 "type" : "integer"
14390 },
44660702 14391 "bps_rd" : {
de0983cb 14392 "description" : "Maximum read speed in bytes per second.",
44660702 14393 "format_description" : "bps",
56122987 14394 "optional" : 1,
44660702 14395 "type" : "integer"
56122987 14396 },
de0983cb 14397 "bps_rd_length" : {
5d9c884c
DM
14398 "alias" : "bps_rd_max_length"
14399 },
14400 "bps_rd_max_length" : {
de0983cb
DM
14401 "description" : "Maximum length of read I/O bursts in seconds.",
14402 "format_description" : "seconds",
14403 "minimum" : 1,
14404 "optional" : 1,
14405 "type" : "integer"
14406 },
44660702 14407 "bps_wr" : {
de0983cb 14408 "description" : "Maximum write speed in bytes per second.",
44660702 14409 "format_description" : "bps",
56122987 14410 "optional" : 1,
44660702 14411 "type" : "integer"
56122987 14412 },
de0983cb 14413 "bps_wr_length" : {
5d9c884c
DM
14414 "alias" : "bps_wr_max_length"
14415 },
14416 "bps_wr_max_length" : {
de0983cb
DM
14417 "description" : "Maximum length of write I/O bursts in seconds.",
14418 "format_description" : "seconds",
14419 "minimum" : 1,
14420 "optional" : 1,
14421 "type" : "integer"
14422 },
56122987 14423 "cache" : {
44660702 14424 "description" : "The drive's cache mode",
56122987
DM
14425 "enum" : [
14426 "none",
14427 "writethrough",
14428 "writeback",
14429 "unsafe",
14430 "directsync"
14431 ],
56122987 14432 "optional" : 1,
44660702 14433 "type" : "string"
56122987 14434 },
44660702
DM
14435 "cyls" : {
14436 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 14437 "optional" : 1,
44660702 14438 "type" : "integer"
7aacca6f
DM
14439 },
14440 "detect_zeroes" : {
14441 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 14442 "optional" : 1,
44660702 14443 "type" : "boolean"
56122987 14444 },
44660702
DM
14445 "discard" : {
14446 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
14447 "enum" : [
14448 "ignore",
14449 "on"
14450 ],
56122987 14451 "optional" : 1,
44660702 14452 "type" : "string"
7aacca6f 14453 },
44660702
DM
14454 "file" : {
14455 "default_key" : 1,
14456 "description" : "The drive's backing volume.",
14457 "format" : "pve-volume-id-or-qm-path",
14458 "format_description" : "volume",
14459 "type" : "string"
56122987 14460 },
7aacca6f 14461 "format" : {
44660702 14462 "description" : "The drive's backing file's data format.",
7aacca6f
DM
14463 "enum" : [
14464 "raw",
14465 "cow",
14466 "qcow",
14467 "qed",
14468 "qcow2",
14469 "vmdk",
14470 "cloop"
14471 ],
7aacca6f 14472 "optional" : 1,
44660702 14473 "type" : "string"
56122987 14474 },
7aacca6f 14475 "heads" : {
7aacca6f 14476 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 14477 "optional" : 1,
7aacca6f 14478 "type" : "integer"
56122987 14479 },
44660702 14480 "iops" : {
de0983cb 14481 "description" : "Maximum r/w I/O in operations per second.",
44660702 14482 "format_description" : "iops",
56122987 14483 "optional" : 1,
44660702 14484 "type" : "integer"
56122987 14485 },
44660702 14486 "iops_max" : {
de0983cb 14487 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 14488 "format_description" : "iops",
56122987 14489 "optional" : 1,
44660702 14490 "type" : "integer"
56122987 14491 },
de0983cb
DM
14492 "iops_max_length" : {
14493 "description" : "Maximum length of I/O bursts in seconds.",
14494 "format_description" : "seconds",
14495 "minimum" : 1,
14496 "optional" : 1,
14497 "type" : "integer"
14498 },
44660702 14499 "iops_rd" : {
de0983cb 14500 "description" : "Maximum read I/O in operations per second.",
44660702 14501 "format_description" : "iops",
7aacca6f 14502 "optional" : 1,
44660702 14503 "type" : "integer"
56122987 14504 },
de0983cb 14505 "iops_rd_length" : {
5d9c884c 14506 "alias" : "iops_rd_max_length"
de0983cb 14507 },
44660702 14508 "iops_rd_max" : {
de0983cb 14509 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 14510 "format_description" : "iops",
56122987 14511 "optional" : 1,
44660702 14512 "type" : "integer"
7aacca6f 14513 },
5d9c884c
DM
14514 "iops_rd_max_length" : {
14515 "description" : "Maximum length of read I/O bursts in seconds.",
14516 "format_description" : "seconds",
14517 "minimum" : 1,
14518 "optional" : 1,
14519 "type" : "integer"
14520 },
44660702 14521 "iops_wr" : {
de0983cb 14522 "description" : "Maximum write I/O in operations per second.",
44660702 14523 "format_description" : "iops",
56122987 14524 "optional" : 1,
44660702 14525 "type" : "integer"
56122987 14526 },
de0983cb 14527 "iops_wr_length" : {
5d9c884c 14528 "alias" : "iops_wr_max_length"
de0983cb 14529 },
56122987 14530 "iops_wr_max" : {
de0983cb 14531 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 14532 "format_description" : "iops",
56122987 14533 "optional" : 1,
44660702 14534 "type" : "integer"
56122987 14535 },
5d9c884c
DM
14536 "iops_wr_max_length" : {
14537 "description" : "Maximum length of write I/O bursts in seconds.",
14538 "format_description" : "seconds",
14539 "minimum" : 1,
14540 "optional" : 1,
14541 "type" : "integer"
14542 },
44660702 14543 "mbps" : {
de0983cb 14544 "description" : "Maximum r/w speed in megabytes per second.",
44660702 14545 "format_description" : "mbps",
56122987 14546 "optional" : 1,
44660702 14547 "type" : "number"
56122987 14548 },
44660702 14549 "mbps_max" : {
de0983cb 14550 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
14551 "format_description" : "mbps",
14552 "optional" : 1,
14553 "type" : "number"
56122987 14554 },
44660702 14555 "mbps_rd" : {
de0983cb 14556 "description" : "Maximum read speed in megabytes per second.",
44660702 14557 "format_description" : "mbps",
56122987 14558 "optional" : 1,
44660702 14559 "type" : "number"
56122987 14560 },
44660702 14561 "mbps_rd_max" : {
de0983cb 14562 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 14563 "format_description" : "mbps",
56122987 14564 "optional" : 1,
44660702 14565 "type" : "number"
56122987 14566 },
44660702 14567 "mbps_wr" : {
de0983cb 14568 "description" : "Maximum write speed in megabytes per second.",
56122987 14569 "format_description" : "mbps",
44660702
DM
14570 "optional" : 1,
14571 "type" : "number"
56122987 14572 },
44660702 14573 "mbps_wr_max" : {
de0983cb 14574 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
14575 "format_description" : "mbps",
14576 "optional" : 1,
14577 "type" : "number"
7aacca6f 14578 },
44660702
DM
14579 "media" : {
14580 "default" : "disk",
14581 "description" : "The drive's media type.",
14582 "enum" : [
14583 "cdrom",
14584 "disk"
14585 ],
56122987 14586 "optional" : 1,
44660702
DM
14587 "type" : "string"
14588 },
5d9c884c
DM
14589 "replicate" : {
14590 "default" : 1,
14591 "description" : "Whether the drive should considered for replication jobs.",
14592 "optional" : 1,
14593 "type" : "boolean"
14594 },
44660702
DM
14595 "rerror" : {
14596 "description" : "Read error action.",
7aacca6f 14597 "enum" : [
44660702
DM
14598 "ignore",
14599 "report",
14600 "stop"
14601 ],
7aacca6f 14602 "optional" : 1,
44660702 14603 "type" : "string"
56122987 14604 },
44660702
DM
14605 "secs" : {
14606 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 14607 "optional" : 1,
44660702 14608 "type" : "integer"
56122987 14609 },
44660702
DM
14610 "serial" : {
14611 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
14612 "format" : "urlencoded",
14613 "format_description" : "serial",
14614 "maxLength" : 60,
56122987 14615 "optional" : 1,
44660702 14616 "type" : "string"
56122987 14617 },
27a7acb2
DM
14618 "shared" : {
14619 "default" : 0,
14620 "description" : "Mark this locally-managed volume as available on all nodes",
14621 "optional" : 1,
14622 "type" : "boolean",
14623 "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!"
14624 },
44660702
DM
14625 "size" : {
14626 "description" : "Disk size. This is purely informational and has no effect.",
14627 "format" : "disk-size",
f004f5b9 14628 "format_description" : "DiskSize",
44660702
DM
14629 "optional" : 1,
14630 "type" : "string"
14631 },
14632 "snapshot" : {
27a7acb2 14633 "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 14634 "optional" : 1,
44660702
DM
14635 "type" : "boolean"
14636 },
25203dc1
NC
14637 "ssd" : {
14638 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
14639 "optional" : 1,
14640 "type" : "boolean"
14641 },
44660702
DM
14642 "trans" : {
14643 "description" : "Force disk geometry bios translation mode.",
56122987 14644 "enum" : [
7aacca6f
DM
14645 "none",
14646 "lba",
14647 "auto"
56122987 14648 ],
44660702
DM
14649 "optional" : 1,
14650 "type" : "string"
56122987 14651 },
7aacca6f
DM
14652 "volume" : {
14653 "alias" : "file"
56122987 14654 },
44660702
DM
14655 "werror" : {
14656 "description" : "Write error action.",
14657 "enum" : [
14658 "enospc",
14659 "ignore",
14660 "report",
14661 "stop"
14662 ],
7aacca6f 14663 "optional" : 1,
44660702 14664 "type" : "string"
95895385
TL
14665 },
14666 "wwn" : {
14667 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
14668 "format_description" : "wwn",
14669 "optional" : 1,
14670 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
14671 "type" : "string"
44660702
DM
14672 }
14673 },
14674 "optional" : 1,
4d47f125 14675 "type" : "string"
44660702
DM
14676 },
14677 "scsi[n]" : {
7af2edf9 14678 "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).",
44660702 14679 "format" : {
56122987 14680 "aio" : {
56122987
DM
14681 "description" : "AIO type to use.",
14682 "enum" : [
14683 "native",
8f4d9c87
TL
14684 "threads",
14685 "io_uring"
56122987 14686 ],
7aacca6f 14687 "optional" : 1,
44660702 14688 "type" : "string"
56122987 14689 },
44660702
DM
14690 "backup" : {
14691 "description" : "Whether the drive should be included when making backups.",
56122987 14692 "optional" : 1,
44660702 14693 "type" : "boolean"
56122987 14694 },
44660702 14695 "bps" : {
de0983cb 14696 "description" : "Maximum r/w speed in bytes per second.",
44660702 14697 "format_description" : "bps",
56122987 14698 "optional" : 1,
44660702 14699 "type" : "integer"
56122987 14700 },
de0983cb
DM
14701 "bps_max_length" : {
14702 "description" : "Maximum length of I/O bursts in seconds.",
14703 "format_description" : "seconds",
14704 "minimum" : 1,
14705 "optional" : 1,
14706 "type" : "integer"
14707 },
44660702 14708 "bps_rd" : {
de0983cb 14709 "description" : "Maximum read speed in bytes per second.",
44660702 14710 "format_description" : "bps",
56122987 14711 "optional" : 1,
44660702 14712 "type" : "integer"
56122987 14713 },
de0983cb 14714 "bps_rd_length" : {
5d9c884c
DM
14715 "alias" : "bps_rd_max_length"
14716 },
14717 "bps_rd_max_length" : {
de0983cb
DM
14718 "description" : "Maximum length of read I/O bursts in seconds.",
14719 "format_description" : "seconds",
14720 "minimum" : 1,
14721 "optional" : 1,
14722 "type" : "integer"
14723 },
7aacca6f 14724 "bps_wr" : {
de0983cb 14725 "description" : "Maximum write speed in bytes per second.",
7aacca6f 14726 "format_description" : "bps",
56122987 14727 "optional" : 1,
44660702 14728 "type" : "integer"
56122987 14729 },
de0983cb 14730 "bps_wr_length" : {
5d9c884c
DM
14731 "alias" : "bps_wr_max_length"
14732 },
14733 "bps_wr_max_length" : {
de0983cb
DM
14734 "description" : "Maximum length of write I/O bursts in seconds.",
14735 "format_description" : "seconds",
14736 "minimum" : 1,
14737 "optional" : 1,
14738 "type" : "integer"
14739 },
44660702
DM
14740 "cache" : {
14741 "description" : "The drive's cache mode",
7aacca6f 14742 "enum" : [
44660702
DM
14743 "none",
14744 "writethrough",
14745 "writeback",
14746 "unsafe",
14747 "directsync"
7aacca6f 14748 ],
56122987 14749 "optional" : 1,
44660702 14750 "type" : "string"
56122987 14751 },
44660702
DM
14752 "cyls" : {
14753 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 14754 "optional" : 1,
44660702 14755 "type" : "integer"
56122987 14756 },
44660702
DM
14757 "detect_zeroes" : {
14758 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 14759 "optional" : 1,
44660702 14760 "type" : "boolean"
56122987 14761 },
44660702
DM
14762 "discard" : {
14763 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
14764 "enum" : [
14765 "ignore",
14766 "on"
14767 ],
7aacca6f 14768 "optional" : 1,
44660702 14769 "type" : "string"
56122987 14770 },
44660702
DM
14771 "file" : {
14772 "default_key" : 1,
14773 "description" : "The drive's backing volume.",
14774 "format" : "pve-volume-id-or-qm-path",
14775 "format_description" : "volume",
14776 "type" : "string"
56122987 14777 },
7aacca6f 14778 "format" : {
44660702 14779 "description" : "The drive's backing file's data format.",
56122987 14780 "enum" : [
7aacca6f
DM
14781 "raw",
14782 "cow",
14783 "qcow",
14784 "qed",
14785 "qcow2",
14786 "vmdk",
14787 "cloop"
14788 ],
44660702
DM
14789 "optional" : 1,
14790 "type" : "string"
56122987 14791 },
44660702
DM
14792 "heads" : {
14793 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 14794 "optional" : 1,
7aacca6f 14795 "type" : "integer"
56122987 14796 },
44660702 14797 "iops" : {
de0983cb 14798 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 14799 "format_description" : "iops",
44660702
DM
14800 "optional" : 1,
14801 "type" : "integer"
7aacca6f 14802 },
44660702 14803 "iops_max" : {
de0983cb 14804 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 14805 "format_description" : "iops",
56122987 14806 "optional" : 1,
44660702 14807 "type" : "integer"
7aacca6f 14808 },
de0983cb
DM
14809 "iops_max_length" : {
14810 "description" : "Maximum length of I/O bursts in seconds.",
14811 "format_description" : "seconds",
14812 "minimum" : 1,
14813 "optional" : 1,
14814 "type" : "integer"
14815 },
44660702 14816 "iops_rd" : {
de0983cb 14817 "description" : "Maximum read I/O in operations per second.",
44660702 14818 "format_description" : "iops",
7aacca6f 14819 "optional" : 1,
44660702 14820 "type" : "integer"
56122987 14821 },
de0983cb 14822 "iops_rd_length" : {
5d9c884c 14823 "alias" : "iops_rd_max_length"
de0983cb 14824 },
44660702 14825 "iops_rd_max" : {
de0983cb 14826 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
14827 "format_description" : "iops",
14828 "optional" : 1,
14829 "type" : "integer"
14830 },
5d9c884c
DM
14831 "iops_rd_max_length" : {
14832 "description" : "Maximum length of read I/O bursts in seconds.",
14833 "format_description" : "seconds",
14834 "minimum" : 1,
14835 "optional" : 1,
14836 "type" : "integer"
14837 },
44660702 14838 "iops_wr" : {
de0983cb 14839 "description" : "Maximum write I/O in operations per second.",
44660702 14840 "format_description" : "iops",
56122987 14841 "optional" : 1,
44660702
DM
14842 "type" : "integer"
14843 },
de0983cb 14844 "iops_wr_length" : {
5d9c884c 14845 "alias" : "iops_wr_max_length"
de0983cb 14846 },
44660702 14847 "iops_wr_max" : {
de0983cb 14848 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
14849 "format_description" : "iops",
14850 "optional" : 1,
14851 "type" : "integer"
56122987 14852 },
5d9c884c
DM
14853 "iops_wr_max_length" : {
14854 "description" : "Maximum length of write I/O bursts in seconds.",
14855 "format_description" : "seconds",
14856 "minimum" : 1,
14857 "optional" : 1,
14858 "type" : "integer"
14859 },
7aacca6f 14860 "iothread" : {
7aacca6f 14861 "description" : "Whether to use iothreads for this drive",
56122987 14862 "optional" : 1,
56122987
DM
14863 "type" : "boolean"
14864 },
44660702 14865 "mbps" : {
de0983cb 14866 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
14867 "format_description" : "mbps",
14868 "optional" : 1,
14869 "type" : "number"
14870 },
14871 "mbps_max" : {
de0983cb 14872 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
14873 "format_description" : "mbps",
14874 "optional" : 1,
14875 "type" : "number"
14876 },
14877 "mbps_rd" : {
de0983cb 14878 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
14879 "format_description" : "mbps",
14880 "optional" : 1,
14881 "type" : "number"
14882 },
14883 "mbps_rd_max" : {
de0983cb 14884 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
14885 "format_description" : "mbps",
14886 "optional" : 1,
14887 "type" : "number"
14888 },
14889 "mbps_wr" : {
de0983cb 14890 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
14891 "format_description" : "mbps",
14892 "optional" : 1,
14893 "type" : "number"
14894 },
14895 "mbps_wr_max" : {
de0983cb 14896 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
14897 "format_description" : "mbps",
14898 "optional" : 1,
14899 "type" : "number"
14900 },
7aacca6f 14901 "media" : {
44660702
DM
14902 "default" : "disk",
14903 "description" : "The drive's media type.",
7aacca6f
DM
14904 "enum" : [
14905 "cdrom",
14906 "disk"
14907 ],
56122987 14908 "optional" : 1,
44660702
DM
14909 "type" : "string"
14910 },
14911 "queues" : {
14912 "description" : "Number of queues.",
44660702
DM
14913 "minimum" : 2,
14914 "optional" : 1,
14915 "type" : "integer"
14916 },
5d9c884c
DM
14917 "replicate" : {
14918 "default" : 1,
14919 "description" : "Whether the drive should considered for replication jobs.",
14920 "optional" : 1,
14921 "type" : "boolean"
14922 },
14923 "rerror" : {
14924 "description" : "Read error action.",
14925 "enum" : [
14926 "ignore",
14927 "report",
14928 "stop"
14929 ],
14930 "optional" : 1,
14931 "type" : "string"
14932 },
5370fa8c
TL
14933 "ro" : {
14934 "description" : "Whether the drive is read-only.",
14935 "optional" : 1,
14936 "type" : "boolean"
14937 },
52e44c50
FG
14938 "scsiblock" : {
14939 "default" : 0,
14940 "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",
14941 "optional" : 1,
14942 "type" : "boolean"
14943 },
44660702
DM
14944 "secs" : {
14945 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
14946 "optional" : 1,
14947 "type" : "integer"
14948 },
14949 "serial" : {
14950 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
14951 "format" : "urlencoded",
14952 "format_description" : "serial",
14953 "maxLength" : 60,
14954 "optional" : 1,
14955 "type" : "string"
14956 },
27a7acb2
DM
14957 "shared" : {
14958 "default" : 0,
14959 "description" : "Mark this locally-managed volume as available on all nodes",
14960 "optional" : 1,
14961 "type" : "boolean",
14962 "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!"
14963 },
44660702
DM
14964 "size" : {
14965 "description" : "Disk size. This is purely informational and has no effect.",
14966 "format" : "disk-size",
f004f5b9 14967 "format_description" : "DiskSize",
44660702
DM
14968 "optional" : 1,
14969 "type" : "string"
56122987 14970 },
7aacca6f 14971 "snapshot" : {
27a7acb2 14972 "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 14973 "optional" : 1,
44660702 14974 "type" : "boolean"
7aacca6f 14975 },
25203dc1
NC
14976 "ssd" : {
14977 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
14978 "optional" : 1,
14979 "type" : "boolean"
14980 },
44660702
DM
14981 "trans" : {
14982 "description" : "Force disk geometry bios translation mode.",
14983 "enum" : [
14984 "none",
14985 "lba",
14986 "auto"
14987 ],
44660702
DM
14988 "optional" : 1,
14989 "type" : "string"
14990 },
14991 "volume" : {
14992 "alias" : "file"
14993 },
14994 "werror" : {
14995 "description" : "Write error action.",
14996 "enum" : [
14997 "enospc",
14998 "ignore",
14999 "report",
15000 "stop"
15001 ],
56122987 15002 "optional" : 1,
44660702 15003 "type" : "string"
95895385
TL
15004 },
15005 "wwn" : {
15006 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
15007 "format_description" : "wwn",
15008 "optional" : 1,
15009 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
15010 "type" : "string"
56122987 15011 }
44660702 15012 },
7aacca6f 15013 "optional" : 1,
4d47f125 15014 "type" : "string"
44660702
DM
15015 },
15016 "scsihw" : {
15017 "default" : "lsi",
c2993fe5 15018 "description" : "SCSI controller model",
7aacca6f 15019 "enum" : [
44660702
DM
15020 "lsi",
15021 "lsi53c810",
15022 "virtio-scsi-pci",
15023 "virtio-scsi-single",
15024 "megasas",
15025 "pvscsi"
7aacca6f 15026 ],
44660702
DM
15027 "optional" : 1,
15028 "type" : "string"
56122987 15029 },
27a7acb2 15030 "searchdomain" : {
de786b48 15031 "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 15032 "optional" : 1,
4d47f125 15033 "type" : "string"
27a7acb2 15034 },
44660702 15035 "serial[n]" : {
c2993fe5 15036 "description" : "Create a serial device inside the VM (n is 0 to 3)",
7aacca6f 15037 "optional" : 1,
44660702 15038 "pattern" : "(/dev/.+|socket)",
c2993fe5 15039 "type" : "string",
4772952b 15040 "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 15041 },
44660702
DM
15042 "shares" : {
15043 "default" : 1000,
5da3d723 15044 "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
15045 "maximum" : 50000,
15046 "minimum" : 0,
56122987 15047 "optional" : 1,
4d47f125 15048 "type" : "integer"
56122987 15049 },
44660702
DM
15050 "smbios1" : {
15051 "description" : "Specify SMBIOS type 1 fields.",
15052 "format" : "pve-qm-smbios1",
1e3f8156 15053 "maxLength" : 512,
56122987 15054 "optional" : 1,
4d47f125 15055 "type" : "string"
56122987 15056 },
44660702
DM
15057 "smp" : {
15058 "default" : 1,
15059 "description" : "The number of CPUs. Please use option -sockets instead.",
7aacca6f 15060 "minimum" : 1,
7aacca6f 15061 "optional" : 1,
4d47f125 15062 "type" : "integer"
7aacca6f 15063 },
44660702
DM
15064 "sockets" : {
15065 "default" : 1,
15066 "description" : "The number of CPU sockets.",
15067 "minimum" : 1,
7aacca6f 15068 "optional" : 1,
4d47f125 15069 "type" : "integer"
56122987 15070 },
1c532546
TL
15071 "spice_enhancements" : {
15072 "description" : "Configure additional enhancements for SPICE.",
15073 "format" : {
15074 "foldersharing" : {
15075 "default" : "0",
15076 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
15077 "optional" : 1,
15078 "type" : "boolean"
15079 },
15080 "videostreaming" : {
15081 "default" : "off",
15082 "description" : "Enable video streaming. Uses compression for detected video streams.",
15083 "enum" : [
15084 "off",
15085 "all",
15086 "filter"
15087 ],
15088 "optional" : 1,
15089 "type" : "string"
15090 }
15091 },
15092 "optional" : 1,
15093 "type" : "string"
15094 },
27a7acb2
DM
15095 "sshkeys" : {
15096 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
15097 "format" : "urlencoded",
15098 "optional" : 1,
4d47f125 15099 "type" : "string"
27a7acb2 15100 },
44660702
DM
15101 "startdate" : {
15102 "default" : "now",
4772952b 15103 "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 15104 "optional" : 1,
44660702 15105 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
7aacca6f 15106 "type" : "string",
44660702 15107 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
56122987 15108 },
7aacca6f 15109 "startup" : {
7aacca6f 15110 "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 15111 "format" : "pve-startup-order",
56122987 15112 "optional" : 1,
44660702
DM
15113 "type" : "string",
15114 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
56122987 15115 },
44660702 15116 "tablet" : {
7aacca6f 15117 "default" : 1,
c2993fe5 15118 "description" : "Enable/disable the USB tablet device.",
7aacca6f 15119 "optional" : 1,
c2993fe5 15120 "type" : "boolean",
4772952b 15121 "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 15122 },
5c1699e5
TL
15123 "tags" : {
15124 "description" : "Tags of the VM. This is only meta information.",
15125 "format" : "pve-tag-list",
15126 "optional" : 1,
15127 "type" : "string"
15128 },
44660702
DM
15129 "tdf" : {
15130 "default" : 0,
15131 "description" : "Enable/disable time drift fix.",
7aacca6f 15132 "optional" : 1,
4d47f125 15133 "type" : "boolean"
7aacca6f 15134 },
44660702
DM
15135 "template" : {
15136 "default" : 0,
15137 "description" : "Enable/disable Template.",
7aacca6f 15138 "optional" : 1,
4d47f125 15139 "type" : "boolean"
7aacca6f 15140 },
5370fa8c 15141 "tpmstate0" : {
7af2edf9 15142 "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'.",
5370fa8c
TL
15143 "format" : {
15144 "file" : {
15145 "default_key" : 1,
15146 "description" : "The drive's backing volume.",
15147 "format" : "pve-volume-id-or-qm-path",
15148 "format_description" : "volume",
15149 "type" : "string"
15150 },
15151 "size" : {
15152 "description" : "Disk size. This is purely informational and has no effect.",
15153 "format" : "disk-size",
15154 "format_description" : "DiskSize",
15155 "optional" : 1,
15156 "type" : "string"
15157 },
15158 "version" : {
15159 "default" : "v2.0",
15160 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
15161 "enum" : [
15162 "v1.2",
15163 "v2.0"
15164 ],
15165 "optional" : 1,
15166 "type" : "string"
15167 },
15168 "volume" : {
15169 "alias" : "file"
15170 }
15171 },
15172 "optional" : 1,
15173 "type" : "string"
15174 },
44660702 15175 "unused[n]" : {
c2993fe5 15176 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
15177 "format" : {
15178 "file" : {
15179 "default_key" : 1,
15180 "description" : "The drive's backing volume.",
15181 "format" : "pve-volume-id",
15182 "format_description" : "volume",
15183 "type" : "string"
15184 },
15185 "volume" : {
15186 "alias" : "file"
15187 }
15188 },
7aacca6f 15189 "optional" : 1,
4d47f125 15190 "type" : "string"
7aacca6f 15191 },
44660702 15192 "usb[n]" : {
4e7f60c2 15193 "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
15194 "format" : {
15195 "host" : {
15196 "default_key" : 1,
4772952b 15197 "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
15198 "format" : "pve-qm-usb-device",
15199 "format_description" : "HOSTUSBDEVICE|spice",
15200 "type" : "string"
15201 },
15202 "usb3" : {
c2993fe5 15203 "default" : 0,
4e7f60c2 15204 "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
15205 "optional" : 1,
15206 "type" : "boolean"
15207 }
15208 },
7aacca6f 15209 "optional" : 1,
4d47f125 15210 "type" : "string"
56122987 15211 },
44660702
DM
15212 "vcpus" : {
15213 "default" : 0,
15214 "description" : "Number of hotplugged vcpus.",
15215 "minimum" : 1,
56122987 15216 "optional" : 1,
4d47f125 15217 "type" : "integer"
56122987 15218 },
44660702 15219 "vga" : {
e2d681b3
TL
15220 "description" : "Configure the VGA hardware.",
15221 "format" : {
15222 "memory" : {
15223 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
15224 "maximum" : 512,
15225 "minimum" : 4,
15226 "optional" : 1,
15227 "type" : "integer"
15228 },
15229 "type" : {
15230 "default" : "std",
15231 "default_key" : 1,
15232 "description" : "Select the VGA type.",
15233 "enum" : [
15234 "cirrus",
15235 "qxl",
15236 "qxl2",
15237 "qxl3",
15238 "qxl4",
5f26e15b 15239 "none",
e2d681b3
TL
15240 "serial0",
15241 "serial1",
15242 "serial2",
15243 "serial3",
15244 "std",
15245 "virtio",
7af2edf9 15246 "virtio-gl",
e2d681b3
TL
15247 "vmware"
15248 ],
15249 "optional" : 1,
15250 "type" : "string"
15251 }
15252 },
56122987 15253 "optional" : 1,
c2993fe5 15254 "type" : "string",
e2d681b3 15255 "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 15256 },
44660702 15257 "virtio[n]" : {
7af2edf9 15258 "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
56122987 15259 "format" : {
44660702
DM
15260 "aio" : {
15261 "description" : "AIO type to use.",
56122987 15262 "enum" : [
44660702 15263 "native",
8f4d9c87
TL
15264 "threads",
15265 "io_uring"
56122987 15266 ],
56122987
DM
15267 "optional" : 1,
15268 "type" : "string"
15269 },
44660702
DM
15270 "backup" : {
15271 "description" : "Whether the drive should be included when making backups.",
44660702
DM
15272 "optional" : 1,
15273 "type" : "boolean"
7aacca6f 15274 },
44660702 15275 "bps" : {
de0983cb 15276 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
15277 "format_description" : "bps",
15278 "optional" : 1,
15279 "type" : "integer"
56122987 15280 },
de0983cb
DM
15281 "bps_max_length" : {
15282 "description" : "Maximum length of I/O bursts in seconds.",
15283 "format_description" : "seconds",
15284 "minimum" : 1,
15285 "optional" : 1,
15286 "type" : "integer"
15287 },
44660702 15288 "bps_rd" : {
de0983cb 15289 "description" : "Maximum read speed in bytes per second.",
44660702 15290 "format_description" : "bps",
56122987 15291 "optional" : 1,
44660702 15292 "type" : "integer"
56122987 15293 },
de0983cb 15294 "bps_rd_length" : {
5d9c884c
DM
15295 "alias" : "bps_rd_max_length"
15296 },
15297 "bps_rd_max_length" : {
de0983cb
DM
15298 "description" : "Maximum length of read I/O bursts in seconds.",
15299 "format_description" : "seconds",
15300 "minimum" : 1,
15301 "optional" : 1,
15302 "type" : "integer"
15303 },
44660702 15304 "bps_wr" : {
de0983cb 15305 "description" : "Maximum write speed in bytes per second.",
44660702 15306 "format_description" : "bps",
56122987 15307 "optional" : 1,
44660702
DM
15308 "type" : "integer"
15309 },
de0983cb 15310 "bps_wr_length" : {
5d9c884c
DM
15311 "alias" : "bps_wr_max_length"
15312 },
15313 "bps_wr_max_length" : {
de0983cb
DM
15314 "description" : "Maximum length of write I/O bursts in seconds.",
15315 "format_description" : "seconds",
15316 "minimum" : 1,
15317 "optional" : 1,
15318 "type" : "integer"
15319 },
44660702
DM
15320 "cache" : {
15321 "description" : "The drive's cache mode",
56122987 15322 "enum" : [
44660702
DM
15323 "none",
15324 "writethrough",
15325 "writeback",
15326 "unsafe",
15327 "directsync"
56122987 15328 ],
56122987 15329 "optional" : 1,
44660702 15330 "type" : "string"
56122987 15331 },
44660702
DM
15332 "cyls" : {
15333 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
56122987 15334 "optional" : 1,
44660702 15335 "type" : "integer"
7aacca6f 15336 },
44660702
DM
15337 "detect_zeroes" : {
15338 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
15339 "optional" : 1,
15340 "type" : "boolean"
7aacca6f 15341 },
44660702
DM
15342 "discard" : {
15343 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
15344 "enum" : [
15345 "ignore",
15346 "on"
15347 ],
56122987 15348 "optional" : 1,
44660702 15349 "type" : "string"
56122987
DM
15350 },
15351 "file" : {
7aacca6f 15352 "default_key" : 1,
44660702 15353 "description" : "The drive's backing volume.",
7aacca6f 15354 "format" : "pve-volume-id-or-qm-path",
44660702
DM
15355 "format_description" : "volume",
15356 "type" : "string"
7aacca6f
DM
15357 },
15358 "format" : {
7aacca6f
DM
15359 "description" : "The drive's backing file's data format.",
15360 "enum" : [
15361 "raw",
15362 "cow",
15363 "qcow",
15364 "qed",
15365 "qcow2",
15366 "vmdk",
15367 "cloop"
56122987
DM
15368 ],
15369 "optional" : 1,
56122987
DM
15370 "type" : "string"
15371 },
44660702
DM
15372 "heads" : {
15373 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 15374 "optional" : 1,
44660702 15375 "type" : "integer"
56122987 15376 },
44660702 15377 "iops" : {
de0983cb 15378 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 15379 "format_description" : "iops",
56122987 15380 "optional" : 1,
44660702 15381 "type" : "integer"
56122987 15382 },
44660702 15383 "iops_max" : {
de0983cb 15384 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 15385 "format_description" : "iops",
56122987 15386 "optional" : 1,
56122987
DM
15387 "type" : "integer"
15388 },
de0983cb
DM
15389 "iops_max_length" : {
15390 "description" : "Maximum length of I/O bursts in seconds.",
15391 "format_description" : "seconds",
15392 "minimum" : 1,
15393 "optional" : 1,
15394 "type" : "integer"
15395 },
44660702 15396 "iops_rd" : {
de0983cb 15397 "description" : "Maximum read I/O in operations per second.",
44660702 15398 "format_description" : "iops",
56122987 15399 "optional" : 1,
44660702 15400 "type" : "integer"
56122987 15401 },
de0983cb 15402 "iops_rd_length" : {
5d9c884c 15403 "alias" : "iops_rd_max_length"
de0983cb 15404 },
44660702 15405 "iops_rd_max" : {
de0983cb 15406 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 15407 "format_description" : "iops",
7aacca6f 15408 "optional" : 1,
44660702 15409 "type" : "integer"
56122987 15410 },
5d9c884c
DM
15411 "iops_rd_max_length" : {
15412 "description" : "Maximum length of read I/O bursts in seconds.",
15413 "format_description" : "seconds",
15414 "minimum" : 1,
15415 "optional" : 1,
15416 "type" : "integer"
15417 },
44660702 15418 "iops_wr" : {
de0983cb 15419 "description" : "Maximum write I/O in operations per second.",
44660702 15420 "format_description" : "iops",
7aacca6f 15421 "optional" : 1,
44660702 15422 "type" : "integer"
56122987 15423 },
de0983cb 15424 "iops_wr_length" : {
5d9c884c 15425 "alias" : "iops_wr_max_length"
de0983cb 15426 },
44660702 15427 "iops_wr_max" : {
de0983cb 15428 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 15429 "format_description" : "iops",
56122987
DM
15430 "optional" : 1,
15431 "type" : "integer"
15432 },
5d9c884c
DM
15433 "iops_wr_max_length" : {
15434 "description" : "Maximum length of write I/O bursts in seconds.",
15435 "format_description" : "seconds",
15436 "minimum" : 1,
15437 "optional" : 1,
15438 "type" : "integer"
15439 },
44660702
DM
15440 "iothread" : {
15441 "description" : "Whether to use iothreads for this drive",
44660702
DM
15442 "optional" : 1,
15443 "type" : "boolean"
15444 },
15445 "mbps" : {
de0983cb 15446 "description" : "Maximum r/w speed in megabytes per second.",
7aacca6f 15447 "format_description" : "mbps",
44660702
DM
15448 "optional" : 1,
15449 "type" : "number"
15450 },
15451 "mbps_max" : {
de0983cb 15452 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
15453 "format_description" : "mbps",
15454 "optional" : 1,
15455 "type" : "number"
7aacca6f 15456 },
44660702 15457 "mbps_rd" : {
de0983cb 15458 "description" : "Maximum read speed in megabytes per second.",
44660702 15459 "format_description" : "mbps",
56122987 15460 "optional" : 1,
44660702 15461 "type" : "number"
56122987 15462 },
44660702 15463 "mbps_rd_max" : {
de0983cb 15464 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 15465 "format_description" : "mbps",
7aacca6f 15466 "optional" : 1,
44660702 15467 "type" : "number"
56122987 15468 },
44660702 15469 "mbps_wr" : {
de0983cb 15470 "description" : "Maximum write speed in megabytes per second.",
44660702 15471 "format_description" : "mbps",
56122987 15472 "optional" : 1,
44660702 15473 "type" : "number"
56122987 15474 },
44660702 15475 "mbps_wr_max" : {
de0983cb 15476 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 15477 "format_description" : "mbps",
56122987 15478 "optional" : 1,
44660702 15479 "type" : "number"
56122987
DM
15480 },
15481 "media" : {
7aacca6f 15482 "default" : "disk",
44660702 15483 "description" : "The drive's media type.",
56122987
DM
15484 "enum" : [
15485 "cdrom",
15486 "disk"
15487 ],
44660702
DM
15488 "optional" : 1,
15489 "type" : "string"
56122987 15490 },
5d9c884c
DM
15491 "replicate" : {
15492 "default" : 1,
15493 "description" : "Whether the drive should considered for replication jobs.",
15494 "optional" : 1,
15495 "type" : "boolean"
15496 },
7aacca6f 15497 "rerror" : {
44660702 15498 "description" : "Read error action.",
56122987 15499 "enum" : [
7aacca6f
DM
15500 "ignore",
15501 "report",
15502 "stop"
56122987 15503 ],
56122987 15504 "optional" : 1,
44660702 15505 "type" : "string"
56122987 15506 },
5370fa8c
TL
15507 "ro" : {
15508 "description" : "Whether the drive is read-only.",
15509 "optional" : 1,
15510 "type" : "boolean"
15511 },
44660702
DM
15512 "secs" : {
15513 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
15514 "optional" : 1,
15515 "type" : "integer"
15516 },
15517 "serial" : {
15518 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
15519 "format" : "urlencoded",
15520 "format_description" : "serial",
15521 "maxLength" : 60,
56122987 15522 "optional" : 1,
7aacca6f 15523 "type" : "string"
56122987 15524 },
27a7acb2
DM
15525 "shared" : {
15526 "default" : 0,
15527 "description" : "Mark this locally-managed volume as available on all nodes",
15528 "optional" : 1,
15529 "type" : "boolean",
15530 "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!"
15531 },
44660702
DM
15532 "size" : {
15533 "description" : "Disk size. This is purely informational and has no effect.",
15534 "format" : "disk-size",
f004f5b9 15535 "format_description" : "DiskSize",
56122987 15536 "optional" : 1,
44660702 15537 "type" : "string"
56122987 15538 },
44660702 15539 "snapshot" : {
27a7acb2 15540 "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 15541 "optional" : 1,
44660702 15542 "type" : "boolean"
56122987 15543 },
44660702
DM
15544 "trans" : {
15545 "description" : "Force disk geometry bios translation mode.",
15546 "enum" : [
15547 "none",
15548 "lba",
15549 "auto"
15550 ],
44660702
DM
15551 "optional" : 1,
15552 "type" : "string"
15553 },
15554 "volume" : {
15555 "alias" : "file"
15556 },
15557 "werror" : {
15558 "description" : "Write error action.",
15559 "enum" : [
15560 "enospc",
15561 "ignore",
15562 "report",
15563 "stop"
15564 ],
56122987 15565 "optional" : 1,
44660702 15566 "type" : "string"
56122987 15567 }
44660702 15568 },
56122987 15569 "optional" : 1,
4d47f125 15570 "type" : "string"
56122987 15571 },
4d47f125
TL
15572 "vmgenid" : {
15573 "default" : "1 (autogenerated)",
15574 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
15575 "format_description" : "UUID",
15576 "optional" : 1,
15577 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
15578 "type" : "string",
4772952b 15579 "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 15580 },
2489d6df
WB
15581 "vmstatestorage" : {
15582 "description" : "Default storage for VM state volumes/files.",
15583 "format" : "pve-storage-id",
15584 "optional" : 1,
4d47f125 15585 "type" : "string"
2489d6df 15586 },
44660702 15587 "watchdog" : {
c2993fe5 15588 "description" : "Create a virtual hardware watchdog device.",
44660702 15589 "format" : "pve-qm-watchdog",
56122987 15590 "optional" : 1,
c2993fe5
DM
15591 "type" : "string",
15592 "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 15593 }
4d47f125
TL
15594 },
15595 "type" : "object"
44660702 15596 }
56122987 15597 },
4d47f125 15598 "POST" : {
e9cd3bd4 15599 "allowtoken" : 1,
4d47f125
TL
15600 "description" : "Set virtual machine options (asynchrounous API).",
15601 "method" : "POST",
15602 "name" : "update_vm_async",
56122987 15603 "parameters" : {
7aacca6f 15604 "additionalProperties" : 0,
56122987 15605 "properties" : {
44660702
DM
15606 "acpi" : {
15607 "default" : 1,
15608 "description" : "Enable/disable ACPI.",
7aacca6f 15609 "optional" : 1,
013dc89f
DM
15610 "type" : "boolean",
15611 "typetext" : "<boolean>"
7aacca6f 15612 },
4e7f60c2 15613 "affinity" : {
81a3384d 15614 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
15615 "format" : "pve-cpuset",
15616 "optional" : 1,
15617 "type" : "string",
15618 "typetext" : "<string>"
15619 },
44660702 15620 "agent" : {
9d2e98ed 15621 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
15622 "format" : {
15623 "enabled" : {
15624 "default" : 0,
15625 "default_key" : 1,
9d2e98ed
TL
15626 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
15627 "type" : "boolean"
15628 },
15629 "freeze-fs-on-backup" : {
15630 "default" : 1,
15631 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
15632 "optional" : 1,
4d47f125
TL
15633 "type" : "boolean"
15634 },
15635 "fstrim_cloned_disks" : {
15636 "default" : 0,
d2656385 15637 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
15638 "optional" : 1,
15639 "type" : "boolean"
5c1699e5
TL
15640 },
15641 "type" : {
15642 "default" : "virtio",
15643 "description" : "Select the agent type",
15644 "enum" : [
15645 "virtio",
15646 "isa"
15647 ],
15648 "optional" : 1,
15649 "type" : "string"
4d47f125
TL
15650 }
15651 },
7aacca6f 15652 "optional" : 1,
4d47f125 15653 "type" : "string",
9d2e98ed 15654 "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
56122987 15655 },
e2d681b3
TL
15656 "arch" : {
15657 "description" : "Virtual processor architecture. Defaults to the host.",
15658 "enum" : [
15659 "x86_64",
15660 "aarch64"
15661 ],
15662 "optional" : 1,
15663 "type" : "string"
15664 },
44660702 15665 "args" : {
c2993fe5 15666 "description" : "Arbitrary arguments passed to kvm.",
7aacca6f 15667 "optional" : 1,
c2993fe5 15668 "type" : "string",
013dc89f 15669 "typetext" : "<string>",
159464a9 15670 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -smbios 'type=0,vendor=FOO'\n\nNOTE: this option is for experts only.\n"
7aacca6f 15671 },
1c532546
TL
15672 "audio0" : {
15673 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
15674 "format" : {
15675 "device" : {
15676 "description" : "Configure an audio device.",
15677 "enum" : [
15678 "ich9-intel-hda",
15679 "intel-hda",
15680 "AC97"
15681 ],
15682 "type" : "string"
15683 },
15684 "driver" : {
15685 "default" : "spice",
15686 "description" : "Driver backend for the audio device.",
15687 "enum" : [
d2656385
TL
15688 "spice",
15689 "none"
1c532546
TL
15690 ],
15691 "optional" : 1,
15692 "type" : "string"
15693 }
15694 },
15695 "optional" : 1,
15696 "type" : "string",
d2656385 15697 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 15698 },
44660702
DM
15699 "autostart" : {
15700 "default" : 0,
15701 "description" : "Automatic restart after crash (currently ignored).",
7aacca6f 15702 "optional" : 1,
013dc89f
DM
15703 "type" : "boolean",
15704 "typetext" : "<boolean>"
7aacca6f 15705 },
4d47f125
TL
15706 "background_delay" : {
15707 "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
15708 "maximum" : 30,
15709 "minimum" : 1,
15710 "optional" : 1,
15711 "type" : "integer",
15712 "typetext" : "<integer> (1 - 30)"
15713 },
44660702 15714 "balloon" : {
9d2e98ed 15715 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
44660702
DM
15716 "minimum" : 0,
15717 "optional" : 1,
4bd7df8b 15718 "type" : "integer",
013dc89f 15719 "typetext" : "<integer> (0 - N)"
44660702
DM
15720 },
15721 "bios" : {
15722 "default" : "seabios",
15723 "description" : "Select BIOS implementation.",
7aacca6f 15724 "enum" : [
44660702
DM
15725 "seabios",
15726 "ovmf"
7aacca6f 15727 ],
56122987 15728 "optional" : 1,
7aacca6f
DM
15729 "type" : "string"
15730 },
44660702 15731 "boot" : {
5370fa8c 15732 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 15733 "format" : "pve-qm-boot",
7aacca6f 15734 "optional" : 1,
4772952b
TL
15735 "type" : "string",
15736 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
56122987 15737 },
44660702 15738 "bootdisk" : {
4772952b 15739 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
15740 "format" : "pve-qm-bootdisk",
15741 "optional" : 1,
15742 "pattern" : "(ide|sata|scsi|virtio)\\d+",
15743 "type" : "string"
15744 },
15745 "cdrom" : {
15746 "description" : "This is an alias for option -ide2",
de0983cb 15747 "format" : "pve-qm-ide",
56122987 15748 "optional" : 1,
7aacca6f 15749 "type" : "string",
013dc89f 15750 "typetext" : "<volume>"
44660702 15751 },
95895385
TL
15752 "cicustom" : {
15753 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
15754 "format" : "pve-qm-cicustom",
15755 "optional" : 1,
15756 "type" : "string",
5370fa8c 15757 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 15758 },
27a7acb2
DM
15759 "cipassword" : {
15760 "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.",
15761 "optional" : 1,
15762 "type" : "string",
15763 "typetext" : "<string>"
15764 },
15765 "citype" : {
15766 "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.",
15767 "enum" : [
15768 "configdrive2",
d2656385
TL
15769 "nocloud",
15770 "opennebula"
27a7acb2
DM
15771 ],
15772 "optional" : 1,
15773 "type" : "string"
15774 },
159464a9
TL
15775 "ciupgrade" : {
15776 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
15777 "optional" : 1,
15778 "type" : "boolean",
15779 "typetext" : "<boolean>"
15780 },
27a7acb2
DM
15781 "ciuser" : {
15782 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
15783 "optional" : 1,
15784 "type" : "string",
15785 "typetext" : "<string>"
15786 },
44660702
DM
15787 "cores" : {
15788 "default" : 1,
15789 "description" : "The number of cores per socket.",
15790 "minimum" : 1,
15791 "optional" : 1,
4bd7df8b 15792 "type" : "integer",
013dc89f 15793 "typetext" : "<integer> (1 - N)"
44660702
DM
15794 },
15795 "cpu" : {
15796 "description" : "Emulated CPU type.",
c5aa7e14 15797 "format" : "pve-vm-cpu-conf",
44660702 15798 "optional" : 1,
4bd7df8b 15799 "type" : "string",
04d22a9f 15800 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
44660702
DM
15801 },
15802 "cpulimit" : {
15803 "default" : 0,
c2993fe5 15804 "description" : "Limit of CPU usage.",
44660702
DM
15805 "maximum" : 128,
15806 "minimum" : 0,
15807 "optional" : 1,
c2993fe5 15808 "type" : "number",
013dc89f 15809 "typetext" : "<number> (0 - 128)",
c2993fe5 15810 "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
15811 },
15812 "cpuunits" : {
5370fa8c
TL
15813 "default" : "cgroup v1: 1024, cgroup v2: 100",
15814 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 15815 "maximum" : 262144,
7af2edf9 15816 "minimum" : 1,
44660702 15817 "optional" : 1,
c2993fe5 15818 "type" : "integer",
7af2edf9 15819 "typetext" : "<integer> (1 - 262144)",
2489d6df 15820 "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
15821 },
15822 "delete" : {
15823 "description" : "A list of settings you want to delete.",
15824 "format" : "pve-configid-list",
15825 "optional" : 1,
013dc89f
DM
15826 "type" : "string",
15827 "typetext" : "<string>"
44660702
DM
15828 },
15829 "description" : {
8f4d9c87
TL
15830 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
15831 "maxLength" : 8192,
44660702 15832 "optional" : 1,
013dc89f
DM
15833 "type" : "string",
15834 "typetext" : "<string>"
44660702
DM
15835 },
15836 "digest" : {
15837 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
15838 "maxLength" : 40,
15839 "optional" : 1,
013dc89f
DM
15840 "type" : "string",
15841 "typetext" : "<string>"
44660702 15842 },
4d47f125 15843 "efidisk0" : {
9d2e98ed 15844 "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 15845 "format" : {
5370fa8c
TL
15846 "efitype" : {
15847 "default" : "2m",
9d2e98ed 15848 "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified. Ignored for VMs with arch=aarc64 (ARM).",
5370fa8c
TL
15849 "enum" : [
15850 "2m",
15851 "4m"
15852 ],
15853 "optional" : 1,
15854 "type" : "string"
15855 },
4d47f125
TL
15856 "file" : {
15857 "default_key" : 1,
15858 "description" : "The drive's backing volume.",
15859 "format" : "pve-volume-id-or-qm-path",
15860 "format_description" : "volume",
15861 "type" : "string"
15862 },
15863 "format" : {
15864 "description" : "The drive's backing file's data format.",
15865 "enum" : [
15866 "raw",
15867 "cow",
15868 "qcow",
15869 "qed",
15870 "qcow2",
15871 "vmdk",
15872 "cloop"
15873 ],
15874 "optional" : 1,
15875 "type" : "string"
15876 },
7af2edf9
TL
15877 "import-from" : {
15878 "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!",
15879 "format" : "pve-volume-id-or-absolute-path",
15880 "format_description" : "source volume",
15881 "optional" : 1,
15882 "type" : "string"
15883 },
5370fa8c
TL
15884 "pre-enrolled-keys" : {
15885 "default" : 0,
15886 "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.",
15887 "optional" : 1,
15888 "type" : "boolean"
15889 },
4d47f125
TL
15890 "size" : {
15891 "description" : "Disk size. This is purely informational and has no effect.",
15892 "format" : "disk-size",
15893 "format_description" : "DiskSize",
15894 "optional" : 1,
15895 "type" : "string"
15896 },
15897 "volume" : {
15898 "alias" : "file"
15899 }
15900 },
15901 "optional" : 1,
15902 "type" : "string",
7af2edf9 15903 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125 15904 },
44660702
DM
15905 "force" : {
15906 "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.",
15907 "optional" : 1,
15908 "requires" : "delete",
013dc89f
DM
15909 "type" : "boolean",
15910 "typetext" : "<boolean>"
44660702
DM
15911 },
15912 "freeze" : {
15913 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
15914 "optional" : 1,
013dc89f
DM
15915 "type" : "boolean",
15916 "typetext" : "<boolean>"
44660702 15917 },
5f26e15b
TL
15918 "hookscript" : {
15919 "description" : "Script that will be executed during various steps in the vms lifetime.",
15920 "format" : "pve-volume-id",
15921 "optional" : 1,
15922 "type" : "string",
15923 "typetext" : "<string>"
15924 },
44660702 15925 "hostpci[n]" : {
c2993fe5 15926 "description" : "Map host PCI devices into guest.",
44660702
DM
15927 "format" : "pve-qm-hostpci",
15928 "optional" : 1,
57b78691 15929 "type" : "string",
7af2edf9 15930 "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 15931 "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 15932 },
7aacca6f 15933 "hotplug" : {
7aacca6f 15934 "default" : "network,disk,usb",
4e7f60c2 15935 "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 15936 "format" : "pve-hotplug-features",
56122987 15937 "optional" : 1,
013dc89f
DM
15938 "type" : "string",
15939 "typetext" : "<string>"
56122987 15940 },
4bd7df8b
DM
15941 "hugepages" : {
15942 "description" : "Enable/disable hugepages memory.",
15943 "enum" : [
15944 "any",
15945 "2",
15946 "1024"
15947 ],
15948 "optional" : 1,
15949 "type" : "string"
15950 },
56122987 15951 "ide[n]" : {
7af2edf9 15952 "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 15953 "format" : {
44660702
DM
15954 "aio" : {
15955 "description" : "AIO type to use.",
15956 "enum" : [
15957 "native",
8f4d9c87
TL
15958 "threads",
15959 "io_uring"
44660702 15960 ],
56122987 15961 "optional" : 1,
44660702 15962 "type" : "string"
56122987 15963 },
44660702
DM
15964 "backup" : {
15965 "description" : "Whether the drive should be included when making backups.",
44660702
DM
15966 "optional" : 1,
15967 "type" : "boolean"
15968 },
15969 "bps" : {
de0983cb 15970 "description" : "Maximum r/w speed in bytes per second.",
44660702 15971 "format_description" : "bps",
56122987 15972 "optional" : 1,
44660702 15973 "type" : "integer"
56122987 15974 },
de0983cb
DM
15975 "bps_max_length" : {
15976 "description" : "Maximum length of I/O bursts in seconds.",
15977 "format_description" : "seconds",
15978 "minimum" : 1,
15979 "optional" : 1,
15980 "type" : "integer"
15981 },
44660702 15982 "bps_rd" : {
de0983cb 15983 "description" : "Maximum read speed in bytes per second.",
44660702 15984 "format_description" : "bps",
56122987 15985 "optional" : 1,
44660702 15986 "type" : "integer"
56122987 15987 },
de0983cb 15988 "bps_rd_length" : {
5d9c884c
DM
15989 "alias" : "bps_rd_max_length"
15990 },
15991 "bps_rd_max_length" : {
de0983cb
DM
15992 "description" : "Maximum length of read I/O bursts in seconds.",
15993 "format_description" : "seconds",
15994 "minimum" : 1,
15995 "optional" : 1,
15996 "type" : "integer"
15997 },
7aacca6f 15998 "bps_wr" : {
de0983cb 15999 "description" : "Maximum write speed in bytes per second.",
44660702
DM
16000 "format_description" : "bps",
16001 "optional" : 1,
16002 "type" : "integer"
7aacca6f 16003 },
de0983cb 16004 "bps_wr_length" : {
5d9c884c
DM
16005 "alias" : "bps_wr_max_length"
16006 },
16007 "bps_wr_max_length" : {
de0983cb
DM
16008 "description" : "Maximum length of write I/O bursts in seconds.",
16009 "format_description" : "seconds",
16010 "minimum" : 1,
16011 "optional" : 1,
16012 "type" : "integer"
16013 },
44660702
DM
16014 "cache" : {
16015 "description" : "The drive's cache mode",
16016 "enum" : [
16017 "none",
16018 "writethrough",
16019 "writeback",
16020 "unsafe",
16021 "directsync"
16022 ],
56122987 16023 "optional" : 1,
44660702
DM
16024 "type" : "string"
16025 },
16026 "cyls" : {
16027 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
16028 "optional" : 1,
16029 "type" : "integer"
16030 },
16031 "detect_zeroes" : {
16032 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
16033 "optional" : 1,
16034 "type" : "boolean"
56122987 16035 },
7aacca6f 16036 "discard" : {
7aacca6f 16037 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
56122987 16038 "enum" : [
7aacca6f
DM
16039 "ignore",
16040 "on"
56122987
DM
16041 ],
16042 "optional" : 1,
44660702 16043 "type" : "string"
7aacca6f 16044 },
44660702
DM
16045 "file" : {
16046 "default_key" : 1,
16047 "description" : "The drive's backing volume.",
16048 "format" : "pve-volume-id-or-qm-path",
16049 "format_description" : "volume",
16050 "type" : "string"
7aacca6f
DM
16051 },
16052 "format" : {
44660702 16053 "description" : "The drive's backing file's data format.",
7aacca6f
DM
16054 "enum" : [
16055 "raw",
16056 "cow",
16057 "qcow",
16058 "qed",
16059 "qcow2",
16060 "vmdk",
16061 "cloop"
16062 ],
7aacca6f 16063 "optional" : 1,
44660702 16064 "type" : "string"
56122987 16065 },
7aacca6f 16066 "heads" : {
44660702 16067 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 16068 "optional" : 1,
44660702 16069 "type" : "integer"
7aacca6f 16070 },
7af2edf9
TL
16071 "import-from" : {
16072 "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!",
16073 "format" : "pve-volume-id-or-absolute-path",
16074 "format_description" : "source volume",
16075 "optional" : 1,
16076 "type" : "string"
16077 },
44660702 16078 "iops" : {
de0983cb 16079 "description" : "Maximum r/w I/O in operations per second.",
44660702 16080 "format_description" : "iops",
7aacca6f 16081 "optional" : 1,
44660702 16082 "type" : "integer"
56122987 16083 },
44660702 16084 "iops_max" : {
de0983cb 16085 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 16086 "format_description" : "iops",
56122987 16087 "optional" : 1,
44660702 16088 "type" : "integer"
56122987 16089 },
de0983cb
DM
16090 "iops_max_length" : {
16091 "description" : "Maximum length of I/O bursts in seconds.",
16092 "format_description" : "seconds",
16093 "minimum" : 1,
16094 "optional" : 1,
16095 "type" : "integer"
16096 },
44660702 16097 "iops_rd" : {
de0983cb 16098 "description" : "Maximum read I/O in operations per second.",
44660702 16099 "format_description" : "iops",
56122987 16100 "optional" : 1,
44660702 16101 "type" : "integer"
7aacca6f 16102 },
de0983cb 16103 "iops_rd_length" : {
5d9c884c 16104 "alias" : "iops_rd_max_length"
de0983cb 16105 },
44660702 16106 "iops_rd_max" : {
de0983cb 16107 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 16108 "format_description" : "iops",
7aacca6f 16109 "optional" : 1,
44660702 16110 "type" : "integer"
7aacca6f 16111 },
5d9c884c
DM
16112 "iops_rd_max_length" : {
16113 "description" : "Maximum length of read I/O bursts in seconds.",
16114 "format_description" : "seconds",
16115 "minimum" : 1,
16116 "optional" : 1,
16117 "type" : "integer"
16118 },
44660702 16119 "iops_wr" : {
de0983cb 16120 "description" : "Maximum write I/O in operations per second.",
44660702 16121 "format_description" : "iops",
7aacca6f 16122 "optional" : 1,
44660702 16123 "type" : "integer"
56122987 16124 },
de0983cb 16125 "iops_wr_length" : {
5d9c884c 16126 "alias" : "iops_wr_max_length"
de0983cb 16127 },
44660702 16128 "iops_wr_max" : {
de0983cb 16129 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 16130 "format_description" : "iops",
7aacca6f 16131 "optional" : 1,
44660702 16132 "type" : "integer"
7aacca6f 16133 },
5d9c884c
DM
16134 "iops_wr_max_length" : {
16135 "description" : "Maximum length of write I/O bursts in seconds.",
16136 "format_description" : "seconds",
16137 "minimum" : 1,
16138 "optional" : 1,
16139 "type" : "integer"
16140 },
7aacca6f 16141 "mbps" : {
de0983cb 16142 "description" : "Maximum r/w speed in megabytes per second.",
7aacca6f 16143 "format_description" : "mbps",
7aacca6f 16144 "optional" : 1,
44660702 16145 "type" : "number"
7aacca6f 16146 },
44660702 16147 "mbps_max" : {
de0983cb 16148 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 16149 "format_description" : "mbps",
7aacca6f 16150 "optional" : 1,
44660702 16151 "type" : "number"
7aacca6f 16152 },
44660702 16153 "mbps_rd" : {
de0983cb 16154 "description" : "Maximum read speed in megabytes per second.",
44660702 16155 "format_description" : "mbps",
7aacca6f 16156 "optional" : 1,
44660702 16157 "type" : "number"
7aacca6f 16158 },
44660702 16159 "mbps_rd_max" : {
de0983cb 16160 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
16161 "format_description" : "mbps",
16162 "optional" : 1,
16163 "type" : "number"
7aacca6f 16164 },
44660702 16165 "mbps_wr" : {
de0983cb 16166 "description" : "Maximum write speed in megabytes per second.",
44660702 16167 "format_description" : "mbps",
7aacca6f 16168 "optional" : 1,
44660702
DM
16169 "type" : "number"
16170 },
16171 "mbps_wr_max" : {
de0983cb 16172 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
16173 "format_description" : "mbps",
16174 "optional" : 1,
16175 "type" : "number"
16176 },
16177 "media" : {
16178 "default" : "disk",
16179 "description" : "The drive's media type.",
56122987 16180 "enum" : [
44660702
DM
16181 "cdrom",
16182 "disk"
56122987 16183 ],
44660702
DM
16184 "optional" : 1,
16185 "type" : "string"
56122987 16186 },
7aacca6f 16187 "model" : {
44660702 16188 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
56122987 16189 "format" : "urlencoded",
7aacca6f 16190 "format_description" : "model",
44660702 16191 "maxLength" : 120,
56122987 16192 "optional" : 1,
44660702 16193 "type" : "string"
56122987 16194 },
5d9c884c
DM
16195 "replicate" : {
16196 "default" : 1,
16197 "description" : "Whether the drive should considered for replication jobs.",
16198 "optional" : 1,
16199 "type" : "boolean"
16200 },
44660702
DM
16201 "rerror" : {
16202 "description" : "Read error action.",
16203 "enum" : [
16204 "ignore",
16205 "report",
16206 "stop"
16207 ],
56122987 16208 "optional" : 1,
44660702 16209 "type" : "string"
56122987 16210 },
44660702
DM
16211 "secs" : {
16212 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
16213 "optional" : 1,
16214 "type" : "integer"
56122987 16215 },
44660702
DM
16216 "serial" : {
16217 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
16218 "format" : "urlencoded",
16219 "format_description" : "serial",
16220 "maxLength" : 60,
56122987 16221 "optional" : 1,
44660702 16222 "type" : "string"
56122987 16223 },
27a7acb2
DM
16224 "shared" : {
16225 "default" : 0,
16226 "description" : "Mark this locally-managed volume as available on all nodes",
16227 "optional" : 1,
16228 "type" : "boolean",
16229 "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!"
16230 },
44660702
DM
16231 "size" : {
16232 "description" : "Disk size. This is purely informational and has no effect.",
16233 "format" : "disk-size",
f004f5b9 16234 "format_description" : "DiskSize",
56122987 16235 "optional" : 1,
44660702 16236 "type" : "string"
56122987 16237 },
44660702 16238 "snapshot" : {
27a7acb2 16239 "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 16240 "optional" : 1,
44660702 16241 "type" : "boolean"
56122987 16242 },
25203dc1
NC
16243 "ssd" : {
16244 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
16245 "optional" : 1,
16246 "type" : "boolean"
16247 },
44660702
DM
16248 "trans" : {
16249 "description" : "Force disk geometry bios translation mode.",
16250 "enum" : [
16251 "none",
16252 "lba",
16253 "auto"
16254 ],
56122987 16255 "optional" : 1,
44660702
DM
16256 "type" : "string"
16257 },
16258 "volume" : {
16259 "alias" : "file"
56122987 16260 },
7aacca6f 16261 "werror" : {
44660702 16262 "description" : "Write error action.",
7aacca6f
DM
16263 "enum" : [
16264 "enospc",
16265 "ignore",
16266 "report",
16267 "stop"
16268 ],
56122987 16269 "optional" : 1,
44660702 16270 "type" : "string"
95895385
TL
16271 },
16272 "wwn" : {
16273 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
16274 "format_description" : "wwn",
16275 "optional" : 1,
16276 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
16277 "type" : "string"
7aacca6f 16278 }
44660702
DM
16279 },
16280 "optional" : 1,
4bd7df8b 16281 "type" : "string",
7af2edf9 16282 "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
16283 },
16284 "ipconfig[n]" : {
d2656385 16285 "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
16286 "format" : "pve-qm-ipconfig",
16287 "optional" : 1,
16288 "type" : "string",
16289 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
7aacca6f 16290 },
95895385
TL
16291 "ivshmem" : {
16292 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
16293 "format" : {
16294 "name" : {
16295 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
16296 "format_description" : "string",
16297 "optional" : 1,
16298 "pattern" : "[a-zA-Z0-9\\-]+",
16299 "type" : "string"
16300 },
16301 "size" : {
16302 "description" : "The size of the file in MB.",
16303 "minimum" : 1,
16304 "type" : "integer"
16305 }
16306 },
16307 "optional" : 1,
16308 "type" : "string",
16309 "typetext" : "size=<integer> [,name=<string>]"
16310 },
4772952b
TL
16311 "keephugepages" : {
16312 "default" : 0,
16313 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
16314 "optional" : 1,
16315 "type" : "boolean",
16316 "typetext" : "<boolean>"
16317 },
44660702 16318 "keyboard" : {
35a75dd3 16319 "default" : null,
7af2edf9 16320 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
44660702
DM
16321 "enum" : [
16322 "de",
16323 "de-ch",
16324 "da",
16325 "en-gb",
16326 "en-us",
16327 "es",
16328 "fi",
16329 "fr",
16330 "fr-be",
16331 "fr-ca",
16332 "fr-ch",
16333 "hu",
16334 "is",
16335 "it",
16336 "ja",
16337 "lt",
16338 "mk",
16339 "nl",
16340 "no",
16341 "pl",
16342 "pt",
16343 "pt-br",
16344 "sv",
16345 "sl",
16346 "tr"
16347 ],
7aacca6f 16348 "optional" : 1,
44660702 16349 "type" : "string"
7aacca6f 16350 },
44660702 16351 "kvm" : {
7aacca6f 16352 "default" : 1,
44660702 16353 "description" : "Enable/disable KVM hardware virtualization.",
7aacca6f 16354 "optional" : 1,
013dc89f
DM
16355 "type" : "boolean",
16356 "typetext" : "<boolean>"
7aacca6f 16357 },
44660702 16358 "localtime" : {
5370fa8c 16359 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
7aacca6f 16360 "optional" : 1,
013dc89f
DM
16361 "type" : "boolean",
16362 "typetext" : "<boolean>"
7aacca6f 16363 },
44660702
DM
16364 "lock" : {
16365 "description" : "Lock/unlock the VM.",
16366 "enum" : [
44660702 16367 "backup",
5f26e15b
TL
16368 "clone",
16369 "create",
16370 "migrate",
16371 "rollback",
44660702 16372 "snapshot",
95895385
TL
16373 "snapshot-delete",
16374 "suspending",
16375 "suspended"
44660702 16376 ],
7aacca6f 16377 "optional" : 1,
44660702 16378 "type" : "string"
7aacca6f 16379 },
44660702 16380 "machine" : {
9d2e98ed 16381 "description" : "Specifies the QEMU machine type.",
44660702 16382 "maxLength" : 40,
7aacca6f 16383 "optional" : 1,
5c1699e5 16384 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702 16385 "type" : "string"
7aacca6f 16386 },
44660702
DM
16387 "memory" : {
16388 "default" : 512,
9d2e98ed 16389 "description" : "Amount of RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
44660702 16390 "minimum" : 16,
7aacca6f 16391 "optional" : 1,
4bd7df8b 16392 "type" : "integer",
013dc89f 16393 "typetext" : "<integer> (16 - N)"
7aacca6f 16394 },
44660702
DM
16395 "migrate_downtime" : {
16396 "default" : 0.1,
16397 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
16398 "minimum" : 0,
7aacca6f 16399 "optional" : 1,
4bd7df8b 16400 "type" : "number",
013dc89f 16401 "typetext" : "<number> (0 - N)"
7aacca6f 16402 },
44660702 16403 "migrate_speed" : {
7aacca6f 16404 "default" : 0,
44660702
DM
16405 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
16406 "minimum" : 0,
16407 "optional" : 1,
4bd7df8b 16408 "type" : "integer",
013dc89f 16409 "typetext" : "<integer> (0 - N)"
7aacca6f 16410 },
44660702
DM
16411 "name" : {
16412 "description" : "Set a name for the VM. Only used on the configuration web interface.",
16413 "format" : "dns-name",
7aacca6f 16414 "optional" : 1,
013dc89f
DM
16415 "type" : "string",
16416 "typetext" : "<string>"
7aacca6f 16417 },
27a7acb2 16418 "nameserver" : {
de786b48 16419 "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
16420 "format" : "address-list",
16421 "optional" : 1,
16422 "type" : "string",
16423 "typetext" : "<string>"
16424 },
44660702 16425 "net[n]" : {
c2993fe5 16426 "description" : "Specify network devices.",
f004f5b9
DM
16427 "format" : {
16428 "bridge" : {
c2993fe5 16429 "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 16430 "format" : "pve-bridge-id",
f004f5b9
DM
16431 "format_description" : "bridge",
16432 "optional" : 1,
16433 "type" : "string"
16434 },
16435 "e1000" : {
16436 "alias" : "macaddr",
16437 "keyAlias" : "model"
16438 },
16439 "e1000-82540em" : {
16440 "alias" : "macaddr",
16441 "keyAlias" : "model"
16442 },
16443 "e1000-82544gc" : {
16444 "alias" : "macaddr",
16445 "keyAlias" : "model"
16446 },
16447 "e1000-82545em" : {
16448 "alias" : "macaddr",
16449 "keyAlias" : "model"
16450 },
5370fa8c
TL
16451 "e1000e" : {
16452 "alias" : "macaddr",
16453 "keyAlias" : "model"
16454 },
f004f5b9
DM
16455 "firewall" : {
16456 "description" : "Whether this interface should be protected by the firewall.",
16457 "optional" : 1,
16458 "type" : "boolean"
16459 },
16460 "i82551" : {
16461 "alias" : "macaddr",
16462 "keyAlias" : "model"
16463 },
16464 "i82557b" : {
16465 "alias" : "macaddr",
16466 "keyAlias" : "model"
16467 },
16468 "i82559er" : {
16469 "alias" : "macaddr",
16470 "keyAlias" : "model"
16471 },
16472 "link_down" : {
c2993fe5 16473 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
16474 "optional" : 1,
16475 "type" : "boolean"
16476 },
16477 "macaddr" : {
c2993fe5 16478 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 16479 "format" : "mac-addr",
f004f5b9 16480 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 16481 "optional" : 1,
95895385
TL
16482 "type" : "string",
16483 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
16484 },
16485 "model" : {
16486 "default_key" : 1,
c2993fe5 16487 "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 16488 "enum" : [
f004f5b9 16489 "e1000",
5370fa8c
TL
16490 "e1000-82540em",
16491 "e1000-82544gc",
16492 "e1000-82545em",
16493 "e1000e",
f004f5b9
DM
16494 "i82551",
16495 "i82557b",
16496 "i82559er",
5370fa8c
TL
16497 "ne2k_isa",
16498 "ne2k_pci",
16499 "pcnet",
16500 "rtl8139",
16501 "virtio",
16502 "vmxnet3"
f004f5b9 16503 ],
f004f5b9
DM
16504 "type" : "string"
16505 },
ac70d7d1
TL
16506 "mtu" : {
16507 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
16508 "maximum" : 65520,
16509 "minimum" : 1,
16510 "optional" : 1,
16511 "type" : "integer"
16512 },
f004f5b9
DM
16513 "ne2k_isa" : {
16514 "alias" : "macaddr",
16515 "keyAlias" : "model"
16516 },
16517 "ne2k_pci" : {
16518 "alias" : "macaddr",
16519 "keyAlias" : "model"
16520 },
16521 "pcnet" : {
16522 "alias" : "macaddr",
16523 "keyAlias" : "model"
16524 },
16525 "queues" : {
16526 "description" : "Number of packet queues to be used on the device.",
81a3384d 16527 "maximum" : 64,
f004f5b9
DM
16528 "minimum" : 0,
16529 "optional" : 1,
16530 "type" : "integer"
16531 },
16532 "rate" : {
c2993fe5 16533 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
16534 "minimum" : 0,
16535 "optional" : 1,
16536 "type" : "number"
16537 },
16538 "rtl8139" : {
16539 "alias" : "macaddr",
16540 "keyAlias" : "model"
16541 },
16542 "tag" : {
16543 "description" : "VLAN tag to apply to packets on this interface.",
16544 "maximum" : 4094,
c2993fe5 16545 "minimum" : 1,
f004f5b9
DM
16546 "optional" : 1,
16547 "type" : "integer"
16548 },
16549 "trunks" : {
16550 "description" : "VLAN trunks to pass through this interface.",
16551 "format_description" : "vlanid[;vlanid...]",
16552 "optional" : 1,
16553 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
16554 "type" : "string"
16555 },
16556 "virtio" : {
16557 "alias" : "macaddr",
16558 "keyAlias" : "model"
16559 },
16560 "vmxnet3" : {
16561 "alias" : "macaddr",
16562 "keyAlias" : "model"
16563 }
16564 },
7aacca6f 16565 "optional" : 1,
4bd7df8b 16566 "type" : "string",
ac70d7d1 16567 "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 16568 },
44660702
DM
16569 "node" : {
16570 "description" : "The cluster node name.",
16571 "format" : "pve-node",
013dc89f
DM
16572 "type" : "string",
16573 "typetext" : "<string>"
44660702
DM
16574 },
16575 "numa" : {
16576 "default" : 0,
16577 "description" : "Enable/disable NUMA.",
7aacca6f 16578 "optional" : 1,
013dc89f
DM
16579 "type" : "boolean",
16580 "typetext" : "<boolean>"
7aacca6f 16581 },
44660702 16582 "numa[n]" : {
c2993fe5 16583 "description" : "NUMA topology.",
44660702
DM
16584 "format" : {
16585 "cpus" : {
c2993fe5 16586 "description" : "CPUs accessing this NUMA node.",
44660702
DM
16587 "format_description" : "id[-id];...",
16588 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
16589 "type" : "string"
16590 },
16591 "hostnodes" : {
c2993fe5 16592 "description" : "Host NUMA nodes to use.",
44660702
DM
16593 "format_description" : "id[-id];...",
16594 "optional" : 1,
16595 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
16596 "type" : "string"
16597 },
16598 "memory" : {
c2993fe5 16599 "description" : "Amount of memory this NUMA node provides.",
44660702
DM
16600 "optional" : 1,
16601 "type" : "number"
16602 },
16603 "policy" : {
c2993fe5 16604 "description" : "NUMA allocation policy.",
44660702
DM
16605 "enum" : [
16606 "preferred",
16607 "bind",
16608 "interleave"
16609 ],
44660702
DM
16610 "optional" : 1,
16611 "type" : "string"
16612 }
16613 },
7aacca6f 16614 "optional" : 1,
4bd7df8b
DM
16615 "type" : "string",
16616 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
7aacca6f 16617 },
44660702
DM
16618 "onboot" : {
16619 "default" : 0,
16620 "description" : "Specifies whether a VM will be started during system bootup.",
7aacca6f 16621 "optional" : 1,
013dc89f
DM
16622 "type" : "boolean",
16623 "typetext" : "<boolean>"
7aacca6f 16624 },
44660702 16625 "ostype" : {
c2993fe5 16626 "description" : "Specify guest operating system.",
44660702
DM
16627 "enum" : [
16628 "other",
16629 "wxp",
16630 "w2k",
16631 "w2k3",
16632 "w2k8",
16633 "wvista",
16634 "win7",
16635 "win8",
32d876b5 16636 "win10",
5370fa8c 16637 "win11",
44660702
DM
16638 "l24",
16639 "l26",
16640 "solaris"
16641 ],
7aacca6f 16642 "optional" : 1,
c2993fe5 16643 "type" : "string",
9d2e98ed 16644 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
7aacca6f 16645 },
44660702 16646 "parallel[n]" : {
c2993fe5 16647 "description" : "Map host parallel devices (n is 0 to 2).",
7aacca6f 16648 "optional" : 1,
44660702 16649 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 16650 "type" : "string",
4772952b 16651 "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 16652 },
44660702
DM
16653 "protection" : {
16654 "default" : 0,
c2993fe5 16655 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
7aacca6f 16656 "optional" : 1,
013dc89f
DM
16657 "type" : "boolean",
16658 "typetext" : "<boolean>"
7aacca6f 16659 },
44660702
DM
16660 "reboot" : {
16661 "default" : 1,
16662 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
7aacca6f 16663 "optional" : 1,
013dc89f
DM
16664 "type" : "boolean",
16665 "typetext" : "<boolean>"
7aacca6f 16666 },
44660702
DM
16667 "revert" : {
16668 "description" : "Revert a pending change.",
16669 "format" : "pve-configid-list",
7aacca6f 16670 "optional" : 1,
013dc89f
DM
16671 "type" : "string",
16672 "typetext" : "<string>"
7aacca6f 16673 },
c5aa7e14
TL
16674 "rng0" : {
16675 "description" : "Configure a VirtIO-based Random Number Generator.",
16676 "format" : {
16677 "max_bytes" : {
16678 "default" : 1024,
5370fa8c 16679 "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
16680 "optional" : 1,
16681 "type" : "integer"
16682 },
16683 "period" : {
16684 "default" : 1000,
16685 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
16686 "optional" : 1,
16687 "type" : "integer"
16688 },
16689 "source" : {
16690 "default_key" : 1,
5370fa8c 16691 "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
16692 "enum" : [
16693 "/dev/urandom",
16694 "/dev/random",
16695 "/dev/hwrng"
16696 ],
16697 "type" : "string"
16698 }
16699 },
16700 "optional" : 1,
16701 "type" : "string",
16702 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
16703 },
44660702 16704 "sata[n]" : {
7af2edf9 16705 "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 16706 "format" : {
44660702
DM
16707 "aio" : {
16708 "description" : "AIO type to use.",
16709 "enum" : [
16710 "native",
8f4d9c87
TL
16711 "threads",
16712 "io_uring"
44660702 16713 ],
44660702
DM
16714 "optional" : 1,
16715 "type" : "string"
16716 },
16717 "backup" : {
16718 "description" : "Whether the drive should be included when making backups.",
44660702
DM
16719 "optional" : 1,
16720 "type" : "boolean"
16721 },
16722 "bps" : {
de0983cb 16723 "description" : "Maximum r/w speed in bytes per second.",
7aacca6f 16724 "format_description" : "bps",
7aacca6f
DM
16725 "optional" : 1,
16726 "type" : "integer"
56122987 16727 },
de0983cb
DM
16728 "bps_max_length" : {
16729 "description" : "Maximum length of I/O bursts in seconds.",
16730 "format_description" : "seconds",
16731 "minimum" : 1,
16732 "optional" : 1,
16733 "type" : "integer"
16734 },
44660702 16735 "bps_rd" : {
de0983cb 16736 "description" : "Maximum read speed in bytes per second.",
44660702 16737 "format_description" : "bps",
7aacca6f 16738 "optional" : 1,
44660702 16739 "type" : "integer"
7aacca6f 16740 },
de0983cb 16741 "bps_rd_length" : {
5d9c884c
DM
16742 "alias" : "bps_rd_max_length"
16743 },
16744 "bps_rd_max_length" : {
de0983cb
DM
16745 "description" : "Maximum length of read I/O bursts in seconds.",
16746 "format_description" : "seconds",
16747 "minimum" : 1,
16748 "optional" : 1,
16749 "type" : "integer"
16750 },
44660702 16751 "bps_wr" : {
de0983cb 16752 "description" : "Maximum write speed in bytes per second.",
44660702 16753 "format_description" : "bps",
7aacca6f 16754 "optional" : 1,
44660702 16755 "type" : "integer"
7aacca6f 16756 },
de0983cb 16757 "bps_wr_length" : {
5d9c884c
DM
16758 "alias" : "bps_wr_max_length"
16759 },
16760 "bps_wr_max_length" : {
de0983cb
DM
16761 "description" : "Maximum length of write I/O bursts in seconds.",
16762 "format_description" : "seconds",
16763 "minimum" : 1,
16764 "optional" : 1,
16765 "type" : "integer"
16766 },
44660702
DM
16767 "cache" : {
16768 "description" : "The drive's cache mode",
16769 "enum" : [
16770 "none",
16771 "writethrough",
16772 "writeback",
16773 "unsafe",
16774 "directsync"
16775 ],
7aacca6f 16776 "optional" : 1,
44660702 16777 "type" : "string"
7aacca6f 16778 },
44660702
DM
16779 "cyls" : {
16780 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 16781 "optional" : 1,
44660702 16782 "type" : "integer"
7aacca6f 16783 },
44660702
DM
16784 "detect_zeroes" : {
16785 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
7aacca6f 16786 "optional" : 1,
44660702 16787 "type" : "boolean"
7aacca6f 16788 },
44660702
DM
16789 "discard" : {
16790 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
16791 "enum" : [
16792 "ignore",
16793 "on"
16794 ],
7aacca6f 16795 "optional" : 1,
44660702
DM
16796 "type" : "string"
16797 },
16798 "file" : {
16799 "default_key" : 1,
16800 "description" : "The drive's backing volume.",
16801 "format" : "pve-volume-id-or-qm-path",
16802 "format_description" : "volume",
16803 "type" : "string"
7aacca6f
DM
16804 },
16805 "format" : {
7aacca6f 16806 "description" : "The drive's backing file's data format.",
56122987
DM
16807 "enum" : [
16808 "raw",
16809 "cow",
16810 "qcow",
16811 "qed",
16812 "qcow2",
16813 "vmdk",
16814 "cloop"
16815 ],
16816 "optional" : 1,
7aacca6f 16817 "type" : "string"
56122987 16818 },
7aacca6f 16819 "heads" : {
7aacca6f 16820 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
16821 "optional" : 1,
16822 "type" : "integer"
56122987 16823 },
7af2edf9
TL
16824 "import-from" : {
16825 "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!",
16826 "format" : "pve-volume-id-or-absolute-path",
16827 "format_description" : "source volume",
16828 "optional" : 1,
16829 "type" : "string"
16830 },
44660702 16831 "iops" : {
de0983cb 16832 "description" : "Maximum r/w I/O in operations per second.",
44660702 16833 "format_description" : "iops",
56122987 16834 "optional" : 1,
44660702 16835 "type" : "integer"
7aacca6f 16836 },
44660702 16837 "iops_max" : {
de0983cb 16838 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 16839 "format_description" : "iops",
7aacca6f 16840 "optional" : 1,
44660702 16841 "type" : "integer"
56122987 16842 },
de0983cb
DM
16843 "iops_max_length" : {
16844 "description" : "Maximum length of I/O bursts in seconds.",
16845 "format_description" : "seconds",
16846 "minimum" : 1,
16847 "optional" : 1,
16848 "type" : "integer"
16849 },
44660702 16850 "iops_rd" : {
de0983cb 16851 "description" : "Maximum read I/O in operations per second.",
44660702 16852 "format_description" : "iops",
56122987 16853 "optional" : 1,
44660702 16854 "type" : "integer"
7aacca6f 16855 },
de0983cb 16856 "iops_rd_length" : {
5d9c884c 16857 "alias" : "iops_rd_max_length"
de0983cb 16858 },
44660702 16859 "iops_rd_max" : {
de0983cb 16860 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 16861 "format_description" : "iops",
56122987 16862 "optional" : 1,
44660702 16863 "type" : "integer"
56122987 16864 },
5d9c884c
DM
16865 "iops_rd_max_length" : {
16866 "description" : "Maximum length of read I/O bursts in seconds.",
16867 "format_description" : "seconds",
16868 "minimum" : 1,
16869 "optional" : 1,
16870 "type" : "integer"
16871 },
44660702 16872 "iops_wr" : {
de0983cb 16873 "description" : "Maximum write I/O in operations per second.",
44660702
DM
16874 "format_description" : "iops",
16875 "optional" : 1,
16876 "type" : "integer"
56122987 16877 },
de0983cb 16878 "iops_wr_length" : {
5d9c884c 16879 "alias" : "iops_wr_max_length"
de0983cb 16880 },
44660702 16881 "iops_wr_max" : {
de0983cb 16882 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
16883 "format_description" : "iops",
16884 "optional" : 1,
16885 "type" : "integer"
16886 },
5d9c884c
DM
16887 "iops_wr_max_length" : {
16888 "description" : "Maximum length of write I/O bursts in seconds.",
16889 "format_description" : "seconds",
16890 "minimum" : 1,
16891 "optional" : 1,
16892 "type" : "integer"
16893 },
44660702 16894 "mbps" : {
de0983cb 16895 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
16896 "format_description" : "mbps",
16897 "optional" : 1,
16898 "type" : "number"
16899 },
16900 "mbps_max" : {
de0983cb 16901 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
16902 "format_description" : "mbps",
16903 "optional" : 1,
16904 "type" : "number"
16905 },
16906 "mbps_rd" : {
de0983cb 16907 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
16908 "format_description" : "mbps",
16909 "optional" : 1,
16910 "type" : "number"
16911 },
16912 "mbps_rd_max" : {
de0983cb 16913 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
16914 "format_description" : "mbps",
16915 "optional" : 1,
16916 "type" : "number"
16917 },
16918 "mbps_wr" : {
de0983cb 16919 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
16920 "format_description" : "mbps",
16921 "optional" : 1,
16922 "type" : "number"
16923 },
16924 "mbps_wr_max" : {
de0983cb 16925 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
16926 "format_description" : "mbps",
16927 "optional" : 1,
16928 "type" : "number"
16929 },
16930 "media" : {
16931 "default" : "disk",
16932 "description" : "The drive's media type.",
16933 "enum" : [
16934 "cdrom",
16935 "disk"
16936 ],
56122987 16937 "optional" : 1,
44660702
DM
16938 "type" : "string"
16939 },
5d9c884c
DM
16940 "replicate" : {
16941 "default" : 1,
16942 "description" : "Whether the drive should considered for replication jobs.",
16943 "optional" : 1,
16944 "type" : "boolean"
16945 },
44660702 16946 "rerror" : {
7aacca6f
DM
16947 "description" : "Read error action.",
16948 "enum" : [
16949 "ignore",
16950 "report",
16951 "stop"
44660702 16952 ],
56122987 16953 "optional" : 1,
44660702 16954 "type" : "string"
56122987 16955 },
7aacca6f 16956 "secs" : {
44660702 16957 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 16958 "optional" : 1,
44660702 16959 "type" : "integer"
56122987 16960 },
44660702
DM
16961 "serial" : {
16962 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
16963 "format" : "urlencoded",
16964 "format_description" : "serial",
16965 "maxLength" : 60,
56122987 16966 "optional" : 1,
44660702 16967 "type" : "string"
56122987 16968 },
27a7acb2
DM
16969 "shared" : {
16970 "default" : 0,
16971 "description" : "Mark this locally-managed volume as available on all nodes",
16972 "optional" : 1,
16973 "type" : "boolean",
16974 "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!"
16975 },
44660702
DM
16976 "size" : {
16977 "description" : "Disk size. This is purely informational and has no effect.",
16978 "format" : "disk-size",
f004f5b9 16979 "format_description" : "DiskSize",
56122987 16980 "optional" : 1,
44660702 16981 "type" : "string"
56122987
DM
16982 },
16983 "snapshot" : {
27a7acb2 16984 "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 16985 "optional" : 1,
44660702 16986 "type" : "boolean"
56122987 16987 },
25203dc1
NC
16988 "ssd" : {
16989 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
16990 "optional" : 1,
16991 "type" : "boolean"
16992 },
56122987 16993 "trans" : {
7aacca6f 16994 "description" : "Force disk geometry bios translation mode.",
56122987
DM
16995 "enum" : [
16996 "none",
16997 "lba",
16998 "auto"
16999 ],
17000 "optional" : 1,
44660702 17001 "type" : "string"
56122987 17002 },
44660702
DM
17003 "volume" : {
17004 "alias" : "file"
56122987 17005 },
7aacca6f 17006 "werror" : {
44660702 17007 "description" : "Write error action.",
56122987 17008 "enum" : [
7aacca6f 17009 "enospc",
56122987 17010 "ignore",
7aacca6f
DM
17011 "report",
17012 "stop"
17013 ],
7aacca6f 17014 "optional" : 1,
44660702 17015 "type" : "string"
95895385
TL
17016 },
17017 "wwn" : {
17018 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
17019 "format_description" : "wwn",
17020 "optional" : 1,
17021 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
17022 "type" : "string"
44660702
DM
17023 }
17024 },
17025 "optional" : 1,
4bd7df8b 17026 "type" : "string",
7af2edf9 17027 "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
17028 },
17029 "scsi[n]" : {
7af2edf9 17030 "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
17031 "format" : {
17032 "aio" : {
7aacca6f 17033 "description" : "AIO type to use.",
56122987
DM
17034 "enum" : [
17035 "native",
8f4d9c87
TL
17036 "threads",
17037 "io_uring"
44660702 17038 ],
56122987 17039 "optional" : 1,
44660702 17040 "type" : "string"
56122987 17041 },
7aacca6f 17042 "backup" : {
7aacca6f 17043 "description" : "Whether the drive should be included when making backups.",
7aacca6f 17044 "optional" : 1,
44660702 17045 "type" : "boolean"
56122987 17046 },
44660702 17047 "bps" : {
de0983cb 17048 "description" : "Maximum r/w speed in bytes per second.",
44660702 17049 "format_description" : "bps",
7aacca6f 17050 "optional" : 1,
44660702 17051 "type" : "integer"
7aacca6f 17052 },
de0983cb
DM
17053 "bps_max_length" : {
17054 "description" : "Maximum length of I/O bursts in seconds.",
17055 "format_description" : "seconds",
17056 "minimum" : 1,
17057 "optional" : 1,
17058 "type" : "integer"
17059 },
44660702 17060 "bps_rd" : {
de0983cb 17061 "description" : "Maximum read speed in bytes per second.",
44660702 17062 "format_description" : "bps",
56122987 17063 "optional" : 1,
44660702 17064 "type" : "integer"
56122987 17065 },
de0983cb 17066 "bps_rd_length" : {
5d9c884c
DM
17067 "alias" : "bps_rd_max_length"
17068 },
17069 "bps_rd_max_length" : {
de0983cb
DM
17070 "description" : "Maximum length of read I/O bursts in seconds.",
17071 "format_description" : "seconds",
17072 "minimum" : 1,
17073 "optional" : 1,
17074 "type" : "integer"
17075 },
44660702 17076 "bps_wr" : {
de0983cb 17077 "description" : "Maximum write speed in bytes per second.",
44660702 17078 "format_description" : "bps",
56122987 17079 "optional" : 1,
44660702 17080 "type" : "integer"
56122987 17081 },
de0983cb 17082 "bps_wr_length" : {
5d9c884c
DM
17083 "alias" : "bps_wr_max_length"
17084 },
17085 "bps_wr_max_length" : {
de0983cb
DM
17086 "description" : "Maximum length of write I/O bursts in seconds.",
17087 "format_description" : "seconds",
17088 "minimum" : 1,
17089 "optional" : 1,
17090 "type" : "integer"
17091 },
44660702
DM
17092 "cache" : {
17093 "description" : "The drive's cache mode",
17094 "enum" : [
17095 "none",
17096 "writethrough",
17097 "writeback",
17098 "unsafe",
17099 "directsync"
17100 ],
56122987 17101 "optional" : 1,
44660702
DM
17102 "type" : "string"
17103 },
17104 "cyls" : {
17105 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
17106 "optional" : 1,
17107 "type" : "integer"
17108 },
17109 "detect_zeroes" : {
17110 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
17111 "optional" : 1,
17112 "type" : "boolean"
17113 },
17114 "discard" : {
17115 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
17116 "enum" : [
17117 "ignore",
17118 "on"
17119 ],
44660702
DM
17120 "optional" : 1,
17121 "type" : "string"
17122 },
17123 "file" : {
17124 "default_key" : 1,
17125 "description" : "The drive's backing volume.",
17126 "format" : "pve-volume-id-or-qm-path",
17127 "format_description" : "volume",
17128 "type" : "string"
56122987 17129 },
7aacca6f 17130 "format" : {
44660702 17131 "description" : "The drive's backing file's data format.",
7aacca6f
DM
17132 "enum" : [
17133 "raw",
17134 "cow",
17135 "qcow",
17136 "qed",
17137 "qcow2",
17138 "vmdk",
17139 "cloop"
17140 ],
56122987 17141 "optional" : 1,
44660702 17142 "type" : "string"
56122987 17143 },
44660702
DM
17144 "heads" : {
17145 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 17146 "optional" : 1,
44660702 17147 "type" : "integer"
56122987 17148 },
7af2edf9
TL
17149 "import-from" : {
17150 "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!",
17151 "format" : "pve-volume-id-or-absolute-path",
17152 "format_description" : "source volume",
17153 "optional" : 1,
17154 "type" : "string"
17155 },
44660702 17156 "iops" : {
de0983cb 17157 "description" : "Maximum r/w I/O in operations per second.",
44660702 17158 "format_description" : "iops",
7aacca6f 17159 "optional" : 1,
44660702 17160 "type" : "integer"
56122987 17161 },
44660702 17162 "iops_max" : {
de0983cb 17163 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
7aacca6f 17164 "format_description" : "iops",
7aacca6f 17165 "optional" : 1,
44660702 17166 "type" : "integer"
56122987 17167 },
de0983cb
DM
17168 "iops_max_length" : {
17169 "description" : "Maximum length of I/O bursts in seconds.",
17170 "format_description" : "seconds",
17171 "minimum" : 1,
17172 "optional" : 1,
17173 "type" : "integer"
17174 },
44660702 17175 "iops_rd" : {
de0983cb 17176 "description" : "Maximum read I/O in operations per second.",
44660702 17177 "format_description" : "iops",
56122987 17178 "optional" : 1,
44660702 17179 "type" : "integer"
56122987 17180 },
de0983cb 17181 "iops_rd_length" : {
5d9c884c 17182 "alias" : "iops_rd_max_length"
de0983cb 17183 },
44660702 17184 "iops_rd_max" : {
de0983cb 17185 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 17186 "format_description" : "iops",
56122987 17187 "optional" : 1,
44660702 17188 "type" : "integer"
56122987 17189 },
5d9c884c
DM
17190 "iops_rd_max_length" : {
17191 "description" : "Maximum length of read I/O bursts in seconds.",
17192 "format_description" : "seconds",
17193 "minimum" : 1,
17194 "optional" : 1,
17195 "type" : "integer"
17196 },
44660702 17197 "iops_wr" : {
de0983cb 17198 "description" : "Maximum write I/O in operations per second.",
44660702 17199 "format_description" : "iops",
56122987 17200 "optional" : 1,
44660702 17201 "type" : "integer"
56122987 17202 },
de0983cb 17203 "iops_wr_length" : {
5d9c884c 17204 "alias" : "iops_wr_max_length"
de0983cb 17205 },
44660702 17206 "iops_wr_max" : {
de0983cb 17207 "description" : "Maximum unthrottled write I/O pool in operations per second.",
7aacca6f 17208 "format_description" : "iops",
44660702
DM
17209 "optional" : 1,
17210 "type" : "integer"
7aacca6f 17211 },
5d9c884c
DM
17212 "iops_wr_max_length" : {
17213 "description" : "Maximum length of write I/O bursts in seconds.",
17214 "format_description" : "seconds",
17215 "minimum" : 1,
17216 "optional" : 1,
17217 "type" : "integer"
17218 },
7aacca6f 17219 "iothread" : {
44660702 17220 "description" : "Whether to use iothreads for this drive",
56122987 17221 "optional" : 1,
44660702 17222 "type" : "boolean"
56122987 17223 },
44660702 17224 "mbps" : {
de0983cb 17225 "description" : "Maximum r/w speed in megabytes per second.",
44660702 17226 "format_description" : "mbps",
56122987 17227 "optional" : 1,
44660702 17228 "type" : "number"
56122987 17229 },
44660702 17230 "mbps_max" : {
de0983cb 17231 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 17232 "format_description" : "mbps",
56122987 17233 "optional" : 1,
44660702 17234 "type" : "number"
56122987 17235 },
44660702 17236 "mbps_rd" : {
de0983cb 17237 "description" : "Maximum read speed in megabytes per second.",
44660702 17238 "format_description" : "mbps",
7aacca6f 17239 "optional" : 1,
44660702 17240 "type" : "number"
56122987 17241 },
44660702 17242 "mbps_rd_max" : {
de0983cb 17243 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 17244 "format_description" : "mbps",
7aacca6f 17245 "optional" : 1,
44660702 17246 "type" : "number"
7aacca6f 17247 },
44660702 17248 "mbps_wr" : {
de0983cb 17249 "description" : "Maximum write speed in megabytes per second.",
44660702 17250 "format_description" : "mbps",
56122987 17251 "optional" : 1,
44660702 17252 "type" : "number"
56122987 17253 },
44660702 17254 "mbps_wr_max" : {
de0983cb 17255 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 17256 "format_description" : "mbps",
56122987 17257 "optional" : 1,
44660702
DM
17258 "type" : "number"
17259 },
17260 "media" : {
17261 "default" : "disk",
17262 "description" : "The drive's media type.",
7aacca6f 17263 "enum" : [
44660702
DM
17264 "cdrom",
17265 "disk"
7aacca6f 17266 ],
56122987 17267 "optional" : 1,
44660702 17268 "type" : "string"
56122987 17269 },
7aacca6f 17270 "queues" : {
44660702 17271 "description" : "Number of queues.",
7aacca6f 17272 "minimum" : 2,
7aacca6f
DM
17273 "optional" : 1,
17274 "type" : "integer"
56122987 17275 },
5d9c884c
DM
17276 "replicate" : {
17277 "default" : 1,
17278 "description" : "Whether the drive should considered for replication jobs.",
17279 "optional" : 1,
17280 "type" : "boolean"
17281 },
17282 "rerror" : {
17283 "description" : "Read error action.",
17284 "enum" : [
17285 "ignore",
17286 "report",
17287 "stop"
17288 ],
17289 "optional" : 1,
17290 "type" : "string"
17291 },
5370fa8c
TL
17292 "ro" : {
17293 "description" : "Whether the drive is read-only.",
17294 "optional" : 1,
17295 "type" : "boolean"
17296 },
52e44c50
FG
17297 "scsiblock" : {
17298 "default" : 0,
17299 "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",
17300 "optional" : 1,
17301 "type" : "boolean"
17302 },
44660702
DM
17303 "secs" : {
17304 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 17305 "optional" : 1,
44660702 17306 "type" : "integer"
56122987 17307 },
44660702
DM
17308 "serial" : {
17309 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
17310 "format" : "urlencoded",
17311 "format_description" : "serial",
17312 "maxLength" : 60,
56122987 17313 "optional" : 1,
44660702 17314 "type" : "string"
56122987 17315 },
27a7acb2
DM
17316 "shared" : {
17317 "default" : 0,
17318 "description" : "Mark this locally-managed volume as available on all nodes",
17319 "optional" : 1,
17320 "type" : "boolean",
17321 "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!"
17322 },
44660702
DM
17323 "size" : {
17324 "description" : "Disk size. This is purely informational and has no effect.",
17325 "format" : "disk-size",
f004f5b9 17326 "format_description" : "DiskSize",
44660702
DM
17327 "optional" : 1,
17328 "type" : "string"
17329 },
17330 "snapshot" : {
27a7acb2 17331 "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 17332 "optional" : 1,
44660702
DM
17333 "type" : "boolean"
17334 },
25203dc1
NC
17335 "ssd" : {
17336 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
17337 "optional" : 1,
17338 "type" : "boolean"
17339 },
44660702
DM
17340 "trans" : {
17341 "description" : "Force disk geometry bios translation mode.",
56122987 17342 "enum" : [
44660702
DM
17343 "none",
17344 "lba",
17345 "auto"
56122987 17346 ],
44660702
DM
17347 "optional" : 1,
17348 "type" : "string"
17349 },
17350 "volume" : {
17351 "alias" : "file"
56122987 17352 },
7aacca6f 17353 "werror" : {
7aacca6f
DM
17354 "description" : "Write error action.",
17355 "enum" : [
17356 "enospc",
17357 "ignore",
17358 "report",
17359 "stop"
44660702 17360 ],
56122987 17361 "optional" : 1,
7aacca6f 17362 "type" : "string"
95895385
TL
17363 },
17364 "wwn" : {
17365 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
17366 "format_description" : "wwn",
17367 "optional" : 1,
17368 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
17369 "type" : "string"
56122987 17370 }
44660702 17371 },
56122987 17372 "optional" : 1,
4bd7df8b 17373 "type" : "string",
7af2edf9 17374 "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
17375 },
17376 "scsihw" : {
44660702 17377 "default" : "lsi",
c2993fe5 17378 "description" : "SCSI controller model",
56122987
DM
17379 "enum" : [
17380 "lsi",
17381 "lsi53c810",
17382 "virtio-scsi-pci",
17383 "virtio-scsi-single",
17384 "megasas",
17385 "pvscsi"
17386 ],
17387 "optional" : 1,
56122987
DM
17388 "type" : "string"
17389 },
27a7acb2 17390 "searchdomain" : {
de786b48 17391 "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
17392 "optional" : 1,
17393 "type" : "string",
17394 "typetext" : "<string>"
17395 },
44660702 17396 "serial[n]" : {
c2993fe5 17397 "description" : "Create a serial device inside the VM (n is 0 to 3)",
56122987 17398 "optional" : 1,
44660702 17399 "pattern" : "(/dev/.+|socket)",
c2993fe5 17400 "type" : "string",
4772952b 17401 "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 17402 },
44660702
DM
17403 "shares" : {
17404 "default" : 1000,
5da3d723 17405 "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
17406 "maximum" : 50000,
17407 "minimum" : 0,
7aacca6f 17408 "optional" : 1,
4bd7df8b 17409 "type" : "integer",
013dc89f 17410 "typetext" : "<integer> (0 - 50000)"
56122987 17411 },
7aacca6f
DM
17412 "skiplock" : {
17413 "description" : "Ignore locks - only root is allowed to use this option.",
44660702 17414 "optional" : 1,
013dc89f
DM
17415 "type" : "boolean",
17416 "typetext" : "<boolean>"
56122987 17417 },
44660702
DM
17418 "smbios1" : {
17419 "description" : "Specify SMBIOS type 1 fields.",
17420 "format" : "pve-qm-smbios1",
1e3f8156 17421 "maxLength" : 512,
56122987 17422 "optional" : 1,
4bd7df8b 17423 "type" : "string",
1e3f8156 17424 "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 17425 },
44660702
DM
17426 "smp" : {
17427 "default" : 1,
17428 "description" : "The number of CPUs. Please use option -sockets instead.",
17429 "minimum" : 1,
56122987 17430 "optional" : 1,
4bd7df8b 17431 "type" : "integer",
013dc89f 17432 "typetext" : "<integer> (1 - N)"
56122987 17433 },
44660702
DM
17434 "sockets" : {
17435 "default" : 1,
17436 "description" : "The number of CPU sockets.",
17437 "minimum" : 1,
56122987 17438 "optional" : 1,
4bd7df8b 17439 "type" : "integer",
013dc89f 17440 "typetext" : "<integer> (1 - N)"
56122987 17441 },
1c532546
TL
17442 "spice_enhancements" : {
17443 "description" : "Configure additional enhancements for SPICE.",
17444 "format" : {
17445 "foldersharing" : {
17446 "default" : "0",
17447 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
17448 "optional" : 1,
17449 "type" : "boolean"
17450 },
17451 "videostreaming" : {
17452 "default" : "off",
17453 "description" : "Enable video streaming. Uses compression for detected video streams.",
17454 "enum" : [
17455 "off",
17456 "all",
17457 "filter"
17458 ],
17459 "optional" : 1,
17460 "type" : "string"
17461 }
17462 },
17463 "optional" : 1,
17464 "type" : "string",
17465 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
17466 },
27a7acb2
DM
17467 "sshkeys" : {
17468 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
17469 "format" : "urlencoded",
17470 "optional" : 1,
17471 "type" : "string",
17472 "typetext" : "<string>"
17473 },
44660702
DM
17474 "startdate" : {
17475 "default" : "now",
4772952b 17476 "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
17477 "optional" : 1,
17478 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
7aacca6f 17479 "type" : "string",
44660702
DM
17480 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
17481 },
17482 "startup" : {
17483 "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.",
17484 "format" : "pve-startup-order",
7aacca6f 17485 "optional" : 1,
44660702
DM
17486 "type" : "string",
17487 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
7aacca6f 17488 },
44660702
DM
17489 "tablet" : {
17490 "default" : 1,
c2993fe5 17491 "description" : "Enable/disable the USB tablet device.",
7aacca6f 17492 "optional" : 1,
c2993fe5 17493 "type" : "boolean",
013dc89f 17494 "typetext" : "<boolean>",
4772952b 17495 "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 17496 },
5c1699e5
TL
17497 "tags" : {
17498 "description" : "Tags of the VM. This is only meta information.",
17499 "format" : "pve-tag-list",
17500 "optional" : 1,
17501 "type" : "string",
17502 "typetext" : "<string>"
17503 },
44660702
DM
17504 "tdf" : {
17505 "default" : 0,
17506 "description" : "Enable/disable time drift fix.",
7aacca6f 17507 "optional" : 1,
013dc89f
DM
17508 "type" : "boolean",
17509 "typetext" : "<boolean>"
7aacca6f 17510 },
44660702
DM
17511 "template" : {
17512 "default" : 0,
17513 "description" : "Enable/disable Template.",
7aacca6f 17514 "optional" : 1,
013dc89f
DM
17515 "type" : "boolean",
17516 "typetext" : "<boolean>"
7aacca6f 17517 },
5370fa8c 17518 "tpmstate0" : {
7af2edf9 17519 "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
17520 "format" : {
17521 "file" : {
17522 "default_key" : 1,
17523 "description" : "The drive's backing volume.",
17524 "format" : "pve-volume-id-or-qm-path",
17525 "format_description" : "volume",
17526 "type" : "string"
17527 },
7af2edf9
TL
17528 "import-from" : {
17529 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
17530 "format" : "pve-volume-id-or-absolute-path",
17531 "format_description" : "source volume",
17532 "optional" : 1,
17533 "type" : "string"
17534 },
5370fa8c
TL
17535 "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 "version" : {
17543 "default" : "v2.0",
17544 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
17545 "enum" : [
17546 "v1.2",
17547 "v2.0"
17548 ],
17549 "optional" : 1,
17550 "type" : "string"
17551 },
17552 "volume" : {
17553 "alias" : "file"
17554 }
17555 },
17556 "optional" : 1,
17557 "type" : "string",
7af2edf9 17558 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 17559 },
44660702 17560 "unused[n]" : {
c2993fe5 17561 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
17562 "format" : {
17563 "file" : {
17564 "default_key" : 1,
17565 "description" : "The drive's backing volume.",
17566 "format" : "pve-volume-id",
17567 "format_description" : "volume",
17568 "type" : "string"
17569 },
17570 "volume" : {
17571 "alias" : "file"
17572 }
17573 },
7aacca6f 17574 "optional" : 1,
013dc89f 17575 "type" : "string",
c5aa7e14 17576 "typetext" : "[file=]<volume>"
7aacca6f 17577 },
44660702 17578 "usb[n]" : {
4e7f60c2 17579 "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 17580 "format" : {
44660702
DM
17581 "host" : {
17582 "default_key" : 1,
4772952b 17583 "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
17584 "format" : "pve-qm-usb-device",
17585 "format_description" : "HOSTUSBDEVICE|spice",
17586 "type" : "string"
7aacca6f 17587 },
44660702 17588 "usb3" : {
c2993fe5 17589 "default" : 0,
4e7f60c2 17590 "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 17591 "optional" : 1,
44660702 17592 "type" : "boolean"
7aacca6f 17593 }
44660702 17594 },
7aacca6f 17595 "optional" : 1,
4bd7df8b
DM
17596 "type" : "string",
17597 "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
7aacca6f 17598 },
44660702 17599 "vcpus" : {
7aacca6f 17600 "default" : 0,
44660702
DM
17601 "description" : "Number of hotplugged vcpus.",
17602 "minimum" : 1,
7aacca6f 17603 "optional" : 1,
4bd7df8b 17604 "type" : "integer",
013dc89f 17605 "typetext" : "<integer> (1 - N)"
7aacca6f 17606 },
44660702 17607 "vga" : {
e2d681b3
TL
17608 "description" : "Configure the VGA hardware.",
17609 "format" : {
17610 "memory" : {
17611 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
17612 "maximum" : 512,
17613 "minimum" : 4,
17614 "optional" : 1,
17615 "type" : "integer"
17616 },
17617 "type" : {
17618 "default" : "std",
17619 "default_key" : 1,
17620 "description" : "Select the VGA type.",
17621 "enum" : [
17622 "cirrus",
17623 "qxl",
17624 "qxl2",
17625 "qxl3",
17626 "qxl4",
5f26e15b 17627 "none",
e2d681b3
TL
17628 "serial0",
17629 "serial1",
17630 "serial2",
17631 "serial3",
17632 "std",
17633 "virtio",
7af2edf9 17634 "virtio-gl",
e2d681b3
TL
17635 "vmware"
17636 ],
17637 "optional" : 1,
17638 "type" : "string"
17639 }
17640 },
7aacca6f 17641 "optional" : 1,
c2993fe5 17642 "type" : "string",
e2d681b3
TL
17643 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
17644 "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 17645 },
44660702 17646 "virtio[n]" : {
7af2edf9 17647 "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 17648 "format" : {
7aacca6f 17649 "aio" : {
7aacca6f 17650 "description" : "AIO type to use.",
56122987 17651 "enum" : [
7aacca6f 17652 "native",
8f4d9c87
TL
17653 "threads",
17654 "io_uring"
7aacca6f 17655 ],
44660702
DM
17656 "optional" : 1,
17657 "type" : "string"
56122987 17658 },
44660702
DM
17659 "backup" : {
17660 "description" : "Whether the drive should be included when making backups.",
56122987 17661 "optional" : 1,
44660702 17662 "type" : "boolean"
7aacca6f 17663 },
44660702 17664 "bps" : {
de0983cb 17665 "description" : "Maximum r/w speed in bytes per second.",
44660702 17666 "format_description" : "bps",
7aacca6f 17667 "optional" : 1,
44660702 17668 "type" : "integer"
56122987 17669 },
de0983cb
DM
17670 "bps_max_length" : {
17671 "description" : "Maximum length of I/O bursts in seconds.",
17672 "format_description" : "seconds",
17673 "minimum" : 1,
17674 "optional" : 1,
17675 "type" : "integer"
17676 },
56122987 17677 "bps_rd" : {
de0983cb 17678 "description" : "Maximum read speed in bytes per second.",
44660702 17679 "format_description" : "bps",
56122987 17680 "optional" : 1,
7aacca6f 17681 "type" : "integer"
56122987 17682 },
de0983cb 17683 "bps_rd_length" : {
5d9c884c
DM
17684 "alias" : "bps_rd_max_length"
17685 },
17686 "bps_rd_max_length" : {
de0983cb
DM
17687 "description" : "Maximum length of read I/O bursts in seconds.",
17688 "format_description" : "seconds",
17689 "minimum" : 1,
17690 "optional" : 1,
17691 "type" : "integer"
17692 },
44660702 17693 "bps_wr" : {
de0983cb 17694 "description" : "Maximum write speed in bytes per second.",
44660702 17695 "format_description" : "bps",
56122987 17696 "optional" : 1,
7aacca6f 17697 "type" : "integer"
56122987 17698 },
de0983cb 17699 "bps_wr_length" : {
5d9c884c
DM
17700 "alias" : "bps_wr_max_length"
17701 },
17702 "bps_wr_max_length" : {
de0983cb
DM
17703 "description" : "Maximum length of write I/O bursts in seconds.",
17704 "format_description" : "seconds",
17705 "minimum" : 1,
17706 "optional" : 1,
17707 "type" : "integer"
17708 },
7aacca6f 17709 "cache" : {
44660702 17710 "description" : "The drive's cache mode",
7aacca6f
DM
17711 "enum" : [
17712 "none",
17713 "writethrough",
17714 "writeback",
17715 "unsafe",
17716 "directsync"
17717 ],
56122987 17718 "optional" : 1,
44660702 17719 "type" : "string"
7aacca6f 17720 },
44660702
DM
17721 "cyls" : {
17722 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
17723 "optional" : 1,
17724 "type" : "integer"
17725 },
17726 "detect_zeroes" : {
17727 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
17728 "optional" : 1,
17729 "type" : "boolean"
17730 },
17731 "discard" : {
17732 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
56122987 17733 "enum" : [
44660702
DM
17734 "ignore",
17735 "on"
56122987
DM
17736 ],
17737 "optional" : 1,
44660702 17738 "type" : "string"
56122987 17739 },
44660702
DM
17740 "file" : {
17741 "default_key" : 1,
17742 "description" : "The drive's backing volume.",
17743 "format" : "pve-volume-id-or-qm-path",
17744 "format_description" : "volume",
17745 "type" : "string"
17746 },
17747 "format" : {
17748 "description" : "The drive's backing file's data format.",
17749 "enum" : [
17750 "raw",
17751 "cow",
17752 "qcow",
17753 "qed",
17754 "qcow2",
17755 "vmdk",
17756 "cloop"
17757 ],
56122987 17758 "optional" : 1,
44660702 17759 "type" : "string"
56122987 17760 },
44660702
DM
17761 "heads" : {
17762 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
17763 "optional" : 1,
17764 "type" : "integer"
17765 },
7af2edf9
TL
17766 "import-from" : {
17767 "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!",
17768 "format" : "pve-volume-id-or-absolute-path",
17769 "format_description" : "source volume",
17770 "optional" : 1,
17771 "type" : "string"
17772 },
44660702 17773 "iops" : {
de0983cb 17774 "description" : "Maximum r/w I/O in operations per second.",
44660702 17775 "format_description" : "iops",
56122987 17776 "optional" : 1,
44660702
DM
17777 "type" : "integer"
17778 },
17779 "iops_max" : {
de0983cb 17780 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702
DM
17781 "format_description" : "iops",
17782 "optional" : 1,
17783 "type" : "integer"
56122987 17784 },
de0983cb
DM
17785 "iops_max_length" : {
17786 "description" : "Maximum length of I/O bursts in seconds.",
17787 "format_description" : "seconds",
17788 "minimum" : 1,
17789 "optional" : 1,
17790 "type" : "integer"
17791 },
7aacca6f 17792 "iops_rd" : {
de0983cb 17793 "description" : "Maximum read I/O in operations per second.",
7aacca6f 17794 "format_description" : "iops",
7aacca6f 17795 "optional" : 1,
44660702 17796 "type" : "integer"
56122987 17797 },
de0983cb 17798 "iops_rd_length" : {
5d9c884c 17799 "alias" : "iops_rd_max_length"
de0983cb 17800 },
44660702 17801 "iops_rd_max" : {
de0983cb 17802 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
17803 "format_description" : "iops",
17804 "optional" : 1,
17805 "type" : "integer"
17806 },
5d9c884c
DM
17807 "iops_rd_max_length" : {
17808 "description" : "Maximum length of read I/O bursts in seconds.",
17809 "format_description" : "seconds",
17810 "minimum" : 1,
17811 "optional" : 1,
17812 "type" : "integer"
17813 },
44660702 17814 "iops_wr" : {
de0983cb 17815 "description" : "Maximum write I/O in operations per second.",
44660702
DM
17816 "format_description" : "iops",
17817 "optional" : 1,
17818 "type" : "integer"
17819 },
de0983cb 17820 "iops_wr_length" : {
5d9c884c 17821 "alias" : "iops_wr_max_length"
de0983cb 17822 },
44660702 17823 "iops_wr_max" : {
de0983cb 17824 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
17825 "format_description" : "iops",
17826 "optional" : 1,
17827 "type" : "integer"
17828 },
5d9c884c
DM
17829 "iops_wr_max_length" : {
17830 "description" : "Maximum length of write I/O bursts in seconds.",
17831 "format_description" : "seconds",
17832 "minimum" : 1,
17833 "optional" : 1,
17834 "type" : "integer"
17835 },
44660702
DM
17836 "iothread" : {
17837 "description" : "Whether to use iothreads for this drive",
44660702
DM
17838 "optional" : 1,
17839 "type" : "boolean"
17840 },
17841 "mbps" : {
de0983cb 17842 "description" : "Maximum r/w speed in megabytes per second.",
44660702 17843 "format_description" : "mbps",
7aacca6f 17844 "optional" : 1,
44660702 17845 "type" : "number"
7aacca6f
DM
17846 },
17847 "mbps_max" : {
de0983cb 17848 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 17849 "format_description" : "mbps",
56122987 17850 "optional" : 1,
44660702 17851 "type" : "number"
56122987 17852 },
44660702 17853 "mbps_rd" : {
de0983cb 17854 "description" : "Maximum read speed in megabytes per second.",
44660702 17855 "format_description" : "mbps",
56122987 17856 "optional" : 1,
44660702 17857 "type" : "number"
56122987 17858 },
44660702 17859 "mbps_rd_max" : {
de0983cb 17860 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
17861 "format_description" : "mbps",
17862 "optional" : 1,
17863 "type" : "number"
17864 },
17865 "mbps_wr" : {
de0983cb 17866 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
17867 "format_description" : "mbps",
17868 "optional" : 1,
17869 "type" : "number"
17870 },
17871 "mbps_wr_max" : {
de0983cb 17872 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
17873 "format_description" : "mbps",
17874 "optional" : 1,
17875 "type" : "number"
17876 },
17877 "media" : {
17878 "default" : "disk",
17879 "description" : "The drive's media type.",
56122987 17880 "enum" : [
44660702
DM
17881 "cdrom",
17882 "disk"
56122987
DM
17883 ],
17884 "optional" : 1,
44660702 17885 "type" : "string"
56122987 17886 },
5d9c884c
DM
17887 "replicate" : {
17888 "default" : 1,
17889 "description" : "Whether the drive should considered for replication jobs.",
17890 "optional" : 1,
17891 "type" : "boolean"
17892 },
44660702
DM
17893 "rerror" : {
17894 "description" : "Read error action.",
17895 "enum" : [
17896 "ignore",
17897 "report",
17898 "stop"
17899 ],
56122987 17900 "optional" : 1,
44660702 17901 "type" : "string"
56122987 17902 },
5370fa8c
TL
17903 "ro" : {
17904 "description" : "Whether the drive is read-only.",
17905 "optional" : 1,
17906 "type" : "boolean"
17907 },
44660702
DM
17908 "secs" : {
17909 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 17910 "optional" : 1,
44660702 17911 "type" : "integer"
56122987 17912 },
7aacca6f
DM
17913 "serial" : {
17914 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
7aacca6f 17915 "format" : "urlencoded",
44660702 17916 "format_description" : "serial",
7aacca6f 17917 "maxLength" : 60,
44660702
DM
17918 "optional" : 1,
17919 "type" : "string"
56122987 17920 },
27a7acb2
DM
17921 "shared" : {
17922 "default" : 0,
17923 "description" : "Mark this locally-managed volume as available on all nodes",
17924 "optional" : 1,
17925 "type" : "boolean",
17926 "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!"
17927 },
44660702
DM
17928 "size" : {
17929 "description" : "Disk size. This is purely informational and has no effect.",
17930 "format" : "disk-size",
f004f5b9 17931 "format_description" : "DiskSize",
44660702
DM
17932 "optional" : 1,
17933 "type" : "string"
56122987 17934 },
44660702 17935 "snapshot" : {
27a7acb2 17936 "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 17937 "optional" : 1,
44660702 17938 "type" : "boolean"
56122987 17939 },
44660702
DM
17940 "trans" : {
17941 "description" : "Force disk geometry bios translation mode.",
17942 "enum" : [
17943 "none",
17944 "lba",
17945 "auto"
17946 ],
7aacca6f 17947 "optional" : 1,
44660702 17948 "type" : "string"
7aacca6f 17949 },
44660702
DM
17950 "volume" : {
17951 "alias" : "file"
17952 },
17953 "werror" : {
17954 "description" : "Write error action.",
17955 "enum" : [
17956 "enospc",
17957 "ignore",
17958 "report",
17959 "stop"
17960 ],
7aacca6f 17961 "optional" : 1,
44660702 17962 "type" : "string"
56122987
DM
17963 }
17964 },
7aacca6f 17965 "optional" : 1,
4bd7df8b 17966 "type" : "string",
7af2edf9 17967 "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 17968 },
4d47f125
TL
17969 "vmgenid" : {
17970 "default" : "1 (autogenerated)",
17971 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
17972 "format_description" : "UUID",
17973 "optional" : 1,
17974 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
17975 "type" : "string",
4772952b 17976 "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 17977 },
44660702
DM
17978 "vmid" : {
17979 "description" : "The (unique) ID of the VM.",
17980 "format" : "pve-vmid",
17981 "minimum" : 1,
4bd7df8b 17982 "type" : "integer",
013dc89f 17983 "typetext" : "<integer> (1 - N)"
56122987 17984 },
2489d6df
WB
17985 "vmstatestorage" : {
17986 "description" : "Default storage for VM state volumes/files.",
17987 "format" : "pve-storage-id",
17988 "optional" : 1,
17989 "type" : "string",
17990 "typetext" : "<string>"
17991 },
44660702 17992 "watchdog" : {
c2993fe5 17993 "description" : "Create a virtual hardware watchdog device.",
44660702 17994 "format" : "pve-qm-watchdog",
56122987 17995 "optional" : 1,
c2993fe5 17996 "type" : "string",
013dc89f 17997 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
c2993fe5 17998 "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 17999 }
7aacca6f 18000 }
56122987 18001 },
56122987
DM
18002 "permissions" : {
18003 "check" : [
18004 "perm",
18005 "/vms/{vmid}",
18006 [
18007 "VM.Config.Disk",
18008 "VM.Config.CDROM",
18009 "VM.Config.CPU",
18010 "VM.Config.Memory",
18011 "VM.Config.Network",
18012 "VM.Config.HWType",
ac70d7d1
TL
18013 "VM.Config.Options",
18014 "VM.Config.Cloudinit"
56122987
DM
18015 ],
18016 "any",
18017 1
18018 ]
18019 },
44660702 18020 "protected" : 1,
7aacca6f 18021 "proxyto" : "node",
56122987 18022 "returns" : {
4d47f125
TL
18023 "optional" : 1,
18024 "type" : "string"
7aacca6f 18025 }
4d47f125
TL
18026 },
18027 "PUT" : {
e9cd3bd4 18028 "allowtoken" : 1,
4d47f125
TL
18029 "description" : "Set virtual machine options (synchrounous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.",
18030 "method" : "PUT",
18031 "name" : "update_vm",
7aacca6f 18032 "parameters" : {
44660702 18033 "additionalProperties" : 0,
7aacca6f 18034 "properties" : {
4d47f125
TL
18035 "acpi" : {
18036 "default" : 1,
18037 "description" : "Enable/disable ACPI.",
18038 "optional" : 1,
18039 "type" : "boolean",
18040 "typetext" : "<boolean>"
7aacca6f 18041 },
4e7f60c2 18042 "affinity" : {
81a3384d 18043 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
18044 "format" : "pve-cpuset",
18045 "optional" : 1,
18046 "type" : "string",
18047 "typetext" : "<string>"
18048 },
4d47f125 18049 "agent" : {
9d2e98ed 18050 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
18051 "format" : {
18052 "enabled" : {
18053 "default" : 0,
18054 "default_key" : 1,
9d2e98ed
TL
18055 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
18056 "type" : "boolean"
18057 },
18058 "freeze-fs-on-backup" : {
18059 "default" : 1,
18060 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
18061 "optional" : 1,
4d47f125
TL
18062 "type" : "boolean"
18063 },
18064 "fstrim_cloned_disks" : {
18065 "default" : 0,
d2656385 18066 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
18067 "optional" : 1,
18068 "type" : "boolean"
5c1699e5
TL
18069 },
18070 "type" : {
18071 "default" : "virtio",
18072 "description" : "Select the agent type",
18073 "enum" : [
18074 "virtio",
18075 "isa"
18076 ],
18077 "optional" : 1,
18078 "type" : "string"
4d47f125 18079 }
44660702 18080 },
4d47f125
TL
18081 "optional" : 1,
18082 "type" : "string",
9d2e98ed 18083 "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
44660702 18084 },
e2d681b3
TL
18085 "arch" : {
18086 "description" : "Virtual processor architecture. Defaults to the host.",
18087 "enum" : [
18088 "x86_64",
18089 "aarch64"
18090 ],
18091 "optional" : 1,
18092 "type" : "string"
18093 },
4d47f125
TL
18094 "args" : {
18095 "description" : "Arbitrary arguments passed to kvm.",
18096 "optional" : 1,
18097 "type" : "string",
18098 "typetext" : "<string>",
159464a9 18099 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -smbios 'type=0,vendor=FOO'\n\nNOTE: this option is for experts only.\n"
4d47f125 18100 },
1c532546
TL
18101 "audio0" : {
18102 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
18103 "format" : {
18104 "device" : {
18105 "description" : "Configure an audio device.",
18106 "enum" : [
18107 "ich9-intel-hda",
18108 "intel-hda",
18109 "AC97"
18110 ],
18111 "type" : "string"
18112 },
18113 "driver" : {
18114 "default" : "spice",
18115 "description" : "Driver backend for the audio device.",
18116 "enum" : [
d2656385
TL
18117 "spice",
18118 "none"
1c532546
TL
18119 ],
18120 "optional" : 1,
18121 "type" : "string"
18122 }
18123 },
18124 "optional" : 1,
18125 "type" : "string",
d2656385 18126 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 18127 },
4d47f125
TL
18128 "autostart" : {
18129 "default" : 0,
18130 "description" : "Automatic restart after crash (currently ignored).",
7aacca6f 18131 "optional" : 1,
013dc89f
DM
18132 "type" : "boolean",
18133 "typetext" : "<boolean>"
7aacca6f 18134 },
4d47f125 18135 "balloon" : {
9d2e98ed 18136 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
4d47f125
TL
18137 "minimum" : 0,
18138 "optional" : 1,
18139 "type" : "integer",
18140 "typetext" : "<integer> (0 - N)"
18141 },
18142 "bios" : {
18143 "default" : "seabios",
18144 "description" : "Select BIOS implementation.",
18145 "enum" : [
18146 "seabios",
18147 "ovmf"
18148 ],
18149 "optional" : 1,
18150 "type" : "string"
18151 },
18152 "boot" : {
5370fa8c 18153 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 18154 "format" : "pve-qm-boot",
4d47f125 18155 "optional" : 1,
4772952b
TL
18156 "type" : "string",
18157 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
4d47f125
TL
18158 },
18159 "bootdisk" : {
4772952b 18160 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
4d47f125
TL
18161 "format" : "pve-qm-bootdisk",
18162 "optional" : 1,
18163 "pattern" : "(ide|sata|scsi|virtio)\\d+",
18164 "type" : "string"
18165 },
18166 "cdrom" : {
18167 "description" : "This is an alias for option -ide2",
18168 "format" : "pve-qm-ide",
18169 "optional" : 1,
18170 "type" : "string",
18171 "typetext" : "<volume>"
18172 },
95895385
TL
18173 "cicustom" : {
18174 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
18175 "format" : "pve-qm-cicustom",
18176 "optional" : 1,
18177 "type" : "string",
5370fa8c 18178 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 18179 },
4d47f125
TL
18180 "cipassword" : {
18181 "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.",
18182 "optional" : 1,
013dc89f
DM
18183 "type" : "string",
18184 "typetext" : "<string>"
44660702 18185 },
4d47f125
TL
18186 "citype" : {
18187 "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.",
18188 "enum" : [
18189 "configdrive2",
d2656385
TL
18190 "nocloud",
18191 "opennebula"
4d47f125
TL
18192 ],
18193 "optional" : 1,
18194 "type" : "string"
18195 },
159464a9
TL
18196 "ciupgrade" : {
18197 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
18198 "optional" : 1,
18199 "type" : "boolean",
18200 "typetext" : "<boolean>"
18201 },
4d47f125
TL
18202 "ciuser" : {
18203 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
18204 "optional" : 1,
013dc89f
DM
18205 "type" : "string",
18206 "typetext" : "<string>"
56122987 18207 },
4d47f125
TL
18208 "cores" : {
18209 "default" : 1,
18210 "description" : "The number of cores per socket.",
7aacca6f 18211 "minimum" : 1,
4d47f125 18212 "optional" : 1,
4bd7df8b 18213 "type" : "integer",
013dc89f 18214 "typetext" : "<integer> (1 - N)"
4d47f125
TL
18215 },
18216 "cpu" : {
18217 "description" : "Emulated CPU type.",
c5aa7e14 18218 "format" : "pve-vm-cpu-conf",
4d47f125 18219 "optional" : 1,
013dc89f 18220 "type" : "string",
04d22a9f 18221 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
44660702 18222 },
4d47f125
TL
18223 "cpulimit" : {
18224 "default" : 0,
18225 "description" : "Limit of CPU usage.",
18226 "maximum" : 128,
18227 "minimum" : 0,
18228 "optional" : 1,
18229 "type" : "number",
18230 "typetext" : "<number> (0 - 128)",
18231 "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."
18232 },
18233 "cpuunits" : {
5370fa8c
TL
18234 "default" : "cgroup v1: 1024, cgroup v2: 100",
18235 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
4d47f125 18236 "maximum" : 262144,
7af2edf9 18237 "minimum" : 1,
4d47f125 18238 "optional" : 1,
4bd7df8b 18239 "type" : "integer",
7af2edf9 18240 "typetext" : "<integer> (1 - 262144)",
4d47f125 18241 "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 18242 },
4d47f125
TL
18243 "delete" : {
18244 "description" : "A list of settings you want to delete.",
18245 "format" : "pve-configid-list",
18246 "optional" : 1,
18247 "type" : "string",
18248 "typetext" : "<string>"
18249 },
18250 "description" : {
8f4d9c87
TL
18251 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
18252 "maxLength" : 8192,
4d47f125
TL
18253 "optional" : 1,
18254 "type" : "string",
18255 "typetext" : "<string>"
18256 },
18257 "digest" : {
18258 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
18259 "maxLength" : 40,
44660702 18260 "optional" : 1,
4d47f125
TL
18261 "type" : "string",
18262 "typetext" : "<string>"
18263 },
18264 "efidisk0" : {
9d2e98ed 18265 "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 18266 "format" : {
5370fa8c
TL
18267 "efitype" : {
18268 "default" : "2m",
9d2e98ed 18269 "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified. Ignored for VMs with arch=aarc64 (ARM).",
5370fa8c
TL
18270 "enum" : [
18271 "2m",
18272 "4m"
18273 ],
18274 "optional" : 1,
18275 "type" : "string"
18276 },
4d47f125
TL
18277 "file" : {
18278 "default_key" : 1,
18279 "description" : "The drive's backing volume.",
18280 "format" : "pve-volume-id-or-qm-path",
18281 "format_description" : "volume",
18282 "type" : "string"
18283 },
18284 "format" : {
18285 "description" : "The drive's backing file's data format.",
18286 "enum" : [
18287 "raw",
18288 "cow",
18289 "qcow",
18290 "qed",
18291 "qcow2",
18292 "vmdk",
18293 "cloop"
18294 ],
18295 "optional" : 1,
18296 "type" : "string"
18297 },
7af2edf9
TL
18298 "import-from" : {
18299 "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!",
18300 "format" : "pve-volume-id-or-absolute-path",
18301 "format_description" : "source volume",
18302 "optional" : 1,
18303 "type" : "string"
18304 },
5370fa8c
TL
18305 "pre-enrolled-keys" : {
18306 "default" : 0,
18307 "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.",
18308 "optional" : 1,
18309 "type" : "boolean"
18310 },
4d47f125
TL
18311 "size" : {
18312 "description" : "Disk size. This is purely informational and has no effect.",
18313 "format" : "disk-size",
18314 "format_description" : "DiskSize",
18315 "optional" : 1,
18316 "type" : "string"
18317 },
18318 "volume" : {
18319 "alias" : "file"
18320 }
18321 },
18322 "optional" : 1,
18323 "type" : "string",
7af2edf9 18324 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125
TL
18325 },
18326 "force" : {
18327 "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.",
18328 "optional" : 1,
18329 "requires" : "delete",
013dc89f
DM
18330 "type" : "boolean",
18331 "typetext" : "<boolean>"
56122987 18332 },
4d47f125
TL
18333 "freeze" : {
18334 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
18335 "optional" : 1,
18336 "type" : "boolean",
18337 "typetext" : "<boolean>"
7aacca6f 18338 },
5f26e15b
TL
18339 "hookscript" : {
18340 "description" : "Script that will be executed during various steps in the vms lifetime.",
18341 "format" : "pve-volume-id",
18342 "optional" : 1,
18343 "type" : "string",
18344 "typetext" : "<string>"
18345 },
4d47f125
TL
18346 "hostpci[n]" : {
18347 "description" : "Map host PCI devices into guest.",
18348 "format" : "pve-qm-hostpci",
18349 "optional" : 1,
18350 "type" : "string",
7af2edf9 18351 "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 18352 "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 18353 },
4d47f125
TL
18354 "hotplug" : {
18355 "default" : "network,disk,usb",
4e7f60c2 18356 "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
18357 "format" : "pve-hotplug-features",
18358 "optional" : 1,
35a75dd3
DM
18359 "type" : "string",
18360 "typetext" : "<string>"
18361 },
4d47f125
TL
18362 "hugepages" : {
18363 "description" : "Enable/disable hugepages memory.",
35a75dd3 18364 "enum" : [
4d47f125
TL
18365 "any",
18366 "2",
18367 "1024"
35a75dd3
DM
18368 ],
18369 "optional" : 1,
18370 "type" : "string"
18371 },
4d47f125 18372 "ide[n]" : {
7af2edf9 18373 "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
18374 "format" : {
18375 "aio" : {
18376 "description" : "AIO type to use.",
18377 "enum" : [
18378 "native",
8f4d9c87
TL
18379 "threads",
18380 "io_uring"
4d47f125 18381 ],
44660702 18382 "optional" : 1,
44660702
DM
18383 "type" : "string"
18384 },
4d47f125
TL
18385 "backup" : {
18386 "description" : "Whether the drive should be included when making backups.",
56122987 18387 "optional" : 1,
4d47f125 18388 "type" : "boolean"
56122987 18389 },
4d47f125
TL
18390 "bps" : {
18391 "description" : "Maximum r/w speed in bytes per second.",
18392 "format_description" : "bps",
de0983cb 18393 "optional" : 1,
4d47f125 18394 "type" : "integer"
de0983cb 18395 },
4d47f125
TL
18396 "bps_max_length" : {
18397 "description" : "Maximum length of I/O bursts in seconds.",
18398 "format_description" : "seconds",
18399 "minimum" : 1,
de0983cb 18400 "optional" : 1,
4d47f125 18401 "type" : "integer"
7aacca6f 18402 },
4d47f125
TL
18403 "bps_rd" : {
18404 "description" : "Maximum read speed in bytes per second.",
18405 "format_description" : "bps",
7aacca6f 18406 "optional" : 1,
4d47f125 18407 "type" : "integer"
56122987 18408 },
4d47f125
TL
18409 "bps_rd_length" : {
18410 "alias" : "bps_rd_max_length"
18411 },
18412 "bps_rd_max_length" : {
18413 "description" : "Maximum length of read I/O bursts in seconds.",
18414 "format_description" : "seconds",
18415 "minimum" : 1,
56122987 18416 "optional" : 1,
4d47f125 18417 "type" : "integer"
56122987 18418 },
4d47f125
TL
18419 "bps_wr" : {
18420 "description" : "Maximum write speed in bytes per second.",
18421 "format_description" : "bps",
52e44c50 18422 "optional" : 1,
4d47f125 18423 "type" : "integer"
52e44c50 18424 },
4d47f125
TL
18425 "bps_wr_length" : {
18426 "alias" : "bps_wr_max_length"
18427 },
18428 "bps_wr_max_length" : {
18429 "description" : "Maximum length of write I/O bursts in seconds.",
18430 "format_description" : "seconds",
44660702 18431 "minimum" : 1,
56122987 18432 "optional" : 1,
4d47f125 18433 "type" : "integer"
56122987 18434 },
4d47f125
TL
18435 "cache" : {
18436 "description" : "The drive's cache mode",
18437 "enum" : [
18438 "none",
18439 "writethrough",
18440 "writeback",
18441 "unsafe",
18442 "directsync"
18443 ],
7aacca6f 18444 "optional" : 1,
4d47f125 18445 "type" : "string"
7aacca6f 18446 },
4d47f125
TL
18447 "cyls" : {
18448 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
18449 "optional" : 1,
18450 "type" : "integer"
56122987 18451 },
4d47f125
TL
18452 "detect_zeroes" : {
18453 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 18454 "optional" : 1,
4d47f125 18455 "type" : "boolean"
56122987 18456 },
4d47f125
TL
18457 "discard" : {
18458 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
18459 "enum" : [
18460 "ignore",
18461 "on"
18462 ],
56122987 18463 "optional" : 1,
4d47f125 18464 "type" : "string"
7aacca6f 18465 },
4d47f125
TL
18466 "file" : {
18467 "default_key" : 1,
18468 "description" : "The drive's backing volume.",
18469 "format" : "pve-volume-id-or-qm-path",
18470 "format_description" : "volume",
18471 "type" : "string"
56122987 18472 },
4d47f125
TL
18473 "format" : {
18474 "description" : "The drive's backing file's data format.",
18475 "enum" : [
18476 "raw",
18477 "cow",
18478 "qcow",
18479 "qed",
18480 "qcow2",
18481 "vmdk",
18482 "cloop"
18483 ],
7aacca6f 18484 "optional" : 1,
4d47f125 18485 "type" : "string"
7aacca6f 18486 },
4d47f125
TL
18487 "heads" : {
18488 "description" : "Force the drive's physical geometry to have a specific head count.",
7aacca6f 18489 "optional" : 1,
4d47f125 18490 "type" : "integer"
56122987 18491 },
7af2edf9
TL
18492 "import-from" : {
18493 "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!",
18494 "format" : "pve-volume-id-or-absolute-path",
18495 "format_description" : "source volume",
18496 "optional" : 1,
18497 "type" : "string"
18498 },
4d47f125
TL
18499 "iops" : {
18500 "description" : "Maximum r/w I/O in operations per second.",
18501 "format_description" : "iops",
44660702 18502 "optional" : 1,
4d47f125 18503 "type" : "integer"
44660702 18504 },
4d47f125
TL
18505 "iops_max" : {
18506 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
18507 "format_description" : "iops",
44660702 18508 "optional" : 1,
4d47f125 18509 "type" : "integer"
56122987 18510 },
4d47f125
TL
18511 "iops_max_length" : {
18512 "description" : "Maximum length of I/O bursts in seconds.",
18513 "format_description" : "seconds",
18514 "minimum" : 1,
7aacca6f 18515 "optional" : 1,
4d47f125 18516 "type" : "integer"
7aacca6f 18517 },
4d47f125
TL
18518 "iops_rd" : {
18519 "description" : "Maximum read I/O in operations per second.",
18520 "format_description" : "iops",
18521 "optional" : 1,
18522 "type" : "integer"
18523 },
18524 "iops_rd_length" : {
18525 "alias" : "iops_rd_max_length"
18526 },
18527 "iops_rd_max" : {
18528 "description" : "Maximum unthrottled read I/O pool in operations per second.",
18529 "format_description" : "iops",
18530 "optional" : 1,
18531 "type" : "integer"
18532 },
18533 "iops_rd_max_length" : {
18534 "description" : "Maximum length of read I/O bursts in seconds.",
18535 "format_description" : "seconds",
44660702 18536 "minimum" : 1,
4d47f125
TL
18537 "optional" : 1,
18538 "type" : "integer"
7aacca6f 18539 },
4d47f125
TL
18540 "iops_wr" : {
18541 "description" : "Maximum write I/O in operations per second.",
18542 "format_description" : "iops",
44660702 18543 "optional" : 1,
4d47f125 18544 "type" : "integer"
44660702 18545 },
4d47f125
TL
18546 "iops_wr_length" : {
18547 "alias" : "iops_wr_max_length"
18548 },
18549 "iops_wr_max" : {
18550 "description" : "Maximum unthrottled write I/O pool in operations per second.",
18551 "format_description" : "iops",
18552 "optional" : 1,
18553 "type" : "integer"
18554 },
18555 "iops_wr_max_length" : {
18556 "description" : "Maximum length of write I/O bursts in seconds.",
18557 "format_description" : "seconds",
44660702 18558 "minimum" : 1,
44660702 18559 "optional" : 1,
4d47f125 18560 "type" : "integer"
44660702 18561 },
4d47f125
TL
18562 "mbps" : {
18563 "description" : "Maximum r/w speed in megabytes per second.",
18564 "format_description" : "mbps",
18565 "optional" : 1,
18566 "type" : "number"
56122987 18567 },
4d47f125
TL
18568 "mbps_max" : {
18569 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
18570 "format_description" : "mbps",
18571 "optional" : 1,
18572 "type" : "number"
18573 },
18574 "mbps_rd" : {
18575 "description" : "Maximum read speed in megabytes per second.",
18576 "format_description" : "mbps",
18577 "optional" : 1,
18578 "type" : "number"
18579 },
18580 "mbps_rd_max" : {
18581 "description" : "Maximum unthrottled read pool in megabytes per second.",
18582 "format_description" : "mbps",
18583 "optional" : 1,
18584 "type" : "number"
18585 },
18586 "mbps_wr" : {
18587 "description" : "Maximum write speed in megabytes per second.",
18588 "format_description" : "mbps",
18589 "optional" : 1,
18590 "type" : "number"
18591 },
18592 "mbps_wr_max" : {
18593 "description" : "Maximum unthrottled write pool in megabytes per second.",
18594 "format_description" : "mbps",
18595 "optional" : 1,
18596 "type" : "number"
18597 },
18598 "media" : {
18599 "default" : "disk",
18600 "description" : "The drive's media type.",
18601 "enum" : [
18602 "cdrom",
18603 "disk"
18604 ],
18605 "optional" : 1,
18606 "type" : "string"
18607 },
18608 "model" : {
18609 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
18610 "format" : "urlencoded",
18611 "format_description" : "model",
18612 "maxLength" : 120,
18613 "optional" : 1,
18614 "type" : "string"
18615 },
18616 "replicate" : {
18617 "default" : 1,
18618 "description" : "Whether the drive should considered for replication jobs.",
18619 "optional" : 1,
18620 "type" : "boolean"
18621 },
18622 "rerror" : {
18623 "description" : "Read error action.",
18624 "enum" : [
18625 "ignore",
18626 "report",
18627 "stop"
18628 ],
18629 "optional" : 1,
18630 "type" : "string"
18631 },
18632 "secs" : {
18633 "description" : "Force the drive's physical geometry to have a specific sector count.",
18634 "optional" : 1,
18635 "type" : "integer"
18636 },
18637 "serial" : {
18638 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
18639 "format" : "urlencoded",
18640 "format_description" : "serial",
18641 "maxLength" : 60,
18642 "optional" : 1,
18643 "type" : "string"
18644 },
18645 "shared" : {
18646 "default" : 0,
18647 "description" : "Mark this locally-managed volume as available on all nodes",
44660702 18648 "optional" : 1,
013dc89f 18649 "type" : "boolean",
4d47f125 18650 "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 18651 },
4d47f125
TL
18652 "size" : {
18653 "description" : "Disk size. This is purely informational and has no effect.",
18654 "format" : "disk-size",
18655 "format_description" : "DiskSize",
18656 "optional" : 1,
18657 "type" : "string"
18658 },
18659 "snapshot" : {
18660 "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.",
18661 "optional" : 1,
18662 "type" : "boolean"
18663 },
25203dc1
NC
18664 "ssd" : {
18665 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
18666 "optional" : 1,
18667 "type" : "boolean"
18668 },
4d47f125
TL
18669 "trans" : {
18670 "description" : "Force disk geometry bios translation mode.",
18671 "enum" : [
18672 "none",
18673 "lba",
18674 "auto"
18675 ],
18676 "optional" : 1,
18677 "type" : "string"
18678 },
18679 "volume" : {
18680 "alias" : "file"
18681 },
18682 "werror" : {
18683 "description" : "Write error action.",
18684 "enum" : [
18685 "enospc",
18686 "ignore",
18687 "report",
18688 "stop"
18689 ],
18690 "optional" : 1,
18691 "type" : "string"
95895385
TL
18692 },
18693 "wwn" : {
18694 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
18695 "format_description" : "wwn",
18696 "optional" : 1,
18697 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
18698 "type" : "string"
4d47f125
TL
18699 }
18700 },
18701 "optional" : 1,
013dc89f 18702 "type" : "string",
7af2edf9 18703 "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 18704 },
4d47f125 18705 "ipconfig[n]" : {
d2656385 18706 "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
18707 "format" : "pve-qm-ipconfig",
18708 "optional" : 1,
013dc89f 18709 "type" : "string",
4d47f125 18710 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
44660702 18711 },
95895385
TL
18712 "ivshmem" : {
18713 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
18714 "format" : {
18715 "name" : {
18716 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
18717 "format_description" : "string",
18718 "optional" : 1,
18719 "pattern" : "[a-zA-Z0-9\\-]+",
18720 "type" : "string"
18721 },
18722 "size" : {
18723 "description" : "The size of the file in MB.",
18724 "minimum" : 1,
18725 "type" : "integer"
18726 }
18727 },
18728 "optional" : 1,
18729 "type" : "string",
18730 "typetext" : "size=<integer> [,name=<string>]"
18731 },
4772952b
TL
18732 "keephugepages" : {
18733 "default" : 0,
18734 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
18735 "optional" : 1,
18736 "type" : "boolean",
18737 "typetext" : "<boolean>"
18738 },
4d47f125
TL
18739 "keyboard" : {
18740 "default" : null,
7af2edf9 18741 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
4d47f125
TL
18742 "enum" : [
18743 "de",
18744 "de-ch",
18745 "da",
18746 "en-gb",
18747 "en-us",
18748 "es",
18749 "fi",
18750 "fr",
18751 "fr-be",
18752 "fr-ca",
18753 "fr-ch",
18754 "hu",
18755 "is",
18756 "it",
18757 "ja",
18758 "lt",
18759 "mk",
18760 "nl",
18761 "no",
18762 "pl",
18763 "pt",
18764 "pt-br",
18765 "sv",
18766 "sl",
18767 "tr"
18768 ],
18769 "optional" : 1,
18770 "type" : "string"
44660702 18771 },
4d47f125
TL
18772 "kvm" : {
18773 "default" : 1,
18774 "description" : "Enable/disable KVM hardware virtualization.",
44660702 18775 "optional" : 1,
013dc89f
DM
18776 "type" : "boolean",
18777 "typetext" : "<boolean>"
7aacca6f 18778 },
4d47f125 18779 "localtime" : {
5370fa8c 18780 "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
18781 "optional" : 1,
18782 "type" : "boolean",
18783 "typetext" : "<boolean>"
18784 },
18785 "lock" : {
18786 "description" : "Lock/unlock the VM.",
56122987 18787 "enum" : [
4d47f125 18788 "backup",
5f26e15b
TL
18789 "clone",
18790 "create",
18791 "migrate",
18792 "rollback",
56122987 18793 "snapshot",
95895385
TL
18794 "snapshot-delete",
18795 "suspending",
18796 "suspended"
56122987 18797 ],
4d47f125 18798 "optional" : 1,
44660702
DM
18799 "type" : "string"
18800 },
4d47f125 18801 "machine" : {
9d2e98ed 18802 "description" : "Specifies the QEMU machine type.",
4d47f125
TL
18803 "maxLength" : 40,
18804 "optional" : 1,
5c1699e5 18805 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
4d47f125
TL
18806 "type" : "string"
18807 },
18808 "memory" : {
18809 "default" : 512,
9d2e98ed 18810 "description" : "Amount of RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
4d47f125
TL
18811 "minimum" : 16,
18812 "optional" : 1,
18813 "type" : "integer",
18814 "typetext" : "<integer> (16 - N)"
18815 },
18816 "migrate_downtime" : {
18817 "default" : 0.1,
18818 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
18819 "minimum" : 0,
18820 "optional" : 1,
18821 "type" : "number",
18822 "typetext" : "<number> (0 - N)"
18823 },
18824 "migrate_speed" : {
18825 "default" : 0,
18826 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
18827 "minimum" : 0,
18828 "optional" : 1,
18829 "type" : "integer",
18830 "typetext" : "<integer> (0 - N)"
18831 },
18832 "name" : {
18833 "description" : "Set a name for the VM. Only used on the configuration web interface.",
18834 "format" : "dns-name",
18835 "optional" : 1,
013dc89f
DM
18836 "type" : "string",
18837 "typetext" : "<string>"
56122987 18838 },
4d47f125 18839 "nameserver" : {
de786b48 18840 "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 18841 "format" : "address-list",
7aacca6f 18842 "optional" : 1,
013dc89f
DM
18843 "type" : "string",
18844 "typetext" : "<string>"
7aacca6f 18845 },
4d47f125
TL
18846 "net[n]" : {
18847 "description" : "Specify network devices.",
18848 "format" : {
18849 "bridge" : {
18850 "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 18851 "format" : "pve-bridge-id",
4d47f125
TL
18852 "format_description" : "bridge",
18853 "optional" : 1,
18854 "type" : "string"
18855 },
18856 "e1000" : {
18857 "alias" : "macaddr",
18858 "keyAlias" : "model"
18859 },
18860 "e1000-82540em" : {
18861 "alias" : "macaddr",
18862 "keyAlias" : "model"
18863 },
18864 "e1000-82544gc" : {
18865 "alias" : "macaddr",
18866 "keyAlias" : "model"
18867 },
18868 "e1000-82545em" : {
18869 "alias" : "macaddr",
18870 "keyAlias" : "model"
18871 },
5370fa8c
TL
18872 "e1000e" : {
18873 "alias" : "macaddr",
18874 "keyAlias" : "model"
18875 },
4d47f125
TL
18876 "firewall" : {
18877 "description" : "Whether this interface should be protected by the firewall.",
18878 "optional" : 1,
18879 "type" : "boolean"
18880 },
18881 "i82551" : {
18882 "alias" : "macaddr",
18883 "keyAlias" : "model"
18884 },
18885 "i82557b" : {
18886 "alias" : "macaddr",
18887 "keyAlias" : "model"
18888 },
18889 "i82559er" : {
18890 "alias" : "macaddr",
18891 "keyAlias" : "model"
18892 },
18893 "link_down" : {
18894 "description" : "Whether this interface should be disconnected (like pulling the plug).",
18895 "optional" : 1,
18896 "type" : "boolean"
18897 },
18898 "macaddr" : {
18899 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 18900 "format" : "mac-addr",
4d47f125
TL
18901 "format_description" : "XX:XX:XX:XX:XX:XX",
18902 "optional" : 1,
95895385
TL
18903 "type" : "string",
18904 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
18905 },
18906 "model" : {
18907 "default_key" : 1,
18908 "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'.",
18909 "enum" : [
4d47f125 18910 "e1000",
5370fa8c
TL
18911 "e1000-82540em",
18912 "e1000-82544gc",
18913 "e1000-82545em",
18914 "e1000e",
4d47f125
TL
18915 "i82551",
18916 "i82557b",
18917 "i82559er",
5370fa8c
TL
18918 "ne2k_isa",
18919 "ne2k_pci",
18920 "pcnet",
18921 "rtl8139",
18922 "virtio",
18923 "vmxnet3"
4d47f125
TL
18924 ],
18925 "type" : "string"
18926 },
ac70d7d1
TL
18927 "mtu" : {
18928 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
18929 "maximum" : 65520,
18930 "minimum" : 1,
18931 "optional" : 1,
18932 "type" : "integer"
18933 },
4d47f125
TL
18934 "ne2k_isa" : {
18935 "alias" : "macaddr",
18936 "keyAlias" : "model"
18937 },
18938 "ne2k_pci" : {
18939 "alias" : "macaddr",
18940 "keyAlias" : "model"
18941 },
18942 "pcnet" : {
18943 "alias" : "macaddr",
18944 "keyAlias" : "model"
18945 },
18946 "queues" : {
18947 "description" : "Number of packet queues to be used on the device.",
81a3384d 18948 "maximum" : 64,
4d47f125
TL
18949 "minimum" : 0,
18950 "optional" : 1,
18951 "type" : "integer"
18952 },
18953 "rate" : {
18954 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
18955 "minimum" : 0,
18956 "optional" : 1,
18957 "type" : "number"
18958 },
18959 "rtl8139" : {
18960 "alias" : "macaddr",
18961 "keyAlias" : "model"
18962 },
18963 "tag" : {
18964 "description" : "VLAN tag to apply to packets on this interface.",
18965 "maximum" : 4094,
18966 "minimum" : 1,
18967 "optional" : 1,
18968 "type" : "integer"
18969 },
18970 "trunks" : {
18971 "description" : "VLAN trunks to pass through this interface.",
18972 "format_description" : "vlanid[;vlanid...]",
18973 "optional" : 1,
18974 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
18975 "type" : "string"
18976 },
18977 "virtio" : {
18978 "alias" : "macaddr",
18979 "keyAlias" : "model"
18980 },
18981 "vmxnet3" : {
18982 "alias" : "macaddr",
18983 "keyAlias" : "model"
18984 }
44660702 18985 },
44660702 18986 "optional" : 1,
013dc89f 18987 "type" : "string",
ac70d7d1 18988 "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
18989 },
18990 "node" : {
18991 "description" : "The cluster node name.",
18992 "format" : "pve-node",
013dc89f
DM
18993 "type" : "string",
18994 "typetext" : "<string>"
7aacca6f 18995 },
4d47f125
TL
18996 "numa" : {
18997 "default" : 0,
18998 "description" : "Enable/disable NUMA.",
56122987 18999 "optional" : 1,
4d47f125
TL
19000 "type" : "boolean",
19001 "typetext" : "<boolean>"
56122987 19002 },
4d47f125
TL
19003 "numa[n]" : {
19004 "description" : "NUMA topology.",
19005 "format" : {
19006 "cpus" : {
19007 "description" : "CPUs accessing this NUMA node.",
19008 "format_description" : "id[-id];...",
19009 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
19010 "type" : "string"
19011 },
19012 "hostnodes" : {
19013 "description" : "Host NUMA nodes to use.",
19014 "format_description" : "id[-id];...",
19015 "optional" : 1,
19016 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
19017 "type" : "string"
19018 },
19019 "memory" : {
19020 "description" : "Amount of memory this NUMA node provides.",
19021 "optional" : 1,
19022 "type" : "number"
19023 },
19024 "policy" : {
19025 "description" : "NUMA allocation policy.",
19026 "enum" : [
19027 "preferred",
19028 "bind",
19029 "interleave"
19030 ],
19031 "optional" : 1,
19032 "type" : "string"
19033 }
19034 },
7aacca6f 19035 "optional" : 1,
013dc89f 19036 "type" : "string",
4d47f125 19037 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
56122987 19038 },
4d47f125 19039 "onboot" : {
44660702 19040 "default" : 0,
4d47f125 19041 "description" : "Specifies whether a VM will be started during system bootup.",
7aacca6f 19042 "optional" : 1,
013dc89f
DM
19043 "type" : "boolean",
19044 "typetext" : "<boolean>"
56122987 19045 },
4d47f125
TL
19046 "ostype" : {
19047 "description" : "Specify guest operating system.",
7aacca6f 19048 "enum" : [
4d47f125
TL
19049 "other",
19050 "wxp",
19051 "w2k",
19052 "w2k3",
19053 "w2k8",
19054 "wvista",
19055 "win7",
19056 "win8",
19057 "win10",
5370fa8c 19058 "win11",
4d47f125
TL
19059 "l24",
19060 "l26",
19061 "solaris"
7aacca6f
DM
19062 ],
19063 "optional" : 1,
013dc89f 19064 "type" : "string",
9d2e98ed 19065 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
44660702 19066 },
4d47f125
TL
19067 "parallel[n]" : {
19068 "description" : "Map host parallel devices (n is 0 to 2).",
19069 "optional" : 1,
19070 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
013dc89f 19071 "type" : "string",
4772952b 19072 "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 19073 },
4d47f125
TL
19074 "protection" : {
19075 "default" : 0,
19076 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
44660702 19077 "optional" : 1,
013dc89f
DM
19078 "type" : "boolean",
19079 "typetext" : "<boolean>"
44660702 19080 },
4d47f125
TL
19081 "reboot" : {
19082 "default" : 1,
19083 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
56122987 19084 "optional" : 1,
013dc89f
DM
19085 "type" : "boolean",
19086 "typetext" : "<boolean>"
56122987 19087 },
4d47f125
TL
19088 "revert" : {
19089 "description" : "Revert a pending change.",
19090 "format" : "pve-configid-list",
19091 "optional" : 1,
013dc89f
DM
19092 "type" : "string",
19093 "typetext" : "<string>"
56122987 19094 },
c5aa7e14
TL
19095 "rng0" : {
19096 "description" : "Configure a VirtIO-based Random Number Generator.",
19097 "format" : {
19098 "max_bytes" : {
19099 "default" : 1024,
5370fa8c 19100 "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
19101 "optional" : 1,
19102 "type" : "integer"
19103 },
19104 "period" : {
19105 "default" : 1000,
19106 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
19107 "optional" : 1,
19108 "type" : "integer"
19109 },
19110 "source" : {
19111 "default_key" : 1,
5370fa8c 19112 "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
19113 "enum" : [
19114 "/dev/urandom",
19115 "/dev/random",
19116 "/dev/hwrng"
19117 ],
19118 "type" : "string"
19119 }
19120 },
19121 "optional" : 1,
19122 "type" : "string",
19123 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
19124 },
4d47f125 19125 "sata[n]" : {
7af2edf9 19126 "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
19127 "format" : {
19128 "aio" : {
19129 "description" : "AIO type to use.",
19130 "enum" : [
19131 "native",
8f4d9c87
TL
19132 "threads",
19133 "io_uring"
4d47f125
TL
19134 ],
19135 "optional" : 1,
19136 "type" : "string"
19137 },
19138 "backup" : {
19139 "description" : "Whether the drive should be included when making backups.",
19140 "optional" : 1,
19141 "type" : "boolean"
19142 },
19143 "bps" : {
19144 "description" : "Maximum r/w speed in bytes per second.",
19145 "format_description" : "bps",
19146 "optional" : 1,
19147 "type" : "integer"
19148 },
19149 "bps_max_length" : {
19150 "description" : "Maximum length of I/O bursts in seconds.",
19151 "format_description" : "seconds",
19152 "minimum" : 1,
19153 "optional" : 1,
19154 "type" : "integer"
19155 },
19156 "bps_rd" : {
19157 "description" : "Maximum read speed in bytes per second.",
19158 "format_description" : "bps",
19159 "optional" : 1,
19160 "type" : "integer"
19161 },
19162 "bps_rd_length" : {
19163 "alias" : "bps_rd_max_length"
19164 },
19165 "bps_rd_max_length" : {
19166 "description" : "Maximum length of read I/O bursts in seconds.",
19167 "format_description" : "seconds",
19168 "minimum" : 1,
19169 "optional" : 1,
19170 "type" : "integer"
19171 },
19172 "bps_wr" : {
19173 "description" : "Maximum write speed in bytes per second.",
19174 "format_description" : "bps",
19175 "optional" : 1,
19176 "type" : "integer"
19177 },
19178 "bps_wr_length" : {
19179 "alias" : "bps_wr_max_length"
19180 },
19181 "bps_wr_max_length" : {
19182 "description" : "Maximum length of write I/O bursts in seconds.",
19183 "format_description" : "seconds",
19184 "minimum" : 1,
19185 "optional" : 1,
19186 "type" : "integer"
19187 },
19188 "cache" : {
19189 "description" : "The drive's cache mode",
19190 "enum" : [
19191 "none",
19192 "writethrough",
19193 "writeback",
19194 "unsafe",
19195 "directsync"
19196 ],
19197 "optional" : 1,
19198 "type" : "string"
19199 },
19200 "cyls" : {
19201 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
19202 "optional" : 1,
19203 "type" : "integer"
19204 },
19205 "detect_zeroes" : {
19206 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
19207 "optional" : 1,
19208 "type" : "boolean"
19209 },
19210 "discard" : {
19211 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
19212 "enum" : [
19213 "ignore",
19214 "on"
19215 ],
19216 "optional" : 1,
19217 "type" : "string"
19218 },
19219 "file" : {
19220 "default_key" : 1,
19221 "description" : "The drive's backing volume.",
19222 "format" : "pve-volume-id-or-qm-path",
19223 "format_description" : "volume",
19224 "type" : "string"
19225 },
19226 "format" : {
19227 "description" : "The drive's backing file's data format.",
19228 "enum" : [
19229 "raw",
19230 "cow",
19231 "qcow",
19232 "qed",
19233 "qcow2",
19234 "vmdk",
19235 "cloop"
19236 ],
19237 "optional" : 1,
19238 "type" : "string"
19239 },
19240 "heads" : {
19241 "description" : "Force the drive's physical geometry to have a specific head count.",
19242 "optional" : 1,
19243 "type" : "integer"
19244 },
7af2edf9
TL
19245 "import-from" : {
19246 "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!",
19247 "format" : "pve-volume-id-or-absolute-path",
19248 "format_description" : "source volume",
19249 "optional" : 1,
19250 "type" : "string"
19251 },
4d47f125
TL
19252 "iops" : {
19253 "description" : "Maximum r/w I/O in operations per second.",
19254 "format_description" : "iops",
19255 "optional" : 1,
19256 "type" : "integer"
19257 },
19258 "iops_max" : {
19259 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
19260 "format_description" : "iops",
19261 "optional" : 1,
19262 "type" : "integer"
19263 },
19264 "iops_max_length" : {
19265 "description" : "Maximum length of I/O bursts in seconds.",
19266 "format_description" : "seconds",
19267 "minimum" : 1,
19268 "optional" : 1,
19269 "type" : "integer"
19270 },
19271 "iops_rd" : {
19272 "description" : "Maximum read I/O in operations per second.",
19273 "format_description" : "iops",
19274 "optional" : 1,
19275 "type" : "integer"
19276 },
19277 "iops_rd_length" : {
19278 "alias" : "iops_rd_max_length"
19279 },
19280 "iops_rd_max" : {
19281 "description" : "Maximum unthrottled read I/O pool in operations per second.",
19282 "format_description" : "iops",
19283 "optional" : 1,
19284 "type" : "integer"
19285 },
19286 "iops_rd_max_length" : {
19287 "description" : "Maximum length of read I/O bursts in seconds.",
19288 "format_description" : "seconds",
19289 "minimum" : 1,
19290 "optional" : 1,
19291 "type" : "integer"
19292 },
19293 "iops_wr" : {
19294 "description" : "Maximum write I/O in operations per second.",
19295 "format_description" : "iops",
19296 "optional" : 1,
19297 "type" : "integer"
19298 },
19299 "iops_wr_length" : {
19300 "alias" : "iops_wr_max_length"
19301 },
19302 "iops_wr_max" : {
19303 "description" : "Maximum unthrottled write I/O pool in operations per second.",
19304 "format_description" : "iops",
19305 "optional" : 1,
19306 "type" : "integer"
19307 },
19308 "iops_wr_max_length" : {
19309 "description" : "Maximum length of write I/O bursts in seconds.",
19310 "format_description" : "seconds",
19311 "minimum" : 1,
19312 "optional" : 1,
19313 "type" : "integer"
19314 },
19315 "mbps" : {
19316 "description" : "Maximum r/w speed in megabytes per second.",
19317 "format_description" : "mbps",
19318 "optional" : 1,
19319 "type" : "number"
19320 },
19321 "mbps_max" : {
19322 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
19323 "format_description" : "mbps",
19324 "optional" : 1,
19325 "type" : "number"
19326 },
19327 "mbps_rd" : {
19328 "description" : "Maximum read speed in megabytes per second.",
19329 "format_description" : "mbps",
19330 "optional" : 1,
19331 "type" : "number"
19332 },
19333 "mbps_rd_max" : {
19334 "description" : "Maximum unthrottled read pool in megabytes per second.",
19335 "format_description" : "mbps",
19336 "optional" : 1,
19337 "type" : "number"
19338 },
19339 "mbps_wr" : {
19340 "description" : "Maximum write speed in megabytes per second.",
19341 "format_description" : "mbps",
19342 "optional" : 1,
19343 "type" : "number"
19344 },
19345 "mbps_wr_max" : {
19346 "description" : "Maximum unthrottled write pool in megabytes per second.",
19347 "format_description" : "mbps",
19348 "optional" : 1,
19349 "type" : "number"
19350 },
19351 "media" : {
19352 "default" : "disk",
19353 "description" : "The drive's media type.",
19354 "enum" : [
19355 "cdrom",
19356 "disk"
19357 ],
19358 "optional" : 1,
19359 "type" : "string"
19360 },
19361 "replicate" : {
19362 "default" : 1,
19363 "description" : "Whether the drive should considered for replication jobs.",
19364 "optional" : 1,
19365 "type" : "boolean"
19366 },
19367 "rerror" : {
19368 "description" : "Read error action.",
19369 "enum" : [
19370 "ignore",
19371 "report",
19372 "stop"
19373 ],
19374 "optional" : 1,
19375 "type" : "string"
19376 },
19377 "secs" : {
19378 "description" : "Force the drive's physical geometry to have a specific sector count.",
19379 "optional" : 1,
19380 "type" : "integer"
19381 },
19382 "serial" : {
19383 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
19384 "format" : "urlencoded",
19385 "format_description" : "serial",
19386 "maxLength" : 60,
19387 "optional" : 1,
19388 "type" : "string"
19389 },
19390 "shared" : {
19391 "default" : 0,
19392 "description" : "Mark this locally-managed volume as available on all nodes",
19393 "optional" : 1,
19394 "type" : "boolean",
19395 "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
19396 },
19397 "size" : {
19398 "description" : "Disk size. This is purely informational and has no effect.",
19399 "format" : "disk-size",
19400 "format_description" : "DiskSize",
19401 "optional" : 1,
19402 "type" : "string"
19403 },
19404 "snapshot" : {
19405 "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
19406 "optional" : 1,
19407 "type" : "boolean"
19408 },
25203dc1
NC
19409 "ssd" : {
19410 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
19411 "optional" : 1,
19412 "type" : "boolean"
19413 },
4d47f125
TL
19414 "trans" : {
19415 "description" : "Force disk geometry bios translation mode.",
19416 "enum" : [
19417 "none",
19418 "lba",
19419 "auto"
19420 ],
19421 "optional" : 1,
19422 "type" : "string"
19423 },
19424 "volume" : {
19425 "alias" : "file"
19426 },
19427 "werror" : {
19428 "description" : "Write error action.",
19429 "enum" : [
19430 "enospc",
19431 "ignore",
19432 "report",
19433 "stop"
19434 ],
19435 "optional" : 1,
19436 "type" : "string"
95895385
TL
19437 },
19438 "wwn" : {
19439 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
19440 "format_description" : "wwn",
19441 "optional" : 1,
19442 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
19443 "type" : "string"
4d47f125
TL
19444 }
19445 },
19446 "optional" : 1,
19447 "type" : "string",
7af2edf9 19448 "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
19449 },
19450 "scsi[n]" : {
7af2edf9 19451 "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
19452 "format" : {
19453 "aio" : {
19454 "description" : "AIO type to use.",
19455 "enum" : [
19456 "native",
8f4d9c87
TL
19457 "threads",
19458 "io_uring"
4d47f125
TL
19459 ],
19460 "optional" : 1,
19461 "type" : "string"
19462 },
19463 "backup" : {
19464 "description" : "Whether the drive should be included when making backups.",
19465 "optional" : 1,
19466 "type" : "boolean"
19467 },
19468 "bps" : {
19469 "description" : "Maximum r/w speed in bytes per second.",
19470 "format_description" : "bps",
19471 "optional" : 1,
19472 "type" : "integer"
19473 },
19474 "bps_max_length" : {
19475 "description" : "Maximum length of I/O bursts in seconds.",
19476 "format_description" : "seconds",
19477 "minimum" : 1,
19478 "optional" : 1,
19479 "type" : "integer"
19480 },
19481 "bps_rd" : {
19482 "description" : "Maximum read speed in bytes per second.",
19483 "format_description" : "bps",
19484 "optional" : 1,
19485 "type" : "integer"
19486 },
19487 "bps_rd_length" : {
19488 "alias" : "bps_rd_max_length"
19489 },
19490 "bps_rd_max_length" : {
19491 "description" : "Maximum length of read I/O bursts in seconds.",
19492 "format_description" : "seconds",
19493 "minimum" : 1,
19494 "optional" : 1,
19495 "type" : "integer"
19496 },
19497 "bps_wr" : {
19498 "description" : "Maximum write speed in bytes per second.",
19499 "format_description" : "bps",
19500 "optional" : 1,
19501 "type" : "integer"
19502 },
19503 "bps_wr_length" : {
19504 "alias" : "bps_wr_max_length"
19505 },
19506 "bps_wr_max_length" : {
19507 "description" : "Maximum length of write I/O bursts in seconds.",
19508 "format_description" : "seconds",
19509 "minimum" : 1,
19510 "optional" : 1,
19511 "type" : "integer"
19512 },
19513 "cache" : {
19514 "description" : "The drive's cache mode",
19515 "enum" : [
19516 "none",
19517 "writethrough",
19518 "writeback",
19519 "unsafe",
19520 "directsync"
19521 ],
19522 "optional" : 1,
19523 "type" : "string"
19524 },
19525 "cyls" : {
19526 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
19527 "optional" : 1,
19528 "type" : "integer"
19529 },
19530 "detect_zeroes" : {
19531 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
19532 "optional" : 1,
19533 "type" : "boolean"
19534 },
19535 "discard" : {
19536 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
19537 "enum" : [
19538 "ignore",
19539 "on"
19540 ],
19541 "optional" : 1,
19542 "type" : "string"
19543 },
19544 "file" : {
19545 "default_key" : 1,
19546 "description" : "The drive's backing volume.",
19547 "format" : "pve-volume-id-or-qm-path",
19548 "format_description" : "volume",
19549 "type" : "string"
19550 },
19551 "format" : {
19552 "description" : "The drive's backing file's data format.",
19553 "enum" : [
19554 "raw",
19555 "cow",
19556 "qcow",
19557 "qed",
19558 "qcow2",
19559 "vmdk",
19560 "cloop"
19561 ],
19562 "optional" : 1,
19563 "type" : "string"
19564 },
19565 "heads" : {
19566 "description" : "Force the drive's physical geometry to have a specific head count.",
19567 "optional" : 1,
19568 "type" : "integer"
19569 },
7af2edf9
TL
19570 "import-from" : {
19571 "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!",
19572 "format" : "pve-volume-id-or-absolute-path",
19573 "format_description" : "source volume",
19574 "optional" : 1,
19575 "type" : "string"
19576 },
4d47f125
TL
19577 "iops" : {
19578 "description" : "Maximum r/w I/O in operations per second.",
19579 "format_description" : "iops",
19580 "optional" : 1,
19581 "type" : "integer"
19582 },
19583 "iops_max" : {
19584 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
19585 "format_description" : "iops",
19586 "optional" : 1,
19587 "type" : "integer"
19588 },
19589 "iops_max_length" : {
19590 "description" : "Maximum length of I/O bursts in seconds.",
19591 "format_description" : "seconds",
19592 "minimum" : 1,
19593 "optional" : 1,
19594 "type" : "integer"
19595 },
19596 "iops_rd" : {
19597 "description" : "Maximum read I/O in operations per second.",
19598 "format_description" : "iops",
19599 "optional" : 1,
19600 "type" : "integer"
19601 },
19602 "iops_rd_length" : {
19603 "alias" : "iops_rd_max_length"
19604 },
19605 "iops_rd_max" : {
19606 "description" : "Maximum unthrottled read I/O pool in operations per second.",
19607 "format_description" : "iops",
19608 "optional" : 1,
19609 "type" : "integer"
19610 },
19611 "iops_rd_max_length" : {
19612 "description" : "Maximum length of read I/O bursts in seconds.",
19613 "format_description" : "seconds",
19614 "minimum" : 1,
19615 "optional" : 1,
19616 "type" : "integer"
19617 },
19618 "iops_wr" : {
19619 "description" : "Maximum write I/O in operations per second.",
19620 "format_description" : "iops",
19621 "optional" : 1,
19622 "type" : "integer"
19623 },
19624 "iops_wr_length" : {
19625 "alias" : "iops_wr_max_length"
19626 },
19627 "iops_wr_max" : {
19628 "description" : "Maximum unthrottled write I/O pool in operations per second.",
19629 "format_description" : "iops",
19630 "optional" : 1,
19631 "type" : "integer"
19632 },
19633 "iops_wr_max_length" : {
19634 "description" : "Maximum length of write I/O bursts in seconds.",
19635 "format_description" : "seconds",
19636 "minimum" : 1,
19637 "optional" : 1,
19638 "type" : "integer"
19639 },
19640 "iothread" : {
19641 "description" : "Whether to use iothreads for this drive",
19642 "optional" : 1,
19643 "type" : "boolean"
19644 },
19645 "mbps" : {
19646 "description" : "Maximum r/w speed in megabytes per second.",
19647 "format_description" : "mbps",
19648 "optional" : 1,
19649 "type" : "number"
19650 },
19651 "mbps_max" : {
19652 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
19653 "format_description" : "mbps",
19654 "optional" : 1,
19655 "type" : "number"
19656 },
19657 "mbps_rd" : {
19658 "description" : "Maximum read speed in megabytes per second.",
19659 "format_description" : "mbps",
19660 "optional" : 1,
19661 "type" : "number"
19662 },
19663 "mbps_rd_max" : {
19664 "description" : "Maximum unthrottled read pool in megabytes per second.",
19665 "format_description" : "mbps",
19666 "optional" : 1,
19667 "type" : "number"
19668 },
19669 "mbps_wr" : {
19670 "description" : "Maximum write speed in megabytes per second.",
19671 "format_description" : "mbps",
19672 "optional" : 1,
19673 "type" : "number"
19674 },
19675 "mbps_wr_max" : {
19676 "description" : "Maximum unthrottled write pool in megabytes per second.",
19677 "format_description" : "mbps",
19678 "optional" : 1,
19679 "type" : "number"
19680 },
19681 "media" : {
19682 "default" : "disk",
19683 "description" : "The drive's media type.",
19684 "enum" : [
19685 "cdrom",
19686 "disk"
19687 ],
19688 "optional" : 1,
19689 "type" : "string"
19690 },
19691 "queues" : {
19692 "description" : "Number of queues.",
19693 "minimum" : 2,
19694 "optional" : 1,
19695 "type" : "integer"
19696 },
19697 "replicate" : {
19698 "default" : 1,
19699 "description" : "Whether the drive should considered for replication jobs.",
19700 "optional" : 1,
19701 "type" : "boolean"
19702 },
19703 "rerror" : {
19704 "description" : "Read error action.",
19705 "enum" : [
19706 "ignore",
19707 "report",
19708 "stop"
19709 ],
19710 "optional" : 1,
19711 "type" : "string"
19712 },
5370fa8c
TL
19713 "ro" : {
19714 "description" : "Whether the drive is read-only.",
19715 "optional" : 1,
19716 "type" : "boolean"
19717 },
4d47f125
TL
19718 "scsiblock" : {
19719 "default" : 0,
19720 "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",
19721 "optional" : 1,
19722 "type" : "boolean"
19723 },
19724 "secs" : {
19725 "description" : "Force the drive's physical geometry to have a specific sector count.",
19726 "optional" : 1,
19727 "type" : "integer"
19728 },
19729 "serial" : {
19730 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
19731 "format" : "urlencoded",
19732 "format_description" : "serial",
19733 "maxLength" : 60,
19734 "optional" : 1,
19735 "type" : "string"
19736 },
19737 "shared" : {
19738 "default" : 0,
19739 "description" : "Mark this locally-managed volume as available on all nodes",
19740 "optional" : 1,
19741 "type" : "boolean",
19742 "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!"
19743 },
19744 "size" : {
19745 "description" : "Disk size. This is purely informational and has no effect.",
19746 "format" : "disk-size",
19747 "format_description" : "DiskSize",
19748 "optional" : 1,
19749 "type" : "string"
19750 },
19751 "snapshot" : {
19752 "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.",
19753 "optional" : 1,
19754 "type" : "boolean"
19755 },
25203dc1
NC
19756 "ssd" : {
19757 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
19758 "optional" : 1,
19759 "type" : "boolean"
19760 },
4d47f125
TL
19761 "trans" : {
19762 "description" : "Force disk geometry bios translation mode.",
19763 "enum" : [
19764 "none",
19765 "lba",
19766 "auto"
19767 ],
19768 "optional" : 1,
19769 "type" : "string"
19770 },
19771 "volume" : {
19772 "alias" : "file"
19773 },
19774 "werror" : {
19775 "description" : "Write error action.",
19776 "enum" : [
19777 "enospc",
19778 "ignore",
19779 "report",
19780 "stop"
19781 ],
19782 "optional" : 1,
19783 "type" : "string"
95895385
TL
19784 },
19785 "wwn" : {
19786 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
19787 "format_description" : "wwn",
19788 "optional" : 1,
19789 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
19790 "type" : "string"
4d47f125
TL
19791 }
19792 },
19793 "optional" : 1,
19794 "type" : "string",
7af2edf9 19795 "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
19796 },
19797 "scsihw" : {
19798 "default" : "lsi",
19799 "description" : "SCSI controller model",
19800 "enum" : [
19801 "lsi",
19802 "lsi53c810",
19803 "virtio-scsi-pci",
19804 "virtio-scsi-single",
19805 "megasas",
19806 "pvscsi"
19807 ],
19808 "optional" : 1,
19809 "type" : "string"
19810 },
19811 "searchdomain" : {
de786b48 19812 "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
19813 "optional" : 1,
19814 "type" : "string",
19815 "typetext" : "<string>"
19816 },
19817 "serial[n]" : {
19818 "description" : "Create a serial device inside the VM (n is 0 to 3)",
19819 "optional" : 1,
19820 "pattern" : "(/dev/.+|socket)",
19821 "type" : "string",
4772952b 19822 "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
19823 },
19824 "shares" : {
19825 "default" : 1000,
19826 "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.",
19827 "maximum" : 50000,
19828 "minimum" : 0,
19829 "optional" : 1,
19830 "type" : "integer",
19831 "typetext" : "<integer> (0 - 50000)"
19832 },
19833 "skiplock" : {
19834 "description" : "Ignore locks - only root is allowed to use this option.",
19835 "optional" : 1,
19836 "type" : "boolean",
19837 "typetext" : "<boolean>"
19838 },
19839 "smbios1" : {
19840 "description" : "Specify SMBIOS type 1 fields.",
19841 "format" : "pve-qm-smbios1",
1e3f8156 19842 "maxLength" : 512,
4d47f125
TL
19843 "optional" : 1,
19844 "type" : "string",
1e3f8156 19845 "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
19846 },
19847 "smp" : {
19848 "default" : 1,
19849 "description" : "The number of CPUs. Please use option -sockets instead.",
19850 "minimum" : 1,
19851 "optional" : 1,
19852 "type" : "integer",
19853 "typetext" : "<integer> (1 - N)"
19854 },
19855 "sockets" : {
19856 "default" : 1,
19857 "description" : "The number of CPU sockets.",
19858 "minimum" : 1,
19859 "optional" : 1,
19860 "type" : "integer",
19861 "typetext" : "<integer> (1 - N)"
19862 },
1c532546
TL
19863 "spice_enhancements" : {
19864 "description" : "Configure additional enhancements for SPICE.",
19865 "format" : {
19866 "foldersharing" : {
19867 "default" : "0",
19868 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
19869 "optional" : 1,
19870 "type" : "boolean"
19871 },
19872 "videostreaming" : {
19873 "default" : "off",
19874 "description" : "Enable video streaming. Uses compression for detected video streams.",
19875 "enum" : [
19876 "off",
19877 "all",
19878 "filter"
19879 ],
19880 "optional" : 1,
19881 "type" : "string"
19882 }
19883 },
19884 "optional" : 1,
19885 "type" : "string",
19886 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
19887 },
4d47f125
TL
19888 "sshkeys" : {
19889 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
19890 "format" : "urlencoded",
19891 "optional" : 1,
19892 "type" : "string",
19893 "typetext" : "<string>"
19894 },
19895 "startdate" : {
19896 "default" : "now",
4772952b 19897 "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
19898 "optional" : 1,
19899 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
19900 "type" : "string",
19901 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
19902 },
19903 "startup" : {
19904 "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.",
19905 "format" : "pve-startup-order",
19906 "optional" : 1,
19907 "type" : "string",
19908 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
19909 },
19910 "tablet" : {
19911 "default" : 1,
19912 "description" : "Enable/disable the USB tablet device.",
19913 "optional" : 1,
19914 "type" : "boolean",
19915 "typetext" : "<boolean>",
4772952b 19916 "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 19917 },
5c1699e5
TL
19918 "tags" : {
19919 "description" : "Tags of the VM. This is only meta information.",
19920 "format" : "pve-tag-list",
19921 "optional" : 1,
19922 "type" : "string",
19923 "typetext" : "<string>"
19924 },
4d47f125
TL
19925 "tdf" : {
19926 "default" : 0,
19927 "description" : "Enable/disable time drift fix.",
19928 "optional" : 1,
19929 "type" : "boolean",
19930 "typetext" : "<boolean>"
19931 },
19932 "template" : {
19933 "default" : 0,
19934 "description" : "Enable/disable Template.",
19935 "optional" : 1,
19936 "type" : "boolean",
19937 "typetext" : "<boolean>"
19938 },
5370fa8c 19939 "tpmstate0" : {
7af2edf9 19940 "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
19941 "format" : {
19942 "file" : {
19943 "default_key" : 1,
19944 "description" : "The drive's backing volume.",
19945 "format" : "pve-volume-id-or-qm-path",
19946 "format_description" : "volume",
19947 "type" : "string"
19948 },
7af2edf9
TL
19949 "import-from" : {
19950 "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!",
19951 "format" : "pve-volume-id-or-absolute-path",
19952 "format_description" : "source volume",
19953 "optional" : 1,
19954 "type" : "string"
19955 },
5370fa8c
TL
19956 "size" : {
19957 "description" : "Disk size. This is purely informational and has no effect.",
19958 "format" : "disk-size",
19959 "format_description" : "DiskSize",
19960 "optional" : 1,
19961 "type" : "string"
19962 },
19963 "version" : {
19964 "default" : "v2.0",
19965 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
19966 "enum" : [
19967 "v1.2",
19968 "v2.0"
19969 ],
19970 "optional" : 1,
19971 "type" : "string"
19972 },
19973 "volume" : {
19974 "alias" : "file"
19975 }
19976 },
19977 "optional" : 1,
19978 "type" : "string",
7af2edf9 19979 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 19980 },
4d47f125
TL
19981 "unused[n]" : {
19982 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
19983 "format" : {
19984 "file" : {
19985 "default_key" : 1,
19986 "description" : "The drive's backing volume.",
19987 "format" : "pve-volume-id",
19988 "format_description" : "volume",
19989 "type" : "string"
19990 },
19991 "volume" : {
19992 "alias" : "file"
19993 }
19994 },
4d47f125
TL
19995 "optional" : 1,
19996 "type" : "string",
c5aa7e14 19997 "typetext" : "[file=]<volume>"
4d47f125
TL
19998 },
19999 "usb[n]" : {
4e7f60c2 20000 "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
20001 "format" : {
20002 "host" : {
20003 "default_key" : 1,
4772952b 20004 "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
20005 "format" : "pve-qm-usb-device",
20006 "format_description" : "HOSTUSBDEVICE|spice",
20007 "type" : "string"
20008 },
20009 "usb3" : {
20010 "default" : 0,
4e7f60c2 20011 "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
20012 "optional" : 1,
20013 "type" : "boolean"
20014 }
20015 },
20016 "optional" : 1,
20017 "type" : "string",
20018 "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
20019 },
20020 "vcpus" : {
20021 "default" : 0,
20022 "description" : "Number of hotplugged vcpus.",
20023 "minimum" : 1,
20024 "optional" : 1,
20025 "type" : "integer",
20026 "typetext" : "<integer> (1 - N)"
20027 },
20028 "vga" : {
e2d681b3
TL
20029 "description" : "Configure the VGA hardware.",
20030 "format" : {
20031 "memory" : {
20032 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
20033 "maximum" : 512,
20034 "minimum" : 4,
20035 "optional" : 1,
20036 "type" : "integer"
20037 },
20038 "type" : {
20039 "default" : "std",
20040 "default_key" : 1,
20041 "description" : "Select the VGA type.",
20042 "enum" : [
20043 "cirrus",
20044 "qxl",
20045 "qxl2",
20046 "qxl3",
20047 "qxl4",
5f26e15b 20048 "none",
e2d681b3
TL
20049 "serial0",
20050 "serial1",
20051 "serial2",
20052 "serial3",
20053 "std",
20054 "virtio",
7af2edf9 20055 "virtio-gl",
e2d681b3
TL
20056 "vmware"
20057 ],
20058 "optional" : 1,
20059 "type" : "string"
20060 }
20061 },
4d47f125
TL
20062 "optional" : 1,
20063 "type" : "string",
e2d681b3
TL
20064 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
20065 "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
20066 },
20067 "virtio[n]" : {
7af2edf9 20068 "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
20069 "format" : {
20070 "aio" : {
20071 "description" : "AIO type to use.",
20072 "enum" : [
20073 "native",
8f4d9c87
TL
20074 "threads",
20075 "io_uring"
4d47f125
TL
20076 ],
20077 "optional" : 1,
20078 "type" : "string"
20079 },
20080 "backup" : {
20081 "description" : "Whether the drive should be included when making backups.",
20082 "optional" : 1,
20083 "type" : "boolean"
20084 },
20085 "bps" : {
20086 "description" : "Maximum r/w speed in bytes per second.",
20087 "format_description" : "bps",
20088 "optional" : 1,
20089 "type" : "integer"
20090 },
20091 "bps_max_length" : {
20092 "description" : "Maximum length of I/O bursts in seconds.",
20093 "format_description" : "seconds",
20094 "minimum" : 1,
20095 "optional" : 1,
20096 "type" : "integer"
20097 },
20098 "bps_rd" : {
20099 "description" : "Maximum read speed in bytes per second.",
20100 "format_description" : "bps",
20101 "optional" : 1,
20102 "type" : "integer"
20103 },
20104 "bps_rd_length" : {
20105 "alias" : "bps_rd_max_length"
20106 },
20107 "bps_rd_max_length" : {
20108 "description" : "Maximum length of read I/O bursts in seconds.",
20109 "format_description" : "seconds",
20110 "minimum" : 1,
20111 "optional" : 1,
20112 "type" : "integer"
20113 },
20114 "bps_wr" : {
20115 "description" : "Maximum write speed in bytes per second.",
20116 "format_description" : "bps",
20117 "optional" : 1,
20118 "type" : "integer"
20119 },
20120 "bps_wr_length" : {
20121 "alias" : "bps_wr_max_length"
20122 },
20123 "bps_wr_max_length" : {
20124 "description" : "Maximum length of write I/O bursts in seconds.",
20125 "format_description" : "seconds",
20126 "minimum" : 1,
20127 "optional" : 1,
20128 "type" : "integer"
20129 },
20130 "cache" : {
20131 "description" : "The drive's cache mode",
20132 "enum" : [
20133 "none",
20134 "writethrough",
20135 "writeback",
20136 "unsafe",
20137 "directsync"
20138 ],
20139 "optional" : 1,
20140 "type" : "string"
20141 },
20142 "cyls" : {
20143 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
20144 "optional" : 1,
20145 "type" : "integer"
20146 },
20147 "detect_zeroes" : {
20148 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
20149 "optional" : 1,
20150 "type" : "boolean"
20151 },
20152 "discard" : {
20153 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
20154 "enum" : [
20155 "ignore",
20156 "on"
20157 ],
20158 "optional" : 1,
20159 "type" : "string"
20160 },
20161 "file" : {
20162 "default_key" : 1,
20163 "description" : "The drive's backing volume.",
20164 "format" : "pve-volume-id-or-qm-path",
20165 "format_description" : "volume",
20166 "type" : "string"
20167 },
20168 "format" : {
20169 "description" : "The drive's backing file's data format.",
20170 "enum" : [
20171 "raw",
20172 "cow",
20173 "qcow",
20174 "qed",
20175 "qcow2",
20176 "vmdk",
20177 "cloop"
20178 ],
20179 "optional" : 1,
20180 "type" : "string"
20181 },
20182 "heads" : {
20183 "description" : "Force the drive's physical geometry to have a specific head count.",
20184 "optional" : 1,
20185 "type" : "integer"
20186 },
7af2edf9
TL
20187 "import-from" : {
20188 "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!",
20189 "format" : "pve-volume-id-or-absolute-path",
20190 "format_description" : "source volume",
20191 "optional" : 1,
20192 "type" : "string"
20193 },
4d47f125
TL
20194 "iops" : {
20195 "description" : "Maximum r/w I/O in operations per second.",
20196 "format_description" : "iops",
20197 "optional" : 1,
20198 "type" : "integer"
20199 },
20200 "iops_max" : {
20201 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
20202 "format_description" : "iops",
20203 "optional" : 1,
20204 "type" : "integer"
20205 },
20206 "iops_max_length" : {
20207 "description" : "Maximum length of I/O bursts in seconds.",
20208 "format_description" : "seconds",
20209 "minimum" : 1,
20210 "optional" : 1,
20211 "type" : "integer"
20212 },
20213 "iops_rd" : {
20214 "description" : "Maximum read I/O in operations per second.",
20215 "format_description" : "iops",
20216 "optional" : 1,
20217 "type" : "integer"
20218 },
20219 "iops_rd_length" : {
20220 "alias" : "iops_rd_max_length"
20221 },
20222 "iops_rd_max" : {
20223 "description" : "Maximum unthrottled read I/O pool in operations per second.",
20224 "format_description" : "iops",
20225 "optional" : 1,
20226 "type" : "integer"
20227 },
20228 "iops_rd_max_length" : {
20229 "description" : "Maximum length of read I/O bursts in seconds.",
20230 "format_description" : "seconds",
20231 "minimum" : 1,
20232 "optional" : 1,
20233 "type" : "integer"
20234 },
20235 "iops_wr" : {
20236 "description" : "Maximum write I/O in operations per second.",
20237 "format_description" : "iops",
20238 "optional" : 1,
20239 "type" : "integer"
20240 },
20241 "iops_wr_length" : {
20242 "alias" : "iops_wr_max_length"
20243 },
20244 "iops_wr_max" : {
20245 "description" : "Maximum unthrottled write I/O pool in operations per second.",
20246 "format_description" : "iops",
20247 "optional" : 1,
20248 "type" : "integer"
20249 },
20250 "iops_wr_max_length" : {
20251 "description" : "Maximum length of write I/O bursts in seconds.",
20252 "format_description" : "seconds",
20253 "minimum" : 1,
20254 "optional" : 1,
20255 "type" : "integer"
20256 },
20257 "iothread" : {
20258 "description" : "Whether to use iothreads for this drive",
20259 "optional" : 1,
20260 "type" : "boolean"
20261 },
20262 "mbps" : {
20263 "description" : "Maximum r/w speed in megabytes per second.",
20264 "format_description" : "mbps",
20265 "optional" : 1,
20266 "type" : "number"
20267 },
20268 "mbps_max" : {
20269 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
20270 "format_description" : "mbps",
20271 "optional" : 1,
20272 "type" : "number"
20273 },
20274 "mbps_rd" : {
20275 "description" : "Maximum read speed in megabytes per second.",
20276 "format_description" : "mbps",
20277 "optional" : 1,
20278 "type" : "number"
20279 },
20280 "mbps_rd_max" : {
20281 "description" : "Maximum unthrottled read pool in megabytes per second.",
20282 "format_description" : "mbps",
20283 "optional" : 1,
20284 "type" : "number"
20285 },
20286 "mbps_wr" : {
20287 "description" : "Maximum write speed in megabytes per second.",
20288 "format_description" : "mbps",
20289 "optional" : 1,
20290 "type" : "number"
20291 },
20292 "mbps_wr_max" : {
20293 "description" : "Maximum unthrottled write pool in megabytes per second.",
20294 "format_description" : "mbps",
20295 "optional" : 1,
20296 "type" : "number"
20297 },
20298 "media" : {
20299 "default" : "disk",
20300 "description" : "The drive's media type.",
20301 "enum" : [
20302 "cdrom",
20303 "disk"
20304 ],
20305 "optional" : 1,
20306 "type" : "string"
20307 },
20308 "replicate" : {
20309 "default" : 1,
20310 "description" : "Whether the drive should considered for replication jobs.",
20311 "optional" : 1,
20312 "type" : "boolean"
20313 },
20314 "rerror" : {
20315 "description" : "Read error action.",
20316 "enum" : [
20317 "ignore",
20318 "report",
20319 "stop"
20320 ],
20321 "optional" : 1,
20322 "type" : "string"
20323 },
5370fa8c
TL
20324 "ro" : {
20325 "description" : "Whether the drive is read-only.",
20326 "optional" : 1,
20327 "type" : "boolean"
20328 },
4d47f125
TL
20329 "secs" : {
20330 "description" : "Force the drive's physical geometry to have a specific sector count.",
20331 "optional" : 1,
20332 "type" : "integer"
20333 },
20334 "serial" : {
20335 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
20336 "format" : "urlencoded",
20337 "format_description" : "serial",
20338 "maxLength" : 60,
20339 "optional" : 1,
20340 "type" : "string"
20341 },
20342 "shared" : {
20343 "default" : 0,
20344 "description" : "Mark this locally-managed volume as available on all nodes",
20345 "optional" : 1,
20346 "type" : "boolean",
20347 "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!"
20348 },
20349 "size" : {
20350 "description" : "Disk size. This is purely informational and has no effect.",
20351 "format" : "disk-size",
20352 "format_description" : "DiskSize",
20353 "optional" : 1,
20354 "type" : "string"
20355 },
20356 "snapshot" : {
20357 "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.",
20358 "optional" : 1,
20359 "type" : "boolean"
20360 },
20361 "trans" : {
20362 "description" : "Force disk geometry bios translation mode.",
20363 "enum" : [
20364 "none",
20365 "lba",
20366 "auto"
20367 ],
20368 "optional" : 1,
20369 "type" : "string"
20370 },
20371 "volume" : {
20372 "alias" : "file"
20373 },
20374 "werror" : {
20375 "description" : "Write error action.",
20376 "enum" : [
20377 "enospc",
20378 "ignore",
20379 "report",
20380 "stop"
20381 ],
20382 "optional" : 1,
20383 "type" : "string"
20384 }
20385 },
20386 "optional" : 1,
20387 "type" : "string",
7af2edf9 20388 "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
20389 },
20390 "vmgenid" : {
20391 "default" : "1 (autogenerated)",
20392 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
20393 "format_description" : "UUID",
20394 "optional" : 1,
20395 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
20396 "type" : "string",
4772952b 20397 "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
20398 },
20399 "vmid" : {
20400 "description" : "The (unique) ID of the VM.",
20401 "format" : "pve-vmid",
20402 "minimum" : 1,
20403 "type" : "integer",
20404 "typetext" : "<integer> (1 - N)"
20405 },
20406 "vmstatestorage" : {
20407 "description" : "Default storage for VM state volumes/files.",
20408 "format" : "pve-storage-id",
20409 "optional" : 1,
20410 "type" : "string",
20411 "typetext" : "<string>"
20412 },
20413 "watchdog" : {
20414 "description" : "Create a virtual hardware watchdog device.",
20415 "format" : "pve-qm-watchdog",
20416 "optional" : 1,
20417 "type" : "string",
20418 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
20419 "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)"
20420 }
20421 }
20422 },
20423 "permissions" : {
20424 "check" : [
20425 "perm",
20426 "/vms/{vmid}",
20427 [
20428 "VM.Config.Disk",
20429 "VM.Config.CDROM",
20430 "VM.Config.CPU",
20431 "VM.Config.Memory",
20432 "VM.Config.Network",
20433 "VM.Config.HWType",
ac70d7d1
TL
20434 "VM.Config.Options",
20435 "VM.Config.Cloudinit"
4d47f125
TL
20436 ],
20437 "any",
20438 1
20439 ]
20440 },
20441 "protected" : 1,
20442 "proxyto" : "node",
20443 "returns" : {
20444 "type" : "null"
20445 }
20446 }
20447 },
20448 "leaf" : 1,
20449 "path" : "/nodes/{node}/qemu/{vmid}/config",
20450 "text" : "config"
20451 },
20452 {
20453 "info" : {
20454 "GET" : {
e9cd3bd4
TL
20455 "allowtoken" : 1,
20456 "description" : "Get the virtual machine configuration with both current and pending values.",
4d47f125
TL
20457 "method" : "GET",
20458 "name" : "vm_pending",
20459 "parameters" : {
20460 "additionalProperties" : 0,
20461 "properties" : {
20462 "node" : {
20463 "description" : "The cluster node name.",
20464 "format" : "pve-node",
20465 "type" : "string",
20466 "typetext" : "<string>"
20467 },
20468 "vmid" : {
20469 "description" : "The (unique) ID of the VM.",
20470 "format" : "pve-vmid",
20471 "minimum" : 1,
20472 "type" : "integer",
20473 "typetext" : "<integer> (1 - N)"
20474 }
20475 }
20476 },
20477 "permissions" : {
20478 "check" : [
20479 "perm",
20480 "/vms/{vmid}",
20481 [
20482 "VM.Audit"
20483 ]
20484 ]
20485 },
20486 "proxyto" : "node",
20487 "returns" : {
20488 "items" : {
20489 "properties" : {
20490 "delete" : {
20491 "description" : "Indicates a pending delete request if present and not 0. The value 2 indicates a force-delete request.",
20492 "maximum" : 2,
20493 "minimum" : 0,
20494 "optional" : 1,
20495 "type" : "integer"
20496 },
20497 "key" : {
20498 "description" : "Configuration option name.",
20499 "type" : "string"
20500 },
20501 "pending" : {
20502 "description" : "Pending value.",
20503 "optional" : 1,
20504 "type" : "string"
20505 },
20506 "value" : {
20507 "description" : "Current value.",
20508 "optional" : 1,
20509 "type" : "string"
20510 }
20511 },
20512 "type" : "object"
20513 },
20514 "type" : "array"
20515 }
20516 }
20517 },
20518 "leaf" : 1,
20519 "path" : "/nodes/{node}/qemu/{vmid}/pending",
20520 "text" : "pending"
20521 },
4e7f60c2
TL
20522 {
20523 "children" : [
20524 {
20525 "info" : {
20526 "GET" : {
20527 "allowtoken" : 1,
20528 "description" : "Get automatically generated cloudinit config.",
20529 "method" : "GET",
20530 "name" : "cloudinit_generated_config_dump",
20531 "parameters" : {
20532 "additionalProperties" : 0,
20533 "properties" : {
20534 "node" : {
20535 "description" : "The cluster node name.",
20536 "format" : "pve-node",
20537 "type" : "string",
20538 "typetext" : "<string>"
20539 },
20540 "type" : {
20541 "description" : "Config type.",
20542 "enum" : [
20543 "user",
20544 "network",
20545 "meta"
20546 ],
20547 "type" : "string"
20548 },
20549 "vmid" : {
20550 "description" : "The (unique) ID of the VM.",
20551 "format" : "pve-vmid",
20552 "minimum" : 1,
20553 "type" : "integer",
20554 "typetext" : "<integer> (1 - N)"
20555 }
20556 }
20557 },
20558 "permissions" : {
20559 "check" : [
20560 "perm",
20561 "/vms/{vmid}",
20562 [
20563 "VM.Audit"
20564 ]
20565 ]
20566 },
20567 "proxyto" : "node",
20568 "returns" : {
20569 "type" : "string"
20570 }
20571 }
20572 },
20573 "leaf" : 1,
20574 "path" : "/nodes/{node}/qemu/{vmid}/cloudinit/dump",
20575 "text" : "dump"
20576 }
20577 ],
20578 "info" : {
20579 "GET" : {
20580 "allowtoken" : 1,
20581 "description" : "Get the cloudinit configuration with both current and pending values.",
20582 "method" : "GET",
20583 "name" : "cloudinit_pending",
20584 "parameters" : {
20585 "additionalProperties" : 0,
20586 "properties" : {
20587 "node" : {
20588 "description" : "The cluster node name.",
20589 "format" : "pve-node",
20590 "type" : "string",
20591 "typetext" : "<string>"
20592 },
20593 "vmid" : {
20594 "description" : "The (unique) ID of the VM.",
20595 "format" : "pve-vmid",
20596 "minimum" : 1,
20597 "type" : "integer",
20598 "typetext" : "<integer> (1 - N)"
20599 }
20600 }
20601 },
20602 "permissions" : {
20603 "check" : [
20604 "perm",
20605 "/vms/{vmid}",
20606 [
20607 "VM.Audit"
20608 ]
20609 ]
20610 },
20611 "proxyto" : "node",
20612 "returns" : {
20613 "items" : {
20614 "properties" : {
159464a9
TL
20615 "delete" : {
20616 "description" : "Indicates a pending delete request if present and not 0. ",
20617 "maximum" : 1,
20618 "minimum" : 0,
20619 "optional" : 1,
20620 "type" : "integer"
20621 },
4e7f60c2
TL
20622 "key" : {
20623 "description" : "Configuration option name.",
20624 "type" : "string"
20625 },
159464a9 20626 "pending" : {
81a3384d 20627 "description" : "The new pending value.",
4e7f60c2
TL
20628 "optional" : 1,
20629 "type" : "string"
20630 },
159464a9 20631 "value" : {
81a3384d 20632 "description" : "Value as it was used to generate the current cloudinit image.",
4e7f60c2
TL
20633 "optional" : 1,
20634 "type" : "string"
20635 }
20636 },
20637 "type" : "object"
20638 },
20639 "type" : "array"
20640 }
20641 },
20642 "PUT" : {
20643 "allowtoken" : 1,
20644 "description" : "Regenerate and change cloudinit config drive.",
20645 "method" : "PUT",
20646 "name" : "cloudinit_update",
20647 "parameters" : {
20648 "additionalProperties" : 0,
20649 "properties" : {
20650 "node" : {
20651 "description" : "The cluster node name.",
20652 "format" : "pve-node",
20653 "type" : "string",
20654 "typetext" : "<string>"
20655 },
20656 "vmid" : {
20657 "description" : "The (unique) ID of the VM.",
20658 "format" : "pve-vmid",
20659 "minimum" : 1,
20660 "type" : "integer",
20661 "typetext" : "<integer> (1 - N)"
20662 }
20663 }
20664 },
20665 "permissions" : {
20666 "check" : [
20667 "perm",
20668 "/vms/{vmid}",
20669 "VM.Config.Cloudinit"
20670 ]
20671 },
20672 "protected" : 1,
20673 "proxyto" : "node",
20674 "returns" : {
20675 "type" : "null"
20676 }
20677 }
20678 },
20679 "leaf" : 0,
20680 "path" : "/nodes/{node}/qemu/{vmid}/cloudinit",
20681 "text" : "cloudinit"
20682 },
4d47f125
TL
20683 {
20684 "info" : {
20685 "PUT" : {
e9cd3bd4 20686 "allowtoken" : 1,
4d47f125
TL
20687 "description" : "Unlink/delete disk images.",
20688 "method" : "PUT",
20689 "name" : "unlink",
20690 "parameters" : {
20691 "additionalProperties" : 0,
20692 "properties" : {
20693 "force" : {
20694 "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.",
20695 "optional" : 1,
20696 "type" : "boolean",
20697 "typetext" : "<boolean>"
20698 },
20699 "idlist" : {
20700 "description" : "A list of disk IDs you want to delete.",
20701 "format" : "pve-configid-list",
20702 "type" : "string",
20703 "typetext" : "<string>"
20704 },
20705 "node" : {
20706 "description" : "The cluster node name.",
20707 "format" : "pve-node",
20708 "type" : "string",
20709 "typetext" : "<string>"
20710 },
20711 "vmid" : {
20712 "description" : "The (unique) ID of the VM.",
20713 "format" : "pve-vmid",
20714 "minimum" : 1,
20715 "type" : "integer",
20716 "typetext" : "<integer> (1 - N)"
20717 }
20718 }
20719 },
20720 "permissions" : {
20721 "check" : [
20722 "perm",
20723 "/vms/{vmid}",
20724 [
20725 "VM.Config.Disk"
20726 ]
20727 ]
20728 },
20729 "protected" : 1,
20730 "proxyto" : "node",
20731 "returns" : {
20732 "type" : "null"
20733 }
20734 }
20735 },
20736 "leaf" : 1,
20737 "path" : "/nodes/{node}/qemu/{vmid}/unlink",
20738 "text" : "unlink"
20739 },
20740 {
20741 "info" : {
20742 "POST" : {
e9cd3bd4 20743 "allowtoken" : 1,
4d47f125
TL
20744 "description" : "Creates a TCP VNC proxy connections.",
20745 "method" : "POST",
20746 "name" : "vncproxy",
20747 "parameters" : {
20748 "additionalProperties" : 0,
20749 "properties" : {
ac70d7d1
TL
20750 "generate-password" : {
20751 "default" : 0,
20752 "description" : "Generates a random password to be used as ticket instead of the API ticket.",
20753 "optional" : 1,
20754 "type" : "boolean",
20755 "typetext" : "<boolean>"
20756 },
4d47f125
TL
20757 "node" : {
20758 "description" : "The cluster node name.",
20759 "format" : "pve-node",
20760 "type" : "string",
20761 "typetext" : "<string>"
20762 },
20763 "vmid" : {
20764 "description" : "The (unique) ID of the VM.",
20765 "format" : "pve-vmid",
20766 "minimum" : 1,
20767 "type" : "integer",
20768 "typetext" : "<integer> (1 - N)"
20769 },
20770 "websocket" : {
20771 "description" : "starts websockify instead of vncproxy",
20772 "optional" : 1,
20773 "type" : "boolean",
20774 "typetext" : "<boolean>"
20775 }
20776 }
20777 },
20778 "permissions" : {
20779 "check" : [
20780 "perm",
20781 "/vms/{vmid}",
20782 [
20783 "VM.Console"
20784 ]
20785 ]
20786 },
20787 "protected" : 1,
20788 "returns" : {
20789 "additionalProperties" : 0,
20790 "properties" : {
20791 "cert" : {
20792 "type" : "string"
20793 },
ac70d7d1
TL
20794 "password" : {
20795 "description" : "Returned if requested with 'generate-password' param. Consists of printable ASCII characters ('!' .. '~').",
20796 "optional" : 1,
20797 "type" : "string"
20798 },
4d47f125
TL
20799 "port" : {
20800 "type" : "integer"
20801 },
20802 "ticket" : {
20803 "type" : "string"
20804 },
20805 "upid" : {
20806 "type" : "string"
20807 },
20808 "user" : {
20809 "type" : "string"
20810 }
20811 }
20812 }
20813 }
20814 },
20815 "leaf" : 1,
20816 "path" : "/nodes/{node}/qemu/{vmid}/vncproxy",
20817 "text" : "vncproxy"
20818 },
20819 {
20820 "info" : {
20821 "POST" : {
e9cd3bd4 20822 "allowtoken" : 1,
4d47f125
TL
20823 "description" : "Creates a TCP proxy connections.",
20824 "method" : "POST",
20825 "name" : "termproxy",
20826 "parameters" : {
20827 "additionalProperties" : 0,
20828 "properties" : {
20829 "node" : {
20830 "description" : "The cluster node name.",
20831 "format" : "pve-node",
20832 "type" : "string",
20833 "typetext" : "<string>"
20834 },
20835 "serial" : {
20836 "description" : "opens a serial terminal (defaults to display)",
20837 "enum" : [
20838 "serial0",
20839 "serial1",
20840 "serial2",
20841 "serial3"
20842 ],
20843 "optional" : 1,
20844 "type" : "string"
20845 },
20846 "vmid" : {
20847 "description" : "The (unique) ID of the VM.",
20848 "format" : "pve-vmid",
20849 "minimum" : 1,
20850 "type" : "integer",
20851 "typetext" : "<integer> (1 - N)"
20852 }
20853 }
20854 },
20855 "permissions" : {
20856 "check" : [
20857 "perm",
20858 "/vms/{vmid}",
20859 [
20860 "VM.Console"
20861 ]
20862 ]
20863 },
20864 "protected" : 1,
20865 "returns" : {
20866 "additionalProperties" : 0,
20867 "properties" : {
20868 "port" : {
20869 "type" : "integer"
20870 },
20871 "ticket" : {
20872 "type" : "string"
20873 },
20874 "upid" : {
20875 "type" : "string"
20876 },
20877 "user" : {
20878 "type" : "string"
20879 }
20880 }
20881 }
20882 }
20883 },
20884 "leaf" : 1,
20885 "path" : "/nodes/{node}/qemu/{vmid}/termproxy",
20886 "text" : "termproxy"
20887 },
20888 {
20889 "info" : {
20890 "GET" : {
e9cd3bd4 20891 "allowtoken" : 1,
4d47f125
TL
20892 "description" : "Opens a weksocket for VNC traffic.",
20893 "method" : "GET",
20894 "name" : "vncwebsocket",
20895 "parameters" : {
20896 "additionalProperties" : 0,
20897 "properties" : {
20898 "node" : {
20899 "description" : "The cluster node name.",
20900 "format" : "pve-node",
20901 "type" : "string",
20902 "typetext" : "<string>"
20903 },
20904 "port" : {
20905 "description" : "Port number returned by previous vncproxy call.",
20906 "maximum" : 5999,
20907 "minimum" : 5900,
20908 "type" : "integer",
20909 "typetext" : "<integer> (5900 - 5999)"
20910 },
20911 "vmid" : {
20912 "description" : "The (unique) ID of the VM.",
20913 "format" : "pve-vmid",
20914 "minimum" : 1,
20915 "type" : "integer",
20916 "typetext" : "<integer> (1 - N)"
20917 },
20918 "vncticket" : {
20919 "description" : "Ticket from previous call to vncproxy.",
20920 "maxLength" : 512,
20921 "type" : "string",
20922 "typetext" : "<string>"
20923 }
20924 }
20925 },
20926 "permissions" : {
20927 "check" : [
20928 "perm",
20929 "/vms/{vmid}",
20930 [
20931 "VM.Console"
20932 ]
20933 ],
20934 "description" : "You also need to pass a valid ticket (vncticket)."
20935 },
20936 "returns" : {
20937 "properties" : {
20938 "port" : {
20939 "type" : "string"
20940 }
20941 },
20942 "type" : "object"
20943 }
20944 }
20945 },
20946 "leaf" : 1,
20947 "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket",
20948 "text" : "vncwebsocket"
20949 },
20950 {
20951 "info" : {
20952 "POST" : {
e9cd3bd4 20953 "allowtoken" : 1,
4d47f125
TL
20954 "description" : "Returns a SPICE configuration to connect to the VM.",
20955 "method" : "POST",
20956 "name" : "spiceproxy",
20957 "parameters" : {
20958 "additionalProperties" : 0,
20959 "properties" : {
20960 "node" : {
20961 "description" : "The cluster node name.",
20962 "format" : "pve-node",
20963 "type" : "string",
20964 "typetext" : "<string>"
20965 },
20966 "proxy" : {
20967 "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).",
20968 "format" : "address",
20969 "optional" : 1,
20970 "type" : "string",
20971 "typetext" : "<string>"
20972 },
20973 "vmid" : {
20974 "description" : "The (unique) ID of the VM.",
20975 "format" : "pve-vmid",
20976 "minimum" : 1,
20977 "type" : "integer",
20978 "typetext" : "<integer> (1 - N)"
20979 }
20980 }
20981 },
20982 "permissions" : {
20983 "check" : [
20984 "perm",
20985 "/vms/{vmid}",
20986 [
20987 "VM.Console"
20988 ]
20989 ]
20990 },
20991 "protected" : 1,
20992 "proxyto" : "node",
20993 "returns" : {
20994 "additionalProperties" : 1,
20995 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
20996 "properties" : {
20997 "host" : {
20998 "type" : "string"
20999 },
21000 "password" : {
21001 "type" : "string"
21002 },
21003 "proxy" : {
21004 "type" : "string"
21005 },
21006 "tls-port" : {
21007 "type" : "integer"
21008 },
21009 "type" : {
21010 "type" : "string"
21011 }
21012 }
21013 }
21014 }
21015 },
21016 "leaf" : 1,
21017 "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy",
21018 "text" : "spiceproxy"
21019 },
21020 {
21021 "children" : [
21022 {
21023 "info" : {
21024 "GET" : {
e9cd3bd4 21025 "allowtoken" : 1,
4d47f125
TL
21026 "description" : "Get virtual machine status.",
21027 "method" : "GET",
21028 "name" : "vm_status",
21029 "parameters" : {
21030 "additionalProperties" : 0,
21031 "properties" : {
21032 "node" : {
21033 "description" : "The cluster node name.",
21034 "format" : "pve-node",
21035 "type" : "string",
21036 "typetext" : "<string>"
21037 },
21038 "vmid" : {
21039 "description" : "The (unique) ID of the VM.",
21040 "format" : "pve-vmid",
21041 "minimum" : 1,
21042 "type" : "integer",
21043 "typetext" : "<integer> (1 - N)"
21044 }
21045 }
21046 },
21047 "permissions" : {
21048 "check" : [
21049 "perm",
21050 "/vms/{vmid}",
21051 [
21052 "VM.Audit"
21053 ]
21054 ]
21055 },
21056 "protected" : 1,
21057 "proxyto" : "node",
21058 "returns" : {
21059 "properties" : {
21060 "agent" : {
9d2e98ed 21061 "description" : "QEMU Guest Agent is enabled in config.",
4d47f125
TL
21062 "optional" : 1,
21063 "type" : "boolean"
21064 },
21065 "cpus" : {
21066 "description" : "Maximum usable CPUs.",
21067 "optional" : 1,
21068 "type" : "number"
21069 },
21070 "ha" : {
21071 "description" : "HA manager service status.",
21072 "type" : "object"
21073 },
95895385
TL
21074 "lock" : {
21075 "description" : "The current config lock, if any.",
21076 "optional" : 1,
21077 "type" : "string"
21078 },
4d47f125
TL
21079 "maxdisk" : {
21080 "description" : "Root disk size in bytes.",
21081 "optional" : 1,
21082 "renderer" : "bytes",
21083 "type" : "integer"
21084 },
21085 "maxmem" : {
21086 "description" : "Maximum memory in bytes.",
21087 "optional" : 1,
21088 "renderer" : "bytes",
21089 "type" : "integer"
21090 },
21091 "name" : {
21092 "description" : "VM name.",
21093 "optional" : 1,
21094 "type" : "string"
21095 },
21096 "pid" : {
21097 "description" : "PID of running qemu process.",
21098 "optional" : 1,
21099 "type" : "integer"
21100 },
21101 "qmpstatus" : {
9d2e98ed 21102 "description" : "QEMU QMP agent status.",
4d47f125
TL
21103 "optional" : 1,
21104 "type" : "string"
21105 },
d2656385
TL
21106 "running-machine" : {
21107 "description" : "The currently running machine type (if running).",
21108 "optional" : 1,
21109 "type" : "string"
21110 },
21111 "running-qemu" : {
21112 "description" : "The currently running QEMU version (if running).",
21113 "optional" : 1,
21114 "type" : "string"
21115 },
4d47f125 21116 "spice" : {
9d2e98ed 21117 "description" : "QEMU VGA configuration supports spice.",
4d47f125
TL
21118 "optional" : 1,
21119 "type" : "boolean"
21120 },
21121 "status" : {
9d2e98ed 21122 "description" : "QEMU process status.",
4d47f125
TL
21123 "enum" : [
21124 "stopped",
21125 "running"
21126 ],
21127 "type" : "string"
21128 },
5c1699e5
TL
21129 "tags" : {
21130 "description" : "The current configured tags, if any",
21131 "optional" : 1,
21132 "type" : "string"
21133 },
4d47f125
TL
21134 "uptime" : {
21135 "description" : "Uptime.",
21136 "optional" : 1,
21137 "renderer" : "duration",
21138 "type" : "integer"
21139 },
21140 "vmid" : {
21141 "description" : "The (unique) ID of the VM.",
21142 "format" : "pve-vmid",
21143 "minimum" : 1,
21144 "type" : "integer"
21145 }
21146 },
21147 "type" : "object"
21148 }
21149 }
21150 },
21151 "leaf" : 1,
21152 "path" : "/nodes/{node}/qemu/{vmid}/status/current",
21153 "text" : "current"
21154 },
21155 {
21156 "info" : {
21157 "POST" : {
e9cd3bd4 21158 "allowtoken" : 1,
4d47f125
TL
21159 "description" : "Start virtual machine.",
21160 "method" : "POST",
21161 "name" : "vm_start",
21162 "parameters" : {
21163 "additionalProperties" : 0,
21164 "properties" : {
c5aa7e14
TL
21165 "force-cpu" : {
21166 "description" : "Override QEMU's -cpu argument with the given string.",
21167 "optional" : 1,
21168 "type" : "string",
21169 "typetext" : "<string>"
21170 },
4d47f125 21171 "machine" : {
9d2e98ed 21172 "description" : "Specifies the QEMU machine type.",
4d47f125
TL
21173 "maxLength" : 40,
21174 "optional" : 1,
5c1699e5 21175 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
4d47f125
TL
21176 "type" : "string"
21177 },
21178 "migratedfrom" : {
21179 "description" : "The cluster node name.",
21180 "format" : "pve-node",
21181 "optional" : 1,
21182 "type" : "string",
21183 "typetext" : "<string>"
21184 },
21185 "migration_network" : {
21186 "description" : "CIDR of the (sub) network that is used for migration.",
21187 "format" : "CIDR",
21188 "optional" : 1,
21189 "type" : "string",
21190 "typetext" : "<string>"
21191 },
21192 "migration_type" : {
21193 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
21194 "enum" : [
21195 "secure",
21196 "insecure"
21197 ],
21198 "optional" : 1,
21199 "type" : "string"
21200 },
21201 "node" : {
21202 "description" : "The cluster node name.",
21203 "format" : "pve-node",
21204 "type" : "string",
21205 "typetext" : "<string>"
21206 },
21207 "skiplock" : {
21208 "description" : "Ignore locks - only root is allowed to use this option.",
21209 "optional" : 1,
21210 "type" : "boolean",
21211 "typetext" : "<boolean>"
21212 },
21213 "stateuri" : {
21214 "description" : "Some command save/restore state from this location.",
21215 "maxLength" : 128,
21216 "optional" : 1,
21217 "type" : "string",
21218 "typetext" : "<string>"
21219 },
21220 "targetstorage" : {
c5aa7e14 21221 "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 21222 "format" : "storage-pair-list",
4d47f125
TL
21223 "optional" : 1,
21224 "type" : "string",
21225 "typetext" : "<string>"
21226 },
e9cd3bd4
TL
21227 "timeout" : {
21228 "default" : "max(30, vm memory in GiB)",
21229 "description" : "Wait maximal timeout seconds.",
21230 "minimum" : 0,
21231 "optional" : 1,
21232 "type" : "integer",
21233 "typetext" : "<integer> (0 - N)"
21234 },
4d47f125
TL
21235 "vmid" : {
21236 "description" : "The (unique) ID of the VM.",
21237 "format" : "pve-vmid",
21238 "minimum" : 1,
21239 "type" : "integer",
21240 "typetext" : "<integer> (1 - N)"
21241 }
21242 }
21243 },
21244 "permissions" : {
21245 "check" : [
21246 "perm",
21247 "/vms/{vmid}",
21248 [
21249 "VM.PowerMgmt"
21250 ]
21251 ]
21252 },
21253 "protected" : 1,
21254 "proxyto" : "node",
21255 "returns" : {
21256 "type" : "string"
21257 }
21258 }
21259 },
21260 "leaf" : 1,
21261 "path" : "/nodes/{node}/qemu/{vmid}/status/start",
21262 "text" : "start"
21263 },
21264 {
21265 "info" : {
21266 "POST" : {
e9cd3bd4 21267 "allowtoken" : 1,
4d47f125
TL
21268 "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",
21269 "method" : "POST",
21270 "name" : "vm_stop",
21271 "parameters" : {
21272 "additionalProperties" : 0,
21273 "properties" : {
21274 "keepActive" : {
21275 "default" : 0,
21276 "description" : "Do not deactivate storage volumes.",
21277 "optional" : 1,
21278 "type" : "boolean",
21279 "typetext" : "<boolean>"
21280 },
21281 "migratedfrom" : {
21282 "description" : "The cluster node name.",
21283 "format" : "pve-node",
21284 "optional" : 1,
21285 "type" : "string",
21286 "typetext" : "<string>"
21287 },
21288 "node" : {
21289 "description" : "The cluster node name.",
21290 "format" : "pve-node",
21291 "type" : "string",
21292 "typetext" : "<string>"
21293 },
21294 "skiplock" : {
21295 "description" : "Ignore locks - only root is allowed to use this option.",
21296 "optional" : 1,
21297 "type" : "boolean",
21298 "typetext" : "<boolean>"
21299 },
21300 "timeout" : {
21301 "description" : "Wait maximal timeout seconds.",
21302 "minimum" : 0,
21303 "optional" : 1,
21304 "type" : "integer",
21305 "typetext" : "<integer> (0 - N)"
21306 },
21307 "vmid" : {
21308 "description" : "The (unique) ID of the VM.",
21309 "format" : "pve-vmid",
21310 "minimum" : 1,
21311 "type" : "integer",
21312 "typetext" : "<integer> (1 - N)"
21313 }
21314 }
21315 },
21316 "permissions" : {
21317 "check" : [
21318 "perm",
21319 "/vms/{vmid}",
21320 [
21321 "VM.PowerMgmt"
21322 ]
21323 ]
21324 },
21325 "protected" : 1,
21326 "proxyto" : "node",
21327 "returns" : {
21328 "type" : "string"
21329 }
21330 }
21331 },
21332 "leaf" : 1,
21333 "path" : "/nodes/{node}/qemu/{vmid}/status/stop",
21334 "text" : "stop"
21335 },
21336 {
21337 "info" : {
21338 "POST" : {
e9cd3bd4 21339 "allowtoken" : 1,
4d47f125
TL
21340 "description" : "Reset virtual machine.",
21341 "method" : "POST",
21342 "name" : "vm_reset",
21343 "parameters" : {
21344 "additionalProperties" : 0,
21345 "properties" : {
21346 "node" : {
21347 "description" : "The cluster node name.",
21348 "format" : "pve-node",
21349 "type" : "string",
21350 "typetext" : "<string>"
21351 },
21352 "skiplock" : {
21353 "description" : "Ignore locks - only root is allowed to use this option.",
21354 "optional" : 1,
21355 "type" : "boolean",
21356 "typetext" : "<boolean>"
21357 },
21358 "vmid" : {
21359 "description" : "The (unique) ID of the VM.",
21360 "format" : "pve-vmid",
21361 "minimum" : 1,
21362 "type" : "integer",
21363 "typetext" : "<integer> (1 - N)"
21364 }
21365 }
21366 },
21367 "permissions" : {
21368 "check" : [
21369 "perm",
21370 "/vms/{vmid}",
21371 [
21372 "VM.PowerMgmt"
21373 ]
21374 ]
21375 },
21376 "protected" : 1,
21377 "proxyto" : "node",
21378 "returns" : {
21379 "type" : "string"
21380 }
21381 }
21382 },
21383 "leaf" : 1,
21384 "path" : "/nodes/{node}/qemu/{vmid}/status/reset",
21385 "text" : "reset"
21386 },
21387 {
21388 "info" : {
21389 "POST" : {
e9cd3bd4 21390 "allowtoken" : 1,
4d47f125
TL
21391 "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.",
21392 "method" : "POST",
21393 "name" : "vm_shutdown",
21394 "parameters" : {
21395 "additionalProperties" : 0,
21396 "properties" : {
21397 "forceStop" : {
21398 "default" : 0,
21399 "description" : "Make sure the VM stops.",
21400 "optional" : 1,
21401 "type" : "boolean",
21402 "typetext" : "<boolean>"
21403 },
21404 "keepActive" : {
21405 "default" : 0,
21406 "description" : "Do not deactivate storage volumes.",
21407 "optional" : 1,
21408 "type" : "boolean",
21409 "typetext" : "<boolean>"
21410 },
21411 "node" : {
21412 "description" : "The cluster node name.",
21413 "format" : "pve-node",
21414 "type" : "string",
21415 "typetext" : "<string>"
21416 },
21417 "skiplock" : {
21418 "description" : "Ignore locks - only root is allowed to use this option.",
21419 "optional" : 1,
21420 "type" : "boolean",
21421 "typetext" : "<boolean>"
21422 },
21423 "timeout" : {
21424 "description" : "Wait maximal timeout seconds.",
21425 "minimum" : 0,
21426 "optional" : 1,
21427 "type" : "integer",
21428 "typetext" : "<integer> (0 - N)"
21429 },
21430 "vmid" : {
21431 "description" : "The (unique) ID of the VM.",
21432 "format" : "pve-vmid",
21433 "minimum" : 1,
21434 "type" : "integer",
21435 "typetext" : "<integer> (1 - N)"
21436 }
21437 }
21438 },
21439 "permissions" : {
21440 "check" : [
21441 "perm",
21442 "/vms/{vmid}",
21443 [
21444 "VM.PowerMgmt"
21445 ]
21446 ]
21447 },
21448 "protected" : 1,
21449 "proxyto" : "node",
21450 "returns" : {
21451 "type" : "string"
21452 }
21453 }
21454 },
21455 "leaf" : 1,
21456 "path" : "/nodes/{node}/qemu/{vmid}/status/shutdown",
21457 "text" : "shutdown"
21458 },
1c532546
TL
21459 {
21460 "info" : {
21461 "POST" : {
e9cd3bd4 21462 "allowtoken" : 1,
1c532546
TL
21463 "description" : "Reboot the VM by shutting it down, and starting it again. Applies pending changes.",
21464 "method" : "POST",
21465 "name" : "vm_reboot",
21466 "parameters" : {
21467 "additionalProperties" : 0,
21468 "properties" : {
21469 "node" : {
21470 "description" : "The cluster node name.",
21471 "format" : "pve-node",
21472 "type" : "string",
21473 "typetext" : "<string>"
21474 },
21475 "timeout" : {
21476 "description" : "Wait maximal timeout seconds for the shutdown.",
21477 "minimum" : 0,
21478 "optional" : 1,
21479 "type" : "integer",
21480 "typetext" : "<integer> (0 - N)"
21481 },
21482 "vmid" : {
21483 "description" : "The (unique) ID of the VM.",
21484 "format" : "pve-vmid",
21485 "minimum" : 1,
21486 "type" : "integer",
21487 "typetext" : "<integer> (1 - N)"
21488 }
21489 }
21490 },
21491 "permissions" : {
21492 "check" : [
21493 "perm",
21494 "/vms/{vmid}",
21495 [
21496 "VM.PowerMgmt"
21497 ]
21498 ]
21499 },
21500 "protected" : 1,
21501 "proxyto" : "node",
21502 "returns" : {
21503 "type" : "string"
21504 }
21505 }
21506 },
21507 "leaf" : 1,
21508 "path" : "/nodes/{node}/qemu/{vmid}/status/reboot",
21509 "text" : "reboot"
21510 },
4d47f125
TL
21511 {
21512 "info" : {
21513 "POST" : {
e9cd3bd4 21514 "allowtoken" : 1,
4d47f125
TL
21515 "description" : "Suspend virtual machine.",
21516 "method" : "POST",
21517 "name" : "vm_suspend",
21518 "parameters" : {
21519 "additionalProperties" : 0,
21520 "properties" : {
21521 "node" : {
21522 "description" : "The cluster node name.",
21523 "format" : "pve-node",
21524 "type" : "string",
21525 "typetext" : "<string>"
21526 },
21527 "skiplock" : {
21528 "description" : "Ignore locks - only root is allowed to use this option.",
21529 "optional" : 1,
21530 "type" : "boolean",
21531 "typetext" : "<boolean>"
21532 },
95895385
TL
21533 "statestorage" : {
21534 "description" : "The storage for the VM state",
21535 "format" : "pve-storage-id",
21536 "optional" : 1,
21537 "requires" : "todisk",
21538 "type" : "string",
21539 "typetext" : "<string>"
21540 },
21541 "todisk" : {
21542 "default" : 0,
21543 "description" : "If set, suspends the VM to disk. Will be resumed on next VM start.",
21544 "optional" : 1,
21545 "type" : "boolean",
21546 "typetext" : "<boolean>"
21547 },
4d47f125
TL
21548 "vmid" : {
21549 "description" : "The (unique) ID of the VM.",
21550 "format" : "pve-vmid",
21551 "minimum" : 1,
21552 "type" : "integer",
21553 "typetext" : "<integer> (1 - N)"
21554 }
21555 }
21556 },
21557 "permissions" : {
21558 "check" : [
21559 "perm",
21560 "/vms/{vmid}",
21561 [
21562 "VM.PowerMgmt"
21563 ]
e9cd3bd4
TL
21564 ],
21565 "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
21566 },
21567 "protected" : 1,
21568 "proxyto" : "node",
21569 "returns" : {
21570 "type" : "string"
21571 }
21572 }
21573 },
21574 "leaf" : 1,
21575 "path" : "/nodes/{node}/qemu/{vmid}/status/suspend",
21576 "text" : "suspend"
21577 },
21578 {
21579 "info" : {
21580 "POST" : {
e9cd3bd4 21581 "allowtoken" : 1,
4d47f125
TL
21582 "description" : "Resume virtual machine.",
21583 "method" : "POST",
21584 "name" : "vm_resume",
21585 "parameters" : {
21586 "additionalProperties" : 0,
21587 "properties" : {
21588 "nocheck" : {
21589 "optional" : 1,
21590 "type" : "boolean",
21591 "typetext" : "<boolean>"
21592 },
21593 "node" : {
21594 "description" : "The cluster node name.",
21595 "format" : "pve-node",
21596 "type" : "string",
21597 "typetext" : "<string>"
21598 },
21599 "skiplock" : {
21600 "description" : "Ignore locks - only root is allowed to use this option.",
21601 "optional" : 1,
21602 "type" : "boolean",
21603 "typetext" : "<boolean>"
21604 },
21605 "vmid" : {
21606 "description" : "The (unique) ID of the VM.",
21607 "format" : "pve-vmid",
21608 "minimum" : 1,
21609 "type" : "integer",
21610 "typetext" : "<integer> (1 - N)"
21611 }
21612 }
21613 },
21614 "permissions" : {
21615 "check" : [
21616 "perm",
21617 "/vms/{vmid}",
21618 [
21619 "VM.PowerMgmt"
21620 ]
21621 ]
21622 },
21623 "protected" : 1,
21624 "proxyto" : "node",
21625 "returns" : {
21626 "type" : "string"
21627 }
21628 }
21629 },
21630 "leaf" : 1,
21631 "path" : "/nodes/{node}/qemu/{vmid}/status/resume",
21632 "text" : "resume"
21633 }
21634 ],
21635 "info" : {
21636 "GET" : {
e9cd3bd4 21637 "allowtoken" : 1,
4d47f125
TL
21638 "description" : "Directory index",
21639 "method" : "GET",
21640 "name" : "vmcmdidx",
21641 "parameters" : {
21642 "additionalProperties" : 0,
21643 "properties" : {
21644 "node" : {
21645 "description" : "The cluster node name.",
21646 "format" : "pve-node",
21647 "type" : "string",
21648 "typetext" : "<string>"
21649 },
21650 "vmid" : {
21651 "description" : "The (unique) ID of the VM.",
21652 "format" : "pve-vmid",
21653 "minimum" : 1,
21654 "type" : "integer",
21655 "typetext" : "<integer> (1 - N)"
21656 }
21657 }
21658 },
21659 "permissions" : {
21660 "user" : "all"
21661 },
21662 "proxyto" : "node",
21663 "returns" : {
21664 "items" : {
21665 "properties" : {
21666 "subdir" : {
21667 "type" : "string"
21668 }
21669 },
21670 "type" : "object"
21671 },
21672 "links" : [
21673 {
21674 "href" : "{subdir}",
21675 "rel" : "child"
21676 }
21677 ],
21678 "type" : "array"
21679 }
21680 }
21681 },
21682 "leaf" : 0,
21683 "path" : "/nodes/{node}/qemu/{vmid}/status",
21684 "text" : "status"
21685 },
21686 {
21687 "info" : {
21688 "PUT" : {
e9cd3bd4 21689 "allowtoken" : 1,
4d47f125
TL
21690 "description" : "Send key event to virtual machine.",
21691 "method" : "PUT",
21692 "name" : "vm_sendkey",
21693 "parameters" : {
21694 "additionalProperties" : 0,
21695 "properties" : {
21696 "key" : {
21697 "description" : "The key (qemu monitor encoding).",
21698 "type" : "string",
21699 "typetext" : "<string>"
21700 },
21701 "node" : {
21702 "description" : "The cluster node name.",
21703 "format" : "pve-node",
21704 "type" : "string",
21705 "typetext" : "<string>"
21706 },
21707 "skiplock" : {
21708 "description" : "Ignore locks - only root is allowed to use this option.",
21709 "optional" : 1,
21710 "type" : "boolean",
21711 "typetext" : "<boolean>"
21712 },
21713 "vmid" : {
21714 "description" : "The (unique) ID of the VM.",
21715 "format" : "pve-vmid",
21716 "minimum" : 1,
21717 "type" : "integer",
21718 "typetext" : "<integer> (1 - N)"
21719 }
21720 }
21721 },
21722 "permissions" : {
21723 "check" : [
21724 "perm",
21725 "/vms/{vmid}",
21726 [
21727 "VM.Console"
21728 ]
21729 ]
21730 },
21731 "protected" : 1,
21732 "proxyto" : "node",
21733 "returns" : {
21734 "type" : "null"
21735 }
21736 }
21737 },
21738 "leaf" : 1,
21739 "path" : "/nodes/{node}/qemu/{vmid}/sendkey",
21740 "text" : "sendkey"
21741 },
21742 {
21743 "info" : {
21744 "GET" : {
e9cd3bd4 21745 "allowtoken" : 1,
4d47f125
TL
21746 "description" : "Check if feature for virtual machine is available.",
21747 "method" : "GET",
21748 "name" : "vm_feature",
21749 "parameters" : {
21750 "additionalProperties" : 0,
21751 "properties" : {
21752 "feature" : {
21753 "description" : "Feature to check.",
21754 "enum" : [
21755 "snapshot",
21756 "clone",
21757 "copy"
21758 ],
21759 "type" : "string"
21760 },
21761 "node" : {
21762 "description" : "The cluster node name.",
21763 "format" : "pve-node",
21764 "type" : "string",
21765 "typetext" : "<string>"
21766 },
21767 "snapname" : {
21768 "description" : "The name of the snapshot.",
21769 "format" : "pve-configid",
21770 "maxLength" : 40,
21771 "optional" : 1,
21772 "type" : "string",
21773 "typetext" : "<string>"
21774 },
21775 "vmid" : {
21776 "description" : "The (unique) ID of the VM.",
21777 "format" : "pve-vmid",
21778 "minimum" : 1,
21779 "type" : "integer",
21780 "typetext" : "<integer> (1 - N)"
21781 }
21782 }
21783 },
21784 "permissions" : {
21785 "check" : [
21786 "perm",
21787 "/vms/{vmid}",
21788 [
21789 "VM.Audit"
21790 ]
21791 ]
21792 },
21793 "protected" : 1,
21794 "proxyto" : "node",
21795 "returns" : {
21796 "properties" : {
21797 "hasFeature" : {
21798 "type" : "boolean"
21799 },
21800 "nodes" : {
21801 "items" : {
21802 "type" : "string"
21803 },
21804 "type" : "array"
21805 }
21806 },
21807 "type" : "object"
21808 }
21809 }
21810 },
21811 "leaf" : 1,
21812 "path" : "/nodes/{node}/qemu/{vmid}/feature",
21813 "text" : "feature"
21814 },
21815 {
21816 "info" : {
21817 "POST" : {
e9cd3bd4 21818 "allowtoken" : 1,
4d47f125
TL
21819 "description" : "Create a copy of virtual machine/template.",
21820 "method" : "POST",
21821 "name" : "clone_vm",
21822 "parameters" : {
21823 "additionalProperties" : 0,
21824 "properties" : {
95895385
TL
21825 "bwlimit" : {
21826 "default" : "clone limit from datacenter or storage config",
21827 "description" : "Override I/O bandwidth limit (in KiB/s).",
21828 "minimum" : "0",
21829 "optional" : 1,
21830 "type" : "integer",
21831 "typetext" : "<integer> (0 - N)"
21832 },
4d47f125
TL
21833 "description" : {
21834 "description" : "Description for the new VM.",
21835 "optional" : 1,
21836 "type" : "string",
21837 "typetext" : "<string>"
21838 },
21839 "format" : {
21840 "description" : "Target format for file storage. Only valid for full clone.",
21841 "enum" : [
21842 "raw",
21843 "qcow2",
21844 "vmdk"
21845 ],
21846 "optional" : 1,
21847 "type" : "string"
21848 },
21849 "full" : {
21850 "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.",
21851 "optional" : 1,
21852 "type" : "boolean",
21853 "typetext" : "<boolean>"
21854 },
21855 "name" : {
21856 "description" : "Set a name for the new VM.",
21857 "format" : "dns-name",
21858 "optional" : 1,
21859 "type" : "string",
21860 "typetext" : "<string>"
21861 },
21862 "newid" : {
21863 "description" : "VMID for the clone.",
21864 "format" : "pve-vmid",
21865 "minimum" : 1,
21866 "type" : "integer",
21867 "typetext" : "<integer> (1 - N)"
21868 },
21869 "node" : {
21870 "description" : "The cluster node name.",
21871 "format" : "pve-node",
21872 "type" : "string",
21873 "typetext" : "<string>"
21874 },
21875 "pool" : {
21876 "description" : "Add the new VM to the specified pool.",
21877 "format" : "pve-poolid",
21878 "optional" : 1,
21879 "type" : "string",
21880 "typetext" : "<string>"
21881 },
21882 "snapname" : {
21883 "description" : "The name of the snapshot.",
21884 "format" : "pve-configid",
21885 "maxLength" : 40,
21886 "optional" : 1,
21887 "type" : "string",
21888 "typetext" : "<string>"
21889 },
21890 "storage" : {
21891 "description" : "Target storage for full clone.",
21892 "format" : "pve-storage-id",
21893 "optional" : 1,
21894 "type" : "string",
21895 "typetext" : "<string>"
21896 },
21897 "target" : {
21898 "description" : "Target node. Only allowed if the original VM is on shared storage.",
21899 "format" : "pve-node",
21900 "optional" : 1,
21901 "type" : "string",
21902 "typetext" : "<string>"
21903 },
21904 "vmid" : {
21905 "description" : "The (unique) ID of the VM.",
21906 "format" : "pve-vmid",
21907 "minimum" : 1,
21908 "type" : "integer",
21909 "typetext" : "<integer> (1 - N)"
21910 }
21911 }
21912 },
21913 "permissions" : {
21914 "check" : [
21915 "and",
21916 [
21917 "perm",
21918 "/vms/{vmid}",
21919 [
21920 "VM.Clone"
21921 ]
21922 ],
21923 [
21924 "or",
21925 [
21926 "perm",
21927 "/vms/{newid}",
21928 [
21929 "VM.Allocate"
21930 ]
21931 ],
21932 [
21933 "perm",
21934 "/pool/{pool}",
21935 [
21936 "VM.Allocate"
21937 ],
21938 "require_param",
21939 "pool"
21940 ]
21941 ]
21942 ],
159464a9 21943 "description" : "You need 'VM.Clone' permissions on /vms/{vmid}, and 'VM.Allocate' permissions on /vms/{newid} (or on the VM pool /pool/{pool}). You also need 'Datastore.AllocateSpace' on any used storage and 'SDN.Use' on any used bridge/vnet"
4d47f125
TL
21944 },
21945 "protected" : 1,
21946 "proxyto" : "node",
21947 "returns" : {
21948 "type" : "string"
21949 }
21950 }
21951 },
21952 "leaf" : 1,
21953 "path" : "/nodes/{node}/qemu/{vmid}/clone",
21954 "text" : "clone"
21955 },
21956 {
21957 "info" : {
21958 "POST" : {
e9cd3bd4 21959 "allowtoken" : 1,
5370fa8c 21960 "description" : "Move volume to different storage or to a different VM.",
4d47f125
TL
21961 "method" : "POST",
21962 "name" : "move_vm_disk",
21963 "parameters" : {
21964 "additionalProperties" : 0,
21965 "properties" : {
95895385
TL
21966 "bwlimit" : {
21967 "default" : "move limit from datacenter or storage config",
21968 "description" : "Override I/O bandwidth limit (in KiB/s).",
21969 "minimum" : "0",
21970 "optional" : 1,
21971 "type" : "integer",
21972 "typetext" : "<integer> (0 - N)"
21973 },
4d47f125
TL
21974 "delete" : {
21975 "default" : 0,
21976 "description" : "Delete the original disk after successful copy. By default the original disk is kept as unused disk.",
21977 "optional" : 1,
21978 "type" : "boolean",
21979 "typetext" : "<boolean>"
21980 },
21981 "digest" : {
5370fa8c 21982 "description" : "Prevent changes if current configuration file has different SHA1\"\n\t\t .\" digest. This can be used to prevent concurrent modifications.",
4d47f125
TL
21983 "maxLength" : 40,
21984 "optional" : 1,
21985 "type" : "string",
21986 "typetext" : "<string>"
21987 },
21988 "disk" : {
21989 "description" : "The disk you want to move.",
21990 "enum" : [
21991 "ide0",
21992 "ide1",
21993 "ide2",
21994 "ide3",
21995 "scsi0",
21996 "scsi1",
21997 "scsi2",
21998 "scsi3",
21999 "scsi4",
22000 "scsi5",
22001 "scsi6",
22002 "scsi7",
22003 "scsi8",
22004 "scsi9",
22005 "scsi10",
22006 "scsi11",
22007 "scsi12",
22008 "scsi13",
e9cd3bd4
TL
22009 "scsi14",
22010 "scsi15",
22011 "scsi16",
22012 "scsi17",
22013 "scsi18",
22014 "scsi19",
22015 "scsi20",
22016 "scsi21",
22017 "scsi22",
22018 "scsi23",
22019 "scsi24",
22020 "scsi25",
22021 "scsi26",
22022 "scsi27",
22023 "scsi28",
22024 "scsi29",
22025 "scsi30",
4d47f125
TL
22026 "virtio0",
22027 "virtio1",
22028 "virtio2",
22029 "virtio3",
22030 "virtio4",
22031 "virtio5",
22032 "virtio6",
22033 "virtio7",
22034 "virtio8",
22035 "virtio9",
22036 "virtio10",
22037 "virtio11",
22038 "virtio12",
22039 "virtio13",
22040 "virtio14",
22041 "virtio15",
22042 "sata0",
22043 "sata1",
22044 "sata2",
22045 "sata3",
22046 "sata4",
22047 "sata5",
5370fa8c
TL
22048 "efidisk0",
22049 "tpmstate0",
22050 "unused0",
22051 "unused1",
22052 "unused2",
22053 "unused3",
22054 "unused4",
22055 "unused5",
22056 "unused6",
22057 "unused7",
22058 "unused8",
22059 "unused9",
22060 "unused10",
22061 "unused11",
22062 "unused12",
22063 "unused13",
22064 "unused14",
22065 "unused15",
22066 "unused16",
22067 "unused17",
22068 "unused18",
22069 "unused19",
22070 "unused20",
22071 "unused21",
22072 "unused22",
22073 "unused23",
22074 "unused24",
22075 "unused25",
22076 "unused26",
22077 "unused27",
22078 "unused28",
22079 "unused29",
22080 "unused30",
22081 "unused31",
22082 "unused32",
22083 "unused33",
22084 "unused34",
22085 "unused35",
22086 "unused36",
22087 "unused37",
22088 "unused38",
22089 "unused39",
22090 "unused40",
22091 "unused41",
22092 "unused42",
22093 "unused43",
22094 "unused44",
22095 "unused45",
22096 "unused46",
22097 "unused47",
22098 "unused48",
22099 "unused49",
22100 "unused50",
22101 "unused51",
22102 "unused52",
22103 "unused53",
22104 "unused54",
22105 "unused55",
22106 "unused56",
22107 "unused57",
22108 "unused58",
22109 "unused59",
22110 "unused60",
22111 "unused61",
22112 "unused62",
22113 "unused63",
22114 "unused64",
22115 "unused65",
22116 "unused66",
22117 "unused67",
22118 "unused68",
22119 "unused69",
22120 "unused70",
22121 "unused71",
22122 "unused72",
22123 "unused73",
22124 "unused74",
22125 "unused75",
22126 "unused76",
22127 "unused77",
22128 "unused78",
22129 "unused79",
22130 "unused80",
22131 "unused81",
22132 "unused82",
22133 "unused83",
22134 "unused84",
22135 "unused85",
22136 "unused86",
22137 "unused87",
22138 "unused88",
22139 "unused89",
22140 "unused90",
22141 "unused91",
22142 "unused92",
22143 "unused93",
22144 "unused94",
22145 "unused95",
22146 "unused96",
22147 "unused97",
22148 "unused98",
22149 "unused99",
22150 "unused100",
22151 "unused101",
22152 "unused102",
22153 "unused103",
22154 "unused104",
22155 "unused105",
22156 "unused106",
22157 "unused107",
22158 "unused108",
22159 "unused109",
22160 "unused110",
22161 "unused111",
22162 "unused112",
22163 "unused113",
22164 "unused114",
22165 "unused115",
22166 "unused116",
22167 "unused117",
22168 "unused118",
22169 "unused119",
22170 "unused120",
22171 "unused121",
22172 "unused122",
22173 "unused123",
22174 "unused124",
22175 "unused125",
22176 "unused126",
22177 "unused127",
22178 "unused128",
22179 "unused129",
22180 "unused130",
22181 "unused131",
22182 "unused132",
22183 "unused133",
22184 "unused134",
22185 "unused135",
22186 "unused136",
22187 "unused137",
22188 "unused138",
22189 "unused139",
22190 "unused140",
22191 "unused141",
22192 "unused142",
22193 "unused143",
22194 "unused144",
22195 "unused145",
22196 "unused146",
22197 "unused147",
22198 "unused148",
22199 "unused149",
22200 "unused150",
22201 "unused151",
22202 "unused152",
22203 "unused153",
22204 "unused154",
22205 "unused155",
22206 "unused156",
22207 "unused157",
22208 "unused158",
22209 "unused159",
22210 "unused160",
22211 "unused161",
22212 "unused162",
22213 "unused163",
22214 "unused164",
22215 "unused165",
22216 "unused166",
22217 "unused167",
22218 "unused168",
22219 "unused169",
22220 "unused170",
22221 "unused171",
22222 "unused172",
22223 "unused173",
22224 "unused174",
22225 "unused175",
22226 "unused176",
22227 "unused177",
22228 "unused178",
22229 "unused179",
22230 "unused180",
22231 "unused181",
22232 "unused182",
22233 "unused183",
22234 "unused184",
22235 "unused185",
22236 "unused186",
22237 "unused187",
22238 "unused188",
22239 "unused189",
22240 "unused190",
22241 "unused191",
22242 "unused192",
22243 "unused193",
22244 "unused194",
22245 "unused195",
22246 "unused196",
22247 "unused197",
22248 "unused198",
22249 "unused199",
22250 "unused200",
22251 "unused201",
22252 "unused202",
22253 "unused203",
22254 "unused204",
22255 "unused205",
22256 "unused206",
22257 "unused207",
22258 "unused208",
22259 "unused209",
22260 "unused210",
22261 "unused211",
22262 "unused212",
22263 "unused213",
22264 "unused214",
22265 "unused215",
22266 "unused216",
22267 "unused217",
22268 "unused218",
22269 "unused219",
22270 "unused220",
22271 "unused221",
22272 "unused222",
22273 "unused223",
22274 "unused224",
22275 "unused225",
22276 "unused226",
22277 "unused227",
22278 "unused228",
22279 "unused229",
22280 "unused230",
22281 "unused231",
22282 "unused232",
22283 "unused233",
22284 "unused234",
22285 "unused235",
22286 "unused236",
22287 "unused237",
22288 "unused238",
22289 "unused239",
22290 "unused240",
22291 "unused241",
22292 "unused242",
22293 "unused243",
22294 "unused244",
22295 "unused245",
22296 "unused246",
22297 "unused247",
22298 "unused248",
22299 "unused249",
22300 "unused250",
22301 "unused251",
22302 "unused252",
22303 "unused253",
22304 "unused254",
22305 "unused255"
4d47f125
TL
22306 ],
22307 "type" : "string"
22308 },
22309 "format" : {
22310 "description" : "Target Format.",
22311 "enum" : [
22312 "raw",
22313 "qcow2",
22314 "vmdk"
22315 ],
22316 "optional" : 1,
22317 "type" : "string"
22318 },
22319 "node" : {
22320 "description" : "The cluster node name.",
22321 "format" : "pve-node",
22322 "type" : "string",
22323 "typetext" : "<string>"
22324 },
22325 "storage" : {
22326 "description" : "Target storage.",
22327 "format" : "pve-storage-id",
5370fa8c 22328 "optional" : 1,
4d47f125
TL
22329 "type" : "string",
22330 "typetext" : "<string>"
22331 },
5370fa8c
TL
22332 "target-digest" : {
22333 "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.",
22334 "maxLength" : 40,
22335 "optional" : 1,
22336 "type" : "string",
22337 "typetext" : "<string>"
22338 },
22339 "target-disk" : {
22340 "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.",
22341 "enum" : [
22342 "ide0",
22343 "ide1",
22344 "ide2",
22345 "ide3",
22346 "scsi0",
22347 "scsi1",
22348 "scsi2",
22349 "scsi3",
22350 "scsi4",
22351 "scsi5",
22352 "scsi6",
22353 "scsi7",
22354 "scsi8",
22355 "scsi9",
22356 "scsi10",
22357 "scsi11",
22358 "scsi12",
22359 "scsi13",
22360 "scsi14",
22361 "scsi15",
22362 "scsi16",
22363 "scsi17",
22364 "scsi18",
22365 "scsi19",
22366 "scsi20",
22367 "scsi21",
22368 "scsi22",
22369 "scsi23",
22370 "scsi24",
22371 "scsi25",
22372 "scsi26",
22373 "scsi27",
22374 "scsi28",
22375 "scsi29",
22376 "scsi30",
22377 "virtio0",
22378 "virtio1",
22379 "virtio2",
22380 "virtio3",
22381 "virtio4",
22382 "virtio5",
22383 "virtio6",
22384 "virtio7",
22385 "virtio8",
22386 "virtio9",
22387 "virtio10",
22388 "virtio11",
22389 "virtio12",
22390 "virtio13",
22391 "virtio14",
22392 "virtio15",
22393 "sata0",
22394 "sata1",
22395 "sata2",
22396 "sata3",
22397 "sata4",
22398 "sata5",
22399 "efidisk0",
22400 "tpmstate0",
22401 "unused0",
22402 "unused1",
22403 "unused2",
22404 "unused3",
22405 "unused4",
22406 "unused5",
22407 "unused6",
22408 "unused7",
22409 "unused8",
22410 "unused9",
22411 "unused10",
22412 "unused11",
22413 "unused12",
22414 "unused13",
22415 "unused14",
22416 "unused15",
22417 "unused16",
22418 "unused17",
22419 "unused18",
22420 "unused19",
22421 "unused20",
22422 "unused21",
22423 "unused22",
22424 "unused23",
22425 "unused24",
22426 "unused25",
22427 "unused26",
22428 "unused27",
22429 "unused28",
22430 "unused29",
22431 "unused30",
22432 "unused31",
22433 "unused32",
22434 "unused33",
22435 "unused34",
22436 "unused35",
22437 "unused36",
22438 "unused37",
22439 "unused38",
22440 "unused39",
22441 "unused40",
22442 "unused41",
22443 "unused42",
22444 "unused43",
22445 "unused44",
22446 "unused45",
22447 "unused46",
22448 "unused47",
22449 "unused48",
22450 "unused49",
22451 "unused50",
22452 "unused51",
22453 "unused52",
22454 "unused53",
22455 "unused54",
22456 "unused55",
22457 "unused56",
22458 "unused57",
22459 "unused58",
22460 "unused59",
22461 "unused60",
22462 "unused61",
22463 "unused62",
22464 "unused63",
22465 "unused64",
22466 "unused65",
22467 "unused66",
22468 "unused67",
22469 "unused68",
22470 "unused69",
22471 "unused70",
22472 "unused71",
22473 "unused72",
22474 "unused73",
22475 "unused74",
22476 "unused75",
22477 "unused76",
22478 "unused77",
22479 "unused78",
22480 "unused79",
22481 "unused80",
22482 "unused81",
22483 "unused82",
22484 "unused83",
22485 "unused84",
22486 "unused85",
22487 "unused86",
22488 "unused87",
22489 "unused88",
22490 "unused89",
22491 "unused90",
22492 "unused91",
22493 "unused92",
22494 "unused93",
22495 "unused94",
22496 "unused95",
22497 "unused96",
22498 "unused97",
22499 "unused98",
22500 "unused99",
22501 "unused100",
22502 "unused101",
22503 "unused102",
22504 "unused103",
22505 "unused104",
22506 "unused105",
22507 "unused106",
22508 "unused107",
22509 "unused108",
22510 "unused109",
22511 "unused110",
22512 "unused111",
22513 "unused112",
22514 "unused113",
22515 "unused114",
22516 "unused115",
22517 "unused116",
22518 "unused117",
22519 "unused118",
22520 "unused119",
22521 "unused120",
22522 "unused121",
22523 "unused122",
22524 "unused123",
22525 "unused124",
22526 "unused125",
22527 "unused126",
22528 "unused127",
22529 "unused128",
22530 "unused129",
22531 "unused130",
22532 "unused131",
22533 "unused132",
22534 "unused133",
22535 "unused134",
22536 "unused135",
22537 "unused136",
22538 "unused137",
22539 "unused138",
22540 "unused139",
22541 "unused140",
22542 "unused141",
22543 "unused142",
22544 "unused143",
22545 "unused144",
22546 "unused145",
22547 "unused146",
22548 "unused147",
22549 "unused148",
22550 "unused149",
22551 "unused150",
22552 "unused151",
22553 "unused152",
22554 "unused153",
22555 "unused154",
22556 "unused155",
22557 "unused156",
22558 "unused157",
22559 "unused158",
22560 "unused159",
22561 "unused160",
22562 "unused161",
22563 "unused162",
22564 "unused163",
22565 "unused164",
22566 "unused165",
22567 "unused166",
22568 "unused167",
22569 "unused168",
22570 "unused169",
22571 "unused170",
22572 "unused171",
22573 "unused172",
22574 "unused173",
22575 "unused174",
22576 "unused175",
22577 "unused176",
22578 "unused177",
22579 "unused178",
22580 "unused179",
22581 "unused180",
22582 "unused181",
22583 "unused182",
22584 "unused183",
22585 "unused184",
22586 "unused185",
22587 "unused186",
22588 "unused187",
22589 "unused188",
22590 "unused189",
22591 "unused190",
22592 "unused191",
22593 "unused192",
22594 "unused193",
22595 "unused194",
22596 "unused195",
22597 "unused196",
22598 "unused197",
22599 "unused198",
22600 "unused199",
22601 "unused200",
22602 "unused201",
22603 "unused202",
22604 "unused203",
22605 "unused204",
22606 "unused205",
22607 "unused206",
22608 "unused207",
22609 "unused208",
22610 "unused209",
22611 "unused210",
22612 "unused211",
22613 "unused212",
22614 "unused213",
22615 "unused214",
22616 "unused215",
22617 "unused216",
22618 "unused217",
22619 "unused218",
22620 "unused219",
22621 "unused220",
22622 "unused221",
22623 "unused222",
22624 "unused223",
22625 "unused224",
22626 "unused225",
22627 "unused226",
22628 "unused227",
22629 "unused228",
22630 "unused229",
22631 "unused230",
22632 "unused231",
22633 "unused232",
22634 "unused233",
22635 "unused234",
22636 "unused235",
22637 "unused236",
22638 "unused237",
22639 "unused238",
22640 "unused239",
22641 "unused240",
22642 "unused241",
22643 "unused242",
22644 "unused243",
22645 "unused244",
22646 "unused245",
22647 "unused246",
22648 "unused247",
22649 "unused248",
22650 "unused249",
22651 "unused250",
22652 "unused251",
22653 "unused252",
22654 "unused253",
22655 "unused254",
22656 "unused255"
22657 ],
22658 "optional" : 1,
22659 "type" : "string"
22660 },
22661 "target-vmid" : {
22662 "description" : "The (unique) ID of the VM.",
22663 "format" : "pve-vmid",
22664 "minimum" : 1,
22665 "optional" : 1,
22666 "type" : "integer",
22667 "typetext" : "<integer> (1 - N)"
22668 },
4d47f125
TL
22669 "vmid" : {
22670 "description" : "The (unique) ID of the VM.",
22671 "format" : "pve-vmid",
22672 "minimum" : 1,
22673 "type" : "integer",
22674 "typetext" : "<integer> (1 - N)"
22675 }
22676 }
22677 },
22678 "permissions" : {
22679 "check" : [
5370fa8c
TL
22680 "perm",
22681 "/vms/{vmid}",
4d47f125 22682 [
5370fa8c 22683 "VM.Config.Disk"
4d47f125
TL
22684 ]
22685 ],
5370fa8c 22686 "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
22687 },
22688 "protected" : 1,
22689 "proxyto" : "node",
22690 "returns" : {
22691 "description" : "the task ID.",
22692 "type" : "string"
22693 }
22694 }
22695 },
22696 "leaf" : 1,
22697 "path" : "/nodes/{node}/qemu/{vmid}/move_disk",
22698 "text" : "move_disk"
22699 },
22700 {
22701 "info" : {
1e3f8156 22702 "GET" : {
e9cd3bd4 22703 "allowtoken" : 1,
1e3f8156
TL
22704 "description" : "Get preconditions for migration.",
22705 "method" : "GET",
22706 "name" : "migrate_vm_precondition",
22707 "parameters" : {
22708 "additionalProperties" : 0,
22709 "properties" : {
22710 "node" : {
22711 "description" : "The cluster node name.",
22712 "format" : "pve-node",
22713 "type" : "string",
22714 "typetext" : "<string>"
22715 },
22716 "target" : {
22717 "description" : "Target node.",
22718 "format" : "pve-node",
22719 "optional" : 1,
22720 "type" : "string",
22721 "typetext" : "<string>"
22722 },
22723 "vmid" : {
22724 "description" : "The (unique) ID of the VM.",
22725 "format" : "pve-vmid",
22726 "minimum" : 1,
22727 "type" : "integer",
22728 "typetext" : "<integer> (1 - N)"
22729 }
22730 }
22731 },
22732 "permissions" : {
22733 "check" : [
22734 "perm",
22735 "/vms/{vmid}",
22736 [
22737 "VM.Migrate"
22738 ]
22739 ]
22740 },
22741 "protected" : 1,
22742 "proxyto" : "node",
22743 "returns" : {
22744 "properties" : {
22745 "allowed_nodes" : {
9226ccbc 22746 "description" : "List nodes allowed for offline migration, only passed if VM is offline",
1e3f8156
TL
22747 "optional" : 1,
22748 "type" : "array"
22749 },
22750 "local_disks" : {
22751 "description" : "List local disks including CD-Rom, unsused and not referenced disks",
22752 "type" : "array"
22753 },
22754 "local_resources" : {
22755 "description" : "List local resources e.g. pci, usb",
22756 "type" : "array"
22757 },
9226ccbc
TL
22758 "not_allowed_nodes" : {
22759 "description" : "List not allowed nodes with additional informations, only passed if VM is offline",
22760 "optional" : 1,
22761 "type" : "object"
22762 },
1e3f8156
TL
22763 "running" : {
22764 "type" : "boolean"
22765 }
22766 },
22767 "type" : "object"
22768 }
22769 },
4d47f125 22770 "POST" : {
e9cd3bd4 22771 "allowtoken" : 1,
4d47f125
TL
22772 "description" : "Migrate virtual machine. Creates a new migration task.",
22773 "method" : "POST",
22774 "name" : "migrate_vm",
22775 "parameters" : {
22776 "additionalProperties" : 0,
22777 "properties" : {
95895385
TL
22778 "bwlimit" : {
22779 "default" : "migrate limit from datacenter or storage config",
22780 "description" : "Override I/O bandwidth limit (in KiB/s).",
22781 "minimum" : "0",
22782 "optional" : 1,
22783 "type" : "integer",
22784 "typetext" : "<integer> (0 - N)"
22785 },
4d47f125
TL
22786 "force" : {
22787 "description" : "Allow to migrate VMs which use local devices. Only root may use this option.",
22788 "optional" : 1,
22789 "type" : "boolean",
22790 "typetext" : "<boolean>"
22791 },
22792 "migration_network" : {
22793 "description" : "CIDR of the (sub) network that is used for migration.",
22794 "format" : "CIDR",
22795 "optional" : 1,
22796 "type" : "string",
22797 "typetext" : "<string>"
22798 },
22799 "migration_type" : {
22800 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
22801 "enum" : [
22802 "secure",
22803 "insecure"
22804 ],
22805 "optional" : 1,
22806 "type" : "string"
22807 },
22808 "node" : {
22809 "description" : "The cluster node name.",
22810 "format" : "pve-node",
22811 "type" : "string",
22812 "typetext" : "<string>"
22813 },
22814 "online" : {
1c532546 22815 "description" : "Use online/live migration if VM is running. Ignored if VM is stopped.",
4d47f125
TL
22816 "optional" : 1,
22817 "type" : "boolean",
22818 "typetext" : "<boolean>"
22819 },
22820 "target" : {
22821 "description" : "Target node.",
22822 "format" : "pve-node",
22823 "type" : "string",
22824 "typetext" : "<string>"
22825 },
22826 "targetstorage" : {
c5aa7e14 22827 "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 22828 "format" : "storage-pair-list",
4d47f125 22829 "optional" : 1,
52e44c50
FG
22830 "type" : "string",
22831 "typetext" : "<string>"
22832 },
7aacca6f 22833 "vmid" : {
7aacca6f 22834 "description" : "The (unique) ID of the VM.",
44660702 22835 "format" : "pve-vmid",
7aacca6f 22836 "minimum" : 1,
4bd7df8b 22837 "type" : "integer",
013dc89f 22838 "typetext" : "<integer> (1 - N)"
52e44c50
FG
22839 },
22840 "with-local-disks" : {
22841 "description" : "Enable live storage migration for local disk",
22842 "optional" : 1,
22843 "type" : "boolean",
22844 "typetext" : "<boolean>"
56122987 22845 }
44660702
DM
22846 }
22847 },
22848 "permissions" : {
22849 "check" : [
22850 "perm",
22851 "/vms/{vmid}",
22852 [
22853 "VM.Migrate"
22854 ]
22855 ]
56122987
DM
22856 },
22857 "protected" : 1,
44660702
DM
22858 "proxyto" : "node",
22859 "returns" : {
22860 "description" : "the task ID.",
22861 "type" : "string"
22862 }
56122987 22863 }
7aacca6f 22864 },
44660702
DM
22865 "leaf" : 1,
22866 "path" : "/nodes/{node}/qemu/{vmid}/migrate",
7aacca6f 22867 "text" : "migrate"
56122987 22868 },
81a3384d
TL
22869 {
22870 "info" : {
22871 "POST" : {
22872 "allowtoken" : 1,
22873 "description" : "Migrate virtual machine to a remote cluster. Creates a new migration task. EXPERIMENTAL feature!",
22874 "method" : "POST",
22875 "name" : "remote_migrate_vm",
22876 "parameters" : {
22877 "additionalProperties" : 0,
22878 "properties" : {
22879 "bwlimit" : {
22880 "default" : "migrate limit from datacenter or storage config",
22881 "description" : "Override I/O bandwidth limit (in KiB/s).",
22882 "minimum" : "0",
22883 "optional" : 1,
22884 "type" : "integer",
22885 "typetext" : "<integer> (0 - N)"
22886 },
22887 "delete" : {
22888 "default" : 0,
22889 "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.",
22890 "optional" : 1,
22891 "type" : "boolean",
22892 "typetext" : "<boolean>"
22893 },
22894 "node" : {
22895 "description" : "The cluster node name.",
22896 "format" : "pve-node",
22897 "type" : "string",
22898 "typetext" : "<string>"
22899 },
22900 "online" : {
22901 "description" : "Use online/live migration if VM is running. Ignored if VM is stopped.",
22902 "optional" : 1,
22903 "type" : "boolean",
22904 "typetext" : "<boolean>"
22905 },
22906 "target-bridge" : {
22907 "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.",
22908 "format" : "bridge-pair-list",
22909 "type" : "string",
22910 "typetext" : "<string>"
22911 },
22912 "target-endpoint" : {
22913 "description" : "Remote target endpoint",
22914 "format" : "proxmox-remote",
22915 "type" : "string",
22916 "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>]"
22917 },
22918 "target-storage" : {
22919 "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.",
22920 "format" : "storage-pair-list",
22921 "optional" : 0,
22922 "type" : "string",
22923 "typetext" : "<string>"
22924 },
22925 "target-vmid" : {
22926 "description" : "The (unique) ID of the VM.",
22927 "format" : "pve-vmid",
22928 "minimum" : 1,
22929 "optional" : 1,
22930 "type" : "integer",
22931 "typetext" : "<integer> (1 - N)"
22932 },
22933 "vmid" : {
22934 "description" : "The (unique) ID of the VM.",
22935 "format" : "pve-vmid",
22936 "minimum" : 1,
22937 "type" : "integer",
22938 "typetext" : "<integer> (1 - N)"
22939 }
22940 }
22941 },
22942 "permissions" : {
22943 "check" : [
22944 "perm",
22945 "/vms/{vmid}",
22946 [
22947 "VM.Migrate"
22948 ]
22949 ]
22950 },
22951 "protected" : 1,
22952 "proxyto" : "node",
22953 "returns" : {
22954 "description" : "the task ID.",
22955 "type" : "string"
22956 }
22957 }
22958 },
22959 "leaf" : 1,
22960 "path" : "/nodes/{node}/qemu/{vmid}/remote_migrate",
22961 "text" : "remote_migrate"
22962 },
56122987
DM
22963 {
22964 "info" : {
22965 "POST" : {
e9cd3bd4 22966 "allowtoken" : 1,
9d2e98ed 22967 "description" : "Execute QEMU monitor commands.",
56122987 22968 "method" : "POST",
44660702 22969 "name" : "monitor",
56122987 22970 "parameters" : {
7aacca6f 22971 "additionalProperties" : 0,
56122987 22972 "properties" : {
44660702
DM
22973 "command" : {
22974 "description" : "The monitor command.",
013dc89f
DM
22975 "type" : "string",
22976 "typetext" : "<string>"
44660702 22977 },
56122987 22978 "node" : {
44660702 22979 "description" : "The cluster node name.",
7aacca6f 22980 "format" : "pve-node",
013dc89f
DM
22981 "type" : "string",
22982 "typetext" : "<string>"
56122987
DM
22983 },
22984 "vmid" : {
44660702 22985 "description" : "The (unique) ID of the VM.",
56122987 22986 "format" : "pve-vmid",
7aacca6f 22987 "minimum" : 1,
4bd7df8b 22988 "type" : "integer",
013dc89f 22989 "typetext" : "<integer> (1 - N)"
56122987 22990 }
7aacca6f 22991 }
56122987 22992 },
56122987
DM
22993 "permissions" : {
22994 "check" : [
22995 "perm",
22996 "/vms/{vmid}",
22997 [
22998 "VM.Monitor"
22999 ]
32d876b5
DM
23000 ],
23001 "description" : "Sys.Modify is required for (sub)commands which are not read-only ('info *' and 'help')"
7aacca6f 23002 },
44660702
DM
23003 "protected" : 1,
23004 "proxyto" : "node",
23005 "returns" : {
23006 "type" : "string"
23007 }
56122987 23008 }
44660702
DM
23009 },
23010 "leaf" : 1,
23011 "path" : "/nodes/{node}/qemu/{vmid}/monitor",
23012 "text" : "monitor"
56122987
DM
23013 },
23014 {
56122987
DM
23015 "info" : {
23016 "PUT" : {
e9cd3bd4 23017 "allowtoken" : 1,
44660702
DM
23018 "description" : "Extend volume size.",
23019 "method" : "PUT",
23020 "name" : "resize_vm",
56122987 23021 "parameters" : {
44660702 23022 "additionalProperties" : 0,
56122987 23023 "properties" : {
44660702
DM
23024 "digest" : {
23025 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
23026 "maxLength" : 40,
23027 "optional" : 1,
013dc89f
DM
23028 "type" : "string",
23029 "typetext" : "<string>"
56122987 23030 },
56122987
DM
23031 "disk" : {
23032 "description" : "The disk you want to resize.",
23033 "enum" : [
23034 "ide0",
23035 "ide1",
23036 "ide2",
23037 "ide3",
23038 "scsi0",
23039 "scsi1",
23040 "scsi2",
23041 "scsi3",
23042 "scsi4",
23043 "scsi5",
23044 "scsi6",
23045 "scsi7",
23046 "scsi8",
23047 "scsi9",
23048 "scsi10",
23049 "scsi11",
23050 "scsi12",
23051 "scsi13",
e9cd3bd4
TL
23052 "scsi14",
23053 "scsi15",
23054 "scsi16",
23055 "scsi17",
23056 "scsi18",
23057 "scsi19",
23058 "scsi20",
23059 "scsi21",
23060 "scsi22",
23061 "scsi23",
23062 "scsi24",
23063 "scsi25",
23064 "scsi26",
23065 "scsi27",
23066 "scsi28",
23067 "scsi29",
23068 "scsi30",
56122987
DM
23069 "virtio0",
23070 "virtio1",
23071 "virtio2",
23072 "virtio3",
23073 "virtio4",
23074 "virtio5",
23075 "virtio6",
23076 "virtio7",
23077 "virtio8",
23078 "virtio9",
23079 "virtio10",
23080 "virtio11",
23081 "virtio12",
23082 "virtio13",
23083 "virtio14",
23084 "virtio15",
23085 "sata0",
23086 "sata1",
23087 "sata2",
23088 "sata3",
23089 "sata4",
2c0dde61 23090 "sata5",
5370fa8c
TL
23091 "efidisk0",
23092 "tpmstate0"
44660702
DM
23093 ],
23094 "type" : "string"
56122987 23095 },
44660702
DM
23096 "node" : {
23097 "description" : "The cluster node name.",
23098 "format" : "pve-node",
013dc89f
DM
23099 "type" : "string",
23100 "typetext" : "<string>"
7aacca6f 23101 },
44660702 23102 "size" : {
5d9c884c 23103 "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
23104 "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
23105 "type" : "string"
56122987
DM
23106 },
23107 "skiplock" : {
23108 "description" : "Ignore locks - only root is allowed to use this option.",
23109 "optional" : 1,
013dc89f
DM
23110 "type" : "boolean",
23111 "typetext" : "<boolean>"
56122987
DM
23112 },
23113 "vmid" : {
7aacca6f 23114 "description" : "The (unique) ID of the VM.",
56122987 23115 "format" : "pve-vmid",
44660702 23116 "minimum" : 1,
4bd7df8b 23117 "type" : "integer",
013dc89f 23118 "typetext" : "<integer> (1 - N)"
56122987
DM
23119 }
23120 }
23121 },
23122 "permissions" : {
23123 "check" : [
23124 "perm",
23125 "/vms/{vmid}",
23126 [
44660702 23127 "VM.Config.Disk"
56122987
DM
23128 ]
23129 ]
23130 },
7aacca6f 23131 "protected" : 1,
7aacca6f 23132 "proxyto" : "node",
44660702 23133 "returns" : {
159464a9
TL
23134 "description" : "the task ID.",
23135 "type" : "string"
44660702 23136 }
7aacca6f
DM
23137 }
23138 },
44660702
DM
23139 "leaf" : 1,
23140 "path" : "/nodes/{node}/qemu/{vmid}/resize",
23141 "text" : "resize"
23142 },
23143 {
56122987
DM
23144 "children" : [
23145 {
23146 "children" : [
23147 {
56122987 23148 "info" : {
44660702 23149 "GET" : {
e9cd3bd4 23150 "allowtoken" : 1,
44660702
DM
23151 "description" : "Get snapshot configuration",
23152 "method" : "GET",
23153 "name" : "get_snapshot_config",
56122987 23154 "parameters" : {
44660702 23155 "additionalProperties" : 0,
56122987 23156 "properties" : {
56122987 23157 "node" : {
44660702 23158 "description" : "The cluster node name.",
56122987 23159 "format" : "pve-node",
013dc89f
DM
23160 "type" : "string",
23161 "typetext" : "<string>"
7aacca6f
DM
23162 },
23163 "snapname" : {
44660702 23164 "description" : "The name of the snapshot.",
7aacca6f 23165 "format" : "pve-configid",
44660702 23166 "maxLength" : 40,
013dc89f
DM
23167 "type" : "string",
23168 "typetext" : "<string>"
7aacca6f
DM
23169 },
23170 "vmid" : {
44660702 23171 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
23172 "format" : "pve-vmid",
23173 "minimum" : 1,
4bd7df8b 23174 "type" : "integer",
013dc89f 23175 "typetext" : "<integer> (1 - N)"
56122987 23176 }
44660702 23177 }
56122987
DM
23178 },
23179 "permissions" : {
23180 "check" : [
23181 "perm",
23182 "/vms/{vmid}",
23183 [
2489d6df 23184 "VM.Snapshot",
e9cd3bd4
TL
23185 "VM.Snapshot.Rollback",
23186 "VM.Audit"
2489d6df
WB
23187 ],
23188 "any",
23189 1
56122987
DM
23190 ]
23191 },
44660702 23192 "proxyto" : "node",
56122987 23193 "returns" : {
44660702 23194 "type" : "object"
7aacca6f
DM
23195 }
23196 },
44660702 23197 "PUT" : {
e9cd3bd4 23198 "allowtoken" : 1,
44660702
DM
23199 "description" : "Update snapshot metadata.",
23200 "method" : "PUT",
23201 "name" : "update_snapshot_config",
56122987 23202 "parameters" : {
44660702 23203 "additionalProperties" : 0,
56122987 23204 "properties" : {
44660702
DM
23205 "description" : {
23206 "description" : "A textual description or comment.",
23207 "optional" : 1,
013dc89f
DM
23208 "type" : "string",
23209 "typetext" : "<string>"
44660702 23210 },
56122987 23211 "node" : {
7aacca6f 23212 "description" : "The cluster node name.",
44660702 23213 "format" : "pve-node",
013dc89f
DM
23214 "type" : "string",
23215 "typetext" : "<string>"
56122987 23216 },
56122987
DM
23217 "snapname" : {
23218 "description" : "The name of the snapshot.",
44660702 23219 "format" : "pve-configid",
7aacca6f 23220 "maxLength" : 40,
013dc89f
DM
23221 "type" : "string",
23222 "typetext" : "<string>"
7aacca6f
DM
23223 },
23224 "vmid" : {
23225 "description" : "The (unique) ID of the VM.",
44660702 23226 "format" : "pve-vmid",
7aacca6f 23227 "minimum" : 1,
4bd7df8b 23228 "type" : "integer",
013dc89f 23229 "typetext" : "<integer> (1 - N)"
56122987 23230 }
44660702 23231 }
56122987 23232 },
7aacca6f
DM
23233 "permissions" : {
23234 "check" : [
23235 "perm",
23236 "/vms/{vmid}",
23237 [
23238 "VM.Snapshot"
23239 ]
23240 ]
44660702
DM
23241 },
23242 "protected" : 1,
23243 "proxyto" : "node",
23244 "returns" : {
23245 "type" : "null"
7aacca6f 23246 }
56122987
DM
23247 }
23248 },
44660702 23249 "leaf" : 1,
7aacca6f 23250 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config",
44660702 23251 "text" : "config"
56122987
DM
23252 },
23253 {
56122987
DM
23254 "info" : {
23255 "POST" : {
e9cd3bd4 23256 "allowtoken" : 1,
44660702 23257 "description" : "Rollback VM state to specified snapshot.",
7aacca6f 23258 "method" : "POST",
44660702 23259 "name" : "rollback",
56122987
DM
23260 "parameters" : {
23261 "additionalProperties" : 0,
23262 "properties" : {
44660702
DM
23263 "node" : {
23264 "description" : "The cluster node name.",
23265 "format" : "pve-node",
013dc89f
DM
23266 "type" : "string",
23267 "typetext" : "<string>"
44660702 23268 },
56122987 23269 "snapname" : {
44660702 23270 "description" : "The name of the snapshot.",
56122987
DM
23271 "format" : "pve-configid",
23272 "maxLength" : 40,
013dc89f
DM
23273 "type" : "string",
23274 "typetext" : "<string>"
7aacca6f 23275 },
4e7f60c2
TL
23276 "start" : {
23277 "default" : 0,
9d2e98ed 23278 "description" : "Whether the VM should get started after rolling back successfully. (Note: VMs will be automatically started if the snapshot includes RAM.)",
4e7f60c2
TL
23279 "optional" : 1,
23280 "type" : "boolean",
23281 "typetext" : "<boolean>"
23282 },
56122987 23283 "vmid" : {
7aacca6f 23284 "description" : "The (unique) ID of the VM.",
44660702 23285 "format" : "pve-vmid",
56122987 23286 "minimum" : 1,
4bd7df8b 23287 "type" : "integer",
013dc89f 23288 "typetext" : "<integer> (1 - N)"
56122987
DM
23289 }
23290 }
23291 },
7aacca6f 23292 "permissions" : {
56122987
DM
23293 "check" : [
23294 "perm",
23295 "/vms/{vmid}",
23296 [
2489d6df
WB
23297 "VM.Snapshot",
23298 "VM.Snapshot.Rollback"
23299 ],
23300 "any",
23301 1
56122987
DM
23302 ]
23303 },
44660702 23304 "protected" : 1,
7aacca6f 23305 "proxyto" : "node",
44660702
DM
23306 "returns" : {
23307 "description" : "the task ID.",
23308 "type" : "string"
23309 }
56122987
DM
23310 }
23311 },
44660702
DM
23312 "leaf" : 1,
23313 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback",
7aacca6f 23314 "text" : "rollback"
56122987 23315 }
44660702
DM
23316 ],
23317 "info" : {
23318 "DELETE" : {
e9cd3bd4 23319 "allowtoken" : 1,
44660702
DM
23320 "description" : "Delete a VM snapshot.",
23321 "method" : "DELETE",
23322 "name" : "delsnapshot",
23323 "parameters" : {
23324 "additionalProperties" : 0,
23325 "properties" : {
23326 "force" : {
23327 "description" : "For removal from config file, even if removing disk snapshots fails.",
23328 "optional" : 1,
013dc89f
DM
23329 "type" : "boolean",
23330 "typetext" : "<boolean>"
44660702
DM
23331 },
23332 "node" : {
23333 "description" : "The cluster node name.",
23334 "format" : "pve-node",
013dc89f
DM
23335 "type" : "string",
23336 "typetext" : "<string>"
44660702
DM
23337 },
23338 "snapname" : {
23339 "description" : "The name of the snapshot.",
23340 "format" : "pve-configid",
23341 "maxLength" : 40,
013dc89f
DM
23342 "type" : "string",
23343 "typetext" : "<string>"
44660702
DM
23344 },
23345 "vmid" : {
23346 "description" : "The (unique) ID of the VM.",
23347 "format" : "pve-vmid",
23348 "minimum" : 1,
4bd7df8b 23349 "type" : "integer",
013dc89f 23350 "typetext" : "<integer> (1 - N)"
44660702
DM
23351 }
23352 }
23353 },
23354 "permissions" : {
23355 "check" : [
23356 "perm",
23357 "/vms/{vmid}",
23358 [
23359 "VM.Snapshot"
23360 ]
23361 ]
23362 },
23363 "protected" : 1,
23364 "proxyto" : "node",
23365 "returns" : {
23366 "description" : "the task ID.",
23367 "type" : "string"
23368 }
23369 },
23370 "GET" : {
e9cd3bd4 23371 "allowtoken" : 1,
44660702
DM
23372 "description" : "",
23373 "method" : "GET",
23374 "name" : "snapshot_cmd_idx",
23375 "parameters" : {
23376 "additionalProperties" : 0,
23377 "properties" : {
23378 "node" : {
23379 "description" : "The cluster node name.",
23380 "format" : "pve-node",
013dc89f
DM
23381 "type" : "string",
23382 "typetext" : "<string>"
44660702
DM
23383 },
23384 "snapname" : {
23385 "description" : "The name of the snapshot.",
23386 "format" : "pve-configid",
23387 "maxLength" : 40,
013dc89f
DM
23388 "type" : "string",
23389 "typetext" : "<string>"
44660702
DM
23390 },
23391 "vmid" : {
23392 "description" : "The (unique) ID of the VM.",
23393 "format" : "pve-vmid",
23394 "minimum" : 1,
4bd7df8b 23395 "type" : "integer",
013dc89f 23396 "typetext" : "<integer> (1 - N)"
44660702
DM
23397 }
23398 }
23399 },
23400 "permissions" : {
23401 "user" : "all"
23402 },
23403 "returns" : {
23404 "items" : {
23405 "properties" : {},
23406 "type" : "object"
23407 },
23408 "links" : [
23409 {
23410 "href" : "{cmd}",
23411 "rel" : "child"
23412 }
23413 ],
23414 "type" : "array"
23415 }
23416 }
23417 },
23418 "leaf" : 0,
23419 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
23420 "text" : "{snapname}"
56122987
DM
23421 }
23422 ],
44660702
DM
23423 "info" : {
23424 "GET" : {
e9cd3bd4 23425 "allowtoken" : 1,
44660702
DM
23426 "description" : "List all snapshots.",
23427 "method" : "GET",
23428 "name" : "snapshot_list",
23429 "parameters" : {
23430 "additionalProperties" : 0,
23431 "properties" : {
23432 "node" : {
23433 "description" : "The cluster node name.",
23434 "format" : "pve-node",
013dc89f
DM
23435 "type" : "string",
23436 "typetext" : "<string>"
44660702
DM
23437 },
23438 "vmid" : {
23439 "description" : "The (unique) ID of the VM.",
23440 "format" : "pve-vmid",
23441 "minimum" : 1,
4bd7df8b 23442 "type" : "integer",
013dc89f 23443 "typetext" : "<integer> (1 - N)"
44660702
DM
23444 }
23445 }
23446 },
23447 "permissions" : {
23448 "check" : [
23449 "perm",
23450 "/vms/{vmid}",
23451 [
23452 "VM.Audit"
23453 ]
23454 ]
23455 },
23456 "protected" : 1,
23457 "proxyto" : "node",
23458 "returns" : {
23459 "items" : {
4d47f125
TL
23460 "properties" : {
23461 "description" : {
23462 "description" : "Snapshot description.",
23463 "type" : "string"
23464 },
23465 "name" : {
23466 "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
23467 "type" : "string"
23468 },
23469 "parent" : {
23470 "description" : "Parent snapshot identifier.",
23471 "optional" : 1,
23472 "type" : "string"
23473 },
23474 "snaptime" : {
23475 "description" : "Snapshot creation time",
23476 "optional" : 1,
23477 "renderer" : "timestamp",
23478 "type" : "integer"
23479 },
23480 "vmstate" : {
23481 "description" : "Snapshot includes RAM.",
23482 "optional" : 1,
23483 "type" : "boolean"
23484 }
23485 },
44660702
DM
23486 "type" : "object"
23487 },
23488 "links" : [
23489 {
23490 "href" : "{name}",
23491 "rel" : "child"
23492 }
23493 ],
23494 "type" : "array"
23495 }
23496 },
23497 "POST" : {
e9cd3bd4 23498 "allowtoken" : 1,
44660702
DM
23499 "description" : "Snapshot a VM.",
23500 "method" : "POST",
23501 "name" : "snapshot",
23502 "parameters" : {
23503 "additionalProperties" : 0,
23504 "properties" : {
23505 "description" : {
23506 "description" : "A textual description or comment.",
23507 "optional" : 1,
013dc89f
DM
23508 "type" : "string",
23509 "typetext" : "<string>"
44660702
DM
23510 },
23511 "node" : {
23512 "description" : "The cluster node name.",
23513 "format" : "pve-node",
013dc89f
DM
23514 "type" : "string",
23515 "typetext" : "<string>"
44660702
DM
23516 },
23517 "snapname" : {
23518 "description" : "The name of the snapshot.",
23519 "format" : "pve-configid",
23520 "maxLength" : 40,
013dc89f
DM
23521 "type" : "string",
23522 "typetext" : "<string>"
44660702
DM
23523 },
23524 "vmid" : {
23525 "description" : "The (unique) ID of the VM.",
23526 "format" : "pve-vmid",
23527 "minimum" : 1,
4bd7df8b 23528 "type" : "integer",
013dc89f 23529 "typetext" : "<integer> (1 - N)"
44660702
DM
23530 },
23531 "vmstate" : {
23532 "description" : "Save the vmstate",
23533 "optional" : 1,
013dc89f
DM
23534 "type" : "boolean",
23535 "typetext" : "<boolean>"
44660702
DM
23536 }
23537 }
23538 },
23539 "permissions" : {
23540 "check" : [
23541 "perm",
23542 "/vms/{vmid}",
23543 [
23544 "VM.Snapshot"
23545 ]
23546 ]
23547 },
23548 "protected" : 1,
23549 "proxyto" : "node",
23550 "returns" : {
23551 "description" : "the task ID.",
23552 "type" : "string"
23553 }
23554 }
23555 },
23556 "leaf" : 0,
23557 "path" : "/nodes/{node}/qemu/{vmid}/snapshot",
7aacca6f 23558 "text" : "snapshot"
56122987
DM
23559 },
23560 {
56122987
DM
23561 "info" : {
23562 "POST" : {
e9cd3bd4 23563 "allowtoken" : 1,
44660702
DM
23564 "description" : "Create a Template.",
23565 "method" : "POST",
56122987 23566 "name" : "template",
56122987 23567 "parameters" : {
7aacca6f 23568 "additionalProperties" : 0,
56122987 23569 "properties" : {
56122987 23570 "disk" : {
56122987
DM
23571 "description" : "If you want to convert only 1 disk to base image.",
23572 "enum" : [
23573 "ide0",
23574 "ide1",
23575 "ide2",
23576 "ide3",
23577 "scsi0",
23578 "scsi1",
23579 "scsi2",
23580 "scsi3",
23581 "scsi4",
23582 "scsi5",
23583 "scsi6",
23584 "scsi7",
23585 "scsi8",
23586 "scsi9",
23587 "scsi10",
23588 "scsi11",
23589 "scsi12",
23590 "scsi13",
e9cd3bd4
TL
23591 "scsi14",
23592 "scsi15",
23593 "scsi16",
23594 "scsi17",
23595 "scsi18",
23596 "scsi19",
23597 "scsi20",
23598 "scsi21",
23599 "scsi22",
23600 "scsi23",
23601 "scsi24",
23602 "scsi25",
23603 "scsi26",
23604 "scsi27",
23605 "scsi28",
23606 "scsi29",
23607 "scsi30",
56122987
DM
23608 "virtio0",
23609 "virtio1",
23610 "virtio2",
23611 "virtio3",
23612 "virtio4",
23613 "virtio5",
23614 "virtio6",
23615 "virtio7",
23616 "virtio8",
23617 "virtio9",
23618 "virtio10",
23619 "virtio11",
23620 "virtio12",
23621 "virtio13",
23622 "virtio14",
23623 "virtio15",
23624 "sata0",
23625 "sata1",
23626 "sata2",
23627 "sata3",
23628 "sata4",
2c0dde61 23629 "sata5",
5370fa8c
TL
23630 "efidisk0",
23631 "tpmstate0"
56122987 23632 ],
7aacca6f 23633 "optional" : 1,
56122987
DM
23634 "type" : "string"
23635 },
44660702
DM
23636 "node" : {
23637 "description" : "The cluster node name.",
23638 "format" : "pve-node",
013dc89f
DM
23639 "type" : "string",
23640 "typetext" : "<string>"
44660702
DM
23641 },
23642 "vmid" : {
23643 "description" : "The (unique) ID of the VM.",
7aacca6f 23644 "format" : "pve-vmid",
44660702 23645 "minimum" : 1,
4bd7df8b 23646 "type" : "integer",
013dc89f 23647 "typetext" : "<integer> (1 - N)"
56122987 23648 }
7aacca6f 23649 }
56122987 23650 },
7aacca6f
DM
23651 "permissions" : {
23652 "check" : [
23653 "perm",
23654 "/vms/{vmid}",
23655 [
23656 "VM.Allocate"
23657 ]
23658 ],
23659 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
23660 },
44660702 23661 "protected" : 1,
7aacca6f 23662 "proxyto" : "node",
7aacca6f 23663 "returns" : {
5370fa8c
TL
23664 "description" : "the task ID.",
23665 "type" : "string"
7aacca6f 23666 }
56122987
DM
23667 }
23668 },
44660702 23669 "leaf" : 1,
7aacca6f 23670 "path" : "/nodes/{node}/qemu/{vmid}/template",
44660702 23671 "text" : "template"
81a3384d
TL
23672 },
23673 {
23674 "info" : {
23675 "POST" : {
23676 "allowtoken" : 1,
23677 "description" : "Migration tunnel endpoint - only for internal use by VM migration.",
23678 "method" : "POST",
23679 "name" : "mtunnel",
23680 "parameters" : {
23681 "additionalProperties" : 0,
23682 "properties" : {
23683 "bridges" : {
23684 "description" : "List of network bridges to check availability. Will be checked again for actually used bridges during migration.",
23685 "format" : "pve-bridge-id-list",
23686 "optional" : 1,
23687 "type" : "string",
23688 "typetext" : "<string>"
23689 },
23690 "node" : {
23691 "description" : "The cluster node name.",
23692 "format" : "pve-node",
23693 "type" : "string",
23694 "typetext" : "<string>"
23695 },
23696 "storages" : {
23697 "description" : "List of storages to check permission and availability. Will be checked again for all actually used storages during migration.",
23698 "format" : "pve-storage-id-list",
23699 "optional" : 1,
23700 "type" : "string",
23701 "typetext" : "<string>"
23702 },
23703 "vmid" : {
23704 "description" : "The (unique) ID of the VM.",
23705 "format" : "pve-vmid",
23706 "minimum" : 1,
23707 "type" : "integer",
23708 "typetext" : "<integer> (1 - N)"
23709 }
23710 }
23711 },
23712 "permissions" : {
23713 "check" : [
23714 "and",
23715 [
23716 "perm",
23717 "/vms/{vmid}",
23718 [
23719 "VM.Allocate"
23720 ]
23721 ],
23722 [
23723 "perm",
23724 "/",
23725 [
23726 "Sys.Incoming"
23727 ]
23728 ]
23729 ],
23730 "description" : "You need 'VM.Allocate' permissions on '/vms/{vmid}' and Sys.Incoming on '/'. Further permission checks happen during the actual migration."
23731 },
23732 "protected" : 1,
23733 "returns" : {
23734 "additionalProperties" : 0,
23735 "properties" : {
23736 "socket" : {
23737 "type" : "string"
23738 },
23739 "ticket" : {
23740 "type" : "string"
23741 },
23742 "upid" : {
23743 "type" : "string"
23744 }
23745 }
23746 }
23747 }
23748 },
23749 "leaf" : 1,
23750 "path" : "/nodes/{node}/qemu/{vmid}/mtunnel",
23751 "text" : "mtunnel"
23752 },
23753 {
23754 "info" : {
23755 "GET" : {
23756 "allowtoken" : 1,
23757 "description" : "Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.",
23758 "method" : "GET",
23759 "name" : "mtunnelwebsocket",
23760 "parameters" : {
23761 "additionalProperties" : 0,
23762 "properties" : {
23763 "node" : {
23764 "description" : "The cluster node name.",
23765 "format" : "pve-node",
23766 "type" : "string",
23767 "typetext" : "<string>"
23768 },
23769 "socket" : {
23770 "description" : "unix socket to forward to",
23771 "type" : "string",
23772 "typetext" : "<string>"
23773 },
23774 "ticket" : {
23775 "description" : "ticket return by initial 'mtunnel' API call, or retrieved via 'ticket' tunnel command",
23776 "type" : "string",
23777 "typetext" : "<string>"
23778 },
23779 "vmid" : {
23780 "description" : "The (unique) ID of the VM.",
23781 "format" : "pve-vmid",
23782 "minimum" : 1,
23783 "type" : "integer",
23784 "typetext" : "<integer> (1 - N)"
23785 }
23786 }
23787 },
23788 "permissions" : {
23789 "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.",
23790 "user" : "all"
23791 },
23792 "returns" : {
23793 "properties" : {
23794 "port" : {
23795 "optional" : 1,
23796 "type" : "string"
23797 },
23798 "socket" : {
23799 "optional" : 1,
23800 "type" : "string"
23801 }
23802 },
23803 "type" : "object"
23804 }
23805 }
23806 },
23807 "leaf" : 1,
23808 "path" : "/nodes/{node}/qemu/{vmid}/mtunnelwebsocket",
23809 "text" : "mtunnelwebsocket"
56122987
DM
23810 }
23811 ],
7aacca6f 23812 "info" : {
44660702 23813 "DELETE" : {
e9cd3bd4 23814 "allowtoken" : 1,
d2656385 23815 "description" : "Destroy the VM and all used/owned volumes. Removes any VM specific permissions and firewall rules",
44660702
DM
23816 "method" : "DELETE",
23817 "name" : "destroy_vm",
7aacca6f 23818 "parameters" : {
44660702 23819 "additionalProperties" : 0,
7aacca6f 23820 "properties" : {
d2656385 23821 "destroy-unreferenced-disks" : {
8f4d9c87 23822 "default" : 0,
d2656385
TL
23823 "description" : "If set, destroy additionally all disks not referenced in the config but with a matching VMID from all enabled storages.",
23824 "optional" : 1,
23825 "type" : "boolean",
23826 "typetext" : "<boolean>"
23827 },
7aacca6f 23828 "node" : {
44660702 23829 "description" : "The cluster node name.",
7aacca6f 23830 "format" : "pve-node",
013dc89f
DM
23831 "type" : "string",
23832 "typetext" : "<string>"
44660702 23833 },
1c532546 23834 "purge" : {
d2656385 23835 "description" : "Remove VMID from configurations, like backup & replication jobs and HA.",
1c532546
TL
23836 "optional" : 1,
23837 "type" : "boolean",
23838 "typetext" : "<boolean>"
23839 },
44660702
DM
23840 "skiplock" : {
23841 "description" : "Ignore locks - only root is allowed to use this option.",
23842 "optional" : 1,
013dc89f
DM
23843 "type" : "boolean",
23844 "typetext" : "<boolean>"
7aacca6f
DM
23845 },
23846 "vmid" : {
44660702 23847 "description" : "The (unique) ID of the VM.",
7aacca6f 23848 "format" : "pve-vmid",
44660702 23849 "minimum" : 1,
4bd7df8b 23850 "type" : "integer",
013dc89f 23851 "typetext" : "<integer> (1 - N)"
7aacca6f 23852 }
44660702 23853 }
7aacca6f 23854 },
7aacca6f
DM
23855 "permissions" : {
23856 "check" : [
23857 "perm",
23858 "/vms/{vmid}",
23859 [
23860 "VM.Allocate"
23861 ]
23862 ]
23863 },
44660702
DM
23864 "protected" : 1,
23865 "proxyto" : "node",
7aacca6f
DM
23866 "returns" : {
23867 "type" : "string"
44660702
DM
23868 }
23869 },
23870 "GET" : {
e9cd3bd4 23871 "allowtoken" : 1,
44660702
DM
23872 "description" : "Directory index",
23873 "method" : "GET",
23874 "name" : "vmdiridx",
7aacca6f 23875 "parameters" : {
44660702 23876 "additionalProperties" : 0,
7aacca6f 23877 "properties" : {
7aacca6f 23878 "node" : {
7aacca6f 23879 "description" : "The cluster node name.",
44660702 23880 "format" : "pve-node",
013dc89f
DM
23881 "type" : "string",
23882 "typetext" : "<string>"
44660702
DM
23883 },
23884 "vmid" : {
23885 "description" : "The (unique) ID of the VM.",
23886 "format" : "pve-vmid",
23887 "minimum" : 1,
4bd7df8b 23888 "type" : "integer",
013dc89f 23889 "typetext" : "<integer> (1 - N)"
7aacca6f 23890 }
44660702 23891 }
7aacca6f 23892 },
44660702
DM
23893 "permissions" : {
23894 "user" : "all"
23895 },
23896 "proxyto" : "node",
23897 "returns" : {
23898 "items" : {
23899 "properties" : {
23900 "subdir" : {
23901 "type" : "string"
23902 }
23903 },
23904 "type" : "object"
23905 },
23906 "links" : [
23907 {
23908 "href" : "{subdir}",
23909 "rel" : "child"
23910 }
23911 ],
23912 "type" : "array"
23913 }
7aacca6f 23914 }
44660702
DM
23915 },
23916 "leaf" : 0,
23917 "path" : "/nodes/{node}/qemu/{vmid}",
23918 "text" : "{vmid}"
56122987
DM
23919 }
23920 ],
23921 "info" : {
44660702 23922 "GET" : {
e9cd3bd4 23923 "allowtoken" : 1,
44660702
DM
23924 "description" : "Virtual machine index (per node).",
23925 "method" : "GET",
23926 "name" : "vmlist",
56122987 23927 "parameters" : {
44660702 23928 "additionalProperties" : 0,
56122987 23929 "properties" : {
44660702
DM
23930 "full" : {
23931 "description" : "Determine the full status of active VMs.",
56122987 23932 "optional" : 1,
013dc89f
DM
23933 "type" : "boolean",
23934 "typetext" : "<boolean>"
56122987 23935 },
44660702
DM
23936 "node" : {
23937 "description" : "The cluster node name.",
23938 "format" : "pve-node",
013dc89f
DM
23939 "type" : "string",
23940 "typetext" : "<string>"
44660702
DM
23941 }
23942 }
23943 },
23944 "permissions" : {
23945 "description" : "Only list VMs where you have VM.Audit permissons on /vms/<vmid>.",
23946 "user" : "all"
23947 },
23948 "protected" : 1,
23949 "proxyto" : "node",
23950 "returns" : {
23951 "items" : {
4d47f125
TL
23952 "properties" : {
23953 "cpus" : {
23954 "description" : "Maximum usable CPUs.",
23955 "optional" : 1,
23956 "type" : "number"
23957 },
95895385
TL
23958 "lock" : {
23959 "description" : "The current config lock, if any.",
23960 "optional" : 1,
23961 "type" : "string"
23962 },
4d47f125
TL
23963 "maxdisk" : {
23964 "description" : "Root disk size in bytes.",
23965 "optional" : 1,
23966 "renderer" : "bytes",
23967 "type" : "integer"
23968 },
23969 "maxmem" : {
23970 "description" : "Maximum memory in bytes.",
23971 "optional" : 1,
23972 "renderer" : "bytes",
23973 "type" : "integer"
23974 },
23975 "name" : {
23976 "description" : "VM name.",
23977 "optional" : 1,
23978 "type" : "string"
23979 },
23980 "pid" : {
23981 "description" : "PID of running qemu process.",
23982 "optional" : 1,
23983 "type" : "integer"
23984 },
23985 "qmpstatus" : {
9d2e98ed 23986 "description" : "QEMU QMP agent status.",
4d47f125
TL
23987 "optional" : 1,
23988 "type" : "string"
23989 },
d2656385
TL
23990 "running-machine" : {
23991 "description" : "The currently running machine type (if running).",
23992 "optional" : 1,
23993 "type" : "string"
23994 },
23995 "running-qemu" : {
23996 "description" : "The currently running QEMU version (if running).",
23997 "optional" : 1,
23998 "type" : "string"
23999 },
4d47f125 24000 "status" : {
9d2e98ed 24001 "description" : "QEMU process status.",
4d47f125
TL
24002 "enum" : [
24003 "stopped",
24004 "running"
24005 ],
24006 "type" : "string"
24007 },
5c1699e5
TL
24008 "tags" : {
24009 "description" : "The current configured tags, if any",
24010 "optional" : 1,
24011 "type" : "string"
24012 },
4d47f125
TL
24013 "uptime" : {
24014 "description" : "Uptime.",
24015 "optional" : 1,
24016 "renderer" : "duration",
24017 "type" : "integer"
24018 },
24019 "vmid" : {
24020 "description" : "The (unique) ID of the VM.",
24021 "format" : "pve-vmid",
24022 "minimum" : 1,
24023 "type" : "integer"
24024 }
24025 },
44660702
DM
24026 "type" : "object"
24027 },
24028 "links" : [
24029 {
24030 "href" : "{vmid}",
24031 "rel" : "child"
24032 }
24033 ],
24034 "type" : "array"
24035 }
24036 },
24037 "POST" : {
e9cd3bd4 24038 "allowtoken" : 1,
44660702
DM
24039 "description" : "Create or restore a virtual machine.",
24040 "method" : "POST",
24041 "name" : "create_vm",
24042 "parameters" : {
24043 "additionalProperties" : 0,
24044 "properties" : {
7aacca6f 24045 "acpi" : {
7aacca6f 24046 "default" : 1,
44660702 24047 "description" : "Enable/disable ACPI.",
56122987 24048 "optional" : 1,
013dc89f
DM
24049 "type" : "boolean",
24050 "typetext" : "<boolean>"
56122987 24051 },
4e7f60c2 24052 "affinity" : {
81a3384d 24053 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
24054 "format" : "pve-cpuset",
24055 "optional" : 1,
24056 "type" : "string",
24057 "typetext" : "<string>"
24058 },
44660702 24059 "agent" : {
9d2e98ed 24060 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
24061 "format" : {
24062 "enabled" : {
24063 "default" : 0,
24064 "default_key" : 1,
9d2e98ed
TL
24065 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
24066 "type" : "boolean"
24067 },
24068 "freeze-fs-on-backup" : {
24069 "default" : 1,
24070 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
24071 "optional" : 1,
4d47f125
TL
24072 "type" : "boolean"
24073 },
24074 "fstrim_cloned_disks" : {
24075 "default" : 0,
d2656385 24076 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
24077 "optional" : 1,
24078 "type" : "boolean"
5c1699e5
TL
24079 },
24080 "type" : {
24081 "default" : "virtio",
24082 "description" : "Select the agent type",
24083 "enum" : [
24084 "virtio",
24085 "isa"
24086 ],
24087 "optional" : 1,
24088 "type" : "string"
4d47f125
TL
24089 }
24090 },
7aacca6f 24091 "optional" : 1,
4d47f125 24092 "type" : "string",
9d2e98ed 24093 "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
56122987 24094 },
e2d681b3
TL
24095 "arch" : {
24096 "description" : "Virtual processor architecture. Defaults to the host.",
24097 "enum" : [
24098 "x86_64",
24099 "aarch64"
24100 ],
24101 "optional" : 1,
24102 "type" : "string"
24103 },
44660702 24104 "archive" : {
c5aa7e14 24105 "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 24106 "maxLength" : 255,
56122987 24107 "optional" : 1,
013dc89f
DM
24108 "type" : "string",
24109 "typetext" : "<string>"
56122987 24110 },
44660702 24111 "args" : {
c2993fe5 24112 "description" : "Arbitrary arguments passed to kvm.",
56122987 24113 "optional" : 1,
c2993fe5 24114 "type" : "string",
013dc89f 24115 "typetext" : "<string>",
159464a9 24116 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -smbios 'type=0,vendor=FOO'\n\nNOTE: this option is for experts only.\n"
56122987 24117 },
1c532546
TL
24118 "audio0" : {
24119 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
24120 "format" : {
24121 "device" : {
24122 "description" : "Configure an audio device.",
24123 "enum" : [
24124 "ich9-intel-hda",
24125 "intel-hda",
24126 "AC97"
24127 ],
24128 "type" : "string"
24129 },
24130 "driver" : {
24131 "default" : "spice",
24132 "description" : "Driver backend for the audio device.",
24133 "enum" : [
d2656385
TL
24134 "spice",
24135 "none"
1c532546
TL
24136 ],
24137 "optional" : 1,
24138 "type" : "string"
24139 }
24140 },
24141 "optional" : 1,
24142 "type" : "string",
d2656385 24143 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 24144 },
44660702 24145 "autostart" : {
7aacca6f 24146 "default" : 0,
44660702
DM
24147 "description" : "Automatic restart after crash (currently ignored).",
24148 "optional" : 1,
013dc89f
DM
24149 "type" : "boolean",
24150 "typetext" : "<boolean>"
7aacca6f 24151 },
44660702 24152 "balloon" : {
9d2e98ed 24153 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
44660702 24154 "minimum" : 0,
56122987 24155 "optional" : 1,
4bd7df8b 24156 "type" : "integer",
013dc89f 24157 "typetext" : "<integer> (0 - N)"
56122987 24158 },
44660702
DM
24159 "bios" : {
24160 "default" : "seabios",
24161 "description" : "Select BIOS implementation.",
24162 "enum" : [
24163 "seabios",
24164 "ovmf"
24165 ],
56122987 24166 "optional" : 1,
44660702 24167 "type" : "string"
56122987 24168 },
44660702 24169 "boot" : {
5370fa8c 24170 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 24171 "format" : "pve-qm-boot",
56122987 24172 "optional" : 1,
4772952b
TL
24173 "type" : "string",
24174 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
56122987 24175 },
7aacca6f 24176 "bootdisk" : {
4772952b 24177 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
24178 "format" : "pve-qm-bootdisk",
24179 "optional" : 1,
7aacca6f 24180 "pattern" : "(ide|sata|scsi|virtio)\\d+",
44660702
DM
24181 "type" : "string"
24182 },
27a7acb2 24183 "bwlimit" : {
95895385
TL
24184 "default" : "restore limit from datacenter or storage config",
24185 "description" : "Override I/O bandwidth limit (in KiB/s).",
27a7acb2
DM
24186 "minimum" : "0",
24187 "optional" : 1,
24188 "type" : "integer",
24189 "typetext" : "<integer> (0 - N)"
24190 },
44660702
DM
24191 "cdrom" : {
24192 "description" : "This is an alias for option -ide2",
de0983cb 24193 "format" : "pve-qm-ide",
56122987 24194 "optional" : 1,
44660702 24195 "type" : "string",
013dc89f 24196 "typetext" : "<volume>"
56122987 24197 },
95895385
TL
24198 "cicustom" : {
24199 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
24200 "format" : "pve-qm-cicustom",
24201 "optional" : 1,
24202 "type" : "string",
5370fa8c 24203 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 24204 },
27a7acb2
DM
24205 "cipassword" : {
24206 "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.",
24207 "optional" : 1,
24208 "type" : "string",
24209 "typetext" : "<string>"
24210 },
24211 "citype" : {
24212 "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.",
24213 "enum" : [
24214 "configdrive2",
d2656385
TL
24215 "nocloud",
24216 "opennebula"
27a7acb2
DM
24217 ],
24218 "optional" : 1,
24219 "type" : "string"
24220 },
159464a9
TL
24221 "ciupgrade" : {
24222 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
24223 "optional" : 1,
24224 "type" : "boolean",
24225 "typetext" : "<boolean>"
24226 },
27a7acb2
DM
24227 "ciuser" : {
24228 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
24229 "optional" : 1,
24230 "type" : "string",
24231 "typetext" : "<string>"
24232 },
44660702
DM
24233 "cores" : {
24234 "default" : 1,
24235 "description" : "The number of cores per socket.",
7aacca6f 24236 "minimum" : 1,
44660702 24237 "optional" : 1,
4bd7df8b 24238 "type" : "integer",
013dc89f 24239 "typetext" : "<integer> (1 - N)"
7aacca6f 24240 },
44660702
DM
24241 "cpu" : {
24242 "description" : "Emulated CPU type.",
c5aa7e14 24243 "format" : "pve-vm-cpu-conf",
56122987 24244 "optional" : 1,
4bd7df8b 24245 "type" : "string",
04d22a9f 24246 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
56122987 24247 },
44660702 24248 "cpulimit" : {
7aacca6f 24249 "default" : 0,
c2993fe5 24250 "description" : "Limit of CPU usage.",
44660702
DM
24251 "maximum" : 128,
24252 "minimum" : 0,
7aacca6f 24253 "optional" : 1,
c2993fe5 24254 "type" : "number",
013dc89f 24255 "typetext" : "<number> (0 - 128)",
c2993fe5 24256 "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
24257 },
24258 "cpuunits" : {
5370fa8c
TL
24259 "default" : "cgroup v1: 1024, cgroup v2: 100",
24260 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 24261 "maximum" : 262144,
7af2edf9 24262 "minimum" : 1,
44660702 24263 "optional" : 1,
c2993fe5 24264 "type" : "integer",
7af2edf9 24265 "typetext" : "<integer> (1 - 262144)",
2489d6df 24266 "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
24267 },
24268 "description" : {
8f4d9c87
TL
24269 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
24270 "maxLength" : 8192,
56122987 24271 "optional" : 1,
013dc89f
DM
24272 "type" : "string",
24273 "typetext" : "<string>"
44660702 24274 },
4d47f125 24275 "efidisk0" : {
9d2e98ed 24276 "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 24277 "format" : {
5370fa8c
TL
24278 "efitype" : {
24279 "default" : "2m",
9d2e98ed 24280 "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified. Ignored for VMs with arch=aarc64 (ARM).",
5370fa8c
TL
24281 "enum" : [
24282 "2m",
24283 "4m"
24284 ],
24285 "optional" : 1,
24286 "type" : "string"
24287 },
4d47f125
TL
24288 "file" : {
24289 "default_key" : 1,
24290 "description" : "The drive's backing volume.",
24291 "format" : "pve-volume-id-or-qm-path",
24292 "format_description" : "volume",
24293 "type" : "string"
24294 },
24295 "format" : {
24296 "description" : "The drive's backing file's data format.",
24297 "enum" : [
24298 "raw",
24299 "cow",
24300 "qcow",
24301 "qed",
24302 "qcow2",
24303 "vmdk",
24304 "cloop"
24305 ],
24306 "optional" : 1,
24307 "type" : "string"
24308 },
7af2edf9
TL
24309 "import-from" : {
24310 "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!",
24311 "format" : "pve-volume-id-or-absolute-path",
24312 "format_description" : "source volume",
24313 "optional" : 1,
24314 "type" : "string"
24315 },
5370fa8c
TL
24316 "pre-enrolled-keys" : {
24317 "default" : 0,
24318 "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.",
24319 "optional" : 1,
24320 "type" : "boolean"
24321 },
4d47f125
TL
24322 "size" : {
24323 "description" : "Disk size. This is purely informational and has no effect.",
24324 "format" : "disk-size",
24325 "format_description" : "DiskSize",
24326 "optional" : 1,
24327 "type" : "string"
24328 },
24329 "volume" : {
24330 "alias" : "file"
24331 }
24332 },
24333 "optional" : 1,
24334 "type" : "string",
7af2edf9 24335 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125 24336 },
44660702
DM
24337 "force" : {
24338 "description" : "Allow to overwrite existing VM.",
24339 "optional" : 1,
24340 "requires" : "archive",
013dc89f
DM
24341 "type" : "boolean",
24342 "typetext" : "<boolean>"
44660702
DM
24343 },
24344 "freeze" : {
24345 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
24346 "optional" : 1,
013dc89f
DM
24347 "type" : "boolean",
24348 "typetext" : "<boolean>"
44660702 24349 },
5f26e15b
TL
24350 "hookscript" : {
24351 "description" : "Script that will be executed during various steps in the vms lifetime.",
24352 "format" : "pve-volume-id",
24353 "optional" : 1,
24354 "type" : "string",
24355 "typetext" : "<string>"
24356 },
44660702 24357 "hostpci[n]" : {
c2993fe5 24358 "description" : "Map host PCI devices into guest.",
44660702
DM
24359 "format" : "pve-qm-hostpci",
24360 "optional" : 1,
57b78691 24361 "type" : "string",
7af2edf9 24362 "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 24363 "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
24364 },
24365 "hotplug" : {
24366 "default" : "network,disk,usb",
4e7f60c2 24367 "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
24368 "format" : "pve-hotplug-features",
24369 "optional" : 1,
013dc89f
DM
24370 "type" : "string",
24371 "typetext" : "<string>"
7aacca6f 24372 },
4bd7df8b
DM
24373 "hugepages" : {
24374 "description" : "Enable/disable hugepages memory.",
24375 "enum" : [
24376 "any",
24377 "2",
24378 "1024"
24379 ],
24380 "optional" : 1,
24381 "type" : "string"
24382 },
7aacca6f 24383 "ide[n]" : {
7af2edf9 24384 "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 24385 "format" : {
44660702
DM
24386 "aio" : {
24387 "description" : "AIO type to use.",
24388 "enum" : [
24389 "native",
8f4d9c87
TL
24390 "threads",
24391 "io_uring"
44660702 24392 ],
44660702
DM
24393 "optional" : 1,
24394 "type" : "string"
24395 },
24396 "backup" : {
24397 "description" : "Whether the drive should be included when making backups.",
44660702
DM
24398 "optional" : 1,
24399 "type" : "boolean"
24400 },
24401 "bps" : {
de0983cb 24402 "description" : "Maximum r/w speed in bytes per second.",
7aacca6f 24403 "format_description" : "bps",
56122987 24404 "optional" : 1,
44660702 24405 "type" : "integer"
56122987 24406 },
de0983cb
DM
24407 "bps_max_length" : {
24408 "description" : "Maximum length of I/O bursts in seconds.",
24409 "format_description" : "seconds",
24410 "minimum" : 1,
24411 "optional" : 1,
24412 "type" : "integer"
24413 },
44660702 24414 "bps_rd" : {
de0983cb 24415 "description" : "Maximum read speed in bytes per second.",
44660702 24416 "format_description" : "bps",
56122987 24417 "optional" : 1,
44660702 24418 "type" : "integer"
56122987 24419 },
de0983cb 24420 "bps_rd_length" : {
5d9c884c
DM
24421 "alias" : "bps_rd_max_length"
24422 },
24423 "bps_rd_max_length" : {
de0983cb
DM
24424 "description" : "Maximum length of read I/O bursts in seconds.",
24425 "format_description" : "seconds",
24426 "minimum" : 1,
24427 "optional" : 1,
24428 "type" : "integer"
24429 },
44660702 24430 "bps_wr" : {
de0983cb 24431 "description" : "Maximum write speed in bytes per second.",
44660702 24432 "format_description" : "bps",
56122987 24433 "optional" : 1,
44660702 24434 "type" : "integer"
56122987 24435 },
de0983cb 24436 "bps_wr_length" : {
5d9c884c
DM
24437 "alias" : "bps_wr_max_length"
24438 },
24439 "bps_wr_max_length" : {
de0983cb
DM
24440 "description" : "Maximum length of write I/O bursts in seconds.",
24441 "format_description" : "seconds",
24442 "minimum" : 1,
24443 "optional" : 1,
24444 "type" : "integer"
24445 },
44660702
DM
24446 "cache" : {
24447 "description" : "The drive's cache mode",
56122987 24448 "enum" : [
7aacca6f 24449 "none",
44660702
DM
24450 "writethrough",
24451 "writeback",
24452 "unsafe",
24453 "directsync"
56122987 24454 ],
56122987 24455 "optional" : 1,
44660702 24456 "type" : "string"
56122987 24457 },
44660702
DM
24458 "cyls" : {
24459 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
24460 "optional" : 1,
24461 "type" : "integer"
7aacca6f 24462 },
44660702
DM
24463 "detect_zeroes" : {
24464 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 24465 "optional" : 1,
44660702 24466 "type" : "boolean"
56122987 24467 },
44660702
DM
24468 "discard" : {
24469 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
24470 "enum" : [
24471 "ignore",
24472 "on"
24473 ],
56122987 24474 "optional" : 1,
44660702 24475 "type" : "string"
56122987 24476 },
7aacca6f 24477 "file" : {
44660702 24478 "default_key" : 1,
7aacca6f 24479 "description" : "The drive's backing volume.",
7aacca6f
DM
24480 "format" : "pve-volume-id-or-qm-path",
24481 "format_description" : "volume",
7aacca6f 24482 "type" : "string"
56122987 24483 },
44660702
DM
24484 "format" : {
24485 "description" : "The drive's backing file's data format.",
56122987 24486 "enum" : [
44660702
DM
24487 "raw",
24488 "cow",
24489 "qcow",
24490 "qed",
24491 "qcow2",
24492 "vmdk",
24493 "cloop"
7aacca6f 24494 ],
7aacca6f
DM
24495 "optional" : 1,
24496 "type" : "string"
56122987 24497 },
44660702
DM
24498 "heads" : {
24499 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 24500 "optional" : 1,
44660702 24501 "type" : "integer"
56122987 24502 },
7af2edf9
TL
24503 "import-from" : {
24504 "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!",
24505 "format" : "pve-volume-id-or-absolute-path",
24506 "format_description" : "source volume",
24507 "optional" : 1,
24508 "type" : "string"
24509 },
44660702 24510 "iops" : {
de0983cb 24511 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 24512 "format_description" : "iops",
56122987 24513 "optional" : 1,
44660702 24514 "type" : "integer"
56122987 24515 },
44660702 24516 "iops_max" : {
de0983cb 24517 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 24518 "format_description" : "iops",
56122987 24519 "optional" : 1,
44660702 24520 "type" : "integer"
56122987 24521 },
de0983cb
DM
24522 "iops_max_length" : {
24523 "description" : "Maximum length of I/O bursts in seconds.",
24524 "format_description" : "seconds",
24525 "minimum" : 1,
24526 "optional" : 1,
24527 "type" : "integer"
24528 },
7aacca6f 24529 "iops_rd" : {
de0983cb 24530 "description" : "Maximum read I/O in operations per second.",
44660702
DM
24531 "format_description" : "iops",
24532 "optional" : 1,
24533 "type" : "integer"
7aacca6f 24534 },
de0983cb 24535 "iops_rd_length" : {
5d9c884c 24536 "alias" : "iops_rd_max_length"
de0983cb 24537 },
44660702 24538 "iops_rd_max" : {
de0983cb 24539 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 24540 "format_description" : "iops",
56122987 24541 "optional" : 1,
44660702 24542 "type" : "integer"
56122987 24543 },
5d9c884c
DM
24544 "iops_rd_max_length" : {
24545 "description" : "Maximum length of read I/O bursts in seconds.",
24546 "format_description" : "seconds",
24547 "minimum" : 1,
24548 "optional" : 1,
24549 "type" : "integer"
24550 },
44660702 24551 "iops_wr" : {
de0983cb 24552 "description" : "Maximum write I/O in operations per second.",
44660702 24553 "format_description" : "iops",
56122987 24554 "optional" : 1,
44660702 24555 "type" : "integer"
7aacca6f 24556 },
de0983cb 24557 "iops_wr_length" : {
5d9c884c 24558 "alias" : "iops_wr_max_length"
de0983cb 24559 },
44660702 24560 "iops_wr_max" : {
de0983cb 24561 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 24562 "format_description" : "iops",
7aacca6f 24563 "optional" : 1,
44660702 24564 "type" : "integer"
56122987 24565 },
5d9c884c
DM
24566 "iops_wr_max_length" : {
24567 "description" : "Maximum length of write I/O bursts in seconds.",
24568 "format_description" : "seconds",
24569 "minimum" : 1,
24570 "optional" : 1,
24571 "type" : "integer"
24572 },
44660702 24573 "mbps" : {
de0983cb 24574 "description" : "Maximum r/w speed in megabytes per second.",
44660702 24575 "format_description" : "mbps",
7aacca6f 24576 "optional" : 1,
44660702 24577 "type" : "number"
56122987 24578 },
44660702 24579 "mbps_max" : {
de0983cb 24580 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
7aacca6f 24581 "format_description" : "mbps",
56122987 24582 "optional" : 1,
44660702 24583 "type" : "number"
56122987 24584 },
44660702 24585 "mbps_rd" : {
de0983cb 24586 "description" : "Maximum read speed in megabytes per second.",
44660702 24587 "format_description" : "mbps",
7aacca6f 24588 "optional" : 1,
44660702 24589 "type" : "number"
7aacca6f 24590 },
44660702 24591 "mbps_rd_max" : {
de0983cb 24592 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 24593 "format_description" : "mbps",
56122987 24594 "optional" : 1,
44660702 24595 "type" : "number"
56122987 24596 },
44660702 24597 "mbps_wr" : {
de0983cb 24598 "description" : "Maximum write speed in megabytes per second.",
44660702 24599 "format_description" : "mbps",
7aacca6f 24600 "optional" : 1,
44660702 24601 "type" : "number"
56122987 24602 },
44660702 24603 "mbps_wr_max" : {
de0983cb 24604 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 24605 "format_description" : "mbps",
56122987 24606 "optional" : 1,
44660702 24607 "type" : "number"
7aacca6f
DM
24608 },
24609 "media" : {
44660702
DM
24610 "default" : "disk",
24611 "description" : "The drive's media type.",
56122987 24612 "enum" : [
7aacca6f
DM
24613 "cdrom",
24614 "disk"
56122987 24615 ],
56122987 24616 "optional" : 1,
44660702 24617 "type" : "string"
56122987 24618 },
44660702
DM
24619 "model" : {
24620 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
24621 "format" : "urlencoded",
24622 "format_description" : "model",
24623 "maxLength" : 120,
56122987 24624 "optional" : 1,
44660702 24625 "type" : "string"
56122987 24626 },
5d9c884c
DM
24627 "replicate" : {
24628 "default" : 1,
24629 "description" : "Whether the drive should considered for replication jobs.",
24630 "optional" : 1,
24631 "type" : "boolean"
24632 },
7aacca6f 24633 "rerror" : {
7aacca6f
DM
24634 "description" : "Read error action.",
24635 "enum" : [
24636 "ignore",
24637 "report",
24638 "stop"
44660702 24639 ],
44660702
DM
24640 "optional" : 1,
24641 "type" : "string"
56122987 24642 },
44660702
DM
24643 "secs" : {
24644 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 24645 "optional" : 1,
44660702
DM
24646 "type" : "integer"
24647 },
24648 "serial" : {
24649 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
24650 "format" : "urlencoded",
24651 "format_description" : "serial",
24652 "maxLength" : 60,
24653 "optional" : 1,
24654 "type" : "string"
24655 },
27a7acb2
DM
24656 "shared" : {
24657 "default" : 0,
24658 "description" : "Mark this locally-managed volume as available on all nodes",
24659 "optional" : 1,
24660 "type" : "boolean",
24661 "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!"
24662 },
44660702
DM
24663 "size" : {
24664 "description" : "Disk size. This is purely informational and has no effect.",
24665 "format" : "disk-size",
f004f5b9 24666 "format_description" : "DiskSize",
44660702
DM
24667 "optional" : 1,
24668 "type" : "string"
7aacca6f
DM
24669 },
24670 "snapshot" : {
27a7acb2 24671 "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 24672 "optional" : 1,
44660702 24673 "type" : "boolean"
7aacca6f 24674 },
25203dc1
NC
24675 "ssd" : {
24676 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
24677 "optional" : 1,
24678 "type" : "boolean"
24679 },
44660702
DM
24680 "trans" : {
24681 "description" : "Force disk geometry bios translation mode.",
24682 "enum" : [
24683 "none",
24684 "lba",
24685 "auto"
24686 ],
7aacca6f 24687 "optional" : 1,
44660702
DM
24688 "type" : "string"
24689 },
24690 "volume" : {
24691 "alias" : "file"
24692 },
24693 "werror" : {
24694 "description" : "Write error action.",
24695 "enum" : [
24696 "enospc",
24697 "ignore",
24698 "report",
24699 "stop"
24700 ],
44660702
DM
24701 "optional" : 1,
24702 "type" : "string"
95895385
TL
24703 },
24704 "wwn" : {
24705 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
24706 "format_description" : "wwn",
24707 "optional" : 1,
24708 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
24709 "type" : "string"
56122987
DM
24710 }
24711 },
56122987 24712 "optional" : 1,
4bd7df8b 24713 "type" : "string",
7af2edf9 24714 "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
24715 },
24716 "ipconfig[n]" : {
d2656385 24717 "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
24718 "format" : "pve-qm-ipconfig",
24719 "optional" : 1,
24720 "type" : "string",
24721 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
56122987 24722 },
95895385
TL
24723 "ivshmem" : {
24724 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
24725 "format" : {
24726 "name" : {
24727 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
24728 "format_description" : "string",
24729 "optional" : 1,
24730 "pattern" : "[a-zA-Z0-9\\-]+",
24731 "type" : "string"
24732 },
24733 "size" : {
24734 "description" : "The size of the file in MB.",
24735 "minimum" : 1,
24736 "type" : "integer"
24737 }
24738 },
24739 "optional" : 1,
24740 "type" : "string",
24741 "typetext" : "size=<integer> [,name=<string>]"
24742 },
4772952b
TL
24743 "keephugepages" : {
24744 "default" : 0,
24745 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
24746 "optional" : 1,
24747 "type" : "boolean",
24748 "typetext" : "<boolean>"
24749 },
56122987 24750 "keyboard" : {
35a75dd3 24751 "default" : null,
7af2edf9 24752 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
56122987 24753 "enum" : [
44660702
DM
24754 "de",
24755 "de-ch",
7aacca6f 24756 "da",
56122987 24757 "en-gb",
44660702
DM
24758 "en-us",
24759 "es",
24760 "fi",
24761 "fr",
24762 "fr-be",
24763 "fr-ca",
24764 "fr-ch",
24765 "hu",
7aacca6f 24766 "is",
44660702
DM
24767 "it",
24768 "ja",
24769 "lt",
56122987 24770 "mk",
7aacca6f 24771 "nl",
56122987 24772 "no",
44660702 24773 "pl",
7aacca6f 24774 "pt",
44660702
DM
24775 "pt-br",
24776 "sv",
24777 "sl",
24778 "tr"
56122987 24779 ],
44660702
DM
24780 "optional" : 1,
24781 "type" : "string"
56122987 24782 },
44660702
DM
24783 "kvm" : {
24784 "default" : 1,
24785 "description" : "Enable/disable KVM hardware virtualization.",
7aacca6f 24786 "optional" : 1,
013dc89f
DM
24787 "type" : "boolean",
24788 "typetext" : "<boolean>"
7aacca6f 24789 },
d2656385
TL
24790 "live-restore" : {
24791 "description" : "Start the VM immediately from the backup and restore in background. PBS only.",
24792 "optional" : 1,
24793 "requires" : "archive",
24794 "type" : "boolean",
24795 "typetext" : "<boolean>"
24796 },
44660702 24797 "localtime" : {
5370fa8c 24798 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
56122987 24799 "optional" : 1,
013dc89f
DM
24800 "type" : "boolean",
24801 "typetext" : "<boolean>"
44660702
DM
24802 },
24803 "lock" : {
24804 "description" : "Lock/unlock the VM.",
7aacca6f 24805 "enum" : [
7aacca6f 24806 "backup",
5f26e15b
TL
24807 "clone",
24808 "create",
24809 "migrate",
24810 "rollback",
7aacca6f 24811 "snapshot",
95895385
TL
24812 "snapshot-delete",
24813 "suspending",
24814 "suspended"
7aacca6f 24815 ],
44660702
DM
24816 "optional" : 1,
24817 "type" : "string"
56122987 24818 },
44660702 24819 "machine" : {
9d2e98ed 24820 "description" : "Specifies the QEMU machine type.",
44660702
DM
24821 "maxLength" : 40,
24822 "optional" : 1,
5c1699e5 24823 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702
DM
24824 "type" : "string"
24825 },
24826 "memory" : {
24827 "default" : 512,
9d2e98ed 24828 "description" : "Amount of RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
44660702
DM
24829 "minimum" : 16,
24830 "optional" : 1,
4bd7df8b 24831 "type" : "integer",
013dc89f 24832 "typetext" : "<integer> (16 - N)"
44660702
DM
24833 },
24834 "migrate_downtime" : {
24835 "default" : 0.1,
24836 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
24837 "minimum" : 0,
24838 "optional" : 1,
4bd7df8b 24839 "type" : "number",
013dc89f 24840 "typetext" : "<number> (0 - N)"
44660702
DM
24841 },
24842 "migrate_speed" : {
56122987 24843 "default" : 0,
44660702
DM
24844 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
24845 "minimum" : 0,
56122987 24846 "optional" : 1,
4bd7df8b 24847 "type" : "integer",
013dc89f 24848 "typetext" : "<integer> (0 - N)"
56122987 24849 },
27a7acb2
DM
24850 "name" : {
24851 "description" : "Set a name for the VM. Only used on the configuration web interface.",
24852 "format" : "dns-name",
24853 "optional" : 1,
24854 "type" : "string",
24855 "typetext" : "<string>"
24856 },
24857 "nameserver" : {
de786b48 24858 "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 24859 "format" : "address-list",
44660702 24860 "optional" : 1,
013dc89f
DM
24861 "type" : "string",
24862 "typetext" : "<string>"
44660702
DM
24863 },
24864 "net[n]" : {
c2993fe5 24865 "description" : "Specify network devices.",
f004f5b9
DM
24866 "format" : {
24867 "bridge" : {
c2993fe5 24868 "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 24869 "format" : "pve-bridge-id",
f004f5b9
DM
24870 "format_description" : "bridge",
24871 "optional" : 1,
24872 "type" : "string"
24873 },
24874 "e1000" : {
24875 "alias" : "macaddr",
24876 "keyAlias" : "model"
24877 },
24878 "e1000-82540em" : {
24879 "alias" : "macaddr",
24880 "keyAlias" : "model"
24881 },
24882 "e1000-82544gc" : {
24883 "alias" : "macaddr",
24884 "keyAlias" : "model"
24885 },
24886 "e1000-82545em" : {
24887 "alias" : "macaddr",
24888 "keyAlias" : "model"
24889 },
5370fa8c
TL
24890 "e1000e" : {
24891 "alias" : "macaddr",
24892 "keyAlias" : "model"
24893 },
f004f5b9
DM
24894 "firewall" : {
24895 "description" : "Whether this interface should be protected by the firewall.",
24896 "optional" : 1,
24897 "type" : "boolean"
24898 },
24899 "i82551" : {
24900 "alias" : "macaddr",
24901 "keyAlias" : "model"
24902 },
24903 "i82557b" : {
24904 "alias" : "macaddr",
24905 "keyAlias" : "model"
24906 },
24907 "i82559er" : {
24908 "alias" : "macaddr",
24909 "keyAlias" : "model"
24910 },
24911 "link_down" : {
c2993fe5 24912 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
24913 "optional" : 1,
24914 "type" : "boolean"
24915 },
24916 "macaddr" : {
c2993fe5 24917 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 24918 "format" : "mac-addr",
f004f5b9 24919 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 24920 "optional" : 1,
95895385
TL
24921 "type" : "string",
24922 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
24923 },
24924 "model" : {
24925 "default_key" : 1,
c2993fe5 24926 "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 24927 "enum" : [
f004f5b9 24928 "e1000",
5370fa8c
TL
24929 "e1000-82540em",
24930 "e1000-82544gc",
24931 "e1000-82545em",
24932 "e1000e",
f004f5b9
DM
24933 "i82551",
24934 "i82557b",
24935 "i82559er",
5370fa8c
TL
24936 "ne2k_isa",
24937 "ne2k_pci",
24938 "pcnet",
24939 "rtl8139",
24940 "virtio",
24941 "vmxnet3"
f004f5b9 24942 ],
f004f5b9
DM
24943 "type" : "string"
24944 },
ac70d7d1
TL
24945 "mtu" : {
24946 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
24947 "maximum" : 65520,
24948 "minimum" : 1,
24949 "optional" : 1,
24950 "type" : "integer"
24951 },
f004f5b9
DM
24952 "ne2k_isa" : {
24953 "alias" : "macaddr",
24954 "keyAlias" : "model"
24955 },
24956 "ne2k_pci" : {
24957 "alias" : "macaddr",
24958 "keyAlias" : "model"
24959 },
24960 "pcnet" : {
24961 "alias" : "macaddr",
24962 "keyAlias" : "model"
24963 },
24964 "queues" : {
24965 "description" : "Number of packet queues to be used on the device.",
81a3384d 24966 "maximum" : 64,
f004f5b9
DM
24967 "minimum" : 0,
24968 "optional" : 1,
24969 "type" : "integer"
24970 },
24971 "rate" : {
c2993fe5 24972 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
24973 "minimum" : 0,
24974 "optional" : 1,
24975 "type" : "number"
24976 },
24977 "rtl8139" : {
24978 "alias" : "macaddr",
24979 "keyAlias" : "model"
24980 },
24981 "tag" : {
24982 "description" : "VLAN tag to apply to packets on this interface.",
24983 "maximum" : 4094,
c2993fe5 24984 "minimum" : 1,
f004f5b9
DM
24985 "optional" : 1,
24986 "type" : "integer"
24987 },
24988 "trunks" : {
24989 "description" : "VLAN trunks to pass through this interface.",
24990 "format_description" : "vlanid[;vlanid...]",
24991 "optional" : 1,
24992 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
24993 "type" : "string"
24994 },
24995 "virtio" : {
24996 "alias" : "macaddr",
24997 "keyAlias" : "model"
24998 },
24999 "vmxnet3" : {
25000 "alias" : "macaddr",
25001 "keyAlias" : "model"
25002 }
25003 },
44660702 25004 "optional" : 1,
4bd7df8b 25005 "type" : "string",
ac70d7d1 25006 "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
25007 },
25008 "node" : {
25009 "description" : "The cluster node name.",
25010 "format" : "pve-node",
013dc89f
DM
25011 "type" : "string",
25012 "typetext" : "<string>"
44660702
DM
25013 },
25014 "numa" : {
7aacca6f 25015 "default" : 0,
44660702
DM
25016 "description" : "Enable/disable NUMA.",
25017 "optional" : 1,
013dc89f
DM
25018 "type" : "boolean",
25019 "typetext" : "<boolean>"
56122987 25020 },
7aacca6f 25021 "numa[n]" : {
c2993fe5 25022 "description" : "NUMA topology.",
7aacca6f 25023 "format" : {
44660702 25024 "cpus" : {
c2993fe5 25025 "description" : "CPUs accessing this NUMA node.",
44660702
DM
25026 "format_description" : "id[-id];...",
25027 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
25028 "type" : "string"
25029 },
7aacca6f 25030 "hostnodes" : {
c2993fe5 25031 "description" : "Host NUMA nodes to use.",
44660702 25032 "format_description" : "id[-id];...",
7aacca6f 25033 "optional" : 1,
44660702
DM
25034 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
25035 "type" : "string"
7aacca6f 25036 },
44660702 25037 "memory" : {
c2993fe5 25038 "description" : "Amount of memory this NUMA node provides.",
44660702
DM
25039 "optional" : 1,
25040 "type" : "number"
7aacca6f
DM
25041 },
25042 "policy" : {
c2993fe5 25043 "description" : "NUMA allocation policy.",
7aacca6f
DM
25044 "enum" : [
25045 "preferred",
25046 "bind",
25047 "interleave"
25048 ],
7aacca6f 25049 "optional" : 1,
44660702 25050 "type" : "string"
7aacca6f
DM
25051 }
25052 },
56122987 25053 "optional" : 1,
4bd7df8b
DM
25054 "type" : "string",
25055 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
56122987 25056 },
44660702
DM
25057 "onboot" : {
25058 "default" : 0,
25059 "description" : "Specifies whether a VM will be started during system bootup.",
56122987 25060 "optional" : 1,
013dc89f
DM
25061 "type" : "boolean",
25062 "typetext" : "<boolean>"
56122987
DM
25063 },
25064 "ostype" : {
c2993fe5 25065 "description" : "Specify guest operating system.",
56122987
DM
25066 "enum" : [
25067 "other",
25068 "wxp",
25069 "w2k",
25070 "w2k3",
25071 "w2k8",
25072 "wvista",
25073 "win7",
25074 "win8",
32d876b5 25075 "win10",
5370fa8c 25076 "win11",
56122987
DM
25077 "l24",
25078 "l26",
25079 "solaris"
44660702 25080 ],
56122987 25081 "optional" : 1,
c2993fe5 25082 "type" : "string",
9d2e98ed 25083 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
56122987 25084 },
44660702 25085 "parallel[n]" : {
c2993fe5 25086 "description" : "Map host parallel devices (n is 0 to 2).",
56122987 25087 "optional" : 1,
44660702 25088 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 25089 "type" : "string",
4772952b 25090 "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 25091 },
44660702
DM
25092 "pool" : {
25093 "description" : "Add the VM to the specified pool.",
25094 "format" : "pve-poolid",
56122987 25095 "optional" : 1,
013dc89f
DM
25096 "type" : "string",
25097 "typetext" : "<string>"
56122987 25098 },
44660702
DM
25099 "protection" : {
25100 "default" : 0,
c2993fe5 25101 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
56122987 25102 "optional" : 1,
013dc89f
DM
25103 "type" : "boolean",
25104 "typetext" : "<boolean>"
56122987 25105 },
44660702 25106 "reboot" : {
7aacca6f 25107 "default" : 1,
44660702
DM
25108 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
25109 "optional" : 1,
013dc89f
DM
25110 "type" : "boolean",
25111 "typetext" : "<boolean>"
56122987 25112 },
c5aa7e14
TL
25113 "rng0" : {
25114 "description" : "Configure a VirtIO-based Random Number Generator.",
25115 "format" : {
25116 "max_bytes" : {
25117 "default" : 1024,
5370fa8c 25118 "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
25119 "optional" : 1,
25120 "type" : "integer"
25121 },
25122 "period" : {
25123 "default" : 1000,
25124 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
25125 "optional" : 1,
25126 "type" : "integer"
25127 },
25128 "source" : {
25129 "default_key" : 1,
5370fa8c 25130 "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
25131 "enum" : [
25132 "/dev/urandom",
25133 "/dev/random",
25134 "/dev/hwrng"
25135 ],
25136 "type" : "string"
25137 }
25138 },
25139 "optional" : 1,
25140 "type" : "string",
25141 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
25142 },
56122987 25143 "sata[n]" : {
7af2edf9 25144 "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 25145 "format" : {
7aacca6f 25146 "aio" : {
44660702 25147 "description" : "AIO type to use.",
56122987 25148 "enum" : [
7aacca6f 25149 "native",
8f4d9c87
TL
25150 "threads",
25151 "io_uring"
56122987 25152 ],
7aacca6f 25153 "optional" : 1,
44660702 25154 "type" : "string"
7aacca6f
DM
25155 },
25156 "backup" : {
7aacca6f 25157 "description" : "Whether the drive should be included when making backups.",
7aacca6f 25158 "optional" : 1,
44660702 25159 "type" : "boolean"
56122987 25160 },
44660702 25161 "bps" : {
de0983cb 25162 "description" : "Maximum r/w speed in bytes per second.",
44660702 25163 "format_description" : "bps",
7aacca6f 25164 "optional" : 1,
44660702 25165 "type" : "integer"
56122987 25166 },
de0983cb
DM
25167 "bps_max_length" : {
25168 "description" : "Maximum length of I/O bursts in seconds.",
25169 "format_description" : "seconds",
25170 "minimum" : 1,
25171 "optional" : 1,
25172 "type" : "integer"
25173 },
44660702 25174 "bps_rd" : {
de0983cb 25175 "description" : "Maximum read speed in bytes per second.",
44660702 25176 "format_description" : "bps",
56122987 25177 "optional" : 1,
44660702 25178 "type" : "integer"
7aacca6f 25179 },
de0983cb 25180 "bps_rd_length" : {
5d9c884c
DM
25181 "alias" : "bps_rd_max_length"
25182 },
25183 "bps_rd_max_length" : {
de0983cb
DM
25184 "description" : "Maximum length of read I/O bursts in seconds.",
25185 "format_description" : "seconds",
25186 "minimum" : 1,
25187 "optional" : 1,
25188 "type" : "integer"
25189 },
44660702 25190 "bps_wr" : {
de0983cb 25191 "description" : "Maximum write speed in bytes per second.",
44660702 25192 "format_description" : "bps",
56122987 25193 "optional" : 1,
44660702 25194 "type" : "integer"
56122987 25195 },
de0983cb 25196 "bps_wr_length" : {
5d9c884c
DM
25197 "alias" : "bps_wr_max_length"
25198 },
25199 "bps_wr_max_length" : {
de0983cb
DM
25200 "description" : "Maximum length of write I/O bursts in seconds.",
25201 "format_description" : "seconds",
25202 "minimum" : 1,
25203 "optional" : 1,
25204 "type" : "integer"
25205 },
7aacca6f 25206 "cache" : {
7aacca6f
DM
25207 "description" : "The drive's cache mode",
25208 "enum" : [
25209 "none",
25210 "writethrough",
25211 "writeback",
25212 "unsafe",
25213 "directsync"
25214 ],
44660702
DM
25215 "optional" : 1,
25216 "type" : "string"
56122987 25217 },
44660702
DM
25218 "cyls" : {
25219 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
56122987 25220 "optional" : 1,
7aacca6f 25221 "type" : "integer"
56122987 25222 },
7aacca6f
DM
25223 "detect_zeroes" : {
25224 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 25225 "optional" : 1,
7aacca6f 25226 "type" : "boolean"
56122987 25227 },
44660702
DM
25228 "discard" : {
25229 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
25230 "enum" : [
25231 "ignore",
25232 "on"
25233 ],
56122987 25234 "optional" : 1,
44660702 25235 "type" : "string"
56122987 25236 },
44660702
DM
25237 "file" : {
25238 "default_key" : 1,
25239 "description" : "The drive's backing volume.",
25240 "format" : "pve-volume-id-or-qm-path",
25241 "format_description" : "volume",
25242 "type" : "string"
56122987
DM
25243 },
25244 "format" : {
44660702 25245 "description" : "The drive's backing file's data format.",
56122987
DM
25246 "enum" : [
25247 "raw",
25248 "cow",
25249 "qcow",
25250 "qed",
25251 "qcow2",
25252 "vmdk",
25253 "cloop"
25254 ],
56122987 25255 "optional" : 1,
44660702 25256 "type" : "string"
56122987 25257 },
7aacca6f 25258 "heads" : {
7aacca6f 25259 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
25260 "optional" : 1,
25261 "type" : "integer"
56122987 25262 },
7af2edf9
TL
25263 "import-from" : {
25264 "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!",
25265 "format" : "pve-volume-id-or-absolute-path",
25266 "format_description" : "source volume",
25267 "optional" : 1,
25268 "type" : "string"
25269 },
44660702 25270 "iops" : {
de0983cb 25271 "description" : "Maximum r/w I/O in operations per second.",
44660702
DM
25272 "format_description" : "iops",
25273 "optional" : 1,
25274 "type" : "integer"
56122987 25275 },
44660702 25276 "iops_max" : {
de0983cb 25277 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 25278 "format_description" : "iops",
56122987 25279 "optional" : 1,
44660702 25280 "type" : "integer"
56122987 25281 },
de0983cb
DM
25282 "iops_max_length" : {
25283 "description" : "Maximum length of I/O bursts in seconds.",
25284 "format_description" : "seconds",
25285 "minimum" : 1,
25286 "optional" : 1,
25287 "type" : "integer"
25288 },
44660702 25289 "iops_rd" : {
de0983cb 25290 "description" : "Maximum read I/O in operations per second.",
44660702 25291 "format_description" : "iops",
56122987 25292 "optional" : 1,
44660702 25293 "type" : "integer"
56122987 25294 },
de0983cb 25295 "iops_rd_length" : {
5d9c884c 25296 "alias" : "iops_rd_max_length"
de0983cb 25297 },
44660702 25298 "iops_rd_max" : {
de0983cb 25299 "description" : "Maximum unthrottled read I/O pool in operations per second.",
7aacca6f 25300 "format_description" : "iops",
56122987 25301 "optional" : 1,
44660702 25302 "type" : "integer"
56122987 25303 },
5d9c884c
DM
25304 "iops_rd_max_length" : {
25305 "description" : "Maximum length of read I/O bursts in seconds.",
25306 "format_description" : "seconds",
25307 "minimum" : 1,
25308 "optional" : 1,
25309 "type" : "integer"
25310 },
44660702 25311 "iops_wr" : {
de0983cb 25312 "description" : "Maximum write I/O in operations per second.",
44660702 25313 "format_description" : "iops",
7aacca6f 25314 "optional" : 1,
44660702 25315 "type" : "integer"
7aacca6f 25316 },
de0983cb 25317 "iops_wr_length" : {
5d9c884c 25318 "alias" : "iops_wr_max_length"
de0983cb 25319 },
44660702 25320 "iops_wr_max" : {
de0983cb 25321 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 25322 "format_description" : "iops",
56122987 25323 "optional" : 1,
7aacca6f 25324 "type" : "integer"
56122987 25325 },
5d9c884c
DM
25326 "iops_wr_max_length" : {
25327 "description" : "Maximum length of write I/O bursts in seconds.",
25328 "format_description" : "seconds",
25329 "minimum" : 1,
25330 "optional" : 1,
25331 "type" : "integer"
25332 },
44660702 25333 "mbps" : {
de0983cb 25334 "description" : "Maximum r/w speed in megabytes per second.",
44660702 25335 "format_description" : "mbps",
56122987 25336 "optional" : 1,
44660702 25337 "type" : "number"
56122987 25338 },
44660702 25339 "mbps_max" : {
de0983cb 25340 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 25341 "format_description" : "mbps",
7aacca6f 25342 "optional" : 1,
44660702 25343 "type" : "number"
7aacca6f 25344 },
44660702 25345 "mbps_rd" : {
de0983cb 25346 "description" : "Maximum read speed in megabytes per second.",
44660702 25347 "format_description" : "mbps",
7aacca6f 25348 "optional" : 1,
44660702 25349 "type" : "number"
7aacca6f 25350 },
44660702 25351 "mbps_rd_max" : {
de0983cb 25352 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 25353 "format_description" : "mbps",
7aacca6f 25354 "optional" : 1,
44660702 25355 "type" : "number"
7aacca6f 25356 },
44660702 25357 "mbps_wr" : {
de0983cb 25358 "description" : "Maximum write speed in megabytes per second.",
44660702 25359 "format_description" : "mbps",
7aacca6f 25360 "optional" : 1,
44660702 25361 "type" : "number"
7aacca6f
DM
25362 },
25363 "mbps_wr_max" : {
de0983cb 25364 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 25365 "format_description" : "mbps",
7aacca6f 25366 "optional" : 1,
44660702 25367 "type" : "number"
7aacca6f 25368 },
44660702
DM
25369 "media" : {
25370 "default" : "disk",
25371 "description" : "The drive's media type.",
56122987 25372 "enum" : [
44660702
DM
25373 "cdrom",
25374 "disk"
56122987 25375 ],
56122987 25376 "optional" : 1,
44660702 25377 "type" : "string"
56122987 25378 },
5d9c884c
DM
25379 "replicate" : {
25380 "default" : 1,
25381 "description" : "Whether the drive should considered for replication jobs.",
25382 "optional" : 1,
25383 "type" : "boolean"
25384 },
44660702
DM
25385 "rerror" : {
25386 "description" : "Read error action.",
7aacca6f
DM
25387 "enum" : [
25388 "ignore",
44660702
DM
25389 "report",
25390 "stop"
7aacca6f 25391 ],
56122987 25392 "optional" : 1,
44660702 25393 "type" : "string"
56122987 25394 },
44660702
DM
25395 "secs" : {
25396 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 25397 "optional" : 1,
44660702 25398 "type" : "integer"
56122987 25399 },
44660702
DM
25400 "serial" : {
25401 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
25402 "format" : "urlencoded",
25403 "format_description" : "serial",
25404 "maxLength" : 60,
25405 "optional" : 1,
25406 "type" : "string"
7aacca6f 25407 },
27a7acb2
DM
25408 "shared" : {
25409 "default" : 0,
25410 "description" : "Mark this locally-managed volume as available on all nodes",
25411 "optional" : 1,
25412 "type" : "boolean",
25413 "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!"
25414 },
7aacca6f
DM
25415 "size" : {
25416 "description" : "Disk size. This is purely informational and has no effect.",
44660702 25417 "format" : "disk-size",
f004f5b9 25418 "format_description" : "DiskSize",
56122987 25419 "optional" : 1,
44660702 25420 "type" : "string"
56122987 25421 },
44660702 25422 "snapshot" : {
27a7acb2 25423 "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 25424 "optional" : 1,
44660702 25425 "type" : "boolean"
56122987 25426 },
25203dc1
NC
25427 "ssd" : {
25428 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
25429 "optional" : 1,
25430 "type" : "boolean"
25431 },
44660702
DM
25432 "trans" : {
25433 "description" : "Force disk geometry bios translation mode.",
56122987 25434 "enum" : [
44660702
DM
25435 "none",
25436 "lba",
25437 "auto"
7aacca6f 25438 ],
44660702
DM
25439 "optional" : 1,
25440 "type" : "string"
25441 },
25442 "volume" : {
25443 "alias" : "file"
56122987
DM
25444 },
25445 "werror" : {
56122987
DM
25446 "description" : "Write error action.",
25447 "enum" : [
25448 "enospc",
25449 "ignore",
25450 "report",
25451 "stop"
25452 ],
56122987 25453 "optional" : 1,
44660702 25454 "type" : "string"
95895385
TL
25455 },
25456 "wwn" : {
25457 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
25458 "format_description" : "wwn",
25459 "optional" : 1,
25460 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
25461 "type" : "string"
44660702
DM
25462 }
25463 },
25464 "optional" : 1,
4bd7df8b 25465 "type" : "string",
7af2edf9 25466 "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
25467 },
25468 "scsi[n]" : {
7af2edf9 25469 "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
25470 "format" : {
25471 "aio" : {
25472 "description" : "AIO type to use.",
25473 "enum" : [
25474 "native",
8f4d9c87
TL
25475 "threads",
25476 "io_uring"
44660702 25477 ],
44660702
DM
25478 "optional" : 1,
25479 "type" : "string"
56122987 25480 },
7aacca6f 25481 "backup" : {
44660702 25482 "description" : "Whether the drive should be included when making backups.",
7aacca6f 25483 "optional" : 1,
44660702 25484 "type" : "boolean"
7aacca6f 25485 },
44660702 25486 "bps" : {
de0983cb 25487 "description" : "Maximum r/w speed in bytes per second.",
44660702 25488 "format_description" : "bps",
7aacca6f 25489 "optional" : 1,
44660702 25490 "type" : "integer"
7aacca6f 25491 },
de0983cb
DM
25492 "bps_max_length" : {
25493 "description" : "Maximum length of I/O bursts in seconds.",
25494 "format_description" : "seconds",
25495 "minimum" : 1,
25496 "optional" : 1,
25497 "type" : "integer"
25498 },
44660702 25499 "bps_rd" : {
de0983cb 25500 "description" : "Maximum read speed in bytes per second.",
44660702 25501 "format_description" : "bps",
56122987 25502 "optional" : 1,
44660702 25503 "type" : "integer"
56122987 25504 },
de0983cb 25505 "bps_rd_length" : {
5d9c884c
DM
25506 "alias" : "bps_rd_max_length"
25507 },
25508 "bps_rd_max_length" : {
de0983cb
DM
25509 "description" : "Maximum length of read I/O bursts in seconds.",
25510 "format_description" : "seconds",
25511 "minimum" : 1,
25512 "optional" : 1,
25513 "type" : "integer"
25514 },
44660702 25515 "bps_wr" : {
de0983cb 25516 "description" : "Maximum write speed in bytes per second.",
44660702 25517 "format_description" : "bps",
7aacca6f 25518 "optional" : 1,
44660702 25519 "type" : "integer"
56122987 25520 },
de0983cb 25521 "bps_wr_length" : {
5d9c884c
DM
25522 "alias" : "bps_wr_max_length"
25523 },
25524 "bps_wr_max_length" : {
de0983cb
DM
25525 "description" : "Maximum length of write I/O bursts in seconds.",
25526 "format_description" : "seconds",
25527 "minimum" : 1,
25528 "optional" : 1,
25529 "type" : "integer"
25530 },
44660702
DM
25531 "cache" : {
25532 "description" : "The drive's cache mode",
7aacca6f
DM
25533 "enum" : [
25534 "none",
44660702
DM
25535 "writethrough",
25536 "writeback",
25537 "unsafe",
25538 "directsync"
7aacca6f 25539 ],
56122987 25540 "optional" : 1,
44660702 25541 "type" : "string"
56122987 25542 },
7aacca6f
DM
25543 "cyls" : {
25544 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
25545 "optional" : 1,
44660702 25546 "type" : "integer"
7aacca6f 25547 },
44660702
DM
25548 "detect_zeroes" : {
25549 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 25550 "optional" : 1,
44660702 25551 "type" : "boolean"
56122987 25552 },
44660702
DM
25553 "discard" : {
25554 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
7aacca6f 25555 "enum" : [
44660702
DM
25556 "ignore",
25557 "on"
7aacca6f 25558 ],
7aacca6f 25559 "optional" : 1,
44660702 25560 "type" : "string"
56122987
DM
25561 },
25562 "file" : {
7aacca6f
DM
25563 "default_key" : 1,
25564 "description" : "The drive's backing volume.",
44660702
DM
25565 "format" : "pve-volume-id-or-qm-path",
25566 "format_description" : "volume",
7aacca6f 25567 "type" : "string"
56122987 25568 },
7aacca6f 25569 "format" : {
44660702 25570 "description" : "The drive's backing file's data format.",
56122987 25571 "enum" : [
7aacca6f
DM
25572 "raw",
25573 "cow",
25574 "qcow",
25575 "qed",
25576 "qcow2",
25577 "vmdk",
25578 "cloop"
56122987 25579 ],
44660702
DM
25580 "optional" : 1,
25581 "type" : "string"
56122987 25582 },
44660702
DM
25583 "heads" : {
25584 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
25585 "optional" : 1,
25586 "type" : "integer"
25587 },
7af2edf9
TL
25588 "import-from" : {
25589 "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!",
25590 "format" : "pve-volume-id-or-absolute-path",
25591 "format_description" : "source volume",
25592 "optional" : 1,
25593 "type" : "string"
25594 },
44660702 25595 "iops" : {
de0983cb 25596 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 25597 "format_description" : "iops",
56122987 25598 "optional" : 1,
44660702 25599 "type" : "integer"
56122987 25600 },
44660702 25601 "iops_max" : {
de0983cb 25602 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 25603 "format_description" : "iops",
7aacca6f 25604 "optional" : 1,
44660702 25605 "type" : "integer"
56122987 25606 },
de0983cb
DM
25607 "iops_max_length" : {
25608 "description" : "Maximum length of I/O bursts in seconds.",
25609 "format_description" : "seconds",
25610 "minimum" : 1,
25611 "optional" : 1,
25612 "type" : "integer"
25613 },
44660702 25614 "iops_rd" : {
de0983cb 25615 "description" : "Maximum read I/O in operations per second.",
44660702 25616 "format_description" : "iops",
56122987 25617 "optional" : 1,
44660702 25618 "type" : "integer"
56122987 25619 },
de0983cb 25620 "iops_rd_length" : {
5d9c884c 25621 "alias" : "iops_rd_max_length"
de0983cb 25622 },
44660702 25623 "iops_rd_max" : {
de0983cb 25624 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
25625 "format_description" : "iops",
25626 "optional" : 1,
25627 "type" : "integer"
56122987 25628 },
5d9c884c
DM
25629 "iops_rd_max_length" : {
25630 "description" : "Maximum length of read I/O bursts in seconds.",
25631 "format_description" : "seconds",
25632 "minimum" : 1,
25633 "optional" : 1,
25634 "type" : "integer"
25635 },
44660702 25636 "iops_wr" : {
de0983cb 25637 "description" : "Maximum write I/O in operations per second.",
44660702 25638 "format_description" : "iops",
56122987 25639 "optional" : 1,
44660702 25640 "type" : "integer"
56122987 25641 },
de0983cb 25642 "iops_wr_length" : {
5d9c884c 25643 "alias" : "iops_wr_max_length"
de0983cb 25644 },
44660702 25645 "iops_wr_max" : {
de0983cb 25646 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 25647 "format_description" : "iops",
56122987 25648 "optional" : 1,
56122987
DM
25649 "type" : "integer"
25650 },
5d9c884c
DM
25651 "iops_wr_max_length" : {
25652 "description" : "Maximum length of write I/O bursts in seconds.",
25653 "format_description" : "seconds",
25654 "minimum" : 1,
25655 "optional" : 1,
25656 "type" : "integer"
25657 },
44660702
DM
25658 "iothread" : {
25659 "description" : "Whether to use iothreads for this drive",
44660702
DM
25660 "optional" : 1,
25661 "type" : "boolean"
25662 },
25663 "mbps" : {
de0983cb 25664 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
25665 "format_description" : "mbps",
25666 "optional" : 1,
25667 "type" : "number"
25668 },
7aacca6f 25669 "mbps_max" : {
de0983cb 25670 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 25671 "format_description" : "mbps",
56122987 25672 "optional" : 1,
44660702 25673 "type" : "number"
56122987 25674 },
44660702 25675 "mbps_rd" : {
de0983cb 25676 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
25677 "format_description" : "mbps",
25678 "optional" : 1,
25679 "type" : "number"
56122987 25680 },
44660702 25681 "mbps_rd_max" : {
de0983cb 25682 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 25683 "format_description" : "mbps",
56122987 25684 "optional" : 1,
44660702 25685 "type" : "number"
56122987 25686 },
44660702 25687 "mbps_wr" : {
de0983cb 25688 "description" : "Maximum write speed in megabytes per second.",
44660702 25689 "format_description" : "mbps",
56122987 25690 "optional" : 1,
44660702 25691 "type" : "number"
56122987 25692 },
44660702 25693 "mbps_wr_max" : {
de0983cb 25694 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 25695 "format_description" : "mbps",
7aacca6f 25696 "optional" : 1,
44660702 25697 "type" : "number"
56122987 25698 },
7aacca6f 25699 "media" : {
44660702 25700 "default" : "disk",
7aacca6f
DM
25701 "description" : "The drive's media type.",
25702 "enum" : [
25703 "cdrom",
25704 "disk"
25705 ],
56122987 25706 "optional" : 1,
44660702 25707 "type" : "string"
56122987 25708 },
44660702
DM
25709 "queues" : {
25710 "description" : "Number of queues.",
44660702
DM
25711 "minimum" : 2,
25712 "optional" : 1,
25713 "type" : "integer"
56122987 25714 },
5d9c884c
DM
25715 "replicate" : {
25716 "default" : 1,
25717 "description" : "Whether the drive should considered for replication jobs.",
25718 "optional" : 1,
25719 "type" : "boolean"
25720 },
25721 "rerror" : {
25722 "description" : "Read error action.",
25723 "enum" : [
25724 "ignore",
25725 "report",
25726 "stop"
25727 ],
25728 "optional" : 1,
25729 "type" : "string"
25730 },
5370fa8c
TL
25731 "ro" : {
25732 "description" : "Whether the drive is read-only.",
25733 "optional" : 1,
25734 "type" : "boolean"
25735 },
52e44c50
FG
25736 "scsiblock" : {
25737 "default" : 0,
25738 "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",
25739 "optional" : 1,
25740 "type" : "boolean"
25741 },
7aacca6f 25742 "secs" : {
7aacca6f 25743 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
25744 "optional" : 1,
25745 "type" : "integer"
25746 },
25747 "serial" : {
25748 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
25749 "format" : "urlencoded",
25750 "format_description" : "serial",
25751 "maxLength" : 60,
25752 "optional" : 1,
25753 "type" : "string"
25754 },
27a7acb2
DM
25755 "shared" : {
25756 "default" : 0,
25757 "description" : "Mark this locally-managed volume as available on all nodes",
25758 "optional" : 1,
25759 "type" : "boolean",
25760 "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!"
25761 },
44660702
DM
25762 "size" : {
25763 "description" : "Disk size. This is purely informational and has no effect.",
25764 "format" : "disk-size",
f004f5b9 25765 "format_description" : "DiskSize",
44660702
DM
25766 "optional" : 1,
25767 "type" : "string"
25768 },
25769 "snapshot" : {
27a7acb2 25770 "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
25771 "optional" : 1,
25772 "type" : "boolean"
25773 },
25203dc1
NC
25774 "ssd" : {
25775 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
25776 "optional" : 1,
25777 "type" : "boolean"
25778 },
44660702
DM
25779 "trans" : {
25780 "description" : "Force disk geometry bios translation mode.",
25781 "enum" : [
25782 "none",
25783 "lba",
25784 "auto"
25785 ],
44660702
DM
25786 "optional" : 1,
25787 "type" : "string"
25788 },
25789 "volume" : {
25790 "alias" : "file"
25791 },
25792 "werror" : {
25793 "description" : "Write error action.",
25794 "enum" : [
25795 "enospc",
25796 "ignore",
25797 "report",
25798 "stop"
25799 ],
44660702
DM
25800 "optional" : 1,
25801 "type" : "string"
95895385
TL
25802 },
25803 "wwn" : {
25804 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
25805 "format_description" : "wwn",
25806 "optional" : 1,
25807 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
25808 "type" : "string"
56122987
DM
25809 }
25810 },
7aacca6f 25811 "optional" : 1,
4bd7df8b 25812 "type" : "string",
7af2edf9 25813 "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 25814 },
44660702
DM
25815 "scsihw" : {
25816 "default" : "lsi",
c2993fe5 25817 "description" : "SCSI controller model",
44660702
DM
25818 "enum" : [
25819 "lsi",
25820 "lsi53c810",
25821 "virtio-scsi-pci",
25822 "virtio-scsi-single",
25823 "megasas",
25824 "pvscsi"
25825 ],
7aacca6f 25826 "optional" : 1,
44660702 25827 "type" : "string"
7aacca6f 25828 },
27a7acb2 25829 "searchdomain" : {
de786b48 25830 "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
25831 "optional" : 1,
25832 "type" : "string",
25833 "typetext" : "<string>"
25834 },
44660702 25835 "serial[n]" : {
c2993fe5 25836 "description" : "Create a serial device inside the VM (n is 0 to 3)",
44660702
DM
25837 "optional" : 1,
25838 "pattern" : "(/dev/.+|socket)",
c2993fe5 25839 "type" : "string",
4772952b 25840 "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
25841 },
25842 "shares" : {
25843 "default" : 1000,
5da3d723 25844 "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
25845 "maximum" : 50000,
25846 "minimum" : 0,
25847 "optional" : 1,
4bd7df8b 25848 "type" : "integer",
013dc89f 25849 "typetext" : "<integer> (0 - 50000)"
44660702
DM
25850 },
25851 "smbios1" : {
25852 "description" : "Specify SMBIOS type 1 fields.",
25853 "format" : "pve-qm-smbios1",
1e3f8156 25854 "maxLength" : 512,
7aacca6f 25855 "optional" : 1,
4bd7df8b 25856 "type" : "string",
1e3f8156 25857 "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
25858 },
25859 "smp" : {
44660702 25860 "default" : 1,
7aacca6f 25861 "description" : "The number of CPUs. Please use option -sockets instead.",
44660702 25862 "minimum" : 1,
56122987 25863 "optional" : 1,
4bd7df8b 25864 "type" : "integer",
013dc89f 25865 "typetext" : "<integer> (1 - N)"
44660702
DM
25866 },
25867 "sockets" : {
7aacca6f 25868 "default" : 1,
44660702
DM
25869 "description" : "The number of CPU sockets.",
25870 "minimum" : 1,
25871 "optional" : 1,
4bd7df8b 25872 "type" : "integer",
013dc89f 25873 "typetext" : "<integer> (1 - N)"
7aacca6f 25874 },
1c532546
TL
25875 "spice_enhancements" : {
25876 "description" : "Configure additional enhancements for SPICE.",
25877 "format" : {
25878 "foldersharing" : {
25879 "default" : "0",
25880 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
25881 "optional" : 1,
25882 "type" : "boolean"
25883 },
25884 "videostreaming" : {
25885 "default" : "off",
25886 "description" : "Enable video streaming. Uses compression for detected video streams.",
25887 "enum" : [
25888 "off",
25889 "all",
25890 "filter"
25891 ],
25892 "optional" : 1,
25893 "type" : "string"
25894 }
25895 },
25896 "optional" : 1,
25897 "type" : "string",
25898 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
25899 },
27a7acb2
DM
25900 "sshkeys" : {
25901 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
25902 "format" : "urlencoded",
25903 "optional" : 1,
25904 "type" : "string",
25905 "typetext" : "<string>"
25906 },
5da3d723
TL
25907 "start" : {
25908 "default" : 0,
25909 "description" : "Start VM after it was created successfully.",
25910 "optional" : 1,
25911 "type" : "boolean",
25912 "typetext" : "<boolean>"
25913 },
44660702
DM
25914 "startdate" : {
25915 "default" : "now",
4772952b 25916 "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
25917 "optional" : 1,
25918 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
25919 "type" : "string",
25920 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
25921 },
25922 "startup" : {
25923 "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.",
25924 "format" : "pve-startup-order",
25925 "optional" : 1,
25926 "type" : "string",
25927 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
25928 },
25929 "storage" : {
25930 "description" : "Default storage.",
25931 "format" : "pve-storage-id",
7aacca6f 25932 "optional" : 1,
013dc89f
DM
25933 "type" : "string",
25934 "typetext" : "<string>"
56122987 25935 },
44660702
DM
25936 "tablet" : {
25937 "default" : 1,
c2993fe5 25938 "description" : "Enable/disable the USB tablet device.",
56122987 25939 "optional" : 1,
c2993fe5 25940 "type" : "boolean",
013dc89f 25941 "typetext" : "<boolean>",
4772952b 25942 "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 25943 },
5c1699e5
TL
25944 "tags" : {
25945 "description" : "Tags of the VM. This is only meta information.",
25946 "format" : "pve-tag-list",
25947 "optional" : 1,
25948 "type" : "string",
25949 "typetext" : "<string>"
25950 },
44660702
DM
25951 "tdf" : {
25952 "default" : 0,
25953 "description" : "Enable/disable time drift fix.",
25954 "optional" : 1,
013dc89f
DM
25955 "type" : "boolean",
25956 "typetext" : "<boolean>"
7aacca6f
DM
25957 },
25958 "template" : {
7aacca6f 25959 "default" : 0,
44660702 25960 "description" : "Enable/disable Template.",
7aacca6f 25961 "optional" : 1,
013dc89f
DM
25962 "type" : "boolean",
25963 "typetext" : "<boolean>"
7aacca6f 25964 },
5370fa8c 25965 "tpmstate0" : {
7af2edf9 25966 "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
25967 "format" : {
25968 "file" : {
25969 "default_key" : 1,
25970 "description" : "The drive's backing volume.",
25971 "format" : "pve-volume-id-or-qm-path",
25972 "format_description" : "volume",
25973 "type" : "string"
25974 },
7af2edf9
TL
25975 "import-from" : {
25976 "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!",
25977 "format" : "pve-volume-id-or-absolute-path",
25978 "format_description" : "source volume",
25979 "optional" : 1,
25980 "type" : "string"
25981 },
5370fa8c
TL
25982 "size" : {
25983 "description" : "Disk size. This is purely informational and has no effect.",
25984 "format" : "disk-size",
25985 "format_description" : "DiskSize",
25986 "optional" : 1,
25987 "type" : "string"
25988 },
25989 "version" : {
25990 "default" : "v2.0",
25991 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
25992 "enum" : [
25993 "v1.2",
25994 "v2.0"
25995 ],
25996 "optional" : 1,
25997 "type" : "string"
25998 },
25999 "volume" : {
26000 "alias" : "file"
26001 }
26002 },
26003 "optional" : 1,
26004 "type" : "string",
7af2edf9 26005 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 26006 },
44660702
DM
26007 "unique" : {
26008 "description" : "Assign a unique random ethernet address.",
7aacca6f 26009 "optional" : 1,
44660702 26010 "requires" : "archive",
013dc89f
DM
26011 "type" : "boolean",
26012 "typetext" : "<boolean>"
56122987 26013 },
44660702 26014 "unused[n]" : {
c2993fe5 26015 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
26016 "format" : {
26017 "file" : {
26018 "default_key" : 1,
26019 "description" : "The drive's backing volume.",
26020 "format" : "pve-volume-id",
26021 "format_description" : "volume",
26022 "type" : "string"
26023 },
26024 "volume" : {
26025 "alias" : "file"
26026 }
26027 },
7aacca6f 26028 "optional" : 1,
013dc89f 26029 "type" : "string",
c5aa7e14 26030 "typetext" : "[file=]<volume>"
44660702
DM
26031 },
26032 "usb[n]" : {
4e7f60c2 26033 "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 26034 "format" : {
7aacca6f
DM
26035 "host" : {
26036 "default_key" : 1,
4772952b 26037 "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 26038 "format" : "pve-qm-usb-device",
44660702
DM
26039 "format_description" : "HOSTUSBDEVICE|spice",
26040 "type" : "string"
7aacca6f 26041 },
56122987 26042 "usb3" : {
c2993fe5 26043 "default" : 0,
4e7f60c2 26044 "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 26045 "optional" : 1,
56122987 26046 "type" : "boolean"
7aacca6f 26047 }
56122987 26048 },
56122987 26049 "optional" : 1,
4bd7df8b
DM
26050 "type" : "string",
26051 "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
56122987 26052 },
44660702
DM
26053 "vcpus" : {
26054 "default" : 0,
26055 "description" : "Number of hotplugged vcpus.",
26056 "minimum" : 1,
56122987 26057 "optional" : 1,
4bd7df8b 26058 "type" : "integer",
013dc89f 26059 "typetext" : "<integer> (1 - N)"
7aacca6f 26060 },
44660702 26061 "vga" : {
e2d681b3
TL
26062 "description" : "Configure the VGA hardware.",
26063 "format" : {
26064 "memory" : {
26065 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
26066 "maximum" : 512,
26067 "minimum" : 4,
26068 "optional" : 1,
26069 "type" : "integer"
26070 },
26071 "type" : {
26072 "default" : "std",
26073 "default_key" : 1,
26074 "description" : "Select the VGA type.",
26075 "enum" : [
26076 "cirrus",
26077 "qxl",
26078 "qxl2",
26079 "qxl3",
26080 "qxl4",
5f26e15b 26081 "none",
e2d681b3
TL
26082 "serial0",
26083 "serial1",
26084 "serial2",
26085 "serial3",
26086 "std",
26087 "virtio",
7af2edf9 26088 "virtio-gl",
e2d681b3
TL
26089 "vmware"
26090 ],
26091 "optional" : 1,
26092 "type" : "string"
26093 }
26094 },
44660702 26095 "optional" : 1,
c2993fe5 26096 "type" : "string",
e2d681b3
TL
26097 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
26098 "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 26099 },
44660702 26100 "virtio[n]" : {
7af2edf9 26101 "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
26102 "format" : {
26103 "aio" : {
26104 "description" : "AIO type to use.",
26105 "enum" : [
26106 "native",
8f4d9c87
TL
26107 "threads",
26108 "io_uring"
44660702 26109 ],
44660702
DM
26110 "optional" : 1,
26111 "type" : "string"
26112 },
26113 "backup" : {
26114 "description" : "Whether the drive should be included when making backups.",
44660702
DM
26115 "optional" : 1,
26116 "type" : "boolean"
26117 },
26118 "bps" : {
de0983cb 26119 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
26120 "format_description" : "bps",
26121 "optional" : 1,
26122 "type" : "integer"
26123 },
de0983cb
DM
26124 "bps_max_length" : {
26125 "description" : "Maximum length of I/O bursts in seconds.",
26126 "format_description" : "seconds",
26127 "minimum" : 1,
26128 "optional" : 1,
26129 "type" : "integer"
26130 },
44660702 26131 "bps_rd" : {
de0983cb 26132 "description" : "Maximum read speed in bytes per second.",
44660702
DM
26133 "format_description" : "bps",
26134 "optional" : 1,
26135 "type" : "integer"
26136 },
de0983cb 26137 "bps_rd_length" : {
5d9c884c
DM
26138 "alias" : "bps_rd_max_length"
26139 },
26140 "bps_rd_max_length" : {
de0983cb
DM
26141 "description" : "Maximum length of read I/O bursts in seconds.",
26142 "format_description" : "seconds",
26143 "minimum" : 1,
26144 "optional" : 1,
26145 "type" : "integer"
26146 },
44660702 26147 "bps_wr" : {
de0983cb 26148 "description" : "Maximum write speed in bytes per second.",
44660702
DM
26149 "format_description" : "bps",
26150 "optional" : 1,
26151 "type" : "integer"
26152 },
de0983cb 26153 "bps_wr_length" : {
5d9c884c
DM
26154 "alias" : "bps_wr_max_length"
26155 },
26156 "bps_wr_max_length" : {
de0983cb
DM
26157 "description" : "Maximum length of write I/O bursts in seconds.",
26158 "format_description" : "seconds",
26159 "minimum" : 1,
26160 "optional" : 1,
26161 "type" : "integer"
26162 },
44660702
DM
26163 "cache" : {
26164 "description" : "The drive's cache mode",
26165 "enum" : [
26166 "none",
26167 "writethrough",
26168 "writeback",
26169 "unsafe",
26170 "directsync"
26171 ],
44660702
DM
26172 "optional" : 1,
26173 "type" : "string"
26174 },
26175 "cyls" : {
26176 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
26177 "optional" : 1,
26178 "type" : "integer"
26179 },
26180 "detect_zeroes" : {
26181 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
26182 "optional" : 1,
26183 "type" : "boolean"
26184 },
26185 "discard" : {
26186 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
26187 "enum" : [
26188 "ignore",
26189 "on"
26190 ],
44660702
DM
26191 "optional" : 1,
26192 "type" : "string"
26193 },
26194 "file" : {
26195 "default_key" : 1,
26196 "description" : "The drive's backing volume.",
26197 "format" : "pve-volume-id-or-qm-path",
26198 "format_description" : "volume",
26199 "type" : "string"
26200 },
26201 "format" : {
26202 "description" : "The drive's backing file's data format.",
26203 "enum" : [
26204 "raw",
26205 "cow",
26206 "qcow",
26207 "qed",
26208 "qcow2",
26209 "vmdk",
26210 "cloop"
26211 ],
44660702
DM
26212 "optional" : 1,
26213 "type" : "string"
26214 },
26215 "heads" : {
26216 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
26217 "optional" : 1,
26218 "type" : "integer"
26219 },
7af2edf9
TL
26220 "import-from" : {
26221 "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!",
26222 "format" : "pve-volume-id-or-absolute-path",
26223 "format_description" : "source volume",
26224 "optional" : 1,
26225 "type" : "string"
26226 },
44660702 26227 "iops" : {
de0983cb 26228 "description" : "Maximum r/w I/O in operations per second.",
44660702
DM
26229 "format_description" : "iops",
26230 "optional" : 1,
26231 "type" : "integer"
26232 },
26233 "iops_max" : {
de0983cb 26234 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702
DM
26235 "format_description" : "iops",
26236 "optional" : 1,
26237 "type" : "integer"
26238 },
de0983cb
DM
26239 "iops_max_length" : {
26240 "description" : "Maximum length of I/O bursts in seconds.",
26241 "format_description" : "seconds",
26242 "minimum" : 1,
26243 "optional" : 1,
26244 "type" : "integer"
26245 },
44660702 26246 "iops_rd" : {
de0983cb 26247 "description" : "Maximum read I/O in operations per second.",
44660702
DM
26248 "format_description" : "iops",
26249 "optional" : 1,
26250 "type" : "integer"
26251 },
de0983cb 26252 "iops_rd_length" : {
5d9c884c 26253 "alias" : "iops_rd_max_length"
de0983cb 26254 },
44660702 26255 "iops_rd_max" : {
de0983cb 26256 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
26257 "format_description" : "iops",
26258 "optional" : 1,
26259 "type" : "integer"
26260 },
5d9c884c
DM
26261 "iops_rd_max_length" : {
26262 "description" : "Maximum length of read I/O bursts in seconds.",
26263 "format_description" : "seconds",
26264 "minimum" : 1,
26265 "optional" : 1,
26266 "type" : "integer"
26267 },
44660702 26268 "iops_wr" : {
de0983cb 26269 "description" : "Maximum write I/O in operations per second.",
44660702
DM
26270 "format_description" : "iops",
26271 "optional" : 1,
26272 "type" : "integer"
26273 },
de0983cb 26274 "iops_wr_length" : {
5d9c884c 26275 "alias" : "iops_wr_max_length"
de0983cb 26276 },
44660702 26277 "iops_wr_max" : {
de0983cb 26278 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
26279 "format_description" : "iops",
26280 "optional" : 1,
26281 "type" : "integer"
26282 },
5d9c884c
DM
26283 "iops_wr_max_length" : {
26284 "description" : "Maximum length of write I/O bursts in seconds.",
26285 "format_description" : "seconds",
26286 "minimum" : 1,
26287 "optional" : 1,
26288 "type" : "integer"
26289 },
44660702
DM
26290 "iothread" : {
26291 "description" : "Whether to use iothreads for this drive",
44660702
DM
26292 "optional" : 1,
26293 "type" : "boolean"
26294 },
26295 "mbps" : {
de0983cb 26296 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
26297 "format_description" : "mbps",
26298 "optional" : 1,
26299 "type" : "number"
26300 },
26301 "mbps_max" : {
de0983cb 26302 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
26303 "format_description" : "mbps",
26304 "optional" : 1,
26305 "type" : "number"
26306 },
26307 "mbps_rd" : {
de0983cb 26308 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
26309 "format_description" : "mbps",
26310 "optional" : 1,
26311 "type" : "number"
26312 },
26313 "mbps_rd_max" : {
de0983cb 26314 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
26315 "format_description" : "mbps",
26316 "optional" : 1,
26317 "type" : "number"
26318 },
26319 "mbps_wr" : {
de0983cb 26320 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
26321 "format_description" : "mbps",
26322 "optional" : 1,
26323 "type" : "number"
26324 },
26325 "mbps_wr_max" : {
de0983cb 26326 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
26327 "format_description" : "mbps",
26328 "optional" : 1,
26329 "type" : "number"
26330 },
26331 "media" : {
26332 "default" : "disk",
26333 "description" : "The drive's media type.",
26334 "enum" : [
26335 "cdrom",
26336 "disk"
26337 ],
44660702
DM
26338 "optional" : 1,
26339 "type" : "string"
26340 },
5d9c884c
DM
26341 "replicate" : {
26342 "default" : 1,
26343 "description" : "Whether the drive should considered for replication jobs.",
26344 "optional" : 1,
26345 "type" : "boolean"
26346 },
44660702
DM
26347 "rerror" : {
26348 "description" : "Read error action.",
26349 "enum" : [
26350 "ignore",
26351 "report",
26352 "stop"
26353 ],
44660702
DM
26354 "optional" : 1,
26355 "type" : "string"
26356 },
5370fa8c
TL
26357 "ro" : {
26358 "description" : "Whether the drive is read-only.",
26359 "optional" : 1,
26360 "type" : "boolean"
26361 },
44660702
DM
26362 "secs" : {
26363 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
26364 "optional" : 1,
26365 "type" : "integer"
26366 },
26367 "serial" : {
26368 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
26369 "format" : "urlencoded",
26370 "format_description" : "serial",
26371 "maxLength" : 60,
26372 "optional" : 1,
26373 "type" : "string"
26374 },
27a7acb2
DM
26375 "shared" : {
26376 "default" : 0,
26377 "description" : "Mark this locally-managed volume as available on all nodes",
26378 "optional" : 1,
26379 "type" : "boolean",
26380 "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!"
26381 },
44660702
DM
26382 "size" : {
26383 "description" : "Disk size. This is purely informational and has no effect.",
26384 "format" : "disk-size",
f004f5b9 26385 "format_description" : "DiskSize",
44660702
DM
26386 "optional" : 1,
26387 "type" : "string"
26388 },
26389 "snapshot" : {
27a7acb2 26390 "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
26391 "optional" : 1,
26392 "type" : "boolean"
26393 },
26394 "trans" : {
26395 "description" : "Force disk geometry bios translation mode.",
26396 "enum" : [
26397 "none",
26398 "lba",
26399 "auto"
26400 ],
44660702
DM
26401 "optional" : 1,
26402 "type" : "string"
26403 },
26404 "volume" : {
26405 "alias" : "file"
26406 },
26407 "werror" : {
26408 "description" : "Write error action.",
26409 "enum" : [
26410 "enospc",
26411 "ignore",
26412 "report",
26413 "stop"
26414 ],
44660702
DM
26415 "optional" : 1,
26416 "type" : "string"
26417 }
26418 },
26419 "optional" : 1,
4bd7df8b 26420 "type" : "string",
7af2edf9 26421 "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 26422 },
4d47f125
TL
26423 "vmgenid" : {
26424 "default" : "1 (autogenerated)",
26425 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
26426 "format_description" : "UUID",
26427 "optional" : 1,
26428 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
26429 "type" : "string",
4772952b 26430 "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 26431 },
44660702
DM
26432 "vmid" : {
26433 "description" : "The (unique) ID of the VM.",
26434 "format" : "pve-vmid",
26435 "minimum" : 1,
4bd7df8b 26436 "type" : "integer",
013dc89f 26437 "typetext" : "<integer> (1 - N)"
44660702 26438 },
2489d6df
WB
26439 "vmstatestorage" : {
26440 "description" : "Default storage for VM state volumes/files.",
26441 "format" : "pve-storage-id",
26442 "optional" : 1,
26443 "type" : "string",
26444 "typetext" : "<string>"
26445 },
44660702 26446 "watchdog" : {
c2993fe5 26447 "description" : "Create a virtual hardware watchdog device.",
44660702 26448 "format" : "pve-qm-watchdog",
7aacca6f 26449 "optional" : 1,
c2993fe5 26450 "type" : "string",
013dc89f 26451 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
c2993fe5 26452 "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 26453 }
44660702 26454 }
56122987 26455 },
56122987 26456 "permissions" : {
159464a9 26457 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid} or on the VM pool /pool/{pool}. For restore (option 'archive'), it is enough if the user has 'VM.Backup' permission and the VM already exists. If you create disks you need 'Datastore.AllocateSpace' on any used storage.If you use a bridge/vlan, you need 'SDN.Use' on any used bridge/vlan.",
44660702 26458 "user" : "all"
56122987 26459 },
44660702
DM
26460 "protected" : 1,
26461 "proxyto" : "node",
56122987 26462 "returns" : {
44660702 26463 "type" : "string"
7aacca6f 26464 }
56122987 26465 }
7aacca6f 26466 },
44660702 26467 "leaf" : 0,
7aacca6f 26468 "path" : "/nodes/{node}/qemu",
44660702 26469 "text" : "qemu"
56122987
DM
26470 },
26471 {
26472 "children" : [
26473 {
56122987
DM
26474 "children" : [
26475 {
56122987 26476 "info" : {
44660702 26477 "GET" : {
e9cd3bd4 26478 "allowtoken" : 1,
44660702
DM
26479 "description" : "Get container configuration.",
26480 "method" : "GET",
26481 "name" : "vm_config",
26482 "parameters" : {
26483 "additionalProperties" : 0,
26484 "properties" : {
1c532546
TL
26485 "current" : {
26486 "default" : 0,
26487 "description" : "Get current values (instead of pending values).",
26488 "optional" : 1,
26489 "type" : "boolean",
26490 "typetext" : "<boolean>"
26491 },
44660702
DM
26492 "node" : {
26493 "description" : "The cluster node name.",
26494 "format" : "pve-node",
013dc89f 26495 "type" : "string",
4d47f125
TL
26496 "typetext" : "<string>"
26497 },
5f26e15b
TL
26498 "snapshot" : {
26499 "description" : "Fetch config values from given snapshot.",
26500 "format" : "pve-configid",
26501 "maxLength" : 40,
26502 "optional" : 1,
26503 "type" : "string",
26504 "typetext" : "<string>"
26505 },
4d47f125
TL
26506 "vmid" : {
26507 "description" : "The (unique) ID of the VM.",
26508 "format" : "pve-vmid",
26509 "minimum" : 1,
26510 "type" : "integer",
26511 "typetext" : "<integer> (1 - N)"
26512 }
26513 }
26514 },
26515 "permissions" : {
26516 "check" : [
26517 "perm",
26518 "/vms/{vmid}",
26519 [
26520 "VM.Audit"
26521 ]
26522 ]
26523 },
26524 "proxyto" : "node",
26525 "returns" : {
26526 "properties" : {
26527 "arch" : {
26528 "default" : "amd64",
26529 "description" : "OS architecture type.",
26530 "enum" : [
26531 "amd64",
26532 "i386",
26533 "arm64",
9d2e98ed
TL
26534 "armhf",
26535 "riscv32",
26536 "riscv64"
4d47f125
TL
26537 ],
26538 "optional" : 1,
26539 "type" : "string"
26540 },
26541 "cmode" : {
26542 "default" : "tty",
26543 "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).",
26544 "enum" : [
26545 "shell",
26546 "console",
26547 "tty"
26548 ],
26549 "optional" : 1,
26550 "type" : "string"
26551 },
26552 "console" : {
26553 "default" : 1,
26554 "description" : "Attach a console device (/dev/console) to the container.",
26555 "optional" : 1,
26556 "type" : "boolean"
26557 },
26558 "cores" : {
26559 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 26560 "maximum" : 8192,
4d47f125
TL
26561 "minimum" : 1,
26562 "optional" : 1,
26563 "type" : "integer"
26564 },
26565 "cpulimit" : {
26566 "default" : 0,
26567 "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 26568 "maximum" : 8192,
4d47f125
TL
26569 "minimum" : 0,
26570 "optional" : 1,
26571 "type" : "number"
26572 },
26573 "cpuunits" : {
4e7f60c2
TL
26574 "default" : "cgroup v1: 1024, cgroup v2: 100",
26575 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
4d47f125
TL
26576 "maximum" : 500000,
26577 "minimum" : 0,
26578 "optional" : 1,
4e7f60c2
TL
26579 "type" : "integer",
26580 "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 26581 },
739d4d64
TL
26582 "debug" : {
26583 "default" : 0,
26584 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
26585 "optional" : 1,
26586 "type" : "boolean"
26587 },
4d47f125 26588 "description" : {
8f4d9c87
TL
26589 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
26590 "maxLength" : 8192,
4d47f125
TL
26591 "optional" : 1,
26592 "type" : "string"
26593 },
26594 "digest" : {
26595 "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
26596 "type" : "string"
26597 },
26598 "features" : {
26599 "description" : "Allow containers access to advanced features.",
26600 "format" : {
c5aa7e14
TL
26601 "force_rw_sys" : {
26602 "default" : 0,
26603 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
26604 "optional" : 1,
26605 "type" : "boolean"
26606 },
e2d681b3
TL
26607 "fuse" : {
26608 "default" : 0,
26609 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
26610 "optional" : 1,
26611 "type" : "boolean"
26612 },
4d47f125
TL
26613 "keyctl" : {
26614 "default" : 0,
26615 "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.",
26616 "optional" : 1,
26617 "type" : "boolean"
26618 },
c5aa7e14
TL
26619 "mknod" : {
26620 "default" : 0,
26621 "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.",
26622 "optional" : 1,
26623 "type" : "boolean"
26624 },
4d47f125
TL
26625 "mount" : {
26626 "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.",
26627 "format_description" : "fstype;fstype;...",
26628 "optional" : 1,
95895385 26629 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125
TL
26630 "type" : "string"
26631 },
26632 "nesting" : {
26633 "default" : 0,
26634 "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.",
26635 "optional" : 1,
26636 "type" : "boolean"
26637 }
26638 },
26639 "optional" : 1,
26640 "type" : "string"
26641 },
5f26e15b
TL
26642 "hookscript" : {
26643 "description" : "Script that will be exectued during various steps in the containers lifetime.",
26644 "format" : "pve-volume-id",
26645 "optional" : 1,
26646 "type" : "string"
26647 },
4d47f125
TL
26648 "hostname" : {
26649 "description" : "Set a host name for the container.",
26650 "format" : "dns-name",
26651 "maxLength" : 255,
26652 "optional" : 1,
26653 "type" : "string"
26654 },
26655 "lock" : {
4e7f60c2 26656 "description" : "Lock/unlock the container.",
4d47f125
TL
26657 "enum" : [
26658 "backup",
bb4c8cf8 26659 "create",
1c532546 26660 "destroyed",
4d47f125 26661 "disk",
bb4c8cf8 26662 "fstrim",
4d47f125
TL
26663 "migrate",
26664 "mounted",
26665 "rollback",
26666 "snapshot",
26667 "snapshot-delete"
26668 ],
26669 "optional" : 1,
26670 "type" : "string"
26671 },
26672 "lxc" : {
26673 "description" : "Array of lxc low-level configurations ([[key1, value1], [key2, value2] ...]).",
26674 "items" : {
26675 "items" : {
26676 "type" : "string"
26677 },
26678 "type" : "array"
26679 },
26680 "optional" : 1,
26681 "type" : "array"
26682 },
26683 "memory" : {
26684 "default" : 512,
4e7f60c2 26685 "description" : "Amount of RAM for the container in MB.",
4d47f125
TL
26686 "minimum" : 16,
26687 "optional" : 1,
26688 "type" : "integer"
26689 },
26690 "mp[n]" : {
d2656385 26691 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
4d47f125
TL
26692 "format" : {
26693 "acl" : {
26694 "description" : "Explicitly enable or disable ACL support.",
26695 "optional" : 1,
26696 "type" : "boolean"
26697 },
26698 "backup" : {
26699 "description" : "Whether to include the mount point in backups.",
26700 "optional" : 1,
26701 "type" : "boolean",
26702 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
26703 },
7cbed89a
TL
26704 "mountoptions" : {
26705 "description" : "Extra mount options for rootfs/mps.",
26706 "format_description" : "opt[;opt...]",
26707 "optional" : 1,
c30bb419 26708 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
26709 "type" : "string"
26710 },
4d47f125
TL
26711 "mp" : {
26712 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
26713 "format" : "pve-lxc-mp-string",
26714 "format_description" : "Path",
26715 "type" : "string",
26716 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
26717 },
26718 "quota" : {
26719 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
26720 "optional" : 1,
26721 "type" : "boolean"
26722 },
26723 "replicate" : {
26724 "default" : 1,
26725 "description" : "Will include this volume to a storage replica job.",
26726 "optional" : 1,
26727 "type" : "boolean"
26728 },
26729 "ro" : {
26730 "description" : "Read-only mount point",
26731 "optional" : 1,
26732 "type" : "boolean"
26733 },
26734 "shared" : {
26735 "default" : 0,
26736 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
26737 "optional" : 1,
26738 "type" : "boolean",
26739 "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!"
26740 },
26741 "size" : {
26742 "description" : "Volume size (read only value).",
26743 "format" : "disk-size",
26744 "format_description" : "DiskSize",
26745 "optional" : 1,
26746 "type" : "string"
26747 },
26748 "volume" : {
26749 "default_key" : 1,
26750 "description" : "Volume, device or directory to mount into the container.",
26751 "format" : "pve-lxc-mp-string",
26752 "format_description" : "volume",
26753 "type" : "string"
26754 }
26755 },
26756 "optional" : 1,
26757 "type" : "string"
26758 },
26759 "nameserver" : {
26760 "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 26761 "format" : "lxc-ip-with-ll-iface-list",
4d47f125
TL
26762 "optional" : 1,
26763 "type" : "string"
26764 },
26765 "net[n]" : {
26766 "description" : "Specifies network interfaces for the container.",
26767 "format" : {
26768 "bridge" : {
26769 "description" : "Bridge to attach the network device to.",
26770 "format_description" : "bridge",
26771 "optional" : 1,
26772 "pattern" : "[-_.\\w\\d]+",
26773 "type" : "string"
26774 },
26775 "firewall" : {
26776 "description" : "Controls whether this interface's firewall rules should be used.",
26777 "optional" : 1,
26778 "type" : "boolean"
26779 },
26780 "gw" : {
26781 "description" : "Default gateway for IPv4 traffic.",
26782 "format" : "ipv4",
26783 "format_description" : "GatewayIPv4",
26784 "optional" : 1,
26785 "type" : "string"
26786 },
26787 "gw6" : {
26788 "description" : "Default gateway for IPv6 traffic.",
26789 "format" : "ipv6",
26790 "format_description" : "GatewayIPv6",
26791 "optional" : 1,
26792 "type" : "string"
26793 },
26794 "hwaddr" : {
26795 "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 26796 "format" : "mac-addr",
4d47f125
TL
26797 "format_description" : "XX:XX:XX:XX:XX:XX",
26798 "optional" : 1,
95895385
TL
26799 "type" : "string",
26800 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
26801 },
26802 "ip" : {
26803 "description" : "IPv4 address in CIDR format.",
26804 "format" : "pve-ipv4-config",
26805 "format_description" : "(IPv4/CIDR|dhcp|manual)",
26806 "optional" : 1,
26807 "type" : "string"
26808 },
26809 "ip6" : {
26810 "description" : "IPv6 address in CIDR format.",
26811 "format" : "pve-ipv6-config",
26812 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
26813 "optional" : 1,
26814 "type" : "string"
26815 },
9d2e98ed
TL
26816 "link_down" : {
26817 "description" : "Whether this interface should be disconnected (like pulling the plug).",
26818 "optional" : 1,
26819 "type" : "boolean"
26820 },
4d47f125
TL
26821 "mtu" : {
26822 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 26823 "maximum" : 65535,
4d47f125
TL
26824 "minimum" : 64,
26825 "optional" : 1,
26826 "type" : "integer"
26827 },
26828 "name" : {
26829 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
26830 "format_description" : "string",
26831 "pattern" : "[-_.\\w\\d]+",
26832 "type" : "string"
26833 },
26834 "rate" : {
26835 "description" : "Apply rate limiting to the interface",
26836 "format_description" : "mbps",
26837 "optional" : 1,
26838 "type" : "number"
26839 },
26840 "tag" : {
26841 "description" : "VLAN tag for this interface.",
26842 "maximum" : 4094,
26843 "minimum" : 1,
26844 "optional" : 1,
26845 "type" : "integer"
26846 },
26847 "trunks" : {
26848 "description" : "VLAN ids to pass through the interface",
26849 "format_description" : "vlanid[;vlanid...]",
26850 "optional" : 1,
26851 "pattern" : "(?^:\\d+(?:;\\d+)*)",
26852 "type" : "string"
26853 },
26854 "type" : {
26855 "description" : "Network interface type.",
26856 "enum" : [
26857 "veth"
26858 ],
26859 "optional" : 1,
26860 "type" : "string"
26861 }
26862 },
26863 "optional" : 1,
26864 "type" : "string"
26865 },
26866 "onboot" : {
26867 "default" : 0,
4e7f60c2 26868 "description" : "Specifies whether a container will be started during system bootup.",
4d47f125
TL
26869 "optional" : 1,
26870 "type" : "boolean"
26871 },
26872 "ostype" : {
26873 "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.",
26874 "enum" : [
26875 "debian",
d2656385 26876 "devuan",
4d47f125
TL
26877 "ubuntu",
26878 "centos",
26879 "fedora",
26880 "opensuse",
26881 "archlinux",
26882 "alpine",
26883 "gentoo",
7af2edf9 26884 "nixos",
4d47f125
TL
26885 "unmanaged"
26886 ],
26887 "optional" : 1,
26888 "type" : "string"
26889 },
26890 "protection" : {
26891 "default" : 0,
26892 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
26893 "optional" : 1,
26894 "type" : "boolean"
26895 },
26896 "rootfs" : {
26897 "description" : "Use volume as container root.",
26898 "format" : {
26899 "acl" : {
26900 "description" : "Explicitly enable or disable ACL support.",
26901 "optional" : 1,
26902 "type" : "boolean"
26903 },
7cbed89a
TL
26904 "mountoptions" : {
26905 "description" : "Extra mount options for rootfs/mps.",
26906 "format_description" : "opt[;opt...]",
26907 "optional" : 1,
c30bb419 26908 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
26909 "type" : "string"
26910 },
4d47f125
TL
26911 "quota" : {
26912 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
26913 "optional" : 1,
26914 "type" : "boolean"
26915 },
26916 "replicate" : {
26917 "default" : 1,
26918 "description" : "Will include this volume to a storage replica job.",
26919 "optional" : 1,
26920 "type" : "boolean"
26921 },
26922 "ro" : {
26923 "description" : "Read-only mount point",
26924 "optional" : 1,
26925 "type" : "boolean"
26926 },
26927 "shared" : {
26928 "default" : 0,
26929 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
26930 "optional" : 1,
26931 "type" : "boolean",
26932 "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!"
26933 },
26934 "size" : {
26935 "description" : "Volume size (read only value).",
26936 "format" : "disk-size",
26937 "format_description" : "DiskSize",
26938 "optional" : 1,
26939 "type" : "string"
26940 },
26941 "volume" : {
26942 "default_key" : 1,
26943 "description" : "Volume, device or directory to mount into the container.",
26944 "format" : "pve-lxc-mp-string",
26945 "format_description" : "volume",
26946 "type" : "string"
26947 }
26948 },
26949 "optional" : 1,
26950 "type" : "string"
26951 },
26952 "searchdomain" : {
26953 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
26954 "format" : "dns-name-list",
26955 "optional" : 1,
26956 "type" : "string"
26957 },
26958 "startup" : {
26959 "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.",
26960 "format" : "pve-startup-order",
26961 "optional" : 1,
26962 "type" : "string",
26963 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
26964 },
26965 "swap" : {
26966 "default" : 512,
4e7f60c2 26967 "description" : "Amount of SWAP for the container in MB.",
4d47f125
TL
26968 "minimum" : 0,
26969 "optional" : 1,
26970 "type" : "integer"
26971 },
5c1699e5
TL
26972 "tags" : {
26973 "description" : "Tags of the Container. This is only meta information.",
26974 "format" : "pve-tag-list",
26975 "optional" : 1,
26976 "type" : "string"
26977 },
4d47f125
TL
26978 "template" : {
26979 "default" : 0,
26980 "description" : "Enable/disable Template.",
26981 "optional" : 1,
26982 "type" : "boolean"
44660702 26983 },
04d22a9f
TL
26984 "timezone" : {
26985 "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",
26986 "format" : "pve-ct-timezone",
26987 "optional" : 1,
26988 "type" : "string"
26989 },
4d47f125
TL
26990 "tty" : {
26991 "default" : 2,
26992 "description" : "Specify the number of tty available to the container",
26993 "maximum" : 6,
26994 "minimum" : 0,
26995 "optional" : 1,
26996 "type" : "integer"
26997 },
26998 "unprivileged" : {
26999 "default" : 0,
27000 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
27001 "optional" : 1,
27002 "type" : "boolean"
27003 },
27004 "unused[n]" : {
27005 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
27006 "format" : {
27007 "volume" : {
27008 "default_key" : 1,
27009 "description" : "The volume that is not used currently.",
27010 "format" : "pve-volume-id",
27011 "format_description" : "volume",
27012 "type" : "string"
27013 }
27014 },
4d47f125 27015 "optional" : 1,
44660702
DM
27016 "type" : "string"
27017 }
27018 },
27019 "type" : "object"
27020 }
27021 },
56122987 27022 "PUT" : {
e9cd3bd4 27023 "allowtoken" : 1,
44660702
DM
27024 "description" : "Set container options.",
27025 "method" : "PUT",
27026 "name" : "update_vm",
56122987 27027 "parameters" : {
44660702 27028 "additionalProperties" : 0,
56122987 27029 "properties" : {
44660702
DM
27030 "arch" : {
27031 "default" : "amd64",
27032 "description" : "OS architecture type.",
27033 "enum" : [
27034 "amd64",
4d47f125
TL
27035 "i386",
27036 "arm64",
9d2e98ed
TL
27037 "armhf",
27038 "riscv32",
27039 "riscv64"
44660702 27040 ],
7aacca6f 27041 "optional" : 1,
44660702
DM
27042 "type" : "string"
27043 },
27044 "cmode" : {
7aacca6f 27045 "default" : "tty",
44660702 27046 "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
27047 "enum" : [
27048 "shell",
27049 "console",
27050 "tty"
27051 ],
44660702
DM
27052 "optional" : 1,
27053 "type" : "string"
7aacca6f 27054 },
44660702
DM
27055 "console" : {
27056 "default" : 1,
27057 "description" : "Attach a console device (/dev/console) to the container.",
7aacca6f 27058 "optional" : 1,
013dc89f
DM
27059 "type" : "boolean",
27060 "typetext" : "<boolean>"
7aacca6f 27061 },
de0983cb
DM
27062 "cores" : {
27063 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 27064 "maximum" : 8192,
de0983cb
DM
27065 "minimum" : 1,
27066 "optional" : 1,
27067 "type" : "integer",
4772952b 27068 "typetext" : "<integer> (1 - 8192)"
de0983cb 27069 },
44660702
DM
27070 "cpulimit" : {
27071 "default" : 0,
27072 "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 27073 "maximum" : 8192,
7aacca6f 27074 "minimum" : 0,
7aacca6f 27075 "optional" : 1,
4bd7df8b 27076 "type" : "number",
4772952b 27077 "typetext" : "<number> (0 - 8192)"
7aacca6f 27078 },
44660702 27079 "cpuunits" : {
4e7f60c2
TL
27080 "default" : "cgroup v1: 1024, cgroup v2: 100",
27081 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
44660702
DM
27082 "maximum" : 500000,
27083 "minimum" : 0,
27084 "optional" : 1,
4bd7df8b 27085 "type" : "integer",
4e7f60c2
TL
27086 "typetext" : "<integer> (0 - 500000)",
27087 "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 27088 },
739d4d64
TL
27089 "debug" : {
27090 "default" : 0,
27091 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
27092 "optional" : 1,
27093 "type" : "boolean",
27094 "typetext" : "<boolean>"
27095 },
44660702
DM
27096 "delete" : {
27097 "description" : "A list of settings you want to delete.",
27098 "format" : "pve-configid-list",
7aacca6f 27099 "optional" : 1,
013dc89f
DM
27100 "type" : "string",
27101 "typetext" : "<string>"
7aacca6f 27102 },
44660702 27103 "description" : {
8f4d9c87
TL
27104 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
27105 "maxLength" : 8192,
7aacca6f 27106 "optional" : 1,
013dc89f
DM
27107 "type" : "string",
27108 "typetext" : "<string>"
7aacca6f 27109 },
44660702
DM
27110 "digest" : {
27111 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
27112 "maxLength" : 40,
7aacca6f 27113 "optional" : 1,
013dc89f
DM
27114 "type" : "string",
27115 "typetext" : "<string>"
7aacca6f 27116 },
4d47f125
TL
27117 "features" : {
27118 "description" : "Allow containers access to advanced features.",
27119 "format" : {
c5aa7e14
TL
27120 "force_rw_sys" : {
27121 "default" : 0,
27122 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
27123 "optional" : 1,
27124 "type" : "boolean"
27125 },
e2d681b3
TL
27126 "fuse" : {
27127 "default" : 0,
27128 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
27129 "optional" : 1,
27130 "type" : "boolean"
27131 },
4d47f125
TL
27132 "keyctl" : {
27133 "default" : 0,
27134 "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.",
27135 "optional" : 1,
27136 "type" : "boolean"
27137 },
c5aa7e14
TL
27138 "mknod" : {
27139 "default" : 0,
27140 "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.",
27141 "optional" : 1,
27142 "type" : "boolean"
27143 },
4d47f125
TL
27144 "mount" : {
27145 "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.",
27146 "format_description" : "fstype;fstype;...",
27147 "optional" : 1,
95895385 27148 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125
TL
27149 "type" : "string"
27150 },
27151 "nesting" : {
27152 "default" : 0,
27153 "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.",
27154 "optional" : 1,
27155 "type" : "boolean"
27156 }
27157 },
27158 "optional" : 1,
27159 "type" : "string",
c5aa7e14 27160 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
4d47f125 27161 },
5f26e15b
TL
27162 "hookscript" : {
27163 "description" : "Script that will be exectued during various steps in the containers lifetime.",
27164 "format" : "pve-volume-id",
27165 "optional" : 1,
27166 "type" : "string",
27167 "typetext" : "<string>"
27168 },
44660702
DM
27169 "hostname" : {
27170 "description" : "Set a host name for the container.",
27171 "format" : "dns-name",
27172 "maxLength" : 255,
56122987 27173 "optional" : 1,
013dc89f
DM
27174 "type" : "string",
27175 "typetext" : "<string>"
44660702
DM
27176 },
27177 "lock" : {
4e7f60c2 27178 "description" : "Lock/unlock the container.",
44660702 27179 "enum" : [
44660702 27180 "backup",
bb4c8cf8 27181 "create",
1c532546 27182 "destroyed",
4d47f125 27183 "disk",
bb4c8cf8 27184 "fstrim",
4d47f125
TL
27185 "migrate",
27186 "mounted",
27187 "rollback",
44660702 27188 "snapshot",
4d47f125 27189 "snapshot-delete"
44660702
DM
27190 ],
27191 "optional" : 1,
27192 "type" : "string"
27193 },
27194 "memory" : {
27195 "default" : 512,
4e7f60c2 27196 "description" : "Amount of RAM for the container in MB.",
44660702
DM
27197 "minimum" : 16,
27198 "optional" : 1,
4bd7df8b 27199 "type" : "integer",
013dc89f 27200 "typetext" : "<integer> (16 - N)"
7aacca6f
DM
27201 },
27202 "mp[n]" : {
d2656385 27203 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
7aacca6f 27204 "format" : {
7aacca6f
DM
27205 "acl" : {
27206 "description" : "Explicitly enable or disable ACL support.",
7aacca6f 27207 "optional" : 1,
44660702 27208 "type" : "boolean"
7aacca6f
DM
27209 },
27210 "backup" : {
de0983cb 27211 "description" : "Whether to include the mount point in backups.",
7aacca6f 27212 "optional" : 1,
4bd7df8b 27213 "type" : "boolean",
de0983cb 27214 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
7aacca6f 27215 },
7cbed89a
TL
27216 "mountoptions" : {
27217 "description" : "Extra mount options for rootfs/mps.",
27218 "format_description" : "opt[;opt...]",
27219 "optional" : 1,
c30bb419 27220 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
27221 "type" : "string"
27222 },
7aacca6f 27223 "mp" : {
de0983cb 27224 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
7aacca6f 27225 "format" : "pve-lxc-mp-string",
44660702 27226 "format_description" : "Path",
4bd7df8b 27227 "type" : "string",
de0983cb 27228 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
44660702 27229 },
5d9c884c
DM
27230 "quota" : {
27231 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
27232 "optional" : 1,
27233 "type" : "boolean"
27234 },
27235 "replicate" : {
27236 "default" : 1,
27237 "description" : "Will include this volume to a storage replica job.",
44660702
DM
27238 "optional" : 1,
27239 "type" : "boolean"
27240 },
27241 "ro" : {
de0983cb 27242 "description" : "Read-only mount point",
44660702
DM
27243 "optional" : 1,
27244 "type" : "boolean"
27245 },
de0983cb
DM
27246 "shared" : {
27247 "default" : 0,
27248 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
27249 "optional" : 1,
27250 "type" : "boolean",
27251 "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!"
27252 },
44660702
DM
27253 "size" : {
27254 "description" : "Volume size (read only value).",
27255 "format" : "disk-size",
27256 "format_description" : "DiskSize",
27257 "optional" : 1,
27258 "type" : "string"
27259 },
27260 "volume" : {
27261 "default_key" : 1,
27262 "description" : "Volume, device or directory to mount into the container.",
27263 "format" : "pve-lxc-mp-string",
27264 "format_description" : "volume",
27265 "type" : "string"
27266 }
27267 },
7aacca6f 27268 "optional" : 1,
4bd7df8b 27269 "type" : "string",
7cbed89a 27270 "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 27271 },
44660702
DM
27272 "nameserver" : {
27273 "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 27274 "format" : "lxc-ip-with-ll-iface-list",
56122987 27275 "optional" : 1,
013dc89f
DM
27276 "type" : "string",
27277 "typetext" : "<string>"
56122987
DM
27278 },
27279 "net[n]" : {
44660702 27280 "description" : "Specifies network interfaces for the container.",
56122987 27281 "format" : {
44660702
DM
27282 "bridge" : {
27283 "description" : "Bridge to attach the network device to.",
f004f5b9 27284 "format_description" : "bridge",
56122987 27285 "optional" : 1,
44660702
DM
27286 "pattern" : "[-_.\\w\\d]+",
27287 "type" : "string"
56122987 27288 },
44660702
DM
27289 "firewall" : {
27290 "description" : "Controls whether this interface's firewall rules should be used.",
56122987 27291 "optional" : 1,
44660702 27292 "type" : "boolean"
56122987 27293 },
44660702
DM
27294 "gw" : {
27295 "description" : "Default gateway for IPv4 traffic.",
27296 "format" : "ipv4",
27297 "format_description" : "GatewayIPv4",
56122987 27298 "optional" : 1,
44660702 27299 "type" : "string"
56122987
DM
27300 },
27301 "gw6" : {
7aacca6f 27302 "description" : "Default gateway for IPv6 traffic.",
44660702
DM
27303 "format" : "ipv6",
27304 "format_description" : "GatewayIPv6",
7aacca6f 27305 "optional" : 1,
56122987
DM
27306 "type" : "string"
27307 },
44660702 27308 "hwaddr" : {
f004f5b9 27309 "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 27310 "format" : "mac-addr",
f004f5b9 27311 "format_description" : "XX:XX:XX:XX:XX:XX",
44660702 27312 "optional" : 1,
95895385
TL
27313 "type" : "string",
27314 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
44660702
DM
27315 },
27316 "ip" : {
27317 "description" : "IPv4 address in CIDR format.",
27318 "format" : "pve-ipv4-config",
2489d6df 27319 "format_description" : "(IPv4/CIDR|dhcp|manual)",
56122987 27320 "optional" : 1,
44660702 27321 "type" : "string"
56122987 27322 },
7aacca6f 27323 "ip6" : {
7aacca6f
DM
27324 "description" : "IPv6 address in CIDR format.",
27325 "format" : "pve-ipv6-config",
2489d6df 27326 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
7aacca6f 27327 "optional" : 1,
44660702 27328 "type" : "string"
56122987 27329 },
9d2e98ed
TL
27330 "link_down" : {
27331 "description" : "Whether this interface should be disconnected (like pulling the plug).",
27332 "optional" : 1,
27333 "type" : "boolean"
27334 },
44660702
DM
27335 "mtu" : {
27336 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 27337 "maximum" : 65535,
44660702 27338 "minimum" : 64,
56122987 27339 "optional" : 1,
44660702 27340 "type" : "integer"
56122987
DM
27341 },
27342 "name" : {
44660702 27343 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
f004f5b9 27344 "format_description" : "string",
56122987 27345 "pattern" : "[-_.\\w\\d]+",
44660702 27346 "type" : "string"
56122987 27347 },
44660702
DM
27348 "rate" : {
27349 "description" : "Apply rate limiting to the interface",
27350 "format_description" : "mbps",
56122987 27351 "optional" : 1,
44660702 27352 "type" : "number"
7aacca6f 27353 },
44660702
DM
27354 "tag" : {
27355 "description" : "VLAN tag for this interface.",
4bd7df8b
DM
27356 "maximum" : 4094,
27357 "minimum" : 1,
56122987 27358 "optional" : 1,
7aacca6f 27359 "type" : "integer"
56122987 27360 },
44660702
DM
27361 "trunks" : {
27362 "description" : "VLAN ids to pass through the interface",
27363 "format_description" : "vlanid[;vlanid...]",
27364 "optional" : 1,
27365 "pattern" : "(?^:\\d+(?:;\\d+)*)",
27366 "type" : "string"
27367 },
27368 "type" : {
27369 "description" : "Network interface type.",
27370 "enum" : [
27371 "veth"
27372 ],
56122987 27373 "optional" : 1,
44660702 27374 "type" : "string"
56122987
DM
27375 }
27376 },
7aacca6f 27377 "optional" : 1,
4bd7df8b 27378 "type" : "string",
9d2e98ed 27379 "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,link_down=<1|0>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
56122987 27380 },
44660702
DM
27381 "node" : {
27382 "description" : "The cluster node name.",
27383 "format" : "pve-node",
013dc89f
DM
27384 "type" : "string",
27385 "typetext" : "<string>"
56122987 27386 },
44660702
DM
27387 "onboot" : {
27388 "default" : 0,
4e7f60c2 27389 "description" : "Specifies whether a container will be started during system bootup.",
56122987 27390 "optional" : 1,
013dc89f
DM
27391 "type" : "boolean",
27392 "typetext" : "<boolean>"
56122987 27393 },
44660702
DM
27394 "ostype" : {
27395 "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.",
27396 "enum" : [
27397 "debian",
d2656385 27398 "devuan",
44660702
DM
27399 "ubuntu",
27400 "centos",
27401 "fedora",
27402 "opensuse",
27403 "archlinux",
27404 "alpine",
57b78691 27405 "gentoo",
7af2edf9 27406 "nixos",
44660702
DM
27407 "unmanaged"
27408 ],
56122987 27409 "optional" : 1,
44660702 27410 "type" : "string"
56122987 27411 },
44660702
DM
27412 "protection" : {
27413 "default" : 0,
27414 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
56122987 27415 "optional" : 1,
013dc89f
DM
27416 "type" : "boolean",
27417 "typetext" : "<boolean>"
56122987 27418 },
1c532546
TL
27419 "revert" : {
27420 "description" : "Revert a pending change.",
27421 "format" : "pve-configid-list",
27422 "optional" : 1,
27423 "type" : "string",
27424 "typetext" : "<string>"
27425 },
7aacca6f
DM
27426 "rootfs" : {
27427 "description" : "Use volume as container root.",
56122987
DM
27428 "format" : {
27429 "acl" : {
44660702 27430 "description" : "Explicitly enable or disable ACL support.",
7aacca6f
DM
27431 "optional" : 1,
27432 "type" : "boolean"
56122987 27433 },
7cbed89a
TL
27434 "mountoptions" : {
27435 "description" : "Extra mount options for rootfs/mps.",
27436 "format_description" : "opt[;opt...]",
27437 "optional" : 1,
c30bb419 27438 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
27439 "type" : "string"
27440 },
44660702
DM
27441 "quota" : {
27442 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
44660702
DM
27443 "optional" : 1,
27444 "type" : "boolean"
27445 },
5d9c884c
DM
27446 "replicate" : {
27447 "default" : 1,
27448 "description" : "Will include this volume to a storage replica job.",
27449 "optional" : 1,
27450 "type" : "boolean"
27451 },
44660702 27452 "ro" : {
de0983cb 27453 "description" : "Read-only mount point",
56122987 27454 "optional" : 1,
44660702
DM
27455 "type" : "boolean"
27456 },
de0983cb
DM
27457 "shared" : {
27458 "default" : 0,
27459 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
27460 "optional" : 1,
27461 "type" : "boolean",
27462 "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!"
27463 },
44660702 27464 "size" : {
7aacca6f 27465 "description" : "Volume size (read only value).",
44660702 27466 "format" : "disk-size",
56122987 27467 "format_description" : "DiskSize",
56122987 27468 "optional" : 1,
44660702 27469 "type" : "string"
7aacca6f
DM
27470 },
27471 "volume" : {
7aacca6f
DM
27472 "default_key" : 1,
27473 "description" : "Volume, device or directory to mount into the container.",
44660702
DM
27474 "format" : "pve-lxc-mp-string",
27475 "format_description" : "volume",
7aacca6f 27476 "type" : "string"
56122987 27477 }
44660702
DM
27478 },
27479 "optional" : 1,
4bd7df8b 27480 "type" : "string",
7cbed89a 27481 "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
27482 },
27483 "searchdomain" : {
27484 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
27485 "format" : "dns-name-list",
27486 "optional" : 1,
013dc89f
DM
27487 "type" : "string",
27488 "typetext" : "<string>"
44660702
DM
27489 },
27490 "startup" : {
27491 "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.",
27492 "format" : "pve-startup-order",
27493 "optional" : 1,
27494 "type" : "string",
27495 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
27496 },
27497 "swap" : {
27498 "default" : 512,
4e7f60c2 27499 "description" : "Amount of SWAP for the container in MB.",
44660702
DM
27500 "minimum" : 0,
27501 "optional" : 1,
4bd7df8b 27502 "type" : "integer",
013dc89f 27503 "typetext" : "<integer> (0 - N)"
56122987 27504 },
5c1699e5
TL
27505 "tags" : {
27506 "description" : "Tags of the Container. This is only meta information.",
27507 "format" : "pve-tag-list",
27508 "optional" : 1,
27509 "type" : "string",
27510 "typetext" : "<string>"
27511 },
56122987 27512 "template" : {
44660702 27513 "default" : 0,
7aacca6f 27514 "description" : "Enable/disable Template.",
56122987 27515 "optional" : 1,
013dc89f
DM
27516 "type" : "boolean",
27517 "typetext" : "<boolean>"
56122987 27518 },
04d22a9f
TL
27519 "timezone" : {
27520 "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",
27521 "format" : "pve-ct-timezone",
27522 "optional" : 1,
27523 "type" : "string",
27524 "typetext" : "<string>"
27525 },
44660702
DM
27526 "tty" : {
27527 "default" : 2,
27528 "description" : "Specify the number of tty available to the container",
27529 "maximum" : 6,
27530 "minimum" : 0,
27531 "optional" : 1,
4bd7df8b 27532 "type" : "integer",
013dc89f 27533 "typetext" : "<integer> (0 - 6)"
56122987 27534 },
44660702
DM
27535 "unprivileged" : {
27536 "default" : 0,
27537 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
56122987 27538 "optional" : 1,
013dc89f
DM
27539 "type" : "boolean",
27540 "typetext" : "<boolean>"
56122987 27541 },
44660702 27542 "unused[n]" : {
c2993fe5 27543 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
27544 "format" : {
27545 "volume" : {
27546 "default_key" : 1,
27547 "description" : "The volume that is not used currently.",
27548 "format" : "pve-volume-id",
27549 "format_description" : "volume",
27550 "type" : "string"
27551 }
27552 },
56122987 27553 "optional" : 1,
013dc89f 27554 "type" : "string",
c5aa7e14 27555 "typetext" : "[volume=]<volume>"
44660702
DM
27556 },
27557 "vmid" : {
27558 "description" : "The (unique) ID of the VM.",
27559 "format" : "pve-vmid",
27560 "minimum" : 1,
4bd7df8b 27561 "type" : "integer",
013dc89f 27562 "typetext" : "<integer> (1 - N)"
56122987 27563 }
44660702 27564 }
56122987 27565 },
56122987
DM
27566 "permissions" : {
27567 "check" : [
27568 "perm",
27569 "/vms/{vmid}",
27570 [
27571 "VM.Config.Disk",
27572 "VM.Config.CPU",
27573 "VM.Config.Memory",
27574 "VM.Config.Network",
27575 "VM.Config.Options"
27576 ],
27577 "any",
27578 1
52e44c50
FG
27579 ],
27580 "description" : "non-volume mount points in rootfs and mp[n] are restricted to root@pam"
56122987 27581 },
44660702
DM
27582 "protected" : 1,
27583 "proxyto" : "node",
56122987
DM
27584 "returns" : {
27585 "type" : "null"
7aacca6f 27586 }
56122987 27587 }
7aacca6f 27588 },
44660702 27589 "leaf" : 1,
7aacca6f 27590 "path" : "/nodes/{node}/lxc/{vmid}/config",
44660702 27591 "text" : "config"
56122987
DM
27592 },
27593 {
56122987
DM
27594 "children" : [
27595 {
27596 "info" : {
27597 "GET" : {
e9cd3bd4 27598 "allowtoken" : 1,
44660702 27599 "description" : "Get virtual machine status.",
7aacca6f 27600 "method" : "GET",
44660702 27601 "name" : "vm_status",
56122987 27602 "parameters" : {
44660702 27603 "additionalProperties" : 0,
56122987 27604 "properties" : {
56122987 27605 "node" : {
44660702 27606 "description" : "The cluster node name.",
56122987 27607 "format" : "pve-node",
013dc89f
DM
27608 "type" : "string",
27609 "typetext" : "<string>"
7aacca6f
DM
27610 },
27611 "vmid" : {
27612 "description" : "The (unique) ID of the VM.",
44660702 27613 "format" : "pve-vmid",
7aacca6f 27614 "minimum" : 1,
4bd7df8b 27615 "type" : "integer",
013dc89f 27616 "typetext" : "<integer> (1 - N)"
56122987 27617 }
44660702 27618 }
7aacca6f
DM
27619 },
27620 "permissions" : {
27621 "check" : [
27622 "perm",
27623 "/vms/{vmid}",
27624 [
4d47f125
TL
27625 "VM.Audit"
27626 ]
27627 ]
27628 },
27629 "protected" : 1,
27630 "proxyto" : "node",
27631 "returns" : {
27632 "properties" : {
27633 "cpus" : {
27634 "description" : "Maximum usable CPUs.",
27635 "optional" : 1,
27636 "type" : "number"
27637 },
27638 "ha" : {
27639 "description" : "HA manager service status.",
27640 "type" : "object"
27641 },
95895385
TL
27642 "lock" : {
27643 "description" : "The current config lock, if any.",
27644 "optional" : 1,
27645 "type" : "string"
27646 },
4d47f125
TL
27647 "maxdisk" : {
27648 "description" : "Root disk size in bytes.",
27649 "optional" : 1,
27650 "renderer" : "bytes",
27651 "type" : "integer"
27652 },
27653 "maxmem" : {
27654 "description" : "Maximum memory in bytes.",
27655 "optional" : 1,
27656 "renderer" : "bytes",
27657 "type" : "integer"
27658 },
27659 "maxswap" : {
27660 "description" : "Maximum SWAP memory in bytes.",
27661 "optional" : 1,
27662 "renderer" : "bytes",
27663 "type" : "integer"
27664 },
27665 "name" : {
27666 "description" : "Container name.",
27667 "optional" : 1,
27668 "type" : "string"
27669 },
27670 "status" : {
27671 "description" : "LXC Container status.",
27672 "enum" : [
27673 "stopped",
27674 "running"
27675 ],
27676 "type" : "string"
27677 },
5c1699e5
TL
27678 "tags" : {
27679 "description" : "The current configured tags, if any.",
27680 "optional" : 1,
27681 "type" : "string"
27682 },
4d47f125
TL
27683 "uptime" : {
27684 "description" : "Uptime.",
27685 "optional" : 1,
27686 "renderer" : "duration",
27687 "type" : "integer"
27688 },
27689 "vmid" : {
27690 "description" : "The (unique) ID of the VM.",
27691 "format" : "pve-vmid",
27692 "minimum" : 1,
27693 "type" : "integer"
27694 }
27695 },
27696 "type" : "object"
27697 }
27698 }
27699 },
27700 "leaf" : 1,
27701 "path" : "/nodes/{node}/lxc/{vmid}/status/current",
27702 "text" : "current"
27703 },
27704 {
27705 "info" : {
27706 "POST" : {
e9cd3bd4 27707 "allowtoken" : 1,
4d47f125
TL
27708 "description" : "Start the container.",
27709 "method" : "POST",
27710 "name" : "vm_start",
27711 "parameters" : {
27712 "additionalProperties" : 0,
27713 "properties" : {
739d4d64
TL
27714 "debug" : {
27715 "default" : 0,
27716 "description" : "If set, enables very verbose debug log-level on start.",
27717 "optional" : 1,
27718 "type" : "boolean",
27719 "typetext" : "<boolean>"
27720 },
4d47f125
TL
27721 "node" : {
27722 "description" : "The cluster node name.",
27723 "format" : "pve-node",
27724 "type" : "string",
27725 "typetext" : "<string>"
27726 },
27727 "skiplock" : {
27728 "description" : "Ignore locks - only root is allowed to use this option.",
27729 "optional" : 1,
27730 "type" : "boolean",
27731 "typetext" : "<boolean>"
27732 },
27733 "vmid" : {
27734 "description" : "The (unique) ID of the VM.",
27735 "format" : "pve-vmid",
27736 "minimum" : 1,
27737 "type" : "integer",
27738 "typetext" : "<integer> (1 - N)"
27739 }
27740 }
27741 },
27742 "permissions" : {
27743 "check" : [
27744 "perm",
27745 "/vms/{vmid}",
27746 [
27747 "VM.PowerMgmt"
27748 ]
27749 ]
27750 },
27751 "protected" : 1,
27752 "proxyto" : "node",
27753 "returns" : {
27754 "type" : "string"
27755 }
27756 }
27757 },
27758 "leaf" : 1,
27759 "path" : "/nodes/{node}/lxc/{vmid}/status/start",
27760 "text" : "start"
27761 },
27762 {
27763 "info" : {
27764 "POST" : {
e9cd3bd4 27765 "allowtoken" : 1,
4d47f125
TL
27766 "description" : "Stop the container. This will abruptly stop all processes running in the container.",
27767 "method" : "POST",
27768 "name" : "vm_stop",
27769 "parameters" : {
27770 "additionalProperties" : 0,
27771 "properties" : {
27772 "node" : {
27773 "description" : "The cluster node name.",
27774 "format" : "pve-node",
27775 "type" : "string",
27776 "typetext" : "<string>"
27777 },
27778 "skiplock" : {
27779 "description" : "Ignore locks - only root is allowed to use this option.",
27780 "optional" : 1,
27781 "type" : "boolean",
27782 "typetext" : "<boolean>"
27783 },
27784 "vmid" : {
27785 "description" : "The (unique) ID of the VM.",
27786 "format" : "pve-vmid",
27787 "minimum" : 1,
27788 "type" : "integer",
27789 "typetext" : "<integer> (1 - N)"
27790 }
27791 }
27792 },
27793 "permissions" : {
27794 "check" : [
27795 "perm",
27796 "/vms/{vmid}",
27797 [
27798 "VM.PowerMgmt"
27799 ]
27800 ]
27801 },
27802 "protected" : 1,
27803 "proxyto" : "node",
27804 "returns" : {
27805 "type" : "string"
27806 }
27807 }
27808 },
27809 "leaf" : 1,
27810 "path" : "/nodes/{node}/lxc/{vmid}/status/stop",
27811 "text" : "stop"
27812 },
27813 {
27814 "info" : {
27815 "POST" : {
e9cd3bd4 27816 "allowtoken" : 1,
4d47f125
TL
27817 "description" : "Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.",
27818 "method" : "POST",
27819 "name" : "vm_shutdown",
27820 "parameters" : {
27821 "additionalProperties" : 0,
27822 "properties" : {
27823 "forceStop" : {
27824 "default" : 0,
27825 "description" : "Make sure the Container stops.",
27826 "optional" : 1,
27827 "type" : "boolean",
27828 "typetext" : "<boolean>"
27829 },
27830 "node" : {
27831 "description" : "The cluster node name.",
27832 "format" : "pve-node",
27833 "type" : "string",
27834 "typetext" : "<string>"
27835 },
27836 "timeout" : {
27837 "default" : 60,
27838 "description" : "Wait maximal timeout seconds.",
27839 "minimum" : 0,
27840 "optional" : 1,
27841 "type" : "integer",
27842 "typetext" : "<integer> (0 - N)"
27843 },
27844 "vmid" : {
27845 "description" : "The (unique) ID of the VM.",
27846 "format" : "pve-vmid",
27847 "minimum" : 1,
27848 "type" : "integer",
27849 "typetext" : "<integer> (1 - N)"
27850 }
27851 }
27852 },
27853 "permissions" : {
27854 "check" : [
27855 "perm",
27856 "/vms/{vmid}",
27857 [
27858 "VM.PowerMgmt"
7aacca6f
DM
27859 ]
27860 ]
27861 },
44660702 27862 "protected" : 1,
7aacca6f 27863 "proxyto" : "node",
44660702 27864 "returns" : {
4d47f125 27865 "type" : "string"
44660702 27866 }
56122987
DM
27867 }
27868 },
44660702 27869 "leaf" : 1,
4d47f125
TL
27870 "path" : "/nodes/{node}/lxc/{vmid}/status/shutdown",
27871 "text" : "shutdown"
56122987
DM
27872 },
27873 {
56122987
DM
27874 "info" : {
27875 "POST" : {
e9cd3bd4 27876 "allowtoken" : 1,
5370fa8c 27877 "description" : "Suspend the container. This is experimental.",
44660702 27878 "method" : "POST",
4d47f125 27879 "name" : "vm_suspend",
56122987
DM
27880 "parameters" : {
27881 "additionalProperties" : 0,
27882 "properties" : {
56122987 27883 "node" : {
7aacca6f 27884 "description" : "The cluster node name.",
44660702 27885 "format" : "pve-node",
013dc89f
DM
27886 "type" : "string",
27887 "typetext" : "<string>"
56122987
DM
27888 },
27889 "vmid" : {
7aacca6f 27890 "description" : "The (unique) ID of the VM.",
44660702 27891 "format" : "pve-vmid",
56122987 27892 "minimum" : 1,
4bd7df8b 27893 "type" : "integer",
013dc89f 27894 "typetext" : "<integer> (1 - N)"
56122987
DM
27895 }
27896 }
27897 },
27898 "permissions" : {
27899 "check" : [
27900 "perm",
27901 "/vms/{vmid}",
27902 [
27903 "VM.PowerMgmt"
27904 ]
27905 ]
27906 },
44660702 27907 "protected" : 1,
7aacca6f 27908 "proxyto" : "node",
44660702
DM
27909 "returns" : {
27910 "type" : "string"
27911 }
27912 }
27913 },
27914 "leaf" : 1,
4d47f125
TL
27915 "path" : "/nodes/{node}/lxc/{vmid}/status/suspend",
27916 "text" : "suspend"
44660702
DM
27917 },
27918 {
27919 "info" : {
27920 "POST" : {
e9cd3bd4 27921 "allowtoken" : 1,
4d47f125 27922 "description" : "Resume the container.",
7aacca6f 27923 "method" : "POST",
4d47f125 27924 "name" : "vm_resume",
7aacca6f 27925 "parameters" : {
44660702 27926 "additionalProperties" : 0,
7aacca6f 27927 "properties" : {
44660702
DM
27928 "node" : {
27929 "description" : "The cluster node name.",
27930 "format" : "pve-node",
013dc89f
DM
27931 "type" : "string",
27932 "typetext" : "<string>"
44660702 27933 },
7aacca6f 27934 "vmid" : {
44660702 27935 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
27936 "format" : "pve-vmid",
27937 "minimum" : 1,
4bd7df8b 27938 "type" : "integer",
013dc89f 27939 "typetext" : "<integer> (1 - N)"
7aacca6f 27940 }
44660702
DM
27941 }
27942 },
27943 "permissions" : {
27944 "check" : [
27945 "perm",
27946 "/vms/{vmid}",
27947 [
27948 "VM.PowerMgmt"
27949 ]
27950 ]
7aacca6f 27951 },
44660702
DM
27952 "protected" : 1,
27953 "proxyto" : "node",
27954 "returns" : {
27955 "type" : "string"
27956 }
56122987 27957 }
7aacca6f 27958 },
7aacca6f 27959 "leaf" : 1,
4d47f125
TL
27960 "path" : "/nodes/{node}/lxc/{vmid}/status/resume",
27961 "text" : "resume"
5c1699e5
TL
27962 },
27963 {
27964 "info" : {
27965 "POST" : {
e9cd3bd4 27966 "allowtoken" : 1,
5c1699e5
TL
27967 "description" : "Reboot the container by shutting it down, and starting it again. Applies pending changes.",
27968 "method" : "POST",
27969 "name" : "vm_reboot",
27970 "parameters" : {
27971 "additionalProperties" : 0,
27972 "properties" : {
27973 "node" : {
27974 "description" : "The cluster node name.",
27975 "format" : "pve-node",
27976 "type" : "string",
27977 "typetext" : "<string>"
27978 },
27979 "timeout" : {
27980 "description" : "Wait maximal timeout seconds for the shutdown.",
27981 "minimum" : 0,
27982 "optional" : 1,
27983 "type" : "integer",
27984 "typetext" : "<integer> (0 - N)"
27985 },
27986 "vmid" : {
27987 "description" : "The (unique) ID of the VM.",
27988 "format" : "pve-vmid",
27989 "minimum" : 1,
27990 "type" : "integer",
27991 "typetext" : "<integer> (1 - N)"
27992 }
27993 }
27994 },
27995 "permissions" : {
27996 "check" : [
27997 "perm",
27998 "/vms/{vmid}",
27999 [
28000 "VM.PowerMgmt"
28001 ]
28002 ]
28003 },
28004 "protected" : 1,
28005 "proxyto" : "node",
28006 "returns" : {
28007 "type" : "string"
28008 }
28009 }
28010 },
28011 "leaf" : 1,
28012 "path" : "/nodes/{node}/lxc/{vmid}/status/reboot",
28013 "text" : "reboot"
4d47f125
TL
28014 }
28015 ],
28016 "info" : {
28017 "GET" : {
e9cd3bd4 28018 "allowtoken" : 1,
4d47f125
TL
28019 "description" : "Directory index",
28020 "method" : "GET",
28021 "name" : "vmcmdidx",
28022 "parameters" : {
28023 "additionalProperties" : 0,
28024 "properties" : {
28025 "node" : {
28026 "description" : "The cluster node name.",
28027 "format" : "pve-node",
28028 "type" : "string",
28029 "typetext" : "<string>"
28030 },
28031 "vmid" : {
28032 "description" : "The (unique) ID of the VM.",
28033 "format" : "pve-vmid",
28034 "minimum" : 1,
28035 "type" : "integer",
28036 "typetext" : "<integer> (1 - N)"
28037 }
28038 }
28039 },
28040 "permissions" : {
28041 "user" : "all"
28042 },
28043 "proxyto" : "node",
28044 "returns" : {
28045 "items" : {
28046 "properties" : {
28047 "subdir" : {
28048 "type" : "string"
28049 }
28050 },
28051 "type" : "object"
28052 },
28053 "links" : [
28054 {
28055 "href" : "{subdir}",
28056 "rel" : "child"
28057 }
28058 ],
28059 "type" : "array"
28060 }
28061 }
28062 },
28063 "leaf" : 0,
28064 "path" : "/nodes/{node}/lxc/{vmid}/status",
28065 "text" : "status"
28066 },
28067 {
28068 "children" : [
56122987 28069 {
4d47f125
TL
28070 "children" : [
28071 {
28072 "info" : {
28073 "POST" : {
e9cd3bd4 28074 "allowtoken" : 1,
4d47f125
TL
28075 "description" : "Rollback LXC state to specified snapshot.",
28076 "method" : "POST",
28077 "name" : "rollback",
28078 "parameters" : {
28079 "additionalProperties" : 0,
28080 "properties" : {
28081 "node" : {
28082 "description" : "The cluster node name.",
28083 "format" : "pve-node",
28084 "type" : "string",
28085 "typetext" : "<string>"
28086 },
28087 "snapname" : {
28088 "description" : "The name of the snapshot.",
28089 "format" : "pve-configid",
28090 "maxLength" : 40,
28091 "type" : "string",
28092 "typetext" : "<string>"
28093 },
4e7f60c2
TL
28094 "start" : {
28095 "default" : 0,
28096 "description" : "Whether the container should get started after rolling back successfully",
28097 "optional" : 1,
28098 "type" : "boolean",
28099 "typetext" : "<boolean>"
28100 },
4d47f125
TL
28101 "vmid" : {
28102 "description" : "The (unique) ID of the VM.",
28103 "format" : "pve-vmid",
28104 "minimum" : 1,
28105 "type" : "integer",
28106 "typetext" : "<integer> (1 - N)"
28107 }
28108 }
28109 },
28110 "permissions" : {
28111 "check" : [
28112 "perm",
28113 "/vms/{vmid}",
28114 [
28115 "VM.Snapshot",
28116 "VM.Snapshot.Rollback"
28117 ],
28118 "any",
28119 1
28120 ]
28121 },
28122 "protected" : 1,
28123 "proxyto" : "node",
28124 "returns" : {
28125 "description" : "the task ID.",
28126 "type" : "string"
28127 }
28128 }
28129 },
28130 "leaf" : 1,
28131 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback",
28132 "text" : "rollback"
28133 },
28134 {
28135 "info" : {
28136 "GET" : {
e9cd3bd4 28137 "allowtoken" : 1,
4d47f125
TL
28138 "description" : "Get snapshot configuration",
28139 "method" : "GET",
28140 "name" : "get_snapshot_config",
28141 "parameters" : {
28142 "additionalProperties" : 0,
28143 "properties" : {
28144 "node" : {
28145 "description" : "The cluster node name.",
28146 "format" : "pve-node",
28147 "type" : "string",
28148 "typetext" : "<string>"
28149 },
28150 "snapname" : {
28151 "description" : "The name of the snapshot.",
28152 "format" : "pve-configid",
28153 "maxLength" : 40,
28154 "type" : "string",
28155 "typetext" : "<string>"
28156 },
28157 "vmid" : {
28158 "description" : "The (unique) ID of the VM.",
28159 "format" : "pve-vmid",
28160 "minimum" : 1,
28161 "type" : "integer",
28162 "typetext" : "<integer> (1 - N)"
28163 }
28164 }
28165 },
28166 "permissions" : {
28167 "check" : [
28168 "perm",
28169 "/vms/{vmid}",
28170 [
28171 "VM.Snapshot",
c5aa7e14
TL
28172 "VM.Snapshot.Rollback",
28173 "VM.Audit"
4d47f125
TL
28174 ],
28175 "any",
28176 1
28177 ]
28178 },
28179 "proxyto" : "node",
28180 "returns" : {
28181 "type" : "object"
28182 }
28183 },
28184 "PUT" : {
e9cd3bd4 28185 "allowtoken" : 1,
4d47f125
TL
28186 "description" : "Update snapshot metadata.",
28187 "method" : "PUT",
28188 "name" : "update_snapshot_config",
28189 "parameters" : {
28190 "additionalProperties" : 0,
28191 "properties" : {
28192 "description" : {
28193 "description" : "A textual description or comment.",
28194 "optional" : 1,
28195 "type" : "string",
28196 "typetext" : "<string>"
28197 },
28198 "node" : {
28199 "description" : "The cluster node name.",
28200 "format" : "pve-node",
28201 "type" : "string",
28202 "typetext" : "<string>"
28203 },
28204 "snapname" : {
28205 "description" : "The name of the snapshot.",
28206 "format" : "pve-configid",
28207 "maxLength" : 40,
28208 "type" : "string",
28209 "typetext" : "<string>"
28210 },
28211 "vmid" : {
28212 "description" : "The (unique) ID of the VM.",
28213 "format" : "pve-vmid",
28214 "minimum" : 1,
28215 "type" : "integer",
28216 "typetext" : "<integer> (1 - N)"
28217 }
28218 }
28219 },
28220 "permissions" : {
28221 "check" : [
28222 "perm",
28223 "/vms/{vmid}",
28224 [
28225 "VM.Snapshot"
28226 ]
28227 ]
28228 },
28229 "protected" : 1,
28230 "proxyto" : "node",
28231 "returns" : {
28232 "type" : "null"
28233 }
28234 }
28235 },
28236 "leaf" : 1,
28237 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config",
28238 "text" : "config"
28239 }
28240 ],
56122987 28241 "info" : {
4d47f125 28242 "DELETE" : {
e9cd3bd4 28243 "allowtoken" : 1,
4d47f125
TL
28244 "description" : "Delete a LXC snapshot.",
28245 "method" : "DELETE",
28246 "name" : "delsnapshot",
56122987 28247 "parameters" : {
44660702 28248 "additionalProperties" : 0,
56122987 28249 "properties" : {
4d47f125
TL
28250 "force" : {
28251 "description" : "For removal from config file, even if removing disk snapshots fails.",
7aacca6f 28252 "optional" : 1,
013dc89f
DM
28253 "type" : "boolean",
28254 "typetext" : "<boolean>"
44660702
DM
28255 },
28256 "node" : {
28257 "description" : "The cluster node name.",
28258 "format" : "pve-node",
013dc89f
DM
28259 "type" : "string",
28260 "typetext" : "<string>"
7aacca6f 28261 },
4d47f125
TL
28262 "snapname" : {
28263 "description" : "The name of the snapshot.",
28264 "format" : "pve-configid",
28265 "maxLength" : 40,
28266 "type" : "string",
28267 "typetext" : "<string>"
56122987
DM
28268 },
28269 "vmid" : {
7aacca6f 28270 "description" : "The (unique) ID of the VM.",
44660702
DM
28271 "format" : "pve-vmid",
28272 "minimum" : 1,
4bd7df8b 28273 "type" : "integer",
013dc89f 28274 "typetext" : "<integer> (1 - N)"
56122987 28275 }
44660702 28276 }
56122987
DM
28277 },
28278 "permissions" : {
28279 "check" : [
28280 "perm",
28281 "/vms/{vmid}",
28282 [
4d47f125 28283 "VM.Snapshot"
56122987
DM
28284 ]
28285 ]
28286 },
44660702
DM
28287 "protected" : 1,
28288 "proxyto" : "node",
7aacca6f 28289 "returns" : {
4d47f125 28290 "description" : "the task ID.",
7aacca6f
DM
28291 "type" : "string"
28292 }
4d47f125
TL
28293 },
28294 "GET" : {
e9cd3bd4 28295 "allowtoken" : 1,
4d47f125
TL
28296 "description" : "",
28297 "method" : "GET",
28298 "name" : "snapshot_cmd_idx",
56122987
DM
28299 "parameters" : {
28300 "additionalProperties" : 0,
28301 "properties" : {
44660702
DM
28302 "node" : {
28303 "description" : "The cluster node name.",
28304 "format" : "pve-node",
013dc89f
DM
28305 "type" : "string",
28306 "typetext" : "<string>"
44660702 28307 },
4d47f125
TL
28308 "snapname" : {
28309 "description" : "The name of the snapshot.",
28310 "format" : "pve-configid",
28311 "maxLength" : 40,
013dc89f
DM
28312 "type" : "string",
28313 "typetext" : "<string>"
56122987
DM
28314 },
28315 "vmid" : {
7aacca6f 28316 "description" : "The (unique) ID of the VM.",
56122987 28317 "format" : "pve-vmid",
44660702 28318 "minimum" : 1,
4bd7df8b 28319 "type" : "integer",
013dc89f 28320 "typetext" : "<integer> (1 - N)"
56122987 28321 }
44660702
DM
28322 }
28323 },
28324 "permissions" : {
4d47f125 28325 "user" : "all"
56122987 28326 },
44660702 28327 "returns" : {
4d47f125
TL
28328 "items" : {
28329 "properties" : {},
28330 "type" : "object"
28331 },
28332 "links" : [
28333 {
28334 "href" : "{cmd}",
28335 "rel" : "child"
28336 }
28337 ],
28338 "type" : "array"
44660702 28339 }
7aacca6f
DM
28340 }
28341 },
4d47f125
TL
28342 "leaf" : 0,
28343 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}",
28344 "text" : "{snapname}"
7aacca6f
DM
28345 }
28346 ],
28347 "info" : {
28348 "GET" : {
e9cd3bd4 28349 "allowtoken" : 1,
4d47f125 28350 "description" : "List all snapshots.",
44660702 28351 "method" : "GET",
4d47f125 28352 "name" : "list",
7aacca6f
DM
28353 "parameters" : {
28354 "additionalProperties" : 0,
28355 "properties" : {
28356 "node" : {
28357 "description" : "The cluster node name.",
44660702 28358 "format" : "pve-node",
013dc89f
DM
28359 "type" : "string",
28360 "typetext" : "<string>"
56122987 28361 },
7aacca6f 28362 "vmid" : {
44660702 28363 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
28364 "format" : "pve-vmid",
28365 "minimum" : 1,
4bd7df8b 28366 "type" : "integer",
013dc89f 28367 "typetext" : "<integer> (1 - N)"
7aacca6f 28368 }
56122987
DM
28369 }
28370 },
44660702 28371 "permissions" : {
4d47f125
TL
28372 "check" : [
28373 "perm",
28374 "/vms/{vmid}",
28375 [
28376 "VM.Audit"
28377 ]
28378 ]
44660702 28379 },
4d47f125 28380 "protected" : 1,
44660702 28381 "proxyto" : "node",
7aacca6f 28382 "returns" : {
7aacca6f
DM
28383 "items" : {
28384 "properties" : {
4d47f125
TL
28385 "description" : {
28386 "description" : "Snapshot description.",
7aacca6f 28387 "type" : "string"
4d47f125
TL
28388 },
28389 "name" : {
28390 "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
28391 "type" : "string"
28392 },
28393 "parent" : {
28394 "description" : "Parent snapshot identifier.",
28395 "optional" : 1,
28396 "type" : "string"
28397 },
28398 "snaptime" : {
28399 "description" : "Snapshot creation time",
28400 "optional" : 1,
28401 "renderer" : "timestamp",
28402 "type" : "integer"
7aacca6f
DM
28403 }
28404 },
28405 "type" : "object"
28406 },
28407 "links" : [
28408 {
4d47f125 28409 "href" : "{name}",
44660702 28410 "rel" : "child"
7aacca6f 28411 }
44660702
DM
28412 ],
28413 "type" : "array"
7aacca6f 28414 }
4d47f125
TL
28415 },
28416 "POST" : {
e9cd3bd4 28417 "allowtoken" : 1,
4d47f125
TL
28418 "description" : "Snapshot a container.",
28419 "method" : "POST",
28420 "name" : "snapshot",
28421 "parameters" : {
28422 "additionalProperties" : 0,
28423 "properties" : {
28424 "description" : {
28425 "description" : "A textual description or comment.",
28426 "optional" : 1,
28427 "type" : "string",
28428 "typetext" : "<string>"
28429 },
28430 "node" : {
28431 "description" : "The cluster node name.",
28432 "format" : "pve-node",
28433 "type" : "string",
28434 "typetext" : "<string>"
28435 },
28436 "snapname" : {
28437 "description" : "The name of the snapshot.",
28438 "format" : "pve-configid",
28439 "maxLength" : 40,
28440 "type" : "string",
28441 "typetext" : "<string>"
28442 },
28443 "vmid" : {
28444 "description" : "The (unique) ID of the VM.",
28445 "format" : "pve-vmid",
28446 "minimum" : 1,
28447 "type" : "integer",
28448 "typetext" : "<integer> (1 - N)"
28449 }
28450 }
28451 },
28452 "permissions" : {
28453 "check" : [
28454 "perm",
28455 "/vms/{vmid}",
28456 [
28457 "VM.Snapshot"
28458 ]
28459 ]
28460 },
28461 "protected" : 1,
28462 "proxyto" : "node",
28463 "returns" : {
28464 "description" : "the task ID.",
28465 "type" : "string"
28466 }
7aacca6f 28467 }
44660702
DM
28468 },
28469 "leaf" : 0,
4d47f125
TL
28470 "path" : "/nodes/{node}/lxc/{vmid}/snapshot",
28471 "text" : "snapshot"
7aacca6f
DM
28472 },
28473 {
7aacca6f 28474 "children" : [
56122987 28475 {
7aacca6f
DM
28476 "children" : [
28477 {
28478 "info" : {
4d47f125 28479 "DELETE" : {
e9cd3bd4 28480 "allowtoken" : 1,
4d47f125
TL
28481 "description" : "Delete rule.",
28482 "method" : "DELETE",
28483 "name" : "delete_rule",
7aacca6f 28484 "parameters" : {
44660702 28485 "additionalProperties" : 0,
7aacca6f 28486 "properties" : {
4d47f125
TL
28487 "digest" : {
28488 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28489 "maxLength" : 40,
28490 "optional" : 1,
28491 "type" : "string",
28492 "typetext" : "<string>"
28493 },
44660702
DM
28494 "node" : {
28495 "description" : "The cluster node name.",
28496 "format" : "pve-node",
013dc89f
DM
28497 "type" : "string",
28498 "typetext" : "<string>"
44660702 28499 },
4d47f125
TL
28500 "pos" : {
28501 "description" : "Update rule at position <pos>.",
28502 "minimum" : 0,
28503 "optional" : 1,
28504 "type" : "integer",
28505 "typetext" : "<integer> (0 - N)"
7aacca6f 28506 },
7aacca6f 28507 "vmid" : {
44660702 28508 "description" : "The (unique) ID of the VM.",
7aacca6f 28509 "format" : "pve-vmid",
44660702 28510 "minimum" : 1,
4bd7df8b 28511 "type" : "integer",
013dc89f 28512 "typetext" : "<integer> (1 - N)"
7aacca6f 28513 }
44660702
DM
28514 }
28515 },
28516 "permissions" : {
28517 "check" : [
28518 "perm",
28519 "/vms/{vmid}",
28520 [
4d47f125
TL
28521 "VM.Config.Network"
28522 ]
44660702 28523 ]
7aacca6f 28524 },
44660702 28525 "protected" : 1,
4d47f125 28526 "proxyto" : null,
44660702 28527 "returns" : {
4d47f125 28528 "type" : "null"
44660702 28529 }
4d47f125 28530 },
7aacca6f 28531 "GET" : {
e9cd3bd4 28532 "allowtoken" : 1,
4d47f125 28533 "description" : "Get single rule data.",
44660702 28534 "method" : "GET",
4d47f125 28535 "name" : "get_rule",
7aacca6f
DM
28536 "parameters" : {
28537 "additionalProperties" : 0,
4d47f125
TL
28538 "properties" : {
28539 "node" : {
28540 "description" : "The cluster node name.",
28541 "format" : "pve-node",
013dc89f
DM
28542 "type" : "string",
28543 "typetext" : "<string>"
44660702 28544 },
4d47f125
TL
28545 "pos" : {
28546 "description" : "Update rule at position <pos>.",
28547 "minimum" : 0,
28548 "optional" : 1,
28549 "type" : "integer",
28550 "typetext" : "<integer> (0 - N)"
28551 },
44660702
DM
28552 "vmid" : {
28553 "description" : "The (unique) ID of the VM.",
28554 "format" : "pve-vmid",
28555 "minimum" : 1,
4bd7df8b 28556 "type" : "integer",
013dc89f 28557 "typetext" : "<integer> (1 - N)"
7aacca6f
DM
28558 }
28559 }
28560 },
28561 "permissions" : {
28562 "check" : [
28563 "perm",
28564 "/vms/{vmid}",
28565 [
4d47f125
TL
28566 "VM.Audit"
28567 ]
7aacca6f
DM
28568 ]
28569 },
4d47f125 28570 "proxyto" : null,
44660702 28571 "returns" : {
4d47f125 28572 "properties" : {
e2d681b3
TL
28573 "action" : {
28574 "type" : "string"
28575 },
28576 "comment" : {
28577 "optional" : 1,
28578 "type" : "string"
28579 },
28580 "dest" : {
28581 "optional" : 1,
28582 "type" : "string"
28583 },
28584 "dport" : {
28585 "optional" : 1,
28586 "type" : "string"
28587 },
28588 "enable" : {
28589 "optional" : 1,
28590 "type" : "integer"
28591 },
4772952b
TL
28592 "icmp-type" : {
28593 "optional" : 1,
28594 "type" : "string"
28595 },
e2d681b3
TL
28596 "iface" : {
28597 "optional" : 1,
28598 "type" : "string"
28599 },
28600 "ipversion" : {
28601 "optional" : 1,
28602 "type" : "integer"
28603 },
95895385
TL
28604 "log" : {
28605 "description" : "Log level for firewall rule",
28606 "enum" : [
28607 "emerg",
28608 "alert",
28609 "crit",
28610 "err",
28611 "warning",
28612 "notice",
28613 "info",
28614 "debug",
28615 "nolog"
28616 ],
28617 "optional" : 1,
28618 "type" : "string"
28619 },
e2d681b3
TL
28620 "macro" : {
28621 "optional" : 1,
5f26e15b 28622 "type" : "string"
e2d681b3 28623 },
4d47f125
TL
28624 "pos" : {
28625 "type" : "integer"
e2d681b3
TL
28626 },
28627 "proto" : {
28628 "optional" : 1,
28629 "type" : "string"
28630 },
28631 "source" : {
28632 "optional" : 1,
28633 "type" : "string"
28634 },
28635 "sport" : {
28636 "optional" : 1,
28637 "type" : "string"
28638 },
28639 "type" : {
28640 "type" : "string"
4d47f125
TL
28641 }
28642 },
44660702
DM
28643 "type" : "object"
28644 }
7aacca6f
DM
28645 },
28646 "PUT" : {
e9cd3bd4 28647 "allowtoken" : 1,
4d47f125 28648 "description" : "Modify rule data.",
44660702 28649 "method" : "PUT",
4d47f125 28650 "name" : "update_rule",
7aacca6f
DM
28651 "parameters" : {
28652 "additionalProperties" : 0,
28653 "properties" : {
4d47f125
TL
28654 "action" : {
28655 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
28656 "maxLength" : 20,
28657 "minLength" : 2,
28658 "optional" : 1,
28659 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28660 "type" : "string"
28661 },
28662 "comment" : {
28663 "description" : "Descriptive comment.",
28664 "optional" : 1,
28665 "type" : "string",
28666 "typetext" : "<string>"
28667 },
28668 "delete" : {
28669 "description" : "A list of settings you want to delete.",
28670 "format" : "pve-configid-list",
28671 "optional" : 1,
28672 "type" : "string",
28673 "typetext" : "<string>"
28674 },
28675 "dest" : {
28676 "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.",
28677 "format" : "pve-fw-addr-spec",
0695fdaf 28678 "maxLength" : 512,
4d47f125
TL
28679 "optional" : 1,
28680 "type" : "string",
28681 "typetext" : "<string>"
28682 },
28683 "digest" : {
28684 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28685 "maxLength" : 40,
28686 "optional" : 1,
28687 "type" : "string",
28688 "typetext" : "<string>"
28689 },
28690 "dport" : {
28691 "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.",
28692 "format" : "pve-fw-dport-spec",
28693 "optional" : 1,
28694 "type" : "string",
28695 "typetext" : "<string>"
28696 },
28697 "enable" : {
28698 "description" : "Flag to enable/disable a rule.",
28699 "minimum" : 0,
28700 "optional" : 1,
28701 "type" : "integer",
28702 "typetext" : "<integer> (0 - N)"
28703 },
4772952b 28704 "icmp-type" : {
287a95cf 28705 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
28706 "format" : "pve-fw-icmp-type-spec",
28707 "optional" : 1,
28708 "type" : "string",
28709 "typetext" : "<string>"
28710 },
4d47f125
TL
28711 "iface" : {
28712 "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.",
28713 "format" : "pve-iface",
28714 "maxLength" : 20,
28715 "minLength" : 2,
28716 "optional" : 1,
28717 "type" : "string",
28718 "typetext" : "<string>"
28719 },
95895385
TL
28720 "log" : {
28721 "description" : "Log level for firewall rule.",
28722 "enum" : [
28723 "emerg",
28724 "alert",
28725 "crit",
28726 "err",
28727 "warning",
28728 "notice",
28729 "info",
28730 "debug",
28731 "nolog"
28732 ],
28733 "optional" : 1,
28734 "type" : "string"
28735 },
4d47f125
TL
28736 "macro" : {
28737 "description" : "Use predefined standard macro.",
28738 "maxLength" : 128,
44660702 28739 "optional" : 1,
013dc89f
DM
28740 "type" : "string",
28741 "typetext" : "<string>"
44660702 28742 },
4d47f125
TL
28743 "moveto" : {
28744 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
28745 "minimum" : 0,
28746 "optional" : 1,
28747 "type" : "integer",
28748 "typetext" : "<integer> (0 - N)"
28749 },
7aacca6f 28750 "node" : {
7aacca6f 28751 "description" : "The cluster node name.",
44660702 28752 "format" : "pve-node",
013dc89f
DM
28753 "type" : "string",
28754 "typetext" : "<string>"
7aacca6f 28755 },
4d47f125
TL
28756 "pos" : {
28757 "description" : "Update rule at position <pos>.",
28758 "minimum" : 0,
28759 "optional" : 1,
28760 "type" : "integer",
28761 "typetext" : "<integer> (0 - N)"
28762 },
28763 "proto" : {
28764 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
28765 "format" : "pve-fw-protocol-spec",
28766 "optional" : 1,
28767 "type" : "string",
28768 "typetext" : "<string>"
28769 },
28770 "source" : {
28771 "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.",
28772 "format" : "pve-fw-addr-spec",
0695fdaf 28773 "maxLength" : 512,
4d47f125
TL
28774 "optional" : 1,
28775 "type" : "string",
28776 "typetext" : "<string>"
28777 },
28778 "sport" : {
28779 "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.",
28780 "format" : "pve-fw-sport-spec",
28781 "optional" : 1,
013dc89f
DM
28782 "type" : "string",
28783 "typetext" : "<string>"
7aacca6f 28784 },
4d47f125
TL
28785 "type" : {
28786 "description" : "Rule type.",
28787 "enum" : [
28788 "in",
28789 "out",
28790 "group"
28791 ],
28792 "optional" : 1,
28793 "type" : "string"
28794 },
7aacca6f 28795 "vmid" : {
44660702 28796 "description" : "The (unique) ID of the VM.",
7aacca6f 28797 "format" : "pve-vmid",
44660702 28798 "minimum" : 1,
4bd7df8b 28799 "type" : "integer",
013dc89f 28800 "typetext" : "<integer> (1 - N)"
7aacca6f
DM
28801 }
28802 }
28803 },
7aacca6f
DM
28804 "permissions" : {
28805 "check" : [
28806 "perm",
28807 "/vms/{vmid}",
28808 [
4d47f125 28809 "VM.Config.Network"
7aacca6f
DM
28810 ]
28811 ]
28812 },
4d47f125
TL
28813 "protected" : 1,
28814 "proxyto" : null,
28815 "returns" : {
28816 "type" : "null"
28817 }
28818 }
28819 },
28820 "leaf" : 1,
28821 "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}",
28822 "text" : "{pos}"
28823 }
28824 ],
28825 "info" : {
28826 "GET" : {
e9cd3bd4 28827 "allowtoken" : 1,
4d47f125
TL
28828 "description" : "List rules.",
28829 "method" : "GET",
28830 "name" : "get_rules",
28831 "parameters" : {
28832 "additionalProperties" : 0,
28833 "properties" : {
28834 "node" : {
28835 "description" : "The cluster node name.",
28836 "format" : "pve-node",
28837 "type" : "string",
28838 "typetext" : "<string>"
28839 },
28840 "vmid" : {
28841 "description" : "The (unique) ID of the VM.",
28842 "format" : "pve-vmid",
28843 "minimum" : 1,
28844 "type" : "integer",
28845 "typetext" : "<integer> (1 - N)"
28846 }
28847 }
28848 },
28849 "permissions" : {
28850 "check" : [
28851 "perm",
28852 "/vms/{vmid}",
28853 [
28854 "VM.Audit"
28855 ]
28856 ]
28857 },
28858 "proxyto" : null,
28859 "returns" : {
28860 "items" : {
28861 "properties" : {
28862 "pos" : {
28863 "type" : "integer"
28864 }
28865 },
28866 "type" : "object"
28867 },
28868 "links" : [
28869 {
28870 "href" : "{pos}",
28871 "rel" : "child"
28872 }
28873 ],
28874 "type" : "array"
28875 }
28876 },
28877 "POST" : {
e9cd3bd4 28878 "allowtoken" : 1,
4d47f125
TL
28879 "description" : "Create new rule.",
28880 "method" : "POST",
28881 "name" : "create_rule",
28882 "parameters" : {
28883 "additionalProperties" : 0,
28884 "properties" : {
28885 "action" : {
28886 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
28887 "maxLength" : 20,
28888 "minLength" : 2,
28889 "optional" : 0,
28890 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28891 "type" : "string"
28892 },
28893 "comment" : {
28894 "description" : "Descriptive comment.",
28895 "optional" : 1,
28896 "type" : "string",
28897 "typetext" : "<string>"
28898 },
28899 "dest" : {
28900 "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.",
28901 "format" : "pve-fw-addr-spec",
0695fdaf 28902 "maxLength" : 512,
4d47f125
TL
28903 "optional" : 1,
28904 "type" : "string",
28905 "typetext" : "<string>"
28906 },
28907 "digest" : {
28908 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28909 "maxLength" : 40,
28910 "optional" : 1,
28911 "type" : "string",
28912 "typetext" : "<string>"
28913 },
28914 "dport" : {
28915 "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.",
28916 "format" : "pve-fw-dport-spec",
28917 "optional" : 1,
28918 "type" : "string",
28919 "typetext" : "<string>"
28920 },
28921 "enable" : {
28922 "description" : "Flag to enable/disable a rule.",
28923 "minimum" : 0,
28924 "optional" : 1,
28925 "type" : "integer",
28926 "typetext" : "<integer> (0 - N)"
28927 },
4772952b 28928 "icmp-type" : {
287a95cf 28929 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
28930 "format" : "pve-fw-icmp-type-spec",
28931 "optional" : 1,
28932 "type" : "string",
28933 "typetext" : "<string>"
28934 },
4d47f125
TL
28935 "iface" : {
28936 "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.",
28937 "format" : "pve-iface",
28938 "maxLength" : 20,
28939 "minLength" : 2,
28940 "optional" : 1,
28941 "type" : "string",
28942 "typetext" : "<string>"
28943 },
95895385
TL
28944 "log" : {
28945 "description" : "Log level for firewall rule.",
28946 "enum" : [
28947 "emerg",
28948 "alert",
28949 "crit",
28950 "err",
28951 "warning",
28952 "notice",
28953 "info",
28954 "debug",
28955 "nolog"
28956 ],
28957 "optional" : 1,
28958 "type" : "string"
28959 },
4d47f125
TL
28960 "macro" : {
28961 "description" : "Use predefined standard macro.",
28962 "maxLength" : 128,
44660702 28963 "optional" : 1,
4d47f125
TL
28964 "type" : "string",
28965 "typetext" : "<string>"
44660702
DM
28966 },
28967 "node" : {
28968 "description" : "The cluster node name.",
28969 "format" : "pve-node",
013dc89f
DM
28970 "type" : "string",
28971 "typetext" : "<string>"
7aacca6f 28972 },
4d47f125
TL
28973 "pos" : {
28974 "description" : "Update rule at position <pos>.",
28975 "minimum" : 0,
28976 "optional" : 1,
28977 "type" : "integer",
28978 "typetext" : "<integer> (0 - N)"
28979 },
28980 "proto" : {
28981 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
28982 "format" : "pve-fw-protocol-spec",
28983 "optional" : 1,
28984 "type" : "string",
28985 "typetext" : "<string>"
28986 },
28987 "source" : {
28988 "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.",
28989 "format" : "pve-fw-addr-spec",
0695fdaf 28990 "maxLength" : 512,
4d47f125 28991 "optional" : 1,
013dc89f
DM
28992 "type" : "string",
28993 "typetext" : "<string>"
44660702 28994 },
4d47f125
TL
28995 "sport" : {
28996 "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.",
28997 "format" : "pve-fw-sport-spec",
28998 "optional" : 1,
28999 "type" : "string",
29000 "typetext" : "<string>"
29001 },
29002 "type" : {
29003 "description" : "Rule type.",
29004 "enum" : [
29005 "in",
29006 "out",
29007 "group"
29008 ],
29009 "optional" : 0,
29010 "type" : "string"
29011 },
44660702
DM
29012 "vmid" : {
29013 "description" : "The (unique) ID of the VM.",
29014 "format" : "pve-vmid",
29015 "minimum" : 1,
4bd7df8b 29016 "type" : "integer",
013dc89f 29017 "typetext" : "<integer> (1 - N)"
56122987 29018 }
44660702 29019 }
7aacca6f 29020 },
56122987
DM
29021 "permissions" : {
29022 "check" : [
29023 "perm",
29024 "/vms/{vmid}",
29025 [
4d47f125 29026 "VM.Config.Network"
56122987
DM
29027 ]
29028 ]
29029 },
44660702 29030 "protected" : 1,
4d47f125 29031 "proxyto" : null,
44660702 29032 "returns" : {
4d47f125 29033 "type" : "null"
44660702
DM
29034 }
29035 }
29036 },
29037 "leaf" : 0,
4d47f125
TL
29038 "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules",
29039 "text" : "rules"
7aacca6f 29040 },
56122987 29041 {
56122987
DM
29042 "children" : [
29043 {
56122987 29044 "info" : {
44660702 29045 "DELETE" : {
e9cd3bd4 29046 "allowtoken" : 1,
4d47f125 29047 "description" : "Remove IP or Network alias.",
44660702 29048 "method" : "DELETE",
4d47f125 29049 "name" : "remove_alias",
56122987 29050 "parameters" : {
44660702 29051 "additionalProperties" : 0,
56122987 29052 "properties" : {
44660702
DM
29053 "digest" : {
29054 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29055 "maxLength" : 40,
7aacca6f 29056 "optional" : 1,
013dc89f
DM
29057 "type" : "string",
29058 "typetext" : "<string>"
7aacca6f 29059 },
4d47f125
TL
29060 "name" : {
29061 "description" : "Alias name.",
29062 "maxLength" : 64,
29063 "minLength" : 2,
29064 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
29065 "type" : "string"
29066 },
7aacca6f 29067 "node" : {
44660702 29068 "description" : "The cluster node name.",
7aacca6f 29069 "format" : "pve-node",
013dc89f
DM
29070 "type" : "string",
29071 "typetext" : "<string>"
44660702 29072 },
44660702
DM
29073 "vmid" : {
29074 "description" : "The (unique) ID of the VM.",
29075 "format" : "pve-vmid",
29076 "minimum" : 1,
4bd7df8b 29077 "type" : "integer",
013dc89f 29078 "typetext" : "<integer> (1 - N)"
56122987 29079 }
44660702 29080 }
56122987 29081 },
56122987
DM
29082 "permissions" : {
29083 "check" : [
29084 "perm",
29085 "/vms/{vmid}",
29086 [
44660702 29087 "VM.Config.Network"
56122987
DM
29088 ]
29089 ]
29090 },
44660702 29091 "protected" : 1,
44660702
DM
29092 "returns" : {
29093 "type" : "null"
29094 }
7aacca6f 29095 },
44660702 29096 "GET" : {
e9cd3bd4 29097 "allowtoken" : 1,
4d47f125 29098 "description" : "Read alias.",
44660702 29099 "method" : "GET",
4d47f125 29100 "name" : "read_alias",
56122987 29101 "parameters" : {
44660702 29102 "additionalProperties" : 0,
56122987 29103 "properties" : {
4d47f125
TL
29104 "name" : {
29105 "description" : "Alias name.",
29106 "maxLength" : 64,
29107 "minLength" : 2,
29108 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
29109 "type" : "string"
29110 },
7aacca6f 29111 "node" : {
7aacca6f 29112 "description" : "The cluster node name.",
44660702 29113 "format" : "pve-node",
013dc89f
DM
29114 "type" : "string",
29115 "typetext" : "<string>"
56122987 29116 },
7aacca6f 29117 "vmid" : {
44660702 29118 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
29119 "format" : "pve-vmid",
29120 "minimum" : 1,
4bd7df8b 29121 "type" : "integer",
013dc89f 29122 "typetext" : "<integer> (1 - N)"
56122987 29123 }
44660702 29124 }
56122987 29125 },
7aacca6f
DM
29126 "permissions" : {
29127 "check" : [
29128 "perm",
29129 "/vms/{vmid}",
29130 [
44660702 29131 "VM.Audit"
7aacca6f
DM
29132 ]
29133 ]
29134 },
7aacca6f 29135 "returns" : {
44660702 29136 "type" : "object"
7aacca6f 29137 }
56122987 29138 },
44660702 29139 "PUT" : {
e9cd3bd4 29140 "allowtoken" : 1,
4d47f125 29141 "description" : "Update IP or Network alias.",
44660702 29142 "method" : "PUT",
4d47f125 29143 "name" : "update_alias",
56122987
DM
29144 "parameters" : {
29145 "additionalProperties" : 0,
29146 "properties" : {
4d47f125
TL
29147 "cidr" : {
29148 "description" : "Network/IP specification in CIDR format.",
29149 "format" : "IPorCIDR",
013dc89f
DM
29150 "type" : "string",
29151 "typetext" : "<string>"
44660702 29152 },
4d47f125 29153 "comment" : {
44660702 29154 "optional" : 1,
013dc89f
DM
29155 "type" : "string",
29156 "typetext" : "<string>"
44660702
DM
29157 },
29158 "digest" : {
29159 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29160 "maxLength" : 40,
29161 "optional" : 1,
013dc89f
DM
29162 "type" : "string",
29163 "typetext" : "<string>"
44660702 29164 },
4d47f125
TL
29165 "name" : {
29166 "description" : "Alias name.",
29167 "maxLength" : 64,
44660702 29168 "minLength" : 2,
4d47f125
TL
29169 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
29170 "type" : "string"
44660702 29171 },
7aacca6f
DM
29172 "node" : {
29173 "description" : "The cluster node name.",
44660702 29174 "format" : "pve-node",
013dc89f
DM
29175 "type" : "string",
29176 "typetext" : "<string>"
56122987 29177 },
4d47f125
TL
29178 "rename" : {
29179 "description" : "Rename an existing alias.",
29180 "maxLength" : 64,
29181 "minLength" : 2,
7aacca6f 29182 "optional" : 1,
4d47f125 29183 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
29184 "type" : "string"
29185 },
29186 "vmid" : {
29187 "description" : "The (unique) ID of the VM.",
29188 "format" : "pve-vmid",
29189 "minimum" : 1,
4bd7df8b 29190 "type" : "integer",
013dc89f 29191 "typetext" : "<integer> (1 - N)"
56122987
DM
29192 }
29193 }
29194 },
56122987
DM
29195 "permissions" : {
29196 "check" : [
29197 "perm",
29198 "/vms/{vmid}",
29199 [
7aacca6f 29200 "VM.Config.Network"
56122987
DM
29201 ]
29202 ]
29203 },
44660702 29204 "protected" : 1,
56122987 29205 "returns" : {
7aacca6f
DM
29206 "type" : "null"
29207 }
56122987 29208 }
44660702
DM
29209 },
29210 "leaf" : 1,
4d47f125
TL
29211 "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}",
29212 "text" : "{name}"
56122987
DM
29213 }
29214 ],
29215 "info" : {
7aacca6f 29216 "GET" : {
e9cd3bd4 29217 "allowtoken" : 1,
4d47f125 29218 "description" : "List aliases",
44660702 29219 "method" : "GET",
4d47f125 29220 "name" : "get_aliases",
7aacca6f 29221 "parameters" : {
44660702 29222 "additionalProperties" : 0,
7aacca6f
DM
29223 "properties" : {
29224 "node" : {
7aacca6f 29225 "description" : "The cluster node name.",
44660702 29226 "format" : "pve-node",
013dc89f
DM
29227 "type" : "string",
29228 "typetext" : "<string>"
7aacca6f
DM
29229 },
29230 "vmid" : {
29231 "description" : "The (unique) ID of the VM.",
44660702 29232 "format" : "pve-vmid",
7aacca6f 29233 "minimum" : 1,
4bd7df8b 29234 "type" : "integer",
013dc89f 29235 "typetext" : "<integer> (1 - N)"
7aacca6f 29236 }
44660702 29237 }
56122987 29238 },
56122987
DM
29239 "permissions" : {
29240 "check" : [
29241 "perm",
29242 "/vms/{vmid}",
29243 [
7aacca6f 29244 "VM.Audit"
56122987
DM
29245 ]
29246 ]
29247 },
7aacca6f 29248 "returns" : {
7aacca6f
DM
29249 "items" : {
29250 "properties" : {
4d47f125
TL
29251 "cidr" : {
29252 "type" : "string"
29253 },
29254 "comment" : {
29255 "optional" : 1,
29256 "type" : "string"
29257 },
29258 "digest" : {
29259 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29260 "maxLength" : 40,
29261 "optional" : 0,
29262 "type" : "string"
29263 },
29264 "name" : {
29265 "type" : "string"
7aacca6f
DM
29266 }
29267 },
29268 "type" : "object"
29269 },
29270 "links" : [
29271 {
4d47f125 29272 "href" : "{name}",
44660702 29273 "rel" : "child"
7aacca6f 29274 }
44660702
DM
29275 ],
29276 "type" : "array"
29277 }
7aacca6f
DM
29278 },
29279 "POST" : {
e9cd3bd4 29280 "allowtoken" : 1,
4d47f125 29281 "description" : "Create IP or Network Alias.",
44660702 29282 "method" : "POST",
4d47f125 29283 "name" : "create_alias",
56122987 29284 "parameters" : {
44660702 29285 "additionalProperties" : 0,
56122987 29286 "properties" : {
4d47f125
TL
29287 "cidr" : {
29288 "description" : "Network/IP specification in CIDR format.",
29289 "format" : "IPorCIDR",
013dc89f 29290 "type" : "string",
4d47f125
TL
29291 "typetext" : "<string>"
29292 },
29293 "comment" : {
44660702 29294 "optional" : 1,
013dc89f
DM
29295 "type" : "string",
29296 "typetext" : "<string>"
7aacca6f 29297 },
4d47f125
TL
29298 "name" : {
29299 "description" : "Alias name.",
29300 "maxLength" : 64,
29301 "minLength" : 2,
29302 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
29303 "type" : "string"
29304 },
4d47f125
TL
29305 "node" : {
29306 "description" : "The cluster node name.",
29307 "format" : "pve-node",
29308 "type" : "string",
29309 "typetext" : "<string>"
29310 },
44660702
DM
29311 "vmid" : {
29312 "description" : "The (unique) ID of the VM.",
29313 "format" : "pve-vmid",
29314 "minimum" : 1,
4bd7df8b 29315 "type" : "integer",
013dc89f 29316 "typetext" : "<integer> (1 - N)"
44660702
DM
29317 }
29318 }
29319 },
29320 "permissions" : {
29321 "check" : [
29322 "perm",
29323 "/vms/{vmid}",
29324 [
29325 "VM.Config.Network"
29326 ]
29327 ]
29328 },
29329 "protected" : 1,
44660702
DM
29330 "returns" : {
29331 "type" : "null"
29332 }
29333 }
29334 },
29335 "leaf" : 0,
4d47f125
TL
29336 "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases",
29337 "text" : "aliases"
44660702
DM
29338 },
29339 {
29340 "children" : [
29341 {
4d47f125
TL
29342 "children" : [
29343 {
29344 "info" : {
29345 "DELETE" : {
e9cd3bd4 29346 "allowtoken" : 1,
4d47f125
TL
29347 "description" : "Remove IP or Network from IPSet.",
29348 "method" : "DELETE",
29349 "name" : "remove_ip",
29350 "parameters" : {
29351 "additionalProperties" : 0,
29352 "properties" : {
29353 "cidr" : {
29354 "description" : "Network/IP specification in CIDR format.",
29355 "format" : "IPorCIDRorAlias",
29356 "type" : "string",
29357 "typetext" : "<string>"
29358 },
29359 "digest" : {
29360 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29361 "maxLength" : 40,
29362 "optional" : 1,
29363 "type" : "string",
29364 "typetext" : "<string>"
29365 },
29366 "name" : {
29367 "description" : "IP set name.",
29368 "maxLength" : 64,
29369 "minLength" : 2,
29370 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
29371 "type" : "string"
29372 },
29373 "node" : {
29374 "description" : "The cluster node name.",
29375 "format" : "pve-node",
29376 "type" : "string",
29377 "typetext" : "<string>"
29378 },
29379 "vmid" : {
29380 "description" : "The (unique) ID of the VM.",
29381 "format" : "pve-vmid",
29382 "minimum" : 1,
29383 "type" : "integer",
29384 "typetext" : "<integer> (1 - N)"
29385 }
29386 }
29387 },
29388 "permissions" : {
29389 "check" : [
29390 "perm",
29391 "/vms/{vmid}",
29392 [
29393 "VM.Config.Network"
29394 ]
29395 ]
29396 },
29397 "protected" : 1,
29398 "returns" : {
29399 "type" : "null"
29400 }
29401 },
29402 "GET" : {
e9cd3bd4 29403 "allowtoken" : 1,
4d47f125
TL
29404 "description" : "Read IP or Network settings from IPSet.",
29405 "method" : "GET",
29406 "name" : "read_ip",
29407 "parameters" : {
29408 "additionalProperties" : 0,
29409 "properties" : {
29410 "cidr" : {
29411 "description" : "Network/IP specification in CIDR format.",
29412 "format" : "IPorCIDRorAlias",
29413 "type" : "string",
29414 "typetext" : "<string>"
29415 },
29416 "name" : {
29417 "description" : "IP set name.",
29418 "maxLength" : 64,
29419 "minLength" : 2,
29420 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
29421 "type" : "string"
29422 },
29423 "node" : {
29424 "description" : "The cluster node name.",
29425 "format" : "pve-node",
29426 "type" : "string",
29427 "typetext" : "<string>"
29428 },
29429 "vmid" : {
29430 "description" : "The (unique) ID of the VM.",
29431 "format" : "pve-vmid",
29432 "minimum" : 1,
29433 "type" : "integer",
29434 "typetext" : "<integer> (1 - N)"
29435 }
29436 }
29437 },
29438 "permissions" : {
29439 "check" : [
29440 "perm",
29441 "/vms/{vmid}",
29442 [
29443 "VM.Audit"
29444 ]
29445 ]
29446 },
29447 "protected" : 1,
29448 "returns" : {
29449 "type" : "object"
29450 }
29451 },
29452 "PUT" : {
e9cd3bd4 29453 "allowtoken" : 1,
4d47f125
TL
29454 "description" : "Update IP or Network settings",
29455 "method" : "PUT",
29456 "name" : "update_ip",
29457 "parameters" : {
29458 "additionalProperties" : 0,
29459 "properties" : {
29460 "cidr" : {
29461 "description" : "Network/IP specification in CIDR format.",
29462 "format" : "IPorCIDRorAlias",
29463 "type" : "string",
29464 "typetext" : "<string>"
29465 },
29466 "comment" : {
29467 "optional" : 1,
29468 "type" : "string",
29469 "typetext" : "<string>"
29470 },
29471 "digest" : {
29472 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29473 "maxLength" : 40,
29474 "optional" : 1,
29475 "type" : "string",
29476 "typetext" : "<string>"
29477 },
29478 "name" : {
29479 "description" : "IP set name.",
29480 "maxLength" : 64,
29481 "minLength" : 2,
29482 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
29483 "type" : "string"
29484 },
29485 "node" : {
29486 "description" : "The cluster node name.",
29487 "format" : "pve-node",
29488 "type" : "string",
29489 "typetext" : "<string>"
29490 },
29491 "nomatch" : {
29492 "optional" : 1,
29493 "type" : "boolean",
29494 "typetext" : "<boolean>"
29495 },
29496 "vmid" : {
29497 "description" : "The (unique) ID of the VM.",
29498 "format" : "pve-vmid",
29499 "minimum" : 1,
29500 "type" : "integer",
29501 "typetext" : "<integer> (1 - N)"
29502 }
29503 }
29504 },
29505 "permissions" : {
29506 "check" : [
29507 "perm",
29508 "/vms/{vmid}",
29509 [
29510 "VM.Config.Network"
29511 ]
29512 ]
29513 },
29514 "protected" : 1,
29515 "returns" : {
29516 "type" : "null"
29517 }
29518 }
29519 },
29520 "leaf" : 1,
29521 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}",
29522 "text" : "{cidr}"
29523 }
29524 ],
44660702
DM
29525 "info" : {
29526 "DELETE" : {
e9cd3bd4 29527 "allowtoken" : 1,
4d47f125 29528 "description" : "Delete IPSet",
44660702 29529 "method" : "DELETE",
4d47f125 29530 "name" : "delete_ipset",
56122987 29531 "parameters" : {
44660702 29532 "additionalProperties" : 0,
56122987 29533 "properties" : {
81a3384d
TL
29534 "force" : {
29535 "description" : "Delete all members of the IPSet, if there are any.",
29536 "optional" : 1,
29537 "type" : "boolean",
29538 "typetext" : "<boolean>"
29539 },
7aacca6f 29540 "name" : {
4d47f125 29541 "description" : "IP set name.",
7aacca6f 29542 "maxLength" : 64,
7aacca6f
DM
29543 "minLength" : 2,
29544 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 29545 "type" : "string"
7aacca6f
DM
29546 },
29547 "node" : {
44660702 29548 "description" : "The cluster node name.",
56122987 29549 "format" : "pve-node",
013dc89f
DM
29550 "type" : "string",
29551 "typetext" : "<string>"
7aacca6f 29552 },
56122987 29553 "vmid" : {
44660702 29554 "description" : "The (unique) ID of the VM.",
56122987 29555 "format" : "pve-vmid",
44660702 29556 "minimum" : 1,
4bd7df8b 29557 "type" : "integer",
013dc89f 29558 "typetext" : "<integer> (1 - N)"
56122987 29559 }
44660702 29560 }
56122987 29561 },
56122987
DM
29562 "permissions" : {
29563 "check" : [
29564 "perm",
29565 "/vms/{vmid}",
29566 [
7aacca6f 29567 "VM.Config.Network"
56122987
DM
29568 ]
29569 ]
29570 },
44660702 29571 "protected" : 1,
56122987 29572 "returns" : {
7aacca6f 29573 "type" : "null"
44660702 29574 }
56122987 29575 },
44660702 29576 "GET" : {
e9cd3bd4 29577 "allowtoken" : 1,
4d47f125 29578 "description" : "List IPSet content",
44660702 29579 "method" : "GET",
4d47f125 29580 "name" : "get_ipset",
44660702
DM
29581 "parameters" : {
29582 "additionalProperties" : 0,
29583 "properties" : {
29584 "name" : {
4d47f125 29585 "description" : "IP set name.",
44660702
DM
29586 "maxLength" : 64,
29587 "minLength" : 2,
29588 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
29589 "type" : "string"
29590 },
29591 "node" : {
29592 "description" : "The cluster node name.",
29593 "format" : "pve-node",
013dc89f
DM
29594 "type" : "string",
29595 "typetext" : "<string>"
44660702
DM
29596 },
29597 "vmid" : {
29598 "description" : "The (unique) ID of the VM.",
29599 "format" : "pve-vmid",
29600 "minimum" : 1,
4bd7df8b 29601 "type" : "integer",
013dc89f 29602 "typetext" : "<integer> (1 - N)"
44660702 29603 }
4d47f125
TL
29604 }
29605 },
29606 "permissions" : {
29607 "check" : [
29608 "perm",
29609 "/vms/{vmid}",
29610 [
29611 "VM.Audit"
29612 ]
29613 ]
29614 },
29615 "returns" : {
29616 "items" : {
29617 "properties" : {
29618 "cidr" : {
29619 "type" : "string"
29620 },
29621 "comment" : {
29622 "optional" : 1,
29623 "type" : "string"
29624 },
29625 "digest" : {
29626 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29627 "maxLength" : 40,
29628 "optional" : 0,
29629 "type" : "string"
29630 },
29631 "nomatch" : {
29632 "optional" : 1,
29633 "type" : "boolean"
29634 }
29635 },
29636 "type" : "object"
29637 },
29638 "links" : [
29639 {
29640 "href" : "{cidr}",
29641 "rel" : "child"
29642 }
29643 ],
29644 "type" : "array"
44660702
DM
29645 }
29646 },
4d47f125 29647 "POST" : {
e9cd3bd4 29648 "allowtoken" : 1,
4d47f125
TL
29649 "description" : "Add IP or Network to IPSet.",
29650 "method" : "POST",
29651 "name" : "create_ip",
56122987
DM
29652 "parameters" : {
29653 "additionalProperties" : 0,
29654 "properties" : {
44660702
DM
29655 "cidr" : {
29656 "description" : "Network/IP specification in CIDR format.",
4d47f125 29657 "format" : "IPorCIDRorAlias",
013dc89f
DM
29658 "type" : "string",
29659 "typetext" : "<string>"
44660702
DM
29660 },
29661 "comment" : {
29662 "optional" : 1,
013dc89f
DM
29663 "type" : "string",
29664 "typetext" : "<string>"
44660702 29665 },
56122987 29666 "name" : {
4d47f125 29667 "description" : "IP set name.",
44660702
DM
29668 "maxLength" : 64,
29669 "minLength" : 2,
7aacca6f 29670 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 29671 "type" : "string"
56122987
DM
29672 },
29673 "node" : {
29674 "description" : "The cluster node name.",
44660702 29675 "format" : "pve-node",
013dc89f
DM
29676 "type" : "string",
29677 "typetext" : "<string>"
44660702 29678 },
4d47f125 29679 "nomatch" : {
44660702 29680 "optional" : 1,
4d47f125
TL
29681 "type" : "boolean",
29682 "typetext" : "<boolean>"
56122987 29683 },
7aacca6f 29684 "vmid" : {
7aacca6f 29685 "description" : "The (unique) ID of the VM.",
44660702 29686 "format" : "pve-vmid",
7aacca6f 29687 "minimum" : 1,
4bd7df8b 29688 "type" : "integer",
013dc89f 29689 "typetext" : "<integer> (1 - N)"
56122987
DM
29690 }
29691 }
29692 },
44660702
DM
29693 "permissions" : {
29694 "check" : [
29695 "perm",
29696 "/vms/{vmid}",
29697 [
29698 "VM.Config.Network"
29699 ]
29700 ]
7aacca6f 29701 },
44660702
DM
29702 "protected" : 1,
29703 "returns" : {
29704 "type" : "null"
7aacca6f
DM
29705 }
29706 }
29707 },
4d47f125
TL
29708 "leaf" : 0,
29709 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}",
44660702
DM
29710 "text" : "{name}"
29711 }
29712 ],
29713 "info" : {
29714 "GET" : {
e9cd3bd4 29715 "allowtoken" : 1,
4d47f125 29716 "description" : "List IPSets",
44660702 29717 "method" : "GET",
4d47f125 29718 "name" : "ipset_index",
56122987
DM
29719 "parameters" : {
29720 "additionalProperties" : 0,
29721 "properties" : {
29722 "node" : {
44660702 29723 "description" : "The cluster node name.",
56122987 29724 "format" : "pve-node",
013dc89f
DM
29725 "type" : "string",
29726 "typetext" : "<string>"
56122987
DM
29727 },
29728 "vmid" : {
7aacca6f 29729 "description" : "The (unique) ID of the VM.",
44660702 29730 "format" : "pve-vmid",
7aacca6f 29731 "minimum" : 1,
4bd7df8b 29732 "type" : "integer",
013dc89f 29733 "typetext" : "<integer> (1 - N)"
56122987
DM
29734 }
29735 }
29736 },
44660702
DM
29737 "permissions" : {
29738 "check" : [
29739 "perm",
29740 "/vms/{vmid}",
29741 [
29742 "VM.Audit"
29743 ]
29744 ]
29745 },
56122987
DM
29746 "returns" : {
29747 "items" : {
56122987 29748 "properties" : {
44660702
DM
29749 "comment" : {
29750 "optional" : 1,
56122987
DM
29751 "type" : "string"
29752 },
56122987 29753 "digest" : {
56122987 29754 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702
DM
29755 "maxLength" : 40,
29756 "optional" : 0,
29757 "type" : "string"
29758 },
29759 "name" : {
4d47f125
TL
29760 "description" : "IP set name.",
29761 "maxLength" : 64,
29762 "minLength" : 2,
29763 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 29764 "type" : "string"
56122987 29765 }
44660702
DM
29766 },
29767 "type" : "object"
29768 },
29769 "links" : [
29770 {
29771 "href" : "{name}",
29772 "rel" : "child"
56122987 29773 }
4d47f125
TL
29774 ],
29775 "type" : "array"
29776 }
29777 },
29778 "POST" : {
e9cd3bd4 29779 "allowtoken" : 1,
4d47f125
TL
29780 "description" : "Create new IPSet",
29781 "method" : "POST",
29782 "name" : "create_ipset",
29783 "parameters" : {
29784 "additionalProperties" : 0,
29785 "properties" : {
29786 "comment" : {
29787 "optional" : 1,
29788 "type" : "string",
29789 "typetext" : "<string>"
29790 },
29791 "digest" : {
29792 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29793 "maxLength" : 40,
29794 "optional" : 1,
29795 "type" : "string",
29796 "typetext" : "<string>"
29797 },
29798 "name" : {
29799 "description" : "IP set name.",
29800 "maxLength" : 64,
29801 "minLength" : 2,
29802 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
29803 "type" : "string"
29804 },
29805 "node" : {
29806 "description" : "The cluster node name.",
29807 "format" : "pve-node",
29808 "type" : "string",
29809 "typetext" : "<string>"
29810 },
29811 "rename" : {
29812 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
29813 "maxLength" : 64,
29814 "minLength" : 2,
29815 "optional" : 1,
29816 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
29817 "type" : "string"
29818 },
29819 "vmid" : {
29820 "description" : "The (unique) ID of the VM.",
29821 "format" : "pve-vmid",
29822 "minimum" : 1,
29823 "type" : "integer",
29824 "typetext" : "<integer> (1 - N)"
29825 }
29826 }
29827 },
29828 "permissions" : {
29829 "check" : [
29830 "perm",
29831 "/vms/{vmid}",
29832 [
29833 "VM.Config.Network"
29834 ]
29835 ]
29836 },
29837 "protected" : 1,
29838 "returns" : {
29839 "type" : "null"
29840 }
29841 }
29842 },
29843 "leaf" : 0,
29844 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset",
29845 "text" : "ipset"
29846 },
29847 {
29848 "info" : {
29849 "GET" : {
e9cd3bd4 29850 "allowtoken" : 1,
4d47f125
TL
29851 "description" : "Get VM firewall options.",
29852 "method" : "GET",
29853 "name" : "get_options",
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>"
29862 },
29863 "vmid" : {
29864 "description" : "The (unique) ID of the VM.",
29865 "format" : "pve-vmid",
29866 "minimum" : 1,
29867 "type" : "integer",
29868 "typetext" : "<integer> (1 - N)"
29869 }
29870 }
29871 },
29872 "permissions" : {
29873 "check" : [
29874 "perm",
29875 "/vms/{vmid}",
29876 [
29877 "VM.Audit"
29878 ]
29879 ]
29880 },
29881 "proxyto" : "node",
29882 "returns" : {
29883 "properties" : {
29884 "dhcp" : {
5c1699e5 29885 "default" : 0,
4d47f125
TL
29886 "description" : "Enable DHCP.",
29887 "optional" : 1,
29888 "type" : "boolean"
29889 },
29890 "enable" : {
5c1699e5 29891 "default" : 0,
4d47f125
TL
29892 "description" : "Enable/disable firewall rules.",
29893 "optional" : 1,
29894 "type" : "boolean"
29895 },
29896 "ipfilter" : {
29897 "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.",
29898 "optional" : 1,
29899 "type" : "boolean"
29900 },
29901 "log_level_in" : {
29902 "description" : "Log level for incoming traffic.",
29903 "enum" : [
29904 "emerg",
29905 "alert",
29906 "crit",
29907 "err",
29908 "warning",
29909 "notice",
29910 "info",
29911 "debug",
29912 "nolog"
29913 ],
29914 "optional" : 1,
29915 "type" : "string"
29916 },
29917 "log_level_out" : {
29918 "description" : "Log level for outgoing traffic.",
29919 "enum" : [
29920 "emerg",
29921 "alert",
29922 "crit",
29923 "err",
29924 "warning",
29925 "notice",
29926 "info",
29927 "debug",
29928 "nolog"
29929 ],
29930 "optional" : 1,
29931 "type" : "string"
29932 },
29933 "macfilter" : {
de786b48 29934 "default" : 1,
4d47f125
TL
29935 "description" : "Enable/disable MAC address filter.",
29936 "optional" : 1,
29937 "type" : "boolean"
29938 },
29939 "ndp" : {
5c1699e5
TL
29940 "default" : 0,
29941 "description" : "Enable NDP (Neighbor Discovery Protocol).",
4d47f125
TL
29942 "optional" : 1,
29943 "type" : "boolean"
29944 },
29945 "policy_in" : {
29946 "description" : "Input policy.",
29947 "enum" : [
29948 "ACCEPT",
29949 "REJECT",
29950 "DROP"
29951 ],
29952 "optional" : 1,
29953 "type" : "string"
29954 },
29955 "policy_out" : {
29956 "description" : "Output policy.",
29957 "enum" : [
29958 "ACCEPT",
29959 "REJECT",
29960 "DROP"
29961 ],
29962 "optional" : 1,
29963 "type" : "string"
29964 },
29965 "radv" : {
29966 "description" : "Allow sending Router Advertisement.",
29967 "optional" : 1,
29968 "type" : "boolean"
29969 }
29970 },
29971 "type" : "object"
7aacca6f
DM
29972 }
29973 },
4d47f125 29974 "PUT" : {
e9cd3bd4 29975 "allowtoken" : 1,
4d47f125
TL
29976 "description" : "Set Firewall options.",
29977 "method" : "PUT",
29978 "name" : "set_options",
7aacca6f
DM
29979 "parameters" : {
29980 "additionalProperties" : 0,
29981 "properties" : {
4d47f125
TL
29982 "delete" : {
29983 "description" : "A list of settings you want to delete.",
29984 "format" : "pve-configid-list",
7aacca6f 29985 "optional" : 1,
013dc89f
DM
29986 "type" : "string",
29987 "typetext" : "<string>"
7aacca6f 29988 },
4d47f125 29989 "dhcp" : {
5c1699e5 29990 "default" : 0,
4d47f125
TL
29991 "description" : "Enable DHCP.",
29992 "optional" : 1,
29993 "type" : "boolean",
29994 "typetext" : "<boolean>"
7aacca6f 29995 },
4d47f125
TL
29996 "digest" : {
29997 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29998 "maxLength" : 40,
29999 "optional" : 1,
013dc89f
DM
30000 "type" : "string",
30001 "typetext" : "<string>"
7aacca6f 30002 },
4d47f125 30003 "enable" : {
5c1699e5 30004 "default" : 0,
4d47f125
TL
30005 "description" : "Enable/disable firewall rules.",
30006 "optional" : 1,
30007 "type" : "boolean",
30008 "typetext" : "<boolean>"
30009 },
30010 "ipfilter" : {
30011 "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.",
30012 "optional" : 1,
30013 "type" : "boolean",
30014 "typetext" : "<boolean>"
56122987 30015 },
4d47f125
TL
30016 "log_level_in" : {
30017 "description" : "Log level for incoming traffic.",
30018 "enum" : [
30019 "emerg",
30020 "alert",
30021 "crit",
30022 "err",
30023 "warning",
30024 "notice",
30025 "info",
30026 "debug",
30027 "nolog"
30028 ],
30029 "optional" : 1,
30030 "type" : "string"
44660702 30031 },
4d47f125
TL
30032 "log_level_out" : {
30033 "description" : "Log level for outgoing traffic.",
30034 "enum" : [
30035 "emerg",
30036 "alert",
30037 "crit",
30038 "err",
30039 "warning",
30040 "notice",
30041 "info",
30042 "debug",
30043 "nolog"
30044 ],
30045 "optional" : 1,
30046 "type" : "string"
44660702 30047 },
4d47f125 30048 "macfilter" : {
de786b48 30049 "default" : 1,
4d47f125
TL
30050 "description" : "Enable/disable MAC address filter.",
30051 "optional" : 1,
30052 "type" : "boolean",
30053 "typetext" : "<boolean>"
7aacca6f 30054 },
4d47f125 30055 "ndp" : {
5c1699e5
TL
30056 "default" : 0,
30057 "description" : "Enable NDP (Neighbor Discovery Protocol).",
4d47f125
TL
30058 "optional" : 1,
30059 "type" : "boolean",
30060 "typetext" : "<boolean>"
7aacca6f 30061 },
4d47f125
TL
30062 "node" : {
30063 "description" : "The cluster node name.",
30064 "format" : "pve-node",
30065 "type" : "string",
30066 "typetext" : "<string>"
30067 },
30068 "policy_in" : {
30069 "description" : "Input policy.",
30070 "enum" : [
30071 "ACCEPT",
30072 "REJECT",
30073 "DROP"
44660702 30074 ],
4d47f125
TL
30075 "optional" : 1,
30076 "type" : "string"
30077 },
30078 "policy_out" : {
30079 "description" : "Output policy.",
30080 "enum" : [
30081 "ACCEPT",
30082 "REJECT",
30083 "DROP"
30084 ],
30085 "optional" : 1,
30086 "type" : "string"
30087 },
30088 "radv" : {
30089 "description" : "Allow sending Router Advertisement.",
30090 "optional" : 1,
30091 "type" : "boolean",
30092 "typetext" : "<boolean>"
30093 },
30094 "vmid" : {
30095 "description" : "The (unique) ID of the VM.",
30096 "format" : "pve-vmid",
30097 "minimum" : 1,
30098 "type" : "integer",
30099 "typetext" : "<integer> (1 - N)"
44660702 30100 }
4d47f125
TL
30101 }
30102 },
30103 "permissions" : {
30104 "check" : [
30105 "perm",
30106 "/vms/{vmid}",
30107 [
30108 "VM.Config.Network"
30109 ]
30110 ]
30111 },
30112 "protected" : 1,
30113 "proxyto" : "node",
30114 "returns" : {
30115 "type" : "null"
30116 }
30117 }
30118 },
30119 "leaf" : 1,
30120 "path" : "/nodes/{node}/lxc/{vmid}/firewall/options",
30121 "text" : "options"
30122 },
30123 {
30124 "info" : {
30125 "GET" : {
e9cd3bd4 30126 "allowtoken" : 1,
4d47f125
TL
30127 "description" : "Read firewall log",
30128 "method" : "GET",
30129 "name" : "log",
30130 "parameters" : {
30131 "additionalProperties" : 0,
30132 "properties" : {
30133 "limit" : {
30134 "minimum" : 0,
30135 "optional" : 1,
30136 "type" : "integer",
30137 "typetext" : "<integer> (0 - N)"
44660702 30138 },
4d47f125
TL
30139 "node" : {
30140 "description" : "The cluster node name.",
30141 "format" : "pve-node",
30142 "type" : "string",
30143 "typetext" : "<string>"
44660702 30144 },
9d2e98ed
TL
30145 "since" : {
30146 "description" : "Display log since this UNIX epoch.",
30147 "minimum" : 0,
30148 "optional" : 1,
30149 "type" : "integer",
30150 "typetext" : "<integer> (0 - N)"
30151 },
4d47f125
TL
30152 "start" : {
30153 "minimum" : 0,
30154 "optional" : 1,
30155 "type" : "integer",
30156 "typetext" : "<integer> (0 - N)"
30157 },
9d2e98ed
TL
30158 "until" : {
30159 "description" : "Display log until this UNIX epoch.",
30160 "minimum" : 0,
30161 "optional" : 1,
30162 "type" : "integer",
30163 "typetext" : "<integer> (0 - N)"
30164 },
4d47f125
TL
30165 "vmid" : {
30166 "description" : "The (unique) ID of the VM.",
30167 "format" : "pve-vmid",
30168 "minimum" : 1,
30169 "type" : "integer",
30170 "typetext" : "<integer> (1 - N)"
44660702
DM
30171 }
30172 }
30173 },
4d47f125
TL
30174 "permissions" : {
30175 "check" : [
30176 "perm",
30177 "/vms/{vmid}",
30178 [
30179 "VM.Console"
30180 ]
30181 ]
30182 },
30183 "protected" : 1,
30184 "proxyto" : "node",
30185 "returns" : {
30186 "items" : {
30187 "properties" : {
30188 "n" : {
30189 "description" : "Line number",
30190 "type" : "integer"
30191 },
30192 "t" : {
30193 "description" : "Line text",
30194 "type" : "string"
30195 }
30196 },
30197 "type" : "object"
30198 },
30199 "type" : "array"
30200 }
44660702 30201 }
4d47f125
TL
30202 },
30203 "leaf" : 1,
30204 "path" : "/nodes/{node}/lxc/{vmid}/firewall/log",
30205 "text" : "log"
30206 },
30207 {
44660702
DM
30208 "info" : {
30209 "GET" : {
e9cd3bd4 30210 "allowtoken" : 1,
4d47f125 30211 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
44660702 30212 "method" : "GET",
4d47f125 30213 "name" : "refs",
44660702
DM
30214 "parameters" : {
30215 "additionalProperties" : 0,
30216 "properties" : {
30217 "node" : {
30218 "description" : "The cluster node name.",
30219 "format" : "pve-node",
013dc89f
DM
30220 "type" : "string",
30221 "typetext" : "<string>"
44660702 30222 },
4d47f125
TL
30223 "type" : {
30224 "description" : "Only list references of specified type.",
30225 "enum" : [
30226 "alias",
30227 "ipset"
30228 ],
30229 "optional" : 1,
30230 "type" : "string"
30231 },
44660702
DM
30232 "vmid" : {
30233 "description" : "The (unique) ID of the VM.",
30234 "format" : "pve-vmid",
30235 "minimum" : 1,
4bd7df8b 30236 "type" : "integer",
013dc89f 30237 "typetext" : "<integer> (1 - N)"
44660702
DM
30238 }
30239 }
30240 },
4d47f125
TL
30241 "permissions" : {
30242 "check" : [
30243 "perm",
30244 "/vms/{vmid}",
30245 [
30246 "VM.Audit"
30247 ]
30248 ]
30249 },
30250 "returns" : {
30251 "items" : {
30252 "properties" : {
30253 "comment" : {
30254 "optional" : 1,
30255 "type" : "string"
30256 },
30257 "name" : {
30258 "type" : "string"
30259 },
30260 "type" : {
30261 "enum" : [
30262 "alias",
30263 "ipset"
30264 ],
30265 "type" : "string"
30266 }
30267 },
30268 "type" : "object"
30269 },
30270 "type" : "array"
30271 }
30272 }
30273 },
30274 "leaf" : 1,
30275 "path" : "/nodes/{node}/lxc/{vmid}/firewall/refs",
30276 "text" : "refs"
30277 }
30278 ],
30279 "info" : {
30280 "GET" : {
e9cd3bd4 30281 "allowtoken" : 1,
4d47f125
TL
30282 "description" : "Directory index.",
30283 "method" : "GET",
30284 "name" : "index",
30285 "parameters" : {
30286 "additionalProperties" : 0,
30287 "properties" : {
30288 "node" : {
30289 "description" : "The cluster node name.",
30290 "format" : "pve-node",
30291 "type" : "string",
30292 "typetext" : "<string>"
30293 },
30294 "vmid" : {
30295 "description" : "The (unique) ID of the VM.",
30296 "format" : "pve-vmid",
30297 "minimum" : 1,
30298 "type" : "integer",
30299 "typetext" : "<integer> (1 - N)"
30300 }
30301 }
30302 },
30303 "permissions" : {
30304 "user" : "all"
30305 },
30306 "returns" : {
30307 "items" : {
30308 "properties" : {},
30309 "type" : "object"
30310 },
30311 "links" : [
30312 {
30313 "href" : "{name}",
30314 "rel" : "child"
30315 }
30316 ],
30317 "type" : "array"
30318 }
30319 }
30320 },
30321 "leaf" : 0,
30322 "path" : "/nodes/{node}/lxc/{vmid}/firewall",
30323 "text" : "firewall"
30324 },
30325 {
30326 "info" : {
30327 "GET" : {
e9cd3bd4 30328 "allowtoken" : 1,
4d47f125
TL
30329 "description" : "Read VM RRD statistics (returns PNG)",
30330 "method" : "GET",
30331 "name" : "rrd",
30332 "parameters" : {
30333 "additionalProperties" : 0,
30334 "properties" : {
30335 "cf" : {
30336 "description" : "The RRD consolidation function",
30337 "enum" : [
30338 "AVERAGE",
30339 "MAX"
30340 ],
30341 "optional" : 1,
30342 "type" : "string"
30343 },
30344 "ds" : {
30345 "description" : "The list of datasources you want to display.",
30346 "format" : "pve-configid-list",
30347 "type" : "string",
30348 "typetext" : "<string>"
30349 },
30350 "node" : {
30351 "description" : "The cluster node name.",
30352 "format" : "pve-node",
30353 "type" : "string",
30354 "typetext" : "<string>"
30355 },
30356 "timeframe" : {
30357 "description" : "Specify the time frame you are interested in.",
30358 "enum" : [
30359 "hour",
30360 "day",
30361 "week",
30362 "month",
30363 "year"
30364 ],
30365 "type" : "string"
30366 },
30367 "vmid" : {
30368 "description" : "The (unique) ID of the VM.",
30369 "format" : "pve-vmid",
30370 "minimum" : 1,
30371 "type" : "integer",
30372 "typetext" : "<integer> (1 - N)"
30373 }
30374 }
30375 },
30376 "permissions" : {
30377 "check" : [
30378 "perm",
30379 "/vms/{vmid}",
30380 [
30381 "VM.Audit"
30382 ]
30383 ]
30384 },
30385 "protected" : 1,
30386 "returns" : {
30387 "properties" : {
30388 "filename" : {
30389 "type" : "string"
30390 }
30391 },
30392 "type" : "object"
30393 }
30394 }
30395 },
30396 "leaf" : 1,
30397 "path" : "/nodes/{node}/lxc/{vmid}/rrd",
30398 "text" : "rrd"
30399 },
30400 {
30401 "info" : {
30402 "GET" : {
e9cd3bd4 30403 "allowtoken" : 1,
4d47f125
TL
30404 "description" : "Read VM RRD statistics",
30405 "method" : "GET",
30406 "name" : "rrddata",
30407 "parameters" : {
30408 "additionalProperties" : 0,
30409 "properties" : {
30410 "cf" : {
30411 "description" : "The RRD consolidation function",
30412 "enum" : [
30413 "AVERAGE",
30414 "MAX"
30415 ],
30416 "optional" : 1,
30417 "type" : "string"
30418 },
30419 "node" : {
30420 "description" : "The cluster node name.",
30421 "format" : "pve-node",
30422 "type" : "string",
30423 "typetext" : "<string>"
44660702 30424 },
4d47f125
TL
30425 "timeframe" : {
30426 "description" : "Specify the time frame you are interested in.",
30427 "enum" : [
30428 "hour",
30429 "day",
30430 "week",
30431 "month",
30432 "year"
44660702 30433 ],
4d47f125
TL
30434 "type" : "string"
30435 },
30436 "vmid" : {
30437 "description" : "The (unique) ID of the VM.",
30438 "format" : "pve-vmid",
30439 "minimum" : 1,
30440 "type" : "integer",
30441 "typetext" : "<integer> (1 - N)"
44660702 30442 }
4d47f125
TL
30443 }
30444 },
30445 "permissions" : {
30446 "check" : [
30447 "perm",
30448 "/vms/{vmid}",
30449 [
30450 "VM.Audit"
30451 ]
30452 ]
30453 },
30454 "protected" : 1,
30455 "returns" : {
30456 "items" : {
30457 "properties" : {},
30458 "type" : "object"
44660702 30459 },
4d47f125
TL
30460 "type" : "array"
30461 }
30462 }
30463 },
30464 "leaf" : 1,
30465 "path" : "/nodes/{node}/lxc/{vmid}/rrddata",
30466 "text" : "rrddata"
30467 },
30468 {
30469 "info" : {
30470 "POST" : {
e9cd3bd4 30471 "allowtoken" : 1,
4d47f125
TL
30472 "description" : "Creates a TCP VNC proxy connections.",
30473 "method" : "POST",
30474 "name" : "vncproxy",
30475 "parameters" : {
30476 "additionalProperties" : 0,
30477 "properties" : {
30478 "height" : {
30479 "description" : "sets the height of the console in pixels.",
30480 "maximum" : 2160,
30481 "minimum" : 16,
30482 "optional" : 1,
30483 "type" : "integer",
30484 "typetext" : "<integer> (16 - 2160)"
44660702 30485 },
4d47f125
TL
30486 "node" : {
30487 "description" : "The cluster node name.",
30488 "format" : "pve-node",
30489 "type" : "string",
30490 "typetext" : "<string>"
44660702 30491 },
4d47f125
TL
30492 "vmid" : {
30493 "description" : "The (unique) ID of the VM.",
30494 "format" : "pve-vmid",
30495 "minimum" : 1,
30496 "type" : "integer",
30497 "typetext" : "<integer> (1 - N)"
30498 },
30499 "websocket" : {
30500 "description" : "use websocket instead of standard VNC.",
30501 "optional" : 1,
30502 "type" : "boolean",
30503 "typetext" : "<boolean>"
30504 },
30505 "width" : {
30506 "description" : "sets the width of the console in pixels.",
30507 "maximum" : 4096,
30508 "minimum" : 16,
30509 "optional" : 1,
30510 "type" : "integer",
30511 "typetext" : "<integer> (16 - 4096)"
56122987
DM
30512 }
30513 }
44660702 30514 },
4d47f125
TL
30515 "permissions" : {
30516 "check" : [
30517 "perm",
30518 "/vms/{vmid}",
30519 [
30520 "VM.Console"
30521 ]
30522 ]
30523 },
30524 "protected" : 1,
30525 "returns" : {
30526 "additionalProperties" : 0,
30527 "properties" : {
30528 "cert" : {
30529 "type" : "string"
44660702 30530 },
4d47f125
TL
30531 "port" : {
30532 "type" : "integer"
30533 },
30534 "ticket" : {
30535 "type" : "string"
30536 },
30537 "upid" : {
30538 "type" : "string"
30539 },
30540 "user" : {
30541 "type" : "string"
30542 }
30543 }
30544 }
30545 }
30546 },
30547 "leaf" : 1,
30548 "path" : "/nodes/{node}/lxc/{vmid}/vncproxy",
30549 "text" : "vncproxy"
30550 },
30551 {
30552 "info" : {
30553 "POST" : {
e9cd3bd4 30554 "allowtoken" : 1,
4d47f125
TL
30555 "description" : "Creates a TCP proxy connection.",
30556 "method" : "POST",
30557 "name" : "termproxy",
30558 "parameters" : {
30559 "additionalProperties" : 0,
30560 "properties" : {
30561 "node" : {
30562 "description" : "The cluster node name.",
30563 "format" : "pve-node",
30564 "type" : "string",
30565 "typetext" : "<string>"
44660702 30566 },
4d47f125
TL
30567 "vmid" : {
30568 "description" : "The (unique) ID of the VM.",
30569 "format" : "pve-vmid",
30570 "minimum" : 1,
30571 "type" : "integer",
30572 "typetext" : "<integer> (1 - N)"
44660702 30573 }
4d47f125
TL
30574 }
30575 },
30576 "permissions" : {
30577 "check" : [
30578 "perm",
30579 "/vms/{vmid}",
30580 [
30581 "VM.Console"
30582 ]
30583 ]
30584 },
30585 "protected" : 1,
30586 "returns" : {
30587 "additionalProperties" : 0,
30588 "properties" : {
30589 "port" : {
30590 "type" : "integer"
56122987 30591 },
4d47f125
TL
30592 "ticket" : {
30593 "type" : "string"
7aacca6f 30594 },
4d47f125
TL
30595 "upid" : {
30596 "type" : "string"
30597 },
30598 "user" : {
30599 "type" : "string"
30600 }
30601 }
30602 }
30603 }
30604 },
30605 "leaf" : 1,
30606 "path" : "/nodes/{node}/lxc/{vmid}/termproxy",
30607 "text" : "termproxy"
30608 },
30609 {
30610 "info" : {
30611 "GET" : {
e9cd3bd4 30612 "allowtoken" : 1,
4d47f125
TL
30613 "description" : "Opens a weksocket for VNC traffic.",
30614 "method" : "GET",
30615 "name" : "vncwebsocket",
30616 "parameters" : {
30617 "additionalProperties" : 0,
30618 "properties" : {
30619 "node" : {
30620 "description" : "The cluster node name.",
30621 "format" : "pve-node",
30622 "type" : "string",
30623 "typetext" : "<string>"
30624 },
30625 "port" : {
30626 "description" : "Port number returned by previous vncproxy call.",
30627 "maximum" : 5999,
30628 "minimum" : 5900,
30629 "type" : "integer",
30630 "typetext" : "<integer> (5900 - 5999)"
30631 },
30632 "vmid" : {
30633 "description" : "The (unique) ID of the VM.",
30634 "format" : "pve-vmid",
30635 "minimum" : 1,
30636 "type" : "integer",
30637 "typetext" : "<integer> (1 - N)"
30638 },
30639 "vncticket" : {
30640 "description" : "Ticket from previous call to vncproxy.",
30641 "maxLength" : 512,
30642 "type" : "string",
30643 "typetext" : "<string>"
56122987
DM
30644 }
30645 }
30646 },
4d47f125
TL
30647 "permissions" : {
30648 "check" : [
30649 "perm",
30650 "/vms/{vmid}",
30651 [
30652 "VM.Console"
30653 ]
30654 ],
30655 "description" : "You also need to pass a valid ticket (vncticket)."
30656 },
30657 "returns" : {
30658 "properties" : {
30659 "port" : {
30660 "type" : "string"
30661 }
30662 },
30663 "type" : "object"
30664 }
30665 }
30666 },
30667 "leaf" : 1,
30668 "path" : "/nodes/{node}/lxc/{vmid}/vncwebsocket",
30669 "text" : "vncwebsocket"
30670 },
30671 {
30672 "info" : {
30673 "POST" : {
e9cd3bd4 30674 "allowtoken" : 1,
4d47f125
TL
30675 "description" : "Returns a SPICE configuration to connect to the CT.",
30676 "method" : "POST",
30677 "name" : "spiceproxy",
30678 "parameters" : {
30679 "additionalProperties" : 0,
30680 "properties" : {
30681 "node" : {
30682 "description" : "The cluster node name.",
30683 "format" : "pve-node",
30684 "type" : "string",
30685 "typetext" : "<string>"
56122987 30686 },
4d47f125
TL
30687 "proxy" : {
30688 "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).",
30689 "format" : "address",
30690 "optional" : 1,
30691 "type" : "string",
30692 "typetext" : "<string>"
44660702 30693 },
4d47f125
TL
30694 "vmid" : {
30695 "description" : "The (unique) ID of the VM.",
30696 "format" : "pve-vmid",
30697 "minimum" : 1,
30698 "type" : "integer",
30699 "typetext" : "<integer> (1 - N)"
44660702 30700 }
56122987
DM
30701 }
30702 },
4d47f125
TL
30703 "permissions" : {
30704 "check" : [
30705 "perm",
30706 "/vms/{vmid}",
30707 [
30708 "VM.Console"
30709 ]
30710 ]
30711 },
30712 "protected" : 1,
30713 "proxyto" : "node",
30714 "returns" : {
30715 "additionalProperties" : 1,
30716 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
30717 "properties" : {
30718 "host" : {
30719 "type" : "string"
30720 },
30721 "password" : {
30722 "type" : "string"
30723 },
30724 "proxy" : {
30725 "type" : "string"
30726 },
30727 "tls-port" : {
30728 "type" : "integer"
30729 },
30730 "type" : {
30731 "type" : "string"
30732 }
30733 }
30734 }
30735 }
30736 },
30737 "leaf" : 1,
30738 "path" : "/nodes/{node}/lxc/{vmid}/spiceproxy",
30739 "text" : "spiceproxy"
30740 },
81a3384d
TL
30741 {
30742 "info" : {
30743 "POST" : {
30744 "allowtoken" : 1,
30745 "description" : "Migrate the container to another cluster. Creates a new migration task. EXPERIMENTAL feature!",
30746 "method" : "POST",
30747 "name" : "remote_migrate_vm",
30748 "parameters" : {
30749 "additionalProperties" : 0,
30750 "properties" : {
30751 "bwlimit" : {
30752 "default" : "migrate limit from datacenter or storage config",
30753 "description" : "Override I/O bandwidth limit (in KiB/s).",
30754 "minimum" : "0",
30755 "optional" : 1,
30756 "type" : "number",
30757 "typetext" : "<number> (0 - N)"
30758 },
30759 "delete" : {
30760 "default" : 0,
30761 "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.",
30762 "optional" : 1,
30763 "type" : "boolean",
30764 "typetext" : "<boolean>"
30765 },
30766 "node" : {
30767 "description" : "The cluster node name.",
30768 "format" : "pve-node",
30769 "type" : "string",
30770 "typetext" : "<string>"
30771 },
30772 "online" : {
30773 "description" : "Use online/live migration.",
30774 "optional" : 1,
30775 "type" : "boolean",
30776 "typetext" : "<boolean>"
30777 },
30778 "restart" : {
30779 "description" : "Use restart migration",
30780 "optional" : 1,
30781 "type" : "boolean",
30782 "typetext" : "<boolean>"
30783 },
30784 "target-bridge" : {
30785 "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.",
30786 "format" : "bridge-pair-list",
30787 "type" : "string",
30788 "typetext" : "<string>"
30789 },
30790 "target-endpoint" : {
30791 "description" : "Remote target endpoint",
30792 "format" : "proxmox-remote",
30793 "type" : "string",
30794 "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>]"
30795 },
30796 "target-storage" : {
30797 "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.",
30798 "format" : "storage-pair-list",
30799 "optional" : 0,
30800 "type" : "string",
30801 "typetext" : "<string>"
30802 },
30803 "target-vmid" : {
30804 "description" : "The (unique) ID of the VM.",
30805 "format" : "pve-vmid",
30806 "minimum" : 1,
30807 "optional" : 1,
30808 "type" : "integer",
30809 "typetext" : "<integer> (1 - N)"
30810 },
30811 "timeout" : {
30812 "default" : 180,
30813 "description" : "Timeout in seconds for shutdown for restart migration",
30814 "optional" : 1,
30815 "type" : "integer",
30816 "typetext" : "<integer>"
30817 },
30818 "vmid" : {
30819 "description" : "The (unique) ID of the VM.",
30820 "format" : "pve-vmid",
30821 "minimum" : 1,
30822 "type" : "integer",
30823 "typetext" : "<integer> (1 - N)"
30824 }
30825 }
30826 },
30827 "permissions" : {
30828 "check" : [
30829 "perm",
30830 "/vms/{vmid}",
30831 [
30832 "VM.Migrate"
30833 ]
30834 ]
30835 },
30836 "protected" : 1,
30837 "proxyto" : "node",
30838 "returns" : {
30839 "description" : "the task ID.",
30840 "type" : "string"
30841 }
30842 }
30843 },
30844 "leaf" : 1,
30845 "path" : "/nodes/{node}/lxc/{vmid}/remote_migrate",
30846 "text" : "remote_migrate"
30847 },
4d47f125
TL
30848 {
30849 "info" : {
30850 "POST" : {
e9cd3bd4 30851 "allowtoken" : 1,
4d47f125
TL
30852 "description" : "Migrate the container to another node. Creates a new migration task.",
30853 "method" : "POST",
30854 "name" : "migrate_vm",
30855 "parameters" : {
30856 "additionalProperties" : 0,
30857 "properties" : {
95895385
TL
30858 "bwlimit" : {
30859 "default" : "migrate limit from datacenter or storage config",
30860 "description" : "Override I/O bandwidth limit (in KiB/s).",
30861 "minimum" : "0",
30862 "optional" : 1,
30863 "type" : "number",
30864 "typetext" : "<number> (0 - N)"
30865 },
4d47f125
TL
30866 "node" : {
30867 "description" : "The cluster node name.",
30868 "format" : "pve-node",
30869 "type" : "string",
30870 "typetext" : "<string>"
44660702 30871 },
4d47f125
TL
30872 "online" : {
30873 "description" : "Use online/live migration.",
30874 "optional" : 1,
30875 "type" : "boolean",
30876 "typetext" : "<boolean>"
30877 },
30878 "restart" : {
30879 "description" : "Use restart migration",
30880 "optional" : 1,
30881 "type" : "boolean",
30882 "typetext" : "<boolean>"
30883 },
30884 "target" : {
30885 "description" : "Target node.",
30886 "format" : "pve-node",
30887 "type" : "string",
30888 "typetext" : "<string>"
30889 },
c30bb419
TL
30890 "target-storage" : {
30891 "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.",
30892 "format" : "storage-pair-list",
30893 "optional" : 1,
30894 "type" : "string",
30895 "typetext" : "<string>"
30896 },
4d47f125
TL
30897 "timeout" : {
30898 "default" : 180,
30899 "description" : "Timeout in seconds for shutdown for restart migration",
30900 "optional" : 1,
30901 "type" : "integer",
30902 "typetext" : "<integer>"
30903 },
30904 "vmid" : {
30905 "description" : "The (unique) ID of the VM.",
30906 "format" : "pve-vmid",
30907 "minimum" : 1,
30908 "type" : "integer",
30909 "typetext" : "<integer> (1 - N)"
56122987
DM
30910 }
30911 }
30912 },
4d47f125
TL
30913 "permissions" : {
30914 "check" : [
30915 "perm",
30916 "/vms/{vmid}",
30917 [
30918 "VM.Migrate"
30919 ]
30920 ]
30921 },
30922 "protected" : 1,
30923 "proxyto" : "node",
30924 "returns" : {
30925 "description" : "the task ID.",
30926 "type" : "string"
30927 }
56122987 30928 }
4d47f125
TL
30929 },
30930 "leaf" : 1,
30931 "path" : "/nodes/{node}/lxc/{vmid}/migrate",
30932 "text" : "migrate"
30933 },
30934 {
56122987
DM
30935 "info" : {
30936 "GET" : {
e9cd3bd4 30937 "allowtoken" : 1,
4d47f125 30938 "description" : "Check if feature for virtual machine is available.",
44660702 30939 "method" : "GET",
4d47f125 30940 "name" : "vm_feature",
56122987 30941 "parameters" : {
44660702 30942 "additionalProperties" : 0,
56122987 30943 "properties" : {
4d47f125
TL
30944 "feature" : {
30945 "description" : "Feature to check.",
30946 "enum" : [
30947 "snapshot",
30948 "clone",
30949 "copy"
30950 ],
30951 "type" : "string"
30952 },
56122987 30953 "node" : {
44660702 30954 "description" : "The cluster node name.",
56122987 30955 "format" : "pve-node",
013dc89f
DM
30956 "type" : "string",
30957 "typetext" : "<string>"
44660702 30958 },
4d47f125
TL
30959 "snapname" : {
30960 "description" : "The name of the snapshot.",
30961 "format" : "pve-configid",
30962 "maxLength" : 40,
30963 "optional" : 1,
30964 "type" : "string",
30965 "typetext" : "<string>"
30966 },
44660702
DM
30967 "vmid" : {
30968 "description" : "The (unique) ID of the VM.",
30969 "format" : "pve-vmid",
30970 "minimum" : 1,
4bd7df8b 30971 "type" : "integer",
013dc89f 30972 "typetext" : "<integer> (1 - N)"
56122987 30973 }
44660702
DM
30974 }
30975 },
30976 "permissions" : {
4d47f125
TL
30977 "check" : [
30978 "perm",
30979 "/vms/{vmid}",
30980 [
30981 "VM.Audit"
30982 ]
30983 ]
56122987 30984 },
4d47f125
TL
30985 "protected" : 1,
30986 "proxyto" : "node",
56122987 30987 "returns" : {
4d47f125
TL
30988 "properties" : {
30989 "hasFeature" : {
30990 "type" : "boolean"
30991 }
7aacca6f 30992 },
4d47f125
TL
30993 "type" : "object"
30994 }
30995 }
30996 },
30997 "leaf" : 1,
30998 "path" : "/nodes/{node}/lxc/{vmid}/feature",
30999 "text" : "feature"
31000 },
31001 {
31002 "info" : {
31003 "POST" : {
e9cd3bd4 31004 "allowtoken" : 1,
4d47f125
TL
31005 "description" : "Create a Template.",
31006 "method" : "POST",
31007 "name" : "template",
31008 "parameters" : {
31009 "additionalProperties" : 0,
31010 "properties" : {
31011 "node" : {
31012 "description" : "The cluster node name.",
31013 "format" : "pve-node",
31014 "type" : "string",
31015 "typetext" : "<string>"
31016 },
31017 "vmid" : {
31018 "description" : "The (unique) ID of the VM.",
31019 "format" : "pve-vmid",
31020 "minimum" : 1,
31021 "type" : "integer",
31022 "typetext" : "<integer> (1 - N)"
56122987 31023 }
4d47f125
TL
31024 }
31025 },
31026 "permissions" : {
31027 "check" : [
31028 "perm",
31029 "/vms/{vmid}",
31030 [
31031 "VM.Allocate"
31032 ]
44660702 31033 ],
4d47f125
TL
31034 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
31035 },
31036 "protected" : 1,
31037 "proxyto" : "node",
31038 "returns" : {
31039 "type" : "null"
56122987
DM
31040 }
31041 }
31042 },
4d47f125
TL
31043 "leaf" : 1,
31044 "path" : "/nodes/{node}/lxc/{vmid}/template",
31045 "text" : "template"
56122987
DM
31046 },
31047 {
56122987 31048 "info" : {
4d47f125 31049 "POST" : {
e9cd3bd4 31050 "allowtoken" : 1,
4d47f125
TL
31051 "description" : "Create a container clone/copy",
31052 "method" : "POST",
31053 "name" : "clone_vm",
56122987 31054 "parameters" : {
7aacca6f 31055 "additionalProperties" : 0,
56122987 31056 "properties" : {
95895385
TL
31057 "bwlimit" : {
31058 "default" : "clone limit from datacenter or storage config",
31059 "description" : "Override I/O bandwidth limit (in KiB/s).",
31060 "minimum" : "0",
31061 "optional" : 1,
31062 "type" : "number",
31063 "typetext" : "<number> (0 - N)"
31064 },
4d47f125
TL
31065 "description" : {
31066 "description" : "Description for the new CT.",
44660702 31067 "optional" : 1,
4d47f125
TL
31068 "type" : "string",
31069 "typetext" : "<string>"
44660702 31070 },
4d47f125
TL
31071 "full" : {
31072 "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.",
31073 "optional" : 1,
31074 "type" : "boolean",
31075 "typetext" : "<boolean>"
31076 },
31077 "hostname" : {
31078 "description" : "Set a hostname for the new CT.",
31079 "format" : "dns-name",
31080 "optional" : 1,
013dc89f
DM
31081 "type" : "string",
31082 "typetext" : "<string>"
44660702 31083 },
4d47f125
TL
31084 "newid" : {
31085 "description" : "VMID for the clone.",
31086 "format" : "pve-vmid",
31087 "minimum" : 1,
31088 "type" : "integer",
31089 "typetext" : "<integer> (1 - N)"
31090 },
7aacca6f
DM
31091 "node" : {
31092 "description" : "The cluster node name.",
44660702 31093 "format" : "pve-node",
013dc89f
DM
31094 "type" : "string",
31095 "typetext" : "<string>"
56122987 31096 },
4d47f125
TL
31097 "pool" : {
31098 "description" : "Add the new CT to the specified pool.",
31099 "format" : "pve-poolid",
31100 "optional" : 1,
31101 "type" : "string",
31102 "typetext" : "<string>"
31103 },
31104 "snapname" : {
31105 "description" : "The name of the snapshot.",
31106 "format" : "pve-configid",
31107 "maxLength" : 40,
31108 "optional" : 1,
31109 "type" : "string",
31110 "typetext" : "<string>"
31111 },
31112 "storage" : {
31113 "description" : "Target storage for full clone.",
31114 "format" : "pve-storage-id",
31115 "optional" : 1,
31116 "type" : "string",
31117 "typetext" : "<string>"
31118 },
31119 "target" : {
31120 "description" : "Target node. Only allowed if the original VM is on shared storage.",
31121 "format" : "pve-node",
31122 "optional" : 1,
31123 "type" : "string",
31124 "typetext" : "<string>"
31125 },
7aacca6f 31126 "vmid" : {
44660702 31127 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
31128 "format" : "pve-vmid",
31129 "minimum" : 1,
4bd7df8b 31130 "type" : "integer",
013dc89f 31131 "typetext" : "<integer> (1 - N)"
56122987 31132 }
7aacca6f
DM
31133 }
31134 },
31135 "permissions" : {
31136 "check" : [
4d47f125 31137 "and",
7aacca6f 31138 [
4d47f125
TL
31139 "perm",
31140 "/vms/{vmid}",
31141 [
31142 "VM.Clone"
31143 ]
31144 ],
31145 [
31146 "or",
31147 [
31148 "perm",
31149 "/vms/{newid}",
31150 [
31151 "VM.Allocate"
31152 ]
31153 ],
31154 [
31155 "perm",
31156 "/pool/{pool}",
31157 [
31158 "VM.Allocate"
31159 ],
31160 "require_param",
31161 "pool"
31162 ]
7aacca6f 31163 ]
4d47f125 31164 ],
159464a9 31165 "description" : "You need 'VM.Clone' permissions on /vms/{vmid}, and 'VM.Allocate' permissions on /vms/{newid} (or on the VM pool /pool/{pool}). You also need 'Datastore.AllocateSpace' on any used storage, and 'SDN.Use' on any bridge."
56122987 31166 },
44660702 31167 "protected" : 1,
4d47f125 31168 "proxyto" : "node",
7aacca6f 31169 "returns" : {
4d47f125 31170 "type" : "string"
7aacca6f 31171 }
56122987 31172 }
7aacca6f 31173 },
44660702 31174 "leaf" : 1,
4d47f125
TL
31175 "path" : "/nodes/{node}/lxc/{vmid}/clone",
31176 "text" : "clone"
56122987
DM
31177 },
31178 {
56122987 31179 "info" : {
4d47f125 31180 "PUT" : {
e9cd3bd4 31181 "allowtoken" : 1,
4d47f125
TL
31182 "description" : "Resize a container mount point.",
31183 "method" : "PUT",
31184 "name" : "resize_vm",
56122987 31185 "parameters" : {
7aacca6f 31186 "additionalProperties" : 0,
56122987 31187 "properties" : {
4d47f125
TL
31188 "digest" : {
31189 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
31190 "maxLength" : 40,
31191 "optional" : 1,
31192 "type" : "string",
31193 "typetext" : "<string>"
31194 },
31195 "disk" : {
31196 "description" : "The disk you want to resize.",
44660702 31197 "enum" : [
4d47f125
TL
31198 "rootfs",
31199 "mp0",
31200 "mp1",
31201 "mp2",
31202 "mp3",
31203 "mp4",
31204 "mp5",
31205 "mp6",
31206 "mp7",
31207 "mp8",
31208 "mp9",
31209 "mp10",
31210 "mp11",
31211 "mp12",
31212 "mp13",
31213 "mp14",
31214 "mp15",
31215 "mp16",
31216 "mp17",
31217 "mp18",
31218 "mp19",
31219 "mp20",
31220 "mp21",
31221 "mp22",
31222 "mp23",
31223 "mp24",
31224 "mp25",
31225 "mp26",
31226 "mp27",
31227 "mp28",
31228 "mp29",
31229 "mp30",
31230 "mp31",
31231 "mp32",
31232 "mp33",
31233 "mp34",
31234 "mp35",
31235 "mp36",
31236 "mp37",
31237 "mp38",
31238 "mp39",
31239 "mp40",
31240 "mp41",
31241 "mp42",
31242 "mp43",
31243 "mp44",
31244 "mp45",
31245 "mp46",
31246 "mp47",
31247 "mp48",
31248 "mp49",
31249 "mp50",
31250 "mp51",
31251 "mp52",
31252 "mp53",
31253 "mp54",
31254 "mp55",
31255 "mp56",
31256 "mp57",
31257 "mp58",
31258 "mp59",
31259 "mp60",
31260 "mp61",
31261 "mp62",
31262 "mp63",
31263 "mp64",
31264 "mp65",
31265 "mp66",
31266 "mp67",
31267 "mp68",
31268 "mp69",
31269 "mp70",
31270 "mp71",
31271 "mp72",
31272 "mp73",
31273 "mp74",
31274 "mp75",
31275 "mp76",
31276 "mp77",
31277 "mp78",
31278 "mp79",
31279 "mp80",
31280 "mp81",
31281 "mp82",
31282 "mp83",
31283 "mp84",
31284 "mp85",
31285 "mp86",
31286 "mp87",
31287 "mp88",
31288 "mp89",
31289 "mp90",
31290 "mp91",
31291 "mp92",
31292 "mp93",
31293 "mp94",
31294 "mp95",
31295 "mp96",
31296 "mp97",
31297 "mp98",
31298 "mp99",
31299 "mp100",
31300 "mp101",
31301 "mp102",
31302 "mp103",
31303 "mp104",
31304 "mp105",
31305 "mp106",
31306 "mp107",
31307 "mp108",
31308 "mp109",
31309 "mp110",
31310 "mp111",
31311 "mp112",
31312 "mp113",
31313 "mp114",
31314 "mp115",
31315 "mp116",
31316 "mp117",
31317 "mp118",
31318 "mp119",
31319 "mp120",
31320 "mp121",
31321 "mp122",
31322 "mp123",
31323 "mp124",
31324 "mp125",
31325 "mp126",
31326 "mp127",
31327 "mp128",
31328 "mp129",
31329 "mp130",
31330 "mp131",
31331 "mp132",
31332 "mp133",
31333 "mp134",
31334 "mp135",
31335 "mp136",
31336 "mp137",
31337 "mp138",
31338 "mp139",
31339 "mp140",
31340 "mp141",
31341 "mp142",
31342 "mp143",
31343 "mp144",
31344 "mp145",
31345 "mp146",
31346 "mp147",
31347 "mp148",
31348 "mp149",
31349 "mp150",
31350 "mp151",
31351 "mp152",
31352 "mp153",
31353 "mp154",
31354 "mp155",
31355 "mp156",
31356 "mp157",
31357 "mp158",
31358 "mp159",
31359 "mp160",
31360 "mp161",
31361 "mp162",
31362 "mp163",
31363 "mp164",
31364 "mp165",
31365 "mp166",
31366 "mp167",
31367 "mp168",
31368 "mp169",
31369 "mp170",
31370 "mp171",
31371 "mp172",
31372 "mp173",
31373 "mp174",
31374 "mp175",
31375 "mp176",
31376 "mp177",
31377 "mp178",
31378 "mp179",
31379 "mp180",
31380 "mp181",
31381 "mp182",
31382 "mp183",
31383 "mp184",
31384 "mp185",
31385 "mp186",
31386 "mp187",
31387 "mp188",
31388 "mp189",
31389 "mp190",
31390 "mp191",
31391 "mp192",
31392 "mp193",
31393 "mp194",
31394 "mp195",
31395 "mp196",
31396 "mp197",
31397 "mp198",
31398 "mp199",
31399 "mp200",
31400 "mp201",
31401 "mp202",
31402 "mp203",
31403 "mp204",
31404 "mp205",
31405 "mp206",
31406 "mp207",
31407 "mp208",
31408 "mp209",
31409 "mp210",
31410 "mp211",
31411 "mp212",
31412 "mp213",
31413 "mp214",
31414 "mp215",
31415 "mp216",
31416 "mp217",
31417 "mp218",
31418 "mp219",
31419 "mp220",
31420 "mp221",
31421 "mp222",
31422 "mp223",
31423 "mp224",
31424 "mp225",
31425 "mp226",
31426 "mp227",
31427 "mp228",
31428 "mp229",
31429 "mp230",
31430 "mp231",
31431 "mp232",
31432 "mp233",
31433 "mp234",
31434 "mp235",
31435 "mp236",
31436 "mp237",
31437 "mp238",
31438 "mp239",
31439 "mp240",
31440 "mp241",
31441 "mp242",
31442 "mp243",
31443 "mp244",
31444 "mp245",
31445 "mp246",
31446 "mp247",
31447 "mp248",
31448 "mp249",
31449 "mp250",
31450 "mp251",
31451 "mp252",
31452 "mp253",
31453 "mp254",
31454 "mp255"
44660702 31455 ],
44660702
DM
31456 "type" : "string"
31457 },
7aacca6f 31458 "node" : {
44660702 31459 "description" : "The cluster node name.",
7aacca6f 31460 "format" : "pve-node",
013dc89f
DM
31461 "type" : "string",
31462 "typetext" : "<string>"
7aacca6f 31463 },
4d47f125
TL
31464 "size" : {
31465 "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.",
31466 "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
44660702 31467 "type" : "string"
7aacca6f
DM
31468 },
31469 "vmid" : {
31470 "description" : "The (unique) ID of the VM.",
44660702 31471 "format" : "pve-vmid",
7aacca6f 31472 "minimum" : 1,
4bd7df8b 31473 "type" : "integer",
013dc89f 31474 "typetext" : "<integer> (1 - N)"
56122987 31475 }
56122987
DM
31476 }
31477 },
56122987
DM
31478 "permissions" : {
31479 "check" : [
31480 "perm",
31481 "/vms/{vmid}",
31482 [
4d47f125
TL
31483 "VM.Config.Disk"
31484 ],
31485 "any",
31486 1
56122987
DM
31487 ]
31488 },
7aacca6f 31489 "protected" : 1,
4d47f125 31490 "proxyto" : "node",
7aacca6f 31491 "returns" : {
4d47f125
TL
31492 "description" : "the task ID.",
31493 "type" : "string"
44660702 31494 }
56122987
DM
31495 }
31496 },
44660702 31497 "leaf" : 1,
4d47f125
TL
31498 "path" : "/nodes/{node}/lxc/{vmid}/resize",
31499 "text" : "resize"
56122987
DM
31500 },
31501 {
31502 "info" : {
31503 "POST" : {
e9cd3bd4 31504 "allowtoken" : 1,
5370fa8c 31505 "description" : "Move a rootfs-/mp-volume to a different storage or to a different container.",
44660702 31506 "method" : "POST",
4d47f125 31507 "name" : "move_volume",
7aacca6f 31508 "parameters" : {
44660702 31509 "additionalProperties" : 0,
7aacca6f 31510 "properties" : {
95895385
TL
31511 "bwlimit" : {
31512 "default" : "clone limit from datacenter or storage config",
31513 "description" : "Override I/O bandwidth limit (in KiB/s).",
31514 "minimum" : "0",
31515 "optional" : 1,
31516 "type" : "number",
31517 "typetext" : "<number> (0 - N)"
31518 },
4d47f125
TL
31519 "delete" : {
31520 "default" : 0,
31521 "description" : "Delete the original volume after successful copy. By default the original is kept as an unused volume entry.",
5d9c884c 31522 "optional" : 1,
4d47f125
TL
31523 "type" : "boolean",
31524 "typetext" : "<boolean>"
31525 },
31526 "digest" : {
5370fa8c 31527 "description" : "Prevent changes if current configuration file has different SHA1 \" .\n\t\t \"digest. This can be used to prevent concurrent modifications.",
4d47f125
TL
31528 "maxLength" : 40,
31529 "optional" : 1,
31530 "type" : "string",
31531 "typetext" : "<string>"
5d9c884c 31532 },
44660702
DM
31533 "node" : {
31534 "description" : "The cluster node name.",
31535 "format" : "pve-node",
013dc89f
DM
31536 "type" : "string",
31537 "typetext" : "<string>"
44660702 31538 },
4d47f125
TL
31539 "storage" : {
31540 "description" : "Target Storage.",
31541 "format" : "pve-storage-id",
5370fa8c 31542 "optional" : 1,
4d47f125
TL
31543 "type" : "string",
31544 "typetext" : "<string>"
31545 },
5370fa8c
TL
31546 "target-digest" : {
31547 "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.",
31548 "maxLength" : 40,
31549 "optional" : 1,
31550 "type" : "string",
31551 "typetext" : "<string>"
31552 },
31553 "target-vmid" : {
44660702 31554 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
31555 "format" : "pve-vmid",
31556 "minimum" : 1,
5370fa8c 31557 "optional" : 1,
4bd7df8b 31558 "type" : "integer",
013dc89f 31559 "typetext" : "<integer> (1 - N)"
7aacca6f 31560 },
5370fa8c
TL
31561 "target-volume" : {
31562 "description" : "The config key the volume will be moved to. Default is the source volume key.",
4d47f125
TL
31563 "enum" : [
31564 "rootfs",
31565 "mp0",
31566 "mp1",
31567 "mp2",
31568 "mp3",
31569 "mp4",
31570 "mp5",
31571 "mp6",
31572 "mp7",
31573 "mp8",
31574 "mp9",
31575 "mp10",
31576 "mp11",
31577 "mp12",
31578 "mp13",
31579 "mp14",
31580 "mp15",
31581 "mp16",
31582 "mp17",
31583 "mp18",
31584 "mp19",
31585 "mp20",
31586 "mp21",
31587 "mp22",
31588 "mp23",
31589 "mp24",
31590 "mp25",
31591 "mp26",
31592 "mp27",
31593 "mp28",
31594 "mp29",
31595 "mp30",
31596 "mp31",
31597 "mp32",
31598 "mp33",
31599 "mp34",
31600 "mp35",
31601 "mp36",
31602 "mp37",
31603 "mp38",
31604 "mp39",
31605 "mp40",
31606 "mp41",
31607 "mp42",
31608 "mp43",
31609 "mp44",
31610 "mp45",
31611 "mp46",
31612 "mp47",
31613 "mp48",
31614 "mp49",
31615 "mp50",
31616 "mp51",
31617 "mp52",
31618 "mp53",
31619 "mp54",
31620 "mp55",
31621 "mp56",
31622 "mp57",
31623 "mp58",
31624 "mp59",
31625 "mp60",
31626 "mp61",
31627 "mp62",
31628 "mp63",
31629 "mp64",
31630 "mp65",
31631 "mp66",
31632 "mp67",
31633 "mp68",
31634 "mp69",
31635 "mp70",
31636 "mp71",
31637 "mp72",
31638 "mp73",
31639 "mp74",
31640 "mp75",
31641 "mp76",
31642 "mp77",
31643 "mp78",
31644 "mp79",
31645 "mp80",
31646 "mp81",
31647 "mp82",
31648 "mp83",
31649 "mp84",
31650 "mp85",
31651 "mp86",
31652 "mp87",
31653 "mp88",
31654 "mp89",
31655 "mp90",
31656 "mp91",
31657 "mp92",
31658 "mp93",
31659 "mp94",
31660 "mp95",
31661 "mp96",
31662 "mp97",
31663 "mp98",
31664 "mp99",
31665 "mp100",
31666 "mp101",
31667 "mp102",
31668 "mp103",
31669 "mp104",
31670 "mp105",
31671 "mp106",
31672 "mp107",
31673 "mp108",
31674 "mp109",
31675 "mp110",
31676 "mp111",
31677 "mp112",
31678 "mp113",
31679 "mp114",
31680 "mp115",
31681 "mp116",
31682 "mp117",
31683 "mp118",
31684 "mp119",
31685 "mp120",
31686 "mp121",
31687 "mp122",
31688 "mp123",
31689 "mp124",
31690 "mp125",
31691 "mp126",
31692 "mp127",
31693 "mp128",
31694 "mp129",
31695 "mp130",
31696 "mp131",
31697 "mp132",
31698 "mp133",
31699 "mp134",
31700 "mp135",
31701 "mp136",
31702 "mp137",
31703 "mp138",
31704 "mp139",
31705 "mp140",
31706 "mp141",
31707 "mp142",
31708 "mp143",
31709 "mp144",
31710 "mp145",
31711 "mp146",
31712 "mp147",
31713 "mp148",
31714 "mp149",
31715 "mp150",
31716 "mp151",
31717 "mp152",
31718 "mp153",
31719 "mp154",
31720 "mp155",
31721 "mp156",
31722 "mp157",
31723 "mp158",
31724 "mp159",
31725 "mp160",
31726 "mp161",
31727 "mp162",
31728 "mp163",
31729 "mp164",
31730 "mp165",
31731 "mp166",
31732 "mp167",
31733 "mp168",
31734 "mp169",
31735 "mp170",
31736 "mp171",
31737 "mp172",
31738 "mp173",
31739 "mp174",
31740 "mp175",
31741 "mp176",
31742 "mp177",
31743 "mp178",
31744 "mp179",
31745 "mp180",
31746 "mp181",
31747 "mp182",
31748 "mp183",
31749 "mp184",
31750 "mp185",
31751 "mp186",
31752 "mp187",
31753 "mp188",
31754 "mp189",
31755 "mp190",
31756 "mp191",
31757 "mp192",
31758 "mp193",
31759 "mp194",
31760 "mp195",
31761 "mp196",
31762 "mp197",
31763 "mp198",
31764 "mp199",
31765 "mp200",
31766 "mp201",
31767 "mp202",
31768 "mp203",
31769 "mp204",
31770 "mp205",
31771 "mp206",
31772 "mp207",
31773 "mp208",
31774 "mp209",
31775 "mp210",
31776 "mp211",
31777 "mp212",
31778 "mp213",
31779 "mp214",
31780 "mp215",
31781 "mp216",
31782 "mp217",
31783 "mp218",
31784 "mp219",
31785 "mp220",
31786 "mp221",
31787 "mp222",
31788 "mp223",
31789 "mp224",
31790 "mp225",
31791 "mp226",
31792 "mp227",
31793 "mp228",
31794 "mp229",
31795 "mp230",
31796 "mp231",
31797 "mp232",
31798 "mp233",
31799 "mp234",
31800 "mp235",
31801 "mp236",
31802 "mp237",
31803 "mp238",
31804 "mp239",
31805 "mp240",
31806 "mp241",
31807 "mp242",
31808 "mp243",
31809 "mp244",
31810 "mp245",
31811 "mp246",
31812 "mp247",
31813 "mp248",
31814 "mp249",
31815 "mp250",
31816 "mp251",
31817 "mp252",
31818 "mp253",
31819 "mp254",
5370fa8c
TL
31820 "mp255",
31821 "unused0",
31822 "unused1",
31823 "unused2",
31824 "unused3",
31825 "unused4",
31826 "unused5",
31827 "unused6",
31828 "unused7",
31829 "unused8",
31830 "unused9",
31831 "unused10",
31832 "unused11",
31833 "unused12",
31834 "unused13",
31835 "unused14",
31836 "unused15",
31837 "unused16",
31838 "unused17",
31839 "unused18",
31840 "unused19",
31841 "unused20",
31842 "unused21",
31843 "unused22",
31844 "unused23",
31845 "unused24",
31846 "unused25",
31847 "unused26",
31848 "unused27",
31849 "unused28",
31850 "unused29",
31851 "unused30",
31852 "unused31",
31853 "unused32",
31854 "unused33",
31855 "unused34",
31856 "unused35",
31857 "unused36",
31858 "unused37",
31859 "unused38",
31860 "unused39",
31861 "unused40",
31862 "unused41",
31863 "unused42",
31864 "unused43",
31865 "unused44",
31866 "unused45",
31867 "unused46",
31868 "unused47",
31869 "unused48",
31870 "unused49",
31871 "unused50",
31872 "unused51",
31873 "unused52",
31874 "unused53",
31875 "unused54",
31876 "unused55",
31877 "unused56",
31878 "unused57",
31879 "unused58",
31880 "unused59",
31881 "unused60",
31882 "unused61",
31883 "unused62",
31884 "unused63",
31885 "unused64",
31886 "unused65",
31887 "unused66",
31888 "unused67",
31889 "unused68",
31890 "unused69",
31891 "unused70",
31892 "unused71",
31893 "unused72",
31894 "unused73",
31895 "unused74",
31896 "unused75",
31897 "unused76",
31898 "unused77",
31899 "unused78",
31900 "unused79",
31901 "unused80",
31902 "unused81",
31903 "unused82",
31904 "unused83",
31905 "unused84",
31906 "unused85",
31907 "unused86",
31908 "unused87",
31909 "unused88",
31910 "unused89",
31911 "unused90",
31912 "unused91",
31913 "unused92",
31914 "unused93",
31915 "unused94",
31916 "unused95",
31917 "unused96",
31918 "unused97",
31919 "unused98",
31920 "unused99",
31921 "unused100",
31922 "unused101",
31923 "unused102",
31924 "unused103",
31925 "unused104",
31926 "unused105",
31927 "unused106",
31928 "unused107",
31929 "unused108",
31930 "unused109",
31931 "unused110",
31932 "unused111",
31933 "unused112",
31934 "unused113",
31935 "unused114",
31936 "unused115",
31937 "unused116",
31938 "unused117",
31939 "unused118",
31940 "unused119",
31941 "unused120",
31942 "unused121",
31943 "unused122",
31944 "unused123",
31945 "unused124",
31946 "unused125",
31947 "unused126",
31948 "unused127",
31949 "unused128",
31950 "unused129",
31951 "unused130",
31952 "unused131",
31953 "unused132",
31954 "unused133",
31955 "unused134",
31956 "unused135",
31957 "unused136",
31958 "unused137",
31959 "unused138",
31960 "unused139",
31961 "unused140",
31962 "unused141",
31963 "unused142",
31964 "unused143",
31965 "unused144",
31966 "unused145",
31967 "unused146",
31968 "unused147",
31969 "unused148",
31970 "unused149",
31971 "unused150",
31972 "unused151",
31973 "unused152",
31974 "unused153",
31975 "unused154",
31976 "unused155",
31977 "unused156",
31978 "unused157",
31979 "unused158",
31980 "unused159",
31981 "unused160",
31982 "unused161",
31983 "unused162",
31984 "unused163",
31985 "unused164",
31986 "unused165",
31987 "unused166",
31988 "unused167",
31989 "unused168",
31990 "unused169",
31991 "unused170",
31992 "unused171",
31993 "unused172",
31994 "unused173",
31995 "unused174",
31996 "unused175",
31997 "unused176",
31998 "unused177",
31999 "unused178",
32000 "unused179",
32001 "unused180",
32002 "unused181",
32003 "unused182",
32004 "unused183",
32005 "unused184",
32006 "unused185",
32007 "unused186",
32008 "unused187",
32009 "unused188",
32010 "unused189",
32011 "unused190",
32012 "unused191",
32013 "unused192",
32014 "unused193",
32015 "unused194",
32016 "unused195",
32017 "unused196",
32018 "unused197",
32019 "unused198",
32020 "unused199",
32021 "unused200",
32022 "unused201",
32023 "unused202",
32024 "unused203",
32025 "unused204",
32026 "unused205",
32027 "unused206",
32028 "unused207",
32029 "unused208",
32030 "unused209",
32031 "unused210",
32032 "unused211",
32033 "unused212",
32034 "unused213",
32035 "unused214",
32036 "unused215",
32037 "unused216",
32038 "unused217",
32039 "unused218",
32040 "unused219",
32041 "unused220",
32042 "unused221",
32043 "unused222",
32044 "unused223",
32045 "unused224",
32046 "unused225",
32047 "unused226",
32048 "unused227",
32049 "unused228",
32050 "unused229",
32051 "unused230",
32052 "unused231",
32053 "unused232",
32054 "unused233",
32055 "unused234",
32056 "unused235",
32057 "unused236",
32058 "unused237",
32059 "unused238",
32060 "unused239",
32061 "unused240",
32062 "unused241",
32063 "unused242",
32064 "unused243",
32065 "unused244",
32066 "unused245",
32067 "unused246",
32068 "unused247",
32069 "unused248",
32070 "unused249",
32071 "unused250",
32072 "unused251",
32073 "unused252",
32074 "unused253",
32075 "unused254",
32076 "unused255"
32077 ],
32078 "optional" : 1,
32079 "type" : "string"
32080 },
32081 "vmid" : {
32082 "description" : "The (unique) ID of the VM.",
32083 "format" : "pve-vmid",
32084 "minimum" : 1,
32085 "type" : "integer",
32086 "typetext" : "<integer> (1 - N)"
32087 },
32088 "volume" : {
32089 "description" : "Volume which will be moved.",
32090 "enum" : [
32091 "rootfs",
32092 "mp0",
32093 "mp1",
32094 "mp2",
32095 "mp3",
32096 "mp4",
32097 "mp5",
32098 "mp6",
32099 "mp7",
32100 "mp8",
32101 "mp9",
32102 "mp10",
32103 "mp11",
32104 "mp12",
32105 "mp13",
32106 "mp14",
32107 "mp15",
32108 "mp16",
32109 "mp17",
32110 "mp18",
32111 "mp19",
32112 "mp20",
32113 "mp21",
32114 "mp22",
32115 "mp23",
32116 "mp24",
32117 "mp25",
32118 "mp26",
32119 "mp27",
32120 "mp28",
32121 "mp29",
32122 "mp30",
32123 "mp31",
32124 "mp32",
32125 "mp33",
32126 "mp34",
32127 "mp35",
32128 "mp36",
32129 "mp37",
32130 "mp38",
32131 "mp39",
32132 "mp40",
32133 "mp41",
32134 "mp42",
32135 "mp43",
32136 "mp44",
32137 "mp45",
32138 "mp46",
32139 "mp47",
32140 "mp48",
32141 "mp49",
32142 "mp50",
32143 "mp51",
32144 "mp52",
32145 "mp53",
32146 "mp54",
32147 "mp55",
32148 "mp56",
32149 "mp57",
32150 "mp58",
32151 "mp59",
32152 "mp60",
32153 "mp61",
32154 "mp62",
32155 "mp63",
32156 "mp64",
32157 "mp65",
32158 "mp66",
32159 "mp67",
32160 "mp68",
32161 "mp69",
32162 "mp70",
32163 "mp71",
32164 "mp72",
32165 "mp73",
32166 "mp74",
32167 "mp75",
32168 "mp76",
32169 "mp77",
32170 "mp78",
32171 "mp79",
32172 "mp80",
32173 "mp81",
32174 "mp82",
32175 "mp83",
32176 "mp84",
32177 "mp85",
32178 "mp86",
32179 "mp87",
32180 "mp88",
32181 "mp89",
32182 "mp90",
32183 "mp91",
32184 "mp92",
32185 "mp93",
32186 "mp94",
32187 "mp95",
32188 "mp96",
32189 "mp97",
32190 "mp98",
32191 "mp99",
32192 "mp100",
32193 "mp101",
32194 "mp102",
32195 "mp103",
32196 "mp104",
32197 "mp105",
32198 "mp106",
32199 "mp107",
32200 "mp108",
32201 "mp109",
32202 "mp110",
32203 "mp111",
32204 "mp112",
32205 "mp113",
32206 "mp114",
32207 "mp115",
32208 "mp116",
32209 "mp117",
32210 "mp118",
32211 "mp119",
32212 "mp120",
32213 "mp121",
32214 "mp122",
32215 "mp123",
32216 "mp124",
32217 "mp125",
32218 "mp126",
32219 "mp127",
32220 "mp128",
32221 "mp129",
32222 "mp130",
32223 "mp131",
32224 "mp132",
32225 "mp133",
32226 "mp134",
32227 "mp135",
32228 "mp136",
32229 "mp137",
32230 "mp138",
32231 "mp139",
32232 "mp140",
32233 "mp141",
32234 "mp142",
32235 "mp143",
32236 "mp144",
32237 "mp145",
32238 "mp146",
32239 "mp147",
32240 "mp148",
32241 "mp149",
32242 "mp150",
32243 "mp151",
32244 "mp152",
32245 "mp153",
32246 "mp154",
32247 "mp155",
32248 "mp156",
32249 "mp157",
32250 "mp158",
32251 "mp159",
32252 "mp160",
32253 "mp161",
32254 "mp162",
32255 "mp163",
32256 "mp164",
32257 "mp165",
32258 "mp166",
32259 "mp167",
32260 "mp168",
32261 "mp169",
32262 "mp170",
32263 "mp171",
32264 "mp172",
32265 "mp173",
32266 "mp174",
32267 "mp175",
32268 "mp176",
32269 "mp177",
32270 "mp178",
32271 "mp179",
32272 "mp180",
32273 "mp181",
32274 "mp182",
32275 "mp183",
32276 "mp184",
32277 "mp185",
32278 "mp186",
32279 "mp187",
32280 "mp188",
32281 "mp189",
32282 "mp190",
32283 "mp191",
32284 "mp192",
32285 "mp193",
32286 "mp194",
32287 "mp195",
32288 "mp196",
32289 "mp197",
32290 "mp198",
32291 "mp199",
32292 "mp200",
32293 "mp201",
32294 "mp202",
32295 "mp203",
32296 "mp204",
32297 "mp205",
32298 "mp206",
32299 "mp207",
32300 "mp208",
32301 "mp209",
32302 "mp210",
32303 "mp211",
32304 "mp212",
32305 "mp213",
32306 "mp214",
32307 "mp215",
32308 "mp216",
32309 "mp217",
32310 "mp218",
32311 "mp219",
32312 "mp220",
32313 "mp221",
32314 "mp222",
32315 "mp223",
32316 "mp224",
32317 "mp225",
32318 "mp226",
32319 "mp227",
32320 "mp228",
32321 "mp229",
32322 "mp230",
32323 "mp231",
32324 "mp232",
32325 "mp233",
32326 "mp234",
32327 "mp235",
32328 "mp236",
32329 "mp237",
32330 "mp238",
32331 "mp239",
32332 "mp240",
32333 "mp241",
32334 "mp242",
32335 "mp243",
32336 "mp244",
32337 "mp245",
32338 "mp246",
32339 "mp247",
32340 "mp248",
32341 "mp249",
32342 "mp250",
32343 "mp251",
32344 "mp252",
32345 "mp253",
32346 "mp254",
32347 "mp255",
32348 "unused0",
32349 "unused1",
32350 "unused2",
32351 "unused3",
32352 "unused4",
32353 "unused5",
32354 "unused6",
32355 "unused7",
32356 "unused8",
32357 "unused9",
32358 "unused10",
32359 "unused11",
32360 "unused12",
32361 "unused13",
32362 "unused14",
32363 "unused15",
32364 "unused16",
32365 "unused17",
32366 "unused18",
32367 "unused19",
32368 "unused20",
32369 "unused21",
32370 "unused22",
32371 "unused23",
32372 "unused24",
32373 "unused25",
32374 "unused26",
32375 "unused27",
32376 "unused28",
32377 "unused29",
32378 "unused30",
32379 "unused31",
32380 "unused32",
32381 "unused33",
32382 "unused34",
32383 "unused35",
32384 "unused36",
32385 "unused37",
32386 "unused38",
32387 "unused39",
32388 "unused40",
32389 "unused41",
32390 "unused42",
32391 "unused43",
32392 "unused44",
32393 "unused45",
32394 "unused46",
32395 "unused47",
32396 "unused48",
32397 "unused49",
32398 "unused50",
32399 "unused51",
32400 "unused52",
32401 "unused53",
32402 "unused54",
32403 "unused55",
32404 "unused56",
32405 "unused57",
32406 "unused58",
32407 "unused59",
32408 "unused60",
32409 "unused61",
32410 "unused62",
32411 "unused63",
32412 "unused64",
32413 "unused65",
32414 "unused66",
32415 "unused67",
32416 "unused68",
32417 "unused69",
32418 "unused70",
32419 "unused71",
32420 "unused72",
32421 "unused73",
32422 "unused74",
32423 "unused75",
32424 "unused76",
32425 "unused77",
32426 "unused78",
32427 "unused79",
32428 "unused80",
32429 "unused81",
32430 "unused82",
32431 "unused83",
32432 "unused84",
32433 "unused85",
32434 "unused86",
32435 "unused87",
32436 "unused88",
32437 "unused89",
32438 "unused90",
32439 "unused91",
32440 "unused92",
32441 "unused93",
32442 "unused94",
32443 "unused95",
32444 "unused96",
32445 "unused97",
32446 "unused98",
32447 "unused99",
32448 "unused100",
32449 "unused101",
32450 "unused102",
32451 "unused103",
32452 "unused104",
32453 "unused105",
32454 "unused106",
32455 "unused107",
32456 "unused108",
32457 "unused109",
32458 "unused110",
32459 "unused111",
32460 "unused112",
32461 "unused113",
32462 "unused114",
32463 "unused115",
32464 "unused116",
32465 "unused117",
32466 "unused118",
32467 "unused119",
32468 "unused120",
32469 "unused121",
32470 "unused122",
32471 "unused123",
32472 "unused124",
32473 "unused125",
32474 "unused126",
32475 "unused127",
32476 "unused128",
32477 "unused129",
32478 "unused130",
32479 "unused131",
32480 "unused132",
32481 "unused133",
32482 "unused134",
32483 "unused135",
32484 "unused136",
32485 "unused137",
32486 "unused138",
32487 "unused139",
32488 "unused140",
32489 "unused141",
32490 "unused142",
32491 "unused143",
32492 "unused144",
32493 "unused145",
32494 "unused146",
32495 "unused147",
32496 "unused148",
32497 "unused149",
32498 "unused150",
32499 "unused151",
32500 "unused152",
32501 "unused153",
32502 "unused154",
32503 "unused155",
32504 "unused156",
32505 "unused157",
32506 "unused158",
32507 "unused159",
32508 "unused160",
32509 "unused161",
32510 "unused162",
32511 "unused163",
32512 "unused164",
32513 "unused165",
32514 "unused166",
32515 "unused167",
32516 "unused168",
32517 "unused169",
32518 "unused170",
32519 "unused171",
32520 "unused172",
32521 "unused173",
32522 "unused174",
32523 "unused175",
32524 "unused176",
32525 "unused177",
32526 "unused178",
32527 "unused179",
32528 "unused180",
32529 "unused181",
32530 "unused182",
32531 "unused183",
32532 "unused184",
32533 "unused185",
32534 "unused186",
32535 "unused187",
32536 "unused188",
32537 "unused189",
32538 "unused190",
32539 "unused191",
32540 "unused192",
32541 "unused193",
32542 "unused194",
32543 "unused195",
32544 "unused196",
32545 "unused197",
32546 "unused198",
32547 "unused199",
32548 "unused200",
32549 "unused201",
32550 "unused202",
32551 "unused203",
32552 "unused204",
32553 "unused205",
32554 "unused206",
32555 "unused207",
32556 "unused208",
32557 "unused209",
32558 "unused210",
32559 "unused211",
32560 "unused212",
32561 "unused213",
32562 "unused214",
32563 "unused215",
32564 "unused216",
32565 "unused217",
32566 "unused218",
32567 "unused219",
32568 "unused220",
32569 "unused221",
32570 "unused222",
32571 "unused223",
32572 "unused224",
32573 "unused225",
32574 "unused226",
32575 "unused227",
32576 "unused228",
32577 "unused229",
32578 "unused230",
32579 "unused231",
32580 "unused232",
32581 "unused233",
32582 "unused234",
32583 "unused235",
32584 "unused236",
32585 "unused237",
32586 "unused238",
32587 "unused239",
32588 "unused240",
32589 "unused241",
32590 "unused242",
32591 "unused243",
32592 "unused244",
32593 "unused245",
32594 "unused246",
32595 "unused247",
32596 "unused248",
32597 "unused249",
32598 "unused250",
32599 "unused251",
32600 "unused252",
32601 "unused253",
32602 "unused254",
32603 "unused255"
4d47f125
TL
32604 ],
32605 "type" : "string"
7aacca6f 32606 }
44660702 32607 }
7aacca6f 32608 },
56122987
DM
32609 "permissions" : {
32610 "check" : [
5370fa8c
TL
32611 "perm",
32612 "/vms/{vmid}",
4d47f125 32613 [
5370fa8c 32614 "VM.Config.Disk"
56122987 32615 ]
4d47f125 32616 ],
5370fa8c 32617 "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
32618 },
32619 "protected" : 1,
32620 "proxyto" : "node",
32621 "returns" : {
32622 "type" : "string"
32623 }
32624 }
32625 },
32626 "leaf" : 1,
32627 "path" : "/nodes/{node}/lxc/{vmid}/move_volume",
32628 "text" : "move_volume"
1c532546
TL
32629 },
32630 {
32631 "info" : {
32632 "GET" : {
e9cd3bd4 32633 "allowtoken" : 1,
1c532546
TL
32634 "description" : "Get container configuration, including pending changes.",
32635 "method" : "GET",
32636 "name" : "vm_pending",
32637 "parameters" : {
32638 "additionalProperties" : 0,
32639 "properties" : {
32640 "node" : {
32641 "description" : "The cluster node name.",
32642 "format" : "pve-node",
32643 "type" : "string",
32644 "typetext" : "<string>"
32645 },
32646 "vmid" : {
32647 "description" : "The (unique) ID of the VM.",
32648 "format" : "pve-vmid",
32649 "minimum" : 1,
32650 "type" : "integer",
32651 "typetext" : "<integer> (1 - N)"
32652 }
32653 }
32654 },
32655 "permissions" : {
32656 "check" : [
32657 "perm",
32658 "/vms/{vmid}",
32659 [
32660 "VM.Audit"
32661 ]
32662 ]
32663 },
32664 "proxyto" : "node",
32665 "returns" : {
32666 "items" : {
32667 "properties" : {
32668 "delete" : {
32669 "description" : "Indicates a pending delete request if present and not 0.",
32670 "maximum" : 2,
32671 "minimum" : 0,
32672 "optional" : 1,
32673 "type" : "integer"
32674 },
32675 "key" : {
32676 "description" : "Configuration option name.",
32677 "type" : "string"
32678 },
32679 "pending" : {
32680 "description" : "Pending value.",
32681 "optional" : 1,
32682 "type" : "string"
32683 },
32684 "value" : {
32685 "description" : "Current value.",
32686 "optional" : 1,
32687 "type" : "string"
32688 }
32689 },
32690 "type" : "object"
32691 },
32692 "type" : "array"
32693 }
32694 }
32695 },
32696 "leaf" : 1,
32697 "path" : "/nodes/{node}/lxc/{vmid}/pending",
32698 "text" : "pending"
81a3384d
TL
32699 },
32700 {
32701 "info" : {
32702 "POST" : {
32703 "allowtoken" : 1,
32704 "description" : "Migration tunnel endpoint - only for internal use by CT migration.",
32705 "method" : "POST",
32706 "name" : "mtunnel",
32707 "parameters" : {
32708 "additionalProperties" : 0,
32709 "properties" : {
32710 "bridges" : {
32711 "description" : "List of network bridges to check availability. Will be checked again for actually used bridges during migration.",
32712 "format" : "pve-bridge-id-list",
32713 "optional" : 1,
32714 "type" : "string",
32715 "typetext" : "<string>"
32716 },
32717 "node" : {
32718 "description" : "The cluster node name.",
32719 "format" : "pve-node",
32720 "type" : "string",
32721 "typetext" : "<string>"
32722 },
32723 "storages" : {
32724 "description" : "List of storages to check permission and availability. Will be checked again for all actually used storages during migration.",
32725 "format" : "pve-storage-id-list",
32726 "optional" : 1,
32727 "type" : "string",
32728 "typetext" : "<string>"
32729 },
32730 "vmid" : {
32731 "description" : "The (unique) ID of the VM.",
32732 "format" : "pve-vmid",
32733 "minimum" : 1,
32734 "type" : "integer",
32735 "typetext" : "<integer> (1 - N)"
32736 }
32737 }
32738 },
32739 "permissions" : {
32740 "check" : [
32741 "and",
32742 [
32743 "perm",
32744 "/vms/{vmid}",
32745 [
32746 "VM.Allocate"
32747 ]
32748 ],
32749 [
32750 "perm",
32751 "/",
32752 [
32753 "Sys.Incoming"
32754 ]
32755 ]
32756 ],
32757 "description" : "You need 'VM.Allocate' permissions on '/vms/{vmid}' and Sys.Incoming on '/'. Further permission checks happen during the actual migration."
32758 },
32759 "protected" : 1,
32760 "returns" : {
32761 "additionalProperties" : 0,
32762 "properties" : {
32763 "socket" : {
32764 "type" : "string"
32765 },
32766 "ticket" : {
32767 "type" : "string"
32768 },
32769 "upid" : {
32770 "type" : "string"
32771 }
32772 }
32773 }
32774 }
32775 },
32776 "leaf" : 1,
32777 "path" : "/nodes/{node}/lxc/{vmid}/mtunnel",
32778 "text" : "mtunnel"
32779 },
32780 {
32781 "info" : {
32782 "GET" : {
32783 "allowtoken" : 1,
32784 "description" : "Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.",
32785 "method" : "GET",
32786 "name" : "mtunnelwebsocket",
32787 "parameters" : {
32788 "additionalProperties" : 0,
32789 "properties" : {
32790 "node" : {
32791 "description" : "The cluster node name.",
32792 "format" : "pve-node",
32793 "type" : "string",
32794 "typetext" : "<string>"
32795 },
32796 "socket" : {
32797 "description" : "unix socket to forward to",
32798 "type" : "string",
32799 "typetext" : "<string>"
32800 },
32801 "ticket" : {
32802 "description" : "ticket return by initial 'mtunnel' API call, or retrieved via 'ticket' tunnel command",
32803 "type" : "string",
32804 "typetext" : "<string>"
32805 },
32806 "vmid" : {
32807 "description" : "The (unique) ID of the VM.",
32808 "format" : "pve-vmid",
32809 "minimum" : 1,
32810 "type" : "integer",
32811 "typetext" : "<integer> (1 - N)"
32812 }
32813 }
32814 },
32815 "permissions" : {
32816 "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.",
32817 "user" : "all"
32818 },
32819 "returns" : {
32820 "properties" : {
32821 "port" : {
32822 "optional" : 1,
32823 "type" : "string"
32824 },
32825 "socket" : {
32826 "optional" : 1,
32827 "type" : "string"
32828 }
32829 },
32830 "type" : "object"
32831 }
32832 }
32833 },
32834 "leaf" : 1,
32835 "path" : "/nodes/{node}/lxc/{vmid}/mtunnelwebsocket",
32836 "text" : "mtunnelwebsocket"
4d47f125
TL
32837 }
32838 ],
32839 "info" : {
32840 "DELETE" : {
e9cd3bd4 32841 "allowtoken" : 1,
4d47f125
TL
32842 "description" : "Destroy the container (also delete all uses files).",
32843 "method" : "DELETE",
32844 "name" : "destroy_vm",
32845 "parameters" : {
32846 "additionalProperties" : 0,
32847 "properties" : {
d2656385
TL
32848 "destroy-unreferenced-disks" : {
32849 "description" : "If set, destroy additionally all disks with the VMID from all enabled storages which are not referenced in the config.",
32850 "optional" : 1,
32851 "type" : "boolean",
32852 "typetext" : "<boolean>"
32853 },
c5aa7e14
TL
32854 "force" : {
32855 "default" : 0,
32856 "description" : "Force destroy, even if running.",
32857 "optional" : 1,
32858 "type" : "boolean",
32859 "typetext" : "<boolean>"
32860 },
4d47f125
TL
32861 "node" : {
32862 "description" : "The cluster node name.",
32863 "format" : "pve-node",
32864 "type" : "string",
32865 "typetext" : "<string>"
32866 },
1c532546 32867 "purge" : {
c5aa7e14
TL
32868 "default" : 0,
32869 "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
32870 "optional" : 1,
32871 "type" : "boolean",
32872 "typetext" : "<boolean>"
32873 },
4d47f125
TL
32874 "vmid" : {
32875 "description" : "The (unique) ID of the VM.",
32876 "format" : "pve-vmid",
32877 "minimum" : 1,
32878 "type" : "integer",
32879 "typetext" : "<integer> (1 - N)"
32880 }
32881 }
32882 },
32883 "permissions" : {
32884 "check" : [
32885 "perm",
32886 "/vms/{vmid}",
32887 [
32888 "VM.Allocate"
32889 ]
32890 ]
32891 },
32892 "protected" : 1,
32893 "proxyto" : "node",
32894 "returns" : {
32895 "type" : "string"
32896 }
32897 },
32898 "GET" : {
e9cd3bd4 32899 "allowtoken" : 1,
4d47f125
TL
32900 "description" : "Directory index",
32901 "method" : "GET",
32902 "name" : "vmdiridx",
32903 "parameters" : {
32904 "additionalProperties" : 0,
32905 "properties" : {
32906 "node" : {
32907 "description" : "The cluster node name.",
32908 "format" : "pve-node",
32909 "type" : "string",
32910 "typetext" : "<string>"
56122987 32911 },
4d47f125
TL
32912 "vmid" : {
32913 "description" : "The (unique) ID of the VM.",
32914 "format" : "pve-vmid",
32915 "minimum" : 1,
32916 "type" : "integer",
32917 "typetext" : "<integer> (1 - N)"
56122987
DM
32918 }
32919 }
32920 },
4d47f125
TL
32921 "permissions" : {
32922 "user" : "all"
32923 },
32924 "proxyto" : "node",
32925 "returns" : {
32926 "items" : {
32927 "properties" : {
32928 "subdir" : {
32929 "type" : "string"
35a75dd3
DM
32930 }
32931 },
4d47f125
TL
32932 "type" : "object"
32933 },
32934 "links" : [
32935 {
32936 "href" : "{subdir}",
32937 "rel" : "child"
35a75dd3 32938 }
4d47f125
TL
32939 ],
32940 "type" : "array"
32941 }
32942 }
32943 },
32944 "leaf" : 0,
32945 "path" : "/nodes/{node}/lxc/{vmid}",
32946 "text" : "{vmid}"
32947 }
32948 ],
32949 "info" : {
32950 "GET" : {
e9cd3bd4 32951 "allowtoken" : 1,
4d47f125
TL
32952 "description" : "LXC container index (per node).",
32953 "method" : "GET",
32954 "name" : "vmlist",
32955 "parameters" : {
32956 "additionalProperties" : 0,
32957 "properties" : {
32958 "node" : {
32959 "description" : "The cluster node name.",
32960 "format" : "pve-node",
32961 "type" : "string",
32962 "typetext" : "<string>"
32963 }
32964 }
32965 },
32966 "permissions" : {
32967 "description" : "Only list CTs where you have VM.Audit permissons on /vms/<vmid>.",
32968 "user" : "all"
32969 },
32970 "protected" : 1,
32971 "proxyto" : "node",
32972 "returns" : {
32973 "items" : {
32974 "properties" : {
32975 "cpus" : {
32976 "description" : "Maximum usable CPUs.",
32977 "optional" : 1,
32978 "type" : "number"
32979 },
95895385
TL
32980 "lock" : {
32981 "description" : "The current config lock, if any.",
32982 "optional" : 1,
32983 "type" : "string"
32984 },
4d47f125
TL
32985 "maxdisk" : {
32986 "description" : "Root disk size in bytes.",
32987 "optional" : 1,
32988 "renderer" : "bytes",
32989 "type" : "integer"
32990 },
32991 "maxmem" : {
32992 "description" : "Maximum memory in bytes.",
32993 "optional" : 1,
32994 "renderer" : "bytes",
32995 "type" : "integer"
32996 },
32997 "maxswap" : {
32998 "description" : "Maximum SWAP memory in bytes.",
32999 "optional" : 1,
33000 "renderer" : "bytes",
33001 "type" : "integer"
33002 },
33003 "name" : {
33004 "description" : "Container name.",
33005 "optional" : 1,
33006 "type" : "string"
33007 },
33008 "status" : {
33009 "description" : "LXC Container status.",
33010 "enum" : [
33011 "stopped",
33012 "running"
33013 ],
33014 "type" : "string"
33015 },
5c1699e5
TL
33016 "tags" : {
33017 "description" : "The current configured tags, if any.",
33018 "optional" : 1,
33019 "type" : "string"
33020 },
4d47f125
TL
33021 "uptime" : {
33022 "description" : "Uptime.",
33023 "optional" : 1,
33024 "renderer" : "duration",
33025 "type" : "integer"
33026 },
33027 "vmid" : {
33028 "description" : "The (unique) ID of the VM.",
33029 "format" : "pve-vmid",
33030 "minimum" : 1,
33031 "type" : "integer"
35a75dd3
DM
33032 }
33033 },
4d47f125 33034 "type" : "object"
35a75dd3 33035 },
4d47f125
TL
33036 "links" : [
33037 {
33038 "href" : "{vmid}",
33039 "rel" : "child"
33040 }
33041 ],
33042 "type" : "array"
33043 }
33044 },
33045 "POST" : {
e9cd3bd4 33046 "allowtoken" : 1,
4d47f125
TL
33047 "description" : "Create or restore a container.",
33048 "method" : "POST",
33049 "name" : "create_vm",
33050 "parameters" : {
33051 "additionalProperties" : 0,
33052 "properties" : {
33053 "arch" : {
33054 "default" : "amd64",
33055 "description" : "OS architecture type.",
33056 "enum" : [
33057 "amd64",
33058 "i386",
33059 "arm64",
9d2e98ed
TL
33060 "armhf",
33061 "riscv32",
33062 "riscv64"
4d47f125
TL
33063 ],
33064 "optional" : 1,
33065 "type" : "string"
33066 },
33067 "bwlimit" : {
95895385
TL
33068 "default" : "restore limit from datacenter or storage config",
33069 "description" : "Override I/O bandwidth limit (in KiB/s).",
4d47f125
TL
33070 "minimum" : "0",
33071 "optional" : 1,
33072 "type" : "number",
33073 "typetext" : "<number> (0 - N)"
33074 },
33075 "cmode" : {
33076 "default" : "tty",
33077 "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).",
33078 "enum" : [
33079 "shell",
33080 "console",
33081 "tty"
33082 ],
33083 "optional" : 1,
33084 "type" : "string"
33085 },
33086 "console" : {
33087 "default" : 1,
33088 "description" : "Attach a console device (/dev/console) to the container.",
33089 "optional" : 1,
33090 "type" : "boolean",
33091 "typetext" : "<boolean>"
33092 },
33093 "cores" : {
33094 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 33095 "maximum" : 8192,
4d47f125
TL
33096 "minimum" : 1,
33097 "optional" : 1,
33098 "type" : "integer",
4772952b 33099 "typetext" : "<integer> (1 - 8192)"
4d47f125
TL
33100 },
33101 "cpulimit" : {
33102 "default" : 0,
33103 "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 33104 "maximum" : 8192,
4d47f125
TL
33105 "minimum" : 0,
33106 "optional" : 1,
33107 "type" : "number",
4772952b 33108 "typetext" : "<number> (0 - 8192)"
4d47f125
TL
33109 },
33110 "cpuunits" : {
4e7f60c2
TL
33111 "default" : "cgroup v1: 1024, cgroup v2: 100",
33112 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
4d47f125
TL
33113 "maximum" : 500000,
33114 "minimum" : 0,
33115 "optional" : 1,
33116 "type" : "integer",
4e7f60c2
TL
33117 "typetext" : "<integer> (0 - 500000)",
33118 "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 33119 },
739d4d64
TL
33120 "debug" : {
33121 "default" : 0,
33122 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
33123 "optional" : 1,
33124 "type" : "boolean",
33125 "typetext" : "<boolean>"
33126 },
4d47f125 33127 "description" : {
8f4d9c87
TL
33128 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
33129 "maxLength" : 8192,
4d47f125
TL
33130 "optional" : 1,
33131 "type" : "string",
33132 "typetext" : "<string>"
33133 },
33134 "features" : {
33135 "description" : "Allow containers access to advanced features.",
33136 "format" : {
c5aa7e14
TL
33137 "force_rw_sys" : {
33138 "default" : 0,
33139 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
33140 "optional" : 1,
33141 "type" : "boolean"
33142 },
e2d681b3
TL
33143 "fuse" : {
33144 "default" : 0,
33145 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
33146 "optional" : 1,
33147 "type" : "boolean"
33148 },
4d47f125
TL
33149 "keyctl" : {
33150 "default" : 0,
33151 "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.",
33152 "optional" : 1,
33153 "type" : "boolean"
7aacca6f 33154 },
c5aa7e14
TL
33155 "mknod" : {
33156 "default" : 0,
33157 "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.",
33158 "optional" : 1,
33159 "type" : "boolean"
33160 },
4d47f125
TL
33161 "mount" : {
33162 "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.",
33163 "format_description" : "fstype;fstype;...",
33164 "optional" : 1,
95895385 33165 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125 33166 "type" : "string"
56122987 33167 },
4d47f125
TL
33168 "nesting" : {
33169 "default" : 0,
33170 "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.",
33171 "optional" : 1,
33172 "type" : "boolean"
44660702 33173 }
4d47f125
TL
33174 },
33175 "optional" : 1,
33176 "type" : "string",
c5aa7e14 33177 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
56122987 33178 },
4d47f125
TL
33179 "force" : {
33180 "description" : "Allow to overwrite existing container.",
33181 "optional" : 1,
33182 "type" : "boolean",
33183 "typetext" : "<boolean>"
33184 },
5f26e15b
TL
33185 "hookscript" : {
33186 "description" : "Script that will be exectued during various steps in the containers lifetime.",
33187 "format" : "pve-volume-id",
33188 "optional" : 1,
33189 "type" : "string",
33190 "typetext" : "<string>"
33191 },
4d47f125
TL
33192 "hostname" : {
33193 "description" : "Set a host name for the container.",
33194 "format" : "dns-name",
33195 "maxLength" : 255,
33196 "optional" : 1,
33197 "type" : "string",
33198 "typetext" : "<string>"
33199 },
33200 "ignore-unpack-errors" : {
33201 "description" : "Ignore errors when extracting the template.",
33202 "optional" : 1,
33203 "type" : "boolean",
33204 "typetext" : "<boolean>"
33205 },
33206 "lock" : {
4e7f60c2 33207 "description" : "Lock/unlock the container.",
4d47f125
TL
33208 "enum" : [
33209 "backup",
bb4c8cf8 33210 "create",
1c532546 33211 "destroyed",
4d47f125 33212 "disk",
bb4c8cf8 33213 "fstrim",
4d47f125
TL
33214 "migrate",
33215 "mounted",
33216 "rollback",
33217 "snapshot",
33218 "snapshot-delete"
33219 ],
33220 "optional" : 1,
33221 "type" : "string"
33222 },
33223 "memory" : {
33224 "default" : 512,
4e7f60c2 33225 "description" : "Amount of RAM for the container in MB.",
4d47f125
TL
33226 "minimum" : 16,
33227 "optional" : 1,
33228 "type" : "integer",
33229 "typetext" : "<integer> (16 - N)"
33230 },
33231 "mp[n]" : {
d2656385 33232 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
4d47f125
TL
33233 "format" : {
33234 "acl" : {
33235 "description" : "Explicitly enable or disable ACL support.",
33236 "optional" : 1,
33237 "type" : "boolean"
56122987 33238 },
4d47f125
TL
33239 "backup" : {
33240 "description" : "Whether to include the mount point in backups.",
33241 "optional" : 1,
33242 "type" : "boolean",
33243 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
56122987 33244 },
7cbed89a
TL
33245 "mountoptions" : {
33246 "description" : "Extra mount options for rootfs/mps.",
33247 "format_description" : "opt[;opt...]",
33248 "optional" : 1,
c30bb419 33249 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
33250 "type" : "string"
33251 },
4d47f125
TL
33252 "mp" : {
33253 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
33254 "format" : "pve-lxc-mp-string",
33255 "format_description" : "Path",
33256 "type" : "string",
33257 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
7aacca6f 33258 },
4d47f125
TL
33259 "quota" : {
33260 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
33261 "optional" : 1,
33262 "type" : "boolean"
33263 },
33264 "replicate" : {
33265 "default" : 1,
33266 "description" : "Will include this volume to a storage replica job.",
33267 "optional" : 1,
33268 "type" : "boolean"
33269 },
33270 "ro" : {
33271 "description" : "Read-only mount point",
33272 "optional" : 1,
33273 "type" : "boolean"
33274 },
33275 "shared" : {
33276 "default" : 0,
33277 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
33278 "optional" : 1,
33279 "type" : "boolean",
33280 "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 33281 },
4d47f125
TL
33282 "size" : {
33283 "description" : "Volume size (read only value).",
33284 "format" : "disk-size",
33285 "format_description" : "DiskSize",
33286 "optional" : 1,
33287 "type" : "string"
33288 },
33289 "volume" : {
33290 "default_key" : 1,
33291 "description" : "Volume, device or directory to mount into the container.",
33292 "format" : "pve-lxc-mp-string",
33293 "format_description" : "volume",
44660702
DM
33294 "type" : "string"
33295 }
4d47f125
TL
33296 },
33297 "optional" : 1,
33298 "type" : "string",
7cbed89a 33299 "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 33300 },
4d47f125
TL
33301 "nameserver" : {
33302 "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 33303 "format" : "lxc-ip-with-ll-iface-list",
4d47f125
TL
33304 "optional" : 1,
33305 "type" : "string",
33306 "typetext" : "<string>"
33307 },
33308 "net[n]" : {
33309 "description" : "Specifies network interfaces for the container.",
33310 "format" : {
33311 "bridge" : {
33312 "description" : "Bridge to attach the network device to.",
33313 "format_description" : "bridge",
33314 "optional" : 1,
33315 "pattern" : "[-_.\\w\\d]+",
33316 "type" : "string"
56122987 33317 },
4d47f125
TL
33318 "firewall" : {
33319 "description" : "Controls whether this interface's firewall rules should be used.",
33320 "optional" : 1,
33321 "type" : "boolean"
56122987 33322 },
4d47f125
TL
33323 "gw" : {
33324 "description" : "Default gateway for IPv4 traffic.",
33325 "format" : "ipv4",
33326 "format_description" : "GatewayIPv4",
33327 "optional" : 1,
33328 "type" : "string"
33329 },
33330 "gw6" : {
33331 "description" : "Default gateway for IPv6 traffic.",
33332 "format" : "ipv6",
33333 "format_description" : "GatewayIPv6",
33334 "optional" : 1,
33335 "type" : "string"
33336 },
33337 "hwaddr" : {
33338 "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 33339 "format" : "mac-addr",
4d47f125
TL
33340 "format_description" : "XX:XX:XX:XX:XX:XX",
33341 "optional" : 1,
95895385
TL
33342 "type" : "string",
33343 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
33344 },
33345 "ip" : {
33346 "description" : "IPv4 address in CIDR format.",
33347 "format" : "pve-ipv4-config",
33348 "format_description" : "(IPv4/CIDR|dhcp|manual)",
33349 "optional" : 1,
33350 "type" : "string"
33351 },
33352 "ip6" : {
33353 "description" : "IPv6 address in CIDR format.",
33354 "format" : "pve-ipv6-config",
33355 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
33356 "optional" : 1,
33357 "type" : "string"
33358 },
9d2e98ed
TL
33359 "link_down" : {
33360 "description" : "Whether this interface should be disconnected (like pulling the plug).",
33361 "optional" : 1,
33362 "type" : "boolean"
33363 },
4d47f125
TL
33364 "mtu" : {
33365 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 33366 "maximum" : 65535,
4d47f125
TL
33367 "minimum" : 64,
33368 "optional" : 1,
33369 "type" : "integer"
33370 },
33371 "name" : {
33372 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
33373 "format_description" : "string",
33374 "pattern" : "[-_.\\w\\d]+",
33375 "type" : "string"
33376 },
33377 "rate" : {
33378 "description" : "Apply rate limiting to the interface",
33379 "format_description" : "mbps",
33380 "optional" : 1,
33381 "type" : "number"
33382 },
33383 "tag" : {
33384 "description" : "VLAN tag for this interface.",
33385 "maximum" : 4094,
33386 "minimum" : 1,
33387 "optional" : 1,
33388 "type" : "integer"
33389 },
33390 "trunks" : {
33391 "description" : "VLAN ids to pass through the interface",
33392 "format_description" : "vlanid[;vlanid...]",
33393 "optional" : 1,
33394 "pattern" : "(?^:\\d+(?:;\\d+)*)",
33395 "type" : "string"
33396 },
33397 "type" : {
33398 "description" : "Network interface type.",
33399 "enum" : [
33400 "veth"
33401 ],
33402 "optional" : 1,
33403 "type" : "string"
7aacca6f 33404 }
4d47f125
TL
33405 },
33406 "optional" : 1,
33407 "type" : "string",
9d2e98ed 33408 "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,link_down=<1|0>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
56122987 33409 },
4d47f125
TL
33410 "node" : {
33411 "description" : "The cluster node name.",
33412 "format" : "pve-node",
33413 "type" : "string",
33414 "typetext" : "<string>"
33415 },
33416 "onboot" : {
33417 "default" : 0,
4e7f60c2 33418 "description" : "Specifies whether a container will be started during system bootup.",
4d47f125
TL
33419 "optional" : 1,
33420 "type" : "boolean",
33421 "typetext" : "<boolean>"
33422 },
33423 "ostemplate" : {
33424 "description" : "The OS template or backup file.",
33425 "maxLength" : 255,
33426 "type" : "string",
33427 "typetext" : "<string>"
33428 },
33429 "ostype" : {
33430 "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.",
33431 "enum" : [
33432 "debian",
d2656385 33433 "devuan",
4d47f125
TL
33434 "ubuntu",
33435 "centos",
33436 "fedora",
33437 "opensuse",
33438 "archlinux",
33439 "alpine",
33440 "gentoo",
7af2edf9 33441 "nixos",
4d47f125
TL
33442 "unmanaged"
33443 ],
33444 "optional" : 1,
33445 "type" : "string"
33446 },
33447 "password" : {
33448 "description" : "Sets root password inside container.",
33449 "minLength" : 5,
33450 "optional" : 1,
33451 "type" : "string",
33452 "typetext" : "<string>"
33453 },
33454 "pool" : {
33455 "description" : "Add the VM to the specified pool.",
33456 "format" : "pve-poolid",
33457 "optional" : 1,
33458 "type" : "string",
33459 "typetext" : "<string>"
33460 },
33461 "protection" : {
33462 "default" : 0,
33463 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
33464 "optional" : 1,
33465 "type" : "boolean",
33466 "typetext" : "<boolean>"
33467 },
33468 "restore" : {
33469 "description" : "Mark this as restore task.",
33470 "optional" : 1,
33471 "type" : "boolean",
33472 "typetext" : "<boolean>"
33473 },
33474 "rootfs" : {
33475 "description" : "Use volume as container root.",
33476 "format" : {
33477 "acl" : {
33478 "description" : "Explicitly enable or disable ACL support.",
33479 "optional" : 1,
33480 "type" : "boolean"
56122987 33481 },
7cbed89a
TL
33482 "mountoptions" : {
33483 "description" : "Extra mount options for rootfs/mps.",
33484 "format_description" : "opt[;opt...]",
33485 "optional" : 1,
c30bb419 33486 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
33487 "type" : "string"
33488 },
4d47f125
TL
33489 "quota" : {
33490 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
33491 "optional" : 1,
33492 "type" : "boolean"
7aacca6f 33493 },
4d47f125
TL
33494 "replicate" : {
33495 "default" : 1,
33496 "description" : "Will include this volume to a storage replica job.",
33497 "optional" : 1,
33498 "type" : "boolean"
33499 },
33500 "ro" : {
33501 "description" : "Read-only mount point",
33502 "optional" : 1,
33503 "type" : "boolean"
33504 },
33505 "shared" : {
33506 "default" : 0,
33507 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
33508 "optional" : 1,
33509 "type" : "boolean",
33510 "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!"
33511 },
33512 "size" : {
33513 "description" : "Volume size (read only value).",
33514 "format" : "disk-size",
33515 "format_description" : "DiskSize",
33516 "optional" : 1,
33517 "type" : "string"
33518 },
33519 "volume" : {
33520 "default_key" : 1,
33521 "description" : "Volume, device or directory to mount into the container.",
33522 "format" : "pve-lxc-mp-string",
33523 "format_description" : "volume",
33524 "type" : "string"
56122987 33525 }
4d47f125
TL
33526 },
33527 "optional" : 1,
33528 "type" : "string",
7cbed89a 33529 "typetext" : "[volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
56122987 33530 },
4d47f125
TL
33531 "searchdomain" : {
33532 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
33533 "format" : "dns-name-list",
33534 "optional" : 1,
33535 "type" : "string",
33536 "typetext" : "<string>"
33537 },
33538 "ssh-public-keys" : {
33539 "description" : "Setup public SSH keys (one key per line, OpenSSH format).",
33540 "optional" : 1,
33541 "type" : "string",
33542 "typetext" : "<string>"
33543 },
33544 "start" : {
33545 "default" : 0,
33546 "description" : "Start the CT after its creation finished successfully.",
33547 "optional" : 1,
33548 "type" : "boolean",
33549 "typetext" : "<boolean>"
33550 },
33551 "startup" : {
33552 "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.",
33553 "format" : "pve-startup-order",
33554 "optional" : 1,
33555 "type" : "string",
33556 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
33557 },
33558 "storage" : {
33559 "default" : "local",
33560 "description" : "Default Storage.",
33561 "format" : "pve-storage-id",
33562 "optional" : 1,
33563 "type" : "string",
33564 "typetext" : "<string>"
33565 },
33566 "swap" : {
33567 "default" : 512,
4e7f60c2 33568 "description" : "Amount of SWAP for the container in MB.",
4d47f125
TL
33569 "minimum" : 0,
33570 "optional" : 1,
33571 "type" : "integer",
33572 "typetext" : "<integer> (0 - N)"
33573 },
5c1699e5
TL
33574 "tags" : {
33575 "description" : "Tags of the Container. This is only meta information.",
33576 "format" : "pve-tag-list",
33577 "optional" : 1,
33578 "type" : "string",
33579 "typetext" : "<string>"
33580 },
4d47f125
TL
33581 "template" : {
33582 "default" : 0,
33583 "description" : "Enable/disable Template.",
33584 "optional" : 1,
33585 "type" : "boolean",
33586 "typetext" : "<boolean>"
33587 },
04d22a9f
TL
33588 "timezone" : {
33589 "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",
33590 "format" : "pve-ct-timezone",
33591 "optional" : 1,
33592 "type" : "string",
33593 "typetext" : "<string>"
33594 },
4d47f125
TL
33595 "tty" : {
33596 "default" : 2,
33597 "description" : "Specify the number of tty available to the container",
33598 "maximum" : 6,
33599 "minimum" : 0,
33600 "optional" : 1,
33601 "type" : "integer",
33602 "typetext" : "<integer> (0 - 6)"
33603 },
95895385
TL
33604 "unique" : {
33605 "description" : "Assign a unique random ethernet address.",
33606 "optional" : 1,
33607 "requires" : "restore",
33608 "type" : "boolean",
33609 "typetext" : "<boolean>"
33610 },
4d47f125
TL
33611 "unprivileged" : {
33612 "default" : 0,
33613 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
33614 "optional" : 1,
33615 "type" : "boolean",
33616 "typetext" : "<boolean>"
33617 },
33618 "unused[n]" : {
33619 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
33620 "format" : {
33621 "volume" : {
33622 "default_key" : 1,
33623 "description" : "The volume that is not used currently.",
33624 "format" : "pve-volume-id",
33625 "format_description" : "volume",
33626 "type" : "string"
33627 }
33628 },
4d47f125
TL
33629 "optional" : 1,
33630 "type" : "string",
c5aa7e14 33631 "typetext" : "[volume=]<volume>"
4d47f125
TL
33632 },
33633 "vmid" : {
33634 "description" : "The (unique) ID of the VM.",
33635 "format" : "pve-vmid",
33636 "minimum" : 1,
33637 "type" : "integer",
33638 "typetext" : "<integer> (1 - N)"
33639 }
33640 }
33641 },
33642 "permissions" : {
33643 "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.",
33644 "user" : "all"
33645 },
33646 "protected" : 1,
33647 "proxyto" : "node",
33648 "returns" : {
33649 "type" : "string"
33650 }
33651 }
33652 },
33653 "leaf" : 0,
33654 "path" : "/nodes/{node}/lxc",
33655 "text" : "lxc"
33656 },
33657 {
33658 "children" : [
9d2e98ed
TL
33659 {
33660 "children" : [
33661 {
33662 "info" : {
33663 "GET" : {
33664 "allowtoken" : 1,
33665 "description" : "Get the Ceph configuration file.",
33666 "method" : "GET",
33667 "name" : "raw",
33668 "parameters" : {
33669 "additionalProperties" : 0,
33670 "properties" : {
33671 "node" : {
33672 "description" : "The cluster node name.",
33673 "format" : "pve-node",
33674 "type" : "string",
33675 "typetext" : "<string>"
33676 }
33677 }
33678 },
33679 "permissions" : {
33680 "check" : [
33681 "perm",
33682 "/",
33683 [
33684 "Sys.Audit",
33685 "Datastore.Audit"
33686 ],
33687 "any",
33688 1
33689 ]
33690 },
33691 "proxyto" : "node",
33692 "returns" : {
33693 "type" : "string"
33694 }
33695 }
33696 },
33697 "leaf" : 1,
33698 "path" : "/nodes/{node}/ceph/cfg/raw",
33699 "text" : "raw"
33700 },
33701 {
33702 "info" : {
33703 "GET" : {
33704 "allowtoken" : 1,
33705 "description" : "Get the Ceph configuration database.",
33706 "method" : "GET",
33707 "name" : "db",
33708 "parameters" : {
33709 "additionalProperties" : 0,
33710 "properties" : {
33711 "node" : {
33712 "description" : "The cluster node name.",
33713 "format" : "pve-node",
33714 "type" : "string",
33715 "typetext" : "<string>"
33716 }
33717 }
33718 },
33719 "permissions" : {
33720 "check" : [
33721 "perm",
33722 "/",
33723 [
33724 "Sys.Audit",
33725 "Datastore.Audit"
33726 ],
33727 "any",
33728 1
33729 ]
33730 },
33731 "protected" : 1,
33732 "proxyto" : "node",
33733 "returns" : {
33734 "items" : {
33735 "properties" : {
33736 "can_update_at_runtime" : {
33737 "type" : "boolean"
33738 },
33739 "level" : {
33740 "type" : "string"
33741 },
33742 "mask" : {
33743 "type" : "string"
33744 },
33745 "name" : {
33746 "type" : "string"
33747 },
33748 "section" : {
33749 "type" : "string"
33750 },
33751 "value" : {
33752 "type" : "string"
33753 }
33754 },
33755 "type" : "object"
33756 },
33757 "type" : "array"
33758 }
33759 }
33760 },
33761 "leaf" : 1,
33762 "path" : "/nodes/{node}/ceph/cfg/db",
33763 "text" : "db"
33764 }
33765 ],
33766 "info" : {
33767 "GET" : {
33768 "allowtoken" : 1,
33769 "description" : "Directory index.",
33770 "method" : "GET",
33771 "name" : "index",
33772 "parameters" : {
33773 "additionalProperties" : 0,
33774 "properties" : {
33775 "node" : {
33776 "description" : "The cluster node name.",
33777 "format" : "pve-node",
33778 "type" : "string",
33779 "typetext" : "<string>"
33780 }
33781 }
33782 },
33783 "permissions" : {
33784 "user" : "all"
33785 },
33786 "returns" : {
33787 "items" : {
33788 "properties" : {},
33789 "type" : "object"
33790 },
33791 "links" : [
33792 {
33793 "href" : "{name}",
33794 "rel" : "child"
33795 }
33796 ],
33797 "type" : "array"
33798 }
33799 }
33800 },
33801 "leaf" : 0,
33802 "path" : "/nodes/{node}/ceph/cfg",
33803 "text" : "cfg"
33804 },
4d47f125
TL
33805 {
33806 "children" : [
56122987 33807 {
4d47f125
TL
33808 "children" : [
33809 {
33810 "info" : {
9d2e98ed 33811 "GET" : {
e9cd3bd4 33812 "allowtoken" : 1,
9d2e98ed
TL
33813 "description" : "Get OSD details",
33814 "method" : "GET",
33815 "name" : "osddetails",
33816 "parameters" : {
33817 "additionalProperties" : 0,
33818 "properties" : {
33819 "node" : {
33820 "description" : "The cluster node name.",
33821 "format" : "pve-node",
33822 "type" : "string",
33823 "typetext" : "<string>"
33824 },
33825 "osdid" : {
33826 "description" : "OSD ID",
33827 "type" : "integer",
33828 "typetext" : "<integer>"
33829 }
33830 }
33831 },
33832 "permissions" : {
33833 "check" : [
33834 "perm",
33835 "/",
33836 [
33837 "Sys.Audit"
33838 ],
33839 "any",
33840 1
33841 ]
33842 },
33843 "protected" : 1,
33844 "proxyto" : "node",
33845 "returns" : {
33846 "properties" : {
33847 "devices" : {
33848 "description" : "Array containing data about devices",
33849 "items" : {
33850 "properties" : {
33851 "dev_node" : {
33852 "description" : "Device node",
33853 "type" : "string"
33854 },
33855 "device" : {
33856 "description" : "Kind of OSD device",
33857 "enum" : [
33858 "block",
33859 "db",
33860 "wal"
33861 ],
33862 "type" : "string"
33863 },
33864 "devices" : {
33865 "description" : "Physical disks used",
33866 "type" : "string"
33867 },
33868 "size" : {
33869 "description" : "Size in bytes",
33870 "type" : "integer"
33871 },
33872 "support_discard" : {
33873 "description" : "Discard support of the physical device",
33874 "type" : "boolean"
33875 },
33876 "type" : {
33877 "description" : "Type of device. For example, hdd or ssd",
33878 "type" : "string"
33879 }
33880 },
33881 "type" : "object"
33882 },
33883 "type" : "array"
33884 },
33885 "osd" : {
33886 "description" : "General information about the OSD",
33887 "properties" : {
33888 "back_addr" : {
33889 "description" : "Address and port used to talk to other OSDs.",
33890 "type" : "string"
33891 },
33892 "front_addr" : {
33893 "description" : "Address and port used to talk to clients and monitors.",
33894 "type" : "string"
33895 },
33896 "hb_back_addr" : {
33897 "description" : "Heartbeat address and port for other OSDs.",
33898 "type" : "string"
33899 },
33900 "hb_front_addr" : {
33901 "description" : "Heartbeat address and port for clients and monitors.",
33902 "type" : "string"
33903 },
33904 "hostname" : {
33905 "description" : "Name of the host containing the OSD.",
33906 "type" : "string"
33907 },
33908 "id" : {
33909 "description" : "ID of the OSD.",
33910 "type" : "integer"
33911 },
33912 "mem_usage" : {
33913 "description" : "Memory usage of the OSD service.",
33914 "type" : "integer"
33915 },
33916 "osd_data" : {
33917 "description" : "Path to the OSD's data directory.",
33918 "type" : "string"
33919 },
33920 "osd_objectstore" : {
33921 "description" : "The type of object store used.",
33922 "type" : "string"
33923 },
33924 "pid" : {
33925 "description" : "OSD process ID.",
33926 "type" : "integer"
33927 },
33928 "version" : {
33929 "description" : "Ceph version of the OSD service.",
33930 "type" : "string"
33931 }
33932 },
33933 "type" : "object"
33934 }
33935 },
33936 "type" : "object"
33937 }
33938 }
33939 },
33940 "leaf" : 1,
33941 "path" : "/nodes/{node}/ceph/osd/{osdid}/metadata",
33942 "text" : "metadata"
33943 },
33944 {
33945 "info" : {
33946 "GET" : {
33947 "allowtoken" : 1,
33948 "description" : "Get OSD volume details",
33949 "method" : "GET",
33950 "name" : "osdvolume",
33951 "parameters" : {
33952 "additionalProperties" : 0,
33953 "properties" : {
33954 "node" : {
33955 "description" : "The cluster node name.",
33956 "format" : "pve-node",
33957 "type" : "string",
33958 "typetext" : "<string>"
33959 },
33960 "osdid" : {
33961 "description" : "OSD ID",
33962 "type" : "integer",
33963 "typetext" : "<integer>"
33964 },
33965 "type" : {
33966 "default" : "block",
33967 "description" : "OSD device type",
33968 "enum" : [
33969 "block",
33970 "db",
33971 "wal"
33972 ],
33973 "optional" : 1,
33974 "type" : "string"
33975 }
33976 }
33977 },
33978 "permissions" : {
33979 "check" : [
33980 "perm",
33981 "/",
33982 [
33983 "Sys.Audit"
33984 ],
33985 "any",
33986 1
33987 ]
33988 },
33989 "protected" : 1,
33990 "proxyto" : "node",
33991 "returns" : {
33992 "properties" : {
33993 "creation_time" : {
33994 "description" : "Creation time as reported by `lvs`.",
33995 "type" : "string"
33996 },
33997 "lv_name" : {
33998 "description" : "Name of the logical volume (LV).",
33999 "type" : "string"
34000 },
34001 "lv_path" : {
34002 "description" : "Path to the logical volume (LV).",
34003 "type" : "string"
34004 },
34005 "lv_size" : {
34006 "description" : "Size of the logical volume (LV).",
34007 "type" : "integer"
34008 },
34009 "lv_uuid" : {
34010 "description" : "UUID of the logical volume (LV).",
34011 "type" : "string"
34012 },
34013 "vg_name" : {
34014 "description" : "Name of the volume group (VG).",
34015 "type" : "string"
34016 }
34017 },
34018 "type" : "object"
34019 }
34020 }
34021 },
34022 "leaf" : 1,
34023 "path" : "/nodes/{node}/ceph/osd/{osdid}/lv-info",
34024 "text" : "lv-info"
34025 },
34026 {
34027 "info" : {
34028 "POST" : {
34029 "allowtoken" : 1,
34030 "description" : "ceph osd in",
34031 "method" : "POST",
34032 "name" : "in",
4d47f125
TL
34033 "parameters" : {
34034 "additionalProperties" : 0,
34035 "properties" : {
34036 "node" : {
34037 "description" : "The cluster node name.",
34038 "format" : "pve-node",
34039 "type" : "string",
34040 "typetext" : "<string>"
34041 },
34042 "osdid" : {
34043 "description" : "OSD ID",
34044 "type" : "integer",
34045 "typetext" : "<integer>"
34046 }
34047 }
27a7acb2 34048 },
4d47f125
TL
34049 "permissions" : {
34050 "check" : [
34051 "perm",
34052 "/",
34053 [
34054 "Sys.Modify"
34055 ]
34056 ]
44660702 34057 },
4d47f125
TL
34058 "protected" : 1,
34059 "proxyto" : "node",
34060 "returns" : {
34061 "type" : "null"
7aacca6f
DM
34062 }
34063 }
56122987 34064 },
4d47f125
TL
34065 "leaf" : 1,
34066 "path" : "/nodes/{node}/ceph/osd/{osdid}/in",
34067 "text" : "in"
34068 },
34069 {
34070 "info" : {
34071 "POST" : {
e9cd3bd4 34072 "allowtoken" : 1,
4d47f125
TL
34073 "description" : "ceph osd out",
34074 "method" : "POST",
34075 "name" : "out",
34076 "parameters" : {
34077 "additionalProperties" : 0,
34078 "properties" : {
34079 "node" : {
34080 "description" : "The cluster node name.",
34081 "format" : "pve-node",
34082 "type" : "string",
34083 "typetext" : "<string>"
34084 },
34085 "osdid" : {
34086 "description" : "OSD ID",
34087 "type" : "integer",
34088 "typetext" : "<integer>"
34089 }
34090 }
34091 },
34092 "permissions" : {
34093 "check" : [
56122987 34094 "perm",
4d47f125 34095 "/",
56122987 34096 [
4d47f125 34097 "Sys.Modify"
56122987 34098 ]
56122987 34099 ]
44660702 34100 },
4d47f125
TL
34101 "protected" : 1,
34102 "proxyto" : "node",
34103 "returns" : {
34104 "type" : "null"
56122987 34105 }
44660702 34106 }
56122987 34107 },
4d47f125
TL
34108 "leaf" : 1,
34109 "path" : "/nodes/{node}/ceph/osd/{osdid}/out",
34110 "text" : "out"
7cbed89a
TL
34111 },
34112 {
34113 "info" : {
34114 "POST" : {
e9cd3bd4 34115 "allowtoken" : 1,
7cbed89a
TL
34116 "description" : "Instruct the OSD to scrub.",
34117 "method" : "POST",
34118 "name" : "scrub",
34119 "parameters" : {
34120 "additionalProperties" : 0,
34121 "properties" : {
34122 "deep" : {
34123 "default" : 0,
34124 "description" : "If set, instructs a deep scrub instead of a normal one.",
34125 "optional" : 1,
34126 "type" : "boolean",
34127 "typetext" : "<boolean>"
34128 },
34129 "node" : {
34130 "description" : "The cluster node name.",
34131 "format" : "pve-node",
34132 "type" : "string",
34133 "typetext" : "<string>"
34134 },
34135 "osdid" : {
34136 "description" : "OSD ID",
34137 "type" : "integer",
34138 "typetext" : "<integer>"
34139 }
34140 }
34141 },
34142 "permissions" : {
34143 "check" : [
34144 "perm",
34145 "/",
34146 [
34147 "Sys.Modify"
34148 ]
34149 ]
34150 },
34151 "protected" : 1,
34152 "proxyto" : "node",
34153 "returns" : {
34154 "type" : "null"
34155 }
34156 }
34157 },
34158 "leaf" : 1,
34159 "path" : "/nodes/{node}/ceph/osd/{osdid}/scrub",
34160 "text" : "scrub"
56122987 34161 }
4d47f125 34162 ],
27a7acb2 34163 "info" : {
4d47f125 34164 "DELETE" : {
e9cd3bd4 34165 "allowtoken" : 1,
4d47f125
TL
34166 "description" : "Destroy OSD",
34167 "method" : "DELETE",
34168 "name" : "destroyosd",
27a7acb2
DM
34169 "parameters" : {
34170 "additionalProperties" : 0,
34171 "properties" : {
4d47f125 34172 "cleanup" : {
27a7acb2 34173 "default" : 0,
4d47f125 34174 "description" : "If set, we remove partition table entries.",
27a7acb2 34175 "optional" : 1,
4d47f125
TL
34176 "type" : "boolean",
34177 "typetext" : "<boolean>"
34178 },
34179 "node" : {
34180 "description" : "The cluster node name.",
34181 "format" : "pve-node",
34182 "type" : "string",
34183 "typetext" : "<string>"
34184 },
34185 "osdid" : {
34186 "description" : "OSD ID",
34187 "type" : "integer",
34188 "typetext" : "<integer>"
34189 }
34190 }
27a7acb2
DM
34191 },
34192 "protected" : 1,
34193 "proxyto" : "node",
34194 "returns" : {
34195 "type" : "string"
34196 }
9d2e98ed
TL
34197 },
34198 "GET" : {
34199 "allowtoken" : 1,
34200 "description" : "OSD index.",
34201 "method" : "GET",
34202 "name" : "osdindex",
34203 "parameters" : {
34204 "additionalProperties" : 0,
34205 "properties" : {
34206 "node" : {
34207 "description" : "The cluster node name.",
34208 "format" : "pve-node",
34209 "type" : "string",
34210 "typetext" : "<string>"
34211 },
34212 "osdid" : {
34213 "description" : "OSD ID",
34214 "type" : "integer",
34215 "typetext" : "<integer>"
34216 }
34217 }
34218 },
34219 "permissions" : {
34220 "user" : "all"
34221 },
34222 "returns" : {
34223 "items" : {
34224 "properties" : {},
34225 "type" : "object"
34226 },
34227 "links" : [
34228 {
34229 "href" : "{name}",
34230 "rel" : "child"
34231 }
34232 ],
34233 "type" : "array"
34234 }
27a7acb2
DM
34235 }
34236 },
4d47f125
TL
34237 "leaf" : 0,
34238 "path" : "/nodes/{node}/ceph/osd/{osdid}",
34239 "text" : "{osdid}"
56122987
DM
34240 }
34241 ],
34242 "info" : {
4d47f125 34243 "GET" : {
e9cd3bd4 34244 "allowtoken" : 1,
4d47f125
TL
34245 "description" : "Get Ceph osd list/tree.",
34246 "method" : "GET",
34247 "name" : "index",
44660702
DM
34248 "parameters" : {
34249 "additionalProperties" : 0,
34250 "properties" : {
34251 "node" : {
34252 "description" : "The cluster node name.",
34253 "format" : "pve-node",
013dc89f
DM
34254 "type" : "string",
34255 "typetext" : "<string>"
44660702
DM
34256 }
34257 }
34258 },
7aacca6f
DM
34259 "permissions" : {
34260 "check" : [
34261 "perm",
4d47f125 34262 "/",
7aacca6f 34263 [
4d47f125
TL
34264 "Sys.Audit",
34265 "Datastore.Audit"
34266 ],
34267 "any",
34268 1
34269 ]
34270 },
34271 "protected" : 1,
34272 "proxyto" : "node",
34273 "returns" : {
9d2e98ed
TL
34274 "items" : {
34275 "properties" : {
34276 "flags" : {
34277 "type" : "string"
34278 },
34279 "root" : {
34280 "description" : "Tree with OSDs in the CRUSH map structure.",
34281 "type" : "object"
34282 }
34283 },
34284 "type" : "object"
34285 },
4d47f125
TL
34286 "type" : "object"
34287 }
34288 },
34289 "POST" : {
e9cd3bd4 34290 "allowtoken" : 1,
4d47f125
TL
34291 "description" : "Create OSD",
34292 "method" : "POST",
34293 "name" : "createosd",
34294 "parameters" : {
34295 "additionalProperties" : 0,
34296 "properties" : {
739d4d64
TL
34297 "crush-device-class" : {
34298 "description" : "Set the device class of the OSD in crush.",
34299 "optional" : 1,
34300 "type" : "string",
34301 "typetext" : "<string>"
34302 },
1e3f8156
TL
34303 "db_dev" : {
34304 "description" : "Block device name for block.db.",
44660702 34305 "optional" : 1,
4bd7df8b 34306 "type" : "string",
4d47f125 34307 "typetext" : "<string>"
44660702 34308 },
0695fdaf 34309 "db_dev_size" : {
1e3f8156
TL
34310 "default" : "bluestore_block_db_size or 10% of OSD size",
34311 "description" : "Size in GiB for block.db.",
34312 "minimum" : 1,
7aacca6f 34313 "optional" : 1,
1e3f8156
TL
34314 "requires" : "db_dev",
34315 "type" : "number",
34316 "typetext" : "<number> (1 - N)",
34317 "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 34318 },
1e3f8156
TL
34319 "dev" : {
34320 "description" : "Block device name.",
4d47f125
TL
34321 "type" : "string",
34322 "typetext" : "<string>"
5d9c884c 34323 },
1e3f8156
TL
34324 "encrypted" : {
34325 "default" : 0,
34326 "description" : "Enables encryption of the OSD.",
34327 "optional" : 1,
34328 "type" : "boolean",
34329 "typetext" : "<boolean>"
34330 },
4d47f125
TL
34331 "node" : {
34332 "description" : "The cluster node name.",
34333 "format" : "pve-node",
34334 "type" : "string",
34335 "typetext" : "<string>"
7aacca6f 34336 },
4d47f125 34337 "wal_dev" : {
1e3f8156 34338 "description" : "Block device name for block.wal.",
de0983cb 34339 "optional" : 1,
4d47f125
TL
34340 "type" : "string",
34341 "typetext" : "<string>"
1e3f8156 34342 },
0695fdaf 34343 "wal_dev_size" : {
1e3f8156
TL
34344 "default" : "bluestore_block_wal_size or 1% of OSD size",
34345 "description" : "Size in GiB for block.wal.",
34346 "minimum" : 0.5,
34347 "optional" : 1,
34348 "requires" : "wal_dev",
34349 "type" : "number",
34350 "typetext" : "<number> (0.5 - N)",
34351 "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
34352 }
34353 }
34354 },
34355 "protected" : 1,
34356 "proxyto" : "node",
34357 "returns" : {
34358 "type" : "string"
34359 }
34360 }
34361 },
34362 "leaf" : 0,
34363 "path" : "/nodes/{node}/ceph/osd",
34364 "text" : "osd"
34365 },
e2d681b3
TL
34366 {
34367 "children" : [
34368 {
34369 "info" : {
34370 "DELETE" : {
e9cd3bd4 34371 "allowtoken" : 1,
e2d681b3
TL
34372 "description" : "Destroy Ceph Metadata Server",
34373 "method" : "DELETE",
34374 "name" : "destroymds",
34375 "parameters" : {
34376 "additionalProperties" : 0,
34377 "properties" : {
34378 "name" : {
34379 "description" : "The name (ID) of the mds",
34380 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
34381 "type" : "string"
34382 },
34383 "node" : {
34384 "description" : "The cluster node name.",
34385 "format" : "pve-node",
34386 "type" : "string",
34387 "typetext" : "<string>"
34388 }
34389 }
34390 },
34391 "permissions" : {
34392 "check" : [
34393 "perm",
34394 "/",
34395 [
34396 "Sys.Modify"
34397 ]
34398 ]
34399 },
34400 "protected" : 1,
34401 "proxyto" : "node",
34402 "returns" : {
34403 "type" : "string"
34404 }
34405 },
34406 "POST" : {
e9cd3bd4 34407 "allowtoken" : 1,
e2d681b3
TL
34408 "description" : "Create Ceph Metadata Server (MDS)",
34409 "method" : "POST",
34410 "name" : "createmds",
34411 "parameters" : {
34412 "additionalProperties" : 0,
34413 "properties" : {
34414 "hotstandby" : {
34415 "default" : "0",
34416 "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.",
34417 "optional" : 1,
34418 "type" : "boolean",
34419 "typetext" : "<boolean>"
34420 },
34421 "name" : {
34422 "default" : "nodename",
34423 "description" : "The ID for the mds, when omitted the same as the nodename",
c5aa7e14 34424 "maxLength" : 200,
e2d681b3
TL
34425 "optional" : 1,
34426 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
34427 "type" : "string"
34428 },
34429 "node" : {
34430 "description" : "The cluster node name.",
34431 "format" : "pve-node",
34432 "type" : "string",
34433 "typetext" : "<string>"
34434 }
34435 }
34436 },
34437 "permissions" : {
34438 "check" : [
34439 "perm",
34440 "/",
34441 [
34442 "Sys.Modify"
34443 ]
34444 ]
34445 },
34446 "protected" : 1,
34447 "proxyto" : "node",
34448 "returns" : {
34449 "type" : "string"
34450 }
34451 }
34452 },
34453 "leaf" : 1,
34454 "path" : "/nodes/{node}/ceph/mds/{name}",
34455 "text" : "{name}"
34456 }
34457 ],
34458 "info" : {
34459 "GET" : {
e9cd3bd4 34460 "allowtoken" : 1,
e2d681b3
TL
34461 "description" : "MDS directory index.",
34462 "method" : "GET",
34463 "name" : "index",
34464 "parameters" : {
34465 "additionalProperties" : 0,
34466 "properties" : {
34467 "node" : {
34468 "description" : "The cluster node name.",
34469 "format" : "pve-node",
34470 "type" : "string",
34471 "typetext" : "<string>"
34472 }
34473 }
34474 },
34475 "permissions" : {
34476 "check" : [
34477 "perm",
34478 "/",
34479 [
34480 "Sys.Audit",
34481 "Datastore.Audit"
34482 ],
34483 "any",
34484 1
34485 ]
34486 },
34487 "protected" : 1,
34488 "proxyto" : "node",
34489 "returns" : {
34490 "items" : {
34491 "properties" : {
34492 "addr" : {
34493 "optional" : 1,
34494 "type" : "string"
34495 },
34496 "host" : {
34497 "optional" : 1,
34498 "type" : "string"
34499 },
34500 "name" : {
34501 "description" : "The name (ID) for the MDS"
34502 },
34503 "rank" : {
34504 "optional" : 1,
34505 "type" : "integer"
34506 },
34507 "standby_replay" : {
34508 "description" : "If true, the standby MDS is polling the active MDS for faster recovery (hot standby).",
34509 "optional" : 1,
34510 "type" : "boolean"
34511 },
34512 "state" : {
34513 "description" : "State of the MDS",
34514 "type" : "string"
34515 }
34516 },
34517 "type" : "object"
34518 },
34519 "links" : [
34520 {
34521 "href" : "{name}",
34522 "rel" : "child"
34523 }
34524 ],
34525 "type" : "array"
34526 }
34527 }
34528 },
34529 "leaf" : 0,
34530 "path" : "/nodes/{node}/ceph/mds",
34531 "text" : "mds"
34532 },
34533 {
34534 "children" : [
34535 {
34536 "info" : {
5f26e15b 34537 "DELETE" : {
e9cd3bd4 34538 "allowtoken" : 1,
5f26e15b
TL
34539 "description" : "Destroy Ceph Manager.",
34540 "method" : "DELETE",
34541 "name" : "destroymgr",
e2d681b3
TL
34542 "parameters" : {
34543 "additionalProperties" : 0,
34544 "properties" : {
5f26e15b
TL
34545 "id" : {
34546 "description" : "The ID of the manager",
34547 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
34548 "type" : "string"
e2d681b3
TL
34549 },
34550 "node" : {
34551 "description" : "The cluster node name.",
34552 "format" : "pve-node",
34553 "type" : "string",
34554 "typetext" : "<string>"
e2d681b3
TL
34555 }
34556 }
34557 },
34558 "permissions" : {
34559 "check" : [
34560 "perm",
34561 "/",
34562 [
34563 "Sys.Modify"
34564 ]
34565 ]
34566 },
34567 "protected" : 1,
34568 "proxyto" : "node",
34569 "returns" : {
34570 "type" : "string"
34571 }
1e3f8156
TL
34572 },
34573 "POST" : {
e9cd3bd4 34574 "allowtoken" : 1,
1e3f8156
TL
34575 "description" : "Create Ceph Manager",
34576 "method" : "POST",
34577 "name" : "createmgr",
34578 "parameters" : {
34579 "additionalProperties" : 0,
34580 "properties" : {
34581 "id" : {
34582 "description" : "The ID for the manager, when omitted the same as the nodename",
c5aa7e14 34583 "maxLength" : 200,
1e3f8156
TL
34584 "optional" : 1,
34585 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
34586 "type" : "string"
34587 },
34588 "node" : {
34589 "description" : "The cluster node name.",
34590 "format" : "pve-node",
34591 "type" : "string",
34592 "typetext" : "<string>"
34593 }
34594 }
34595 },
34596 "permissions" : {
34597 "check" : [
34598 "perm",
34599 "/",
34600 [
34601 "Sys.Modify"
34602 ]
34603 ]
34604 },
34605 "protected" : 1,
34606 "proxyto" : "node",
34607 "returns" : {
34608 "type" : "string"
34609 }
e2d681b3
TL
34610 }
34611 },
34612 "leaf" : 1,
5f26e15b
TL
34613 "path" : "/nodes/{node}/ceph/mgr/{id}",
34614 "text" : "{id}"
e2d681b3
TL
34615 }
34616 ],
34617 "info" : {
1e3f8156 34618 "GET" : {
e9cd3bd4 34619 "allowtoken" : 1,
1e3f8156
TL
34620 "description" : "MGR directory index.",
34621 "method" : "GET",
34622 "name" : "index",
e2d681b3
TL
34623 "parameters" : {
34624 "additionalProperties" : 0,
34625 "properties" : {
34626 "node" : {
34627 "description" : "The cluster node name.",
34628 "format" : "pve-node",
34629 "type" : "string",
34630 "typetext" : "<string>"
34631 }
34632 }
34633 },
34634 "permissions" : {
34635 "check" : [
34636 "perm",
34637 "/",
34638 [
1e3f8156
TL
34639 "Sys.Audit",
34640 "Datastore.Audit"
34641 ],
34642 "any",
34643 1
e2d681b3
TL
34644 ]
34645 },
34646 "protected" : 1,
5f26e15b 34647 "proxyto" : "node",
e2d681b3 34648 "returns" : {
1e3f8156
TL
34649 "items" : {
34650 "properties" : {
34651 "addr" : {
34652 "optional" : 1,
34653 "type" : "string"
34654 },
34655 "host" : {
34656 "optional" : 1,
34657 "type" : "string"
34658 },
34659 "name" : {
34660 "description" : "The name (ID) for the MGR"
34661 },
34662 "state" : {
34663 "description" : "State of the MGR",
34664 "type" : "string"
34665 }
34666 },
34667 "type" : "object"
34668 },
34669 "links" : [
34670 {
34671 "href" : "{name}",
34672 "rel" : "child"
34673 }
34674 ],
34675 "type" : "array"
e2d681b3
TL
34676 }
34677 }
34678 },
34679 "leaf" : 0,
5f26e15b
TL
34680 "path" : "/nodes/{node}/ceph/mgr",
34681 "text" : "mgr"
e2d681b3 34682 },
4d47f125 34683 {
5f26e15b
TL
34684 "children" : [
34685 {
34686 "info" : {
34687 "DELETE" : {
e9cd3bd4 34688 "allowtoken" : 1,
5f26e15b
TL
34689 "description" : "Destroy Ceph Monitor and Manager.",
34690 "method" : "DELETE",
34691 "name" : "destroymon",
34692 "parameters" : {
34693 "additionalProperties" : 0,
34694 "properties" : {
1e3f8156
TL
34695 "monid" : {
34696 "description" : "Monitor ID",
34697 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
34698 "type" : "string"
34699 },
34700 "node" : {
34701 "description" : "The cluster node name.",
34702 "format" : "pve-node",
34703 "type" : "string",
34704 "typetext" : "<string>"
34705 }
34706 }
34707 },
34708 "permissions" : {
34709 "check" : [
34710 "perm",
34711 "/",
34712 [
34713 "Sys.Modify"
34714 ]
34715 ]
34716 },
34717 "protected" : 1,
34718 "proxyto" : "node",
34719 "returns" : {
34720 "type" : "string"
34721 }
34722 },
34723 "POST" : {
e9cd3bd4 34724 "allowtoken" : 1,
1e3f8156
TL
34725 "description" : "Create Ceph Monitor and Manager",
34726 "method" : "POST",
34727 "name" : "createmon",
34728 "parameters" : {
34729 "additionalProperties" : 0,
34730 "properties" : {
34731 "mon-address" : {
0695fdaf
TL
34732 "description" : "Overwrites autodetected monitor IP address(es). Must be in the public network(s) of Ceph.",
34733 "format" : "ip-list",
5f26e15b 34734 "optional" : 1,
1e3f8156
TL
34735 "type" : "string",
34736 "typetext" : "<string>"
5f26e15b
TL
34737 },
34738 "monid" : {
1e3f8156 34739 "description" : "The ID for the monitor, when omitted the same as the nodename",
c5aa7e14 34740 "maxLength" : 200,
1e3f8156 34741 "optional" : 1,
5f26e15b
TL
34742 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
34743 "type" : "string"
34744 },
34745 "node" : {
34746 "description" : "The cluster node name.",
34747 "format" : "pve-node",
34748 "type" : "string",
34749 "typetext" : "<string>"
34750 }
34751 }
34752 },
34753 "permissions" : {
34754 "check" : [
34755 "perm",
34756 "/",
34757 [
34758 "Sys.Modify"
34759 ]
34760 ]
34761 },
34762 "protected" : 1,
34763 "proxyto" : "node",
34764 "returns" : {
7aacca6f 34765 "type" : "string"
56122987 34766 }
4d47f125 34767 }
56122987 34768 },
5f26e15b
TL
34769 "leaf" : 1,
34770 "path" : "/nodes/{node}/ceph/mon/{monid}",
34771 "text" : "{monid}"
34772 }
34773 ],
34774 "info" : {
34775 "GET" : {
e9cd3bd4 34776 "allowtoken" : 1,
5f26e15b
TL
34777 "description" : "Get Ceph monitor list.",
34778 "method" : "GET",
34779 "name" : "listmon",
34780 "parameters" : {
34781 "additionalProperties" : 0,
34782 "properties" : {
34783 "node" : {
34784 "description" : "The cluster node name.",
34785 "format" : "pve-node",
34786 "type" : "string",
34787 "typetext" : "<string>"
34788 }
34789 }
34790 },
4d47f125
TL
34791 "permissions" : {
34792 "check" : [
34793 "perm",
34794 "/",
34795 [
34796 "Sys.Audit",
34797 "Datastore.Audit"
34798 ],
34799 "any",
34800 1
34801 ]
56122987 34802 },
4d47f125
TL
34803 "protected" : 1,
34804 "proxyto" : "node",
34805 "returns" : {
34806 "items" : {
34807 "properties" : {
5f26e15b 34808 "addr" : {
1e3f8156
TL
34809 "optional" : 1,
34810 "type" : "string"
34811 },
9d2e98ed
TL
34812 "ceph_version" : {
34813 "optional" : 1,
34814 "type" : "string"
34815 },
34816 "ceph_version_short" : {
34817 "optional" : 1,
34818 "type" : "string"
34819 },
34820 "direxists" : {
1e3f8156 34821 "optional" : 1,
4d47f125
TL
34822 "type" : "string"
34823 },
9d2e98ed
TL
34824 "host" : {
34825 "optional" : 1,
34826 "type" : "boolean"
34827 },
5f26e15b 34828 "name" : {
4d47f125 34829 "type" : "string"
9d2e98ed
TL
34830 },
34831 "quorum" : {
34832 "optional" : 1,
34833 "type" : "boolean"
34834 },
34835 "rank" : {
34836 "optional" : 1,
34837 "type" : "integer"
34838 },
34839 "service" : {
34840 "optional" : 1,
34841 "type" : "integer"
34842 },
34843 "state" : {
34844 "optional" : 1,
34845 "type" : "string"
4d47f125 34846 }
7aacca6f 34847 },
4d47f125
TL
34848 "type" : "object"
34849 },
5f26e15b
TL
34850 "links" : [
34851 {
34852 "href" : "{name}",
34853 "rel" : "child"
34854 }
34855 ],
4d47f125
TL
34856 "type" : "array"
34857 }
4d47f125
TL
34858 }
34859 },
5f26e15b
TL
34860 "leaf" : 0,
34861 "path" : "/nodes/{node}/ceph/mon",
34862 "text" : "mon"
4d47f125
TL
34863 },
34864 {
34865 "children" : [
34866 {
34867 "info" : {
5f26e15b 34868 "POST" : {
e9cd3bd4 34869 "allowtoken" : 1,
5f26e15b
TL
34870 "description" : "Create a Ceph filesystem",
34871 "method" : "POST",
34872 "name" : "createfs",
4d47f125
TL
34873 "parameters" : {
34874 "additionalProperties" : 0,
34875 "properties" : {
5f26e15b 34876 "add-storage" : {
4d47f125 34877 "default" : 0,
5f26e15b 34878 "description" : "Configure the created CephFS as storage for this cluster.",
4d47f125
TL
34879 "optional" : 1,
34880 "type" : "boolean",
34881 "typetext" : "<boolean>"
34882 },
5f26e15b
TL
34883 "name" : {
34884 "default" : "cephfs",
34885 "description" : "The ceph filesystem name.",
34886 "optional" : 1,
34887 "type" : "string",
34888 "typetext" : "<string>"
4d47f125
TL
34889 },
34890 "node" : {
34891 "description" : "The cluster node name.",
34892 "format" : "pve-node",
34893 "type" : "string",
34894 "typetext" : "<string>"
5f26e15b
TL
34895 },
34896 "pg_num" : {
34897 "default" : 128,
34898 "description" : "Number of placement groups for the backing data pool. The metadata pool will use a quarter of this.",
34899 "maximum" : 32768,
34900 "minimum" : 8,
34901 "optional" : 1,
34902 "type" : "integer",
34903 "typetext" : "<integer> (8 - 32768)"
4d47f125
TL
34904 }
34905 }
7aacca6f 34906 },
4d47f125
TL
34907 "permissions" : {
34908 "check" : [
34909 "perm",
34910 "/",
34911 [
34912 "Sys.Modify"
34913 ]
34914 ]
7aacca6f 34915 },
4d47f125
TL
34916 "protected" : 1,
34917 "proxyto" : "node",
34918 "returns" : {
44660702 34919 "type" : "string"
4d47f125
TL
34920 }
34921 }
34922 },
34923 "leaf" : 1,
5f26e15b
TL
34924 "path" : "/nodes/{node}/ceph/fs/{name}",
34925 "text" : "{name}"
4d47f125
TL
34926 }
34927 ],
34928 "info" : {
34929 "GET" : {
e9cd3bd4 34930 "allowtoken" : 1,
5f26e15b 34931 "description" : "Directory index.",
4d47f125 34932 "method" : "GET",
5f26e15b 34933 "name" : "index",
4d47f125
TL
34934 "parameters" : {
34935 "additionalProperties" : 0,
34936 "properties" : {
34937 "node" : {
34938 "description" : "The cluster node name.",
34939 "format" : "pve-node",
34940 "type" : "string",
34941 "typetext" : "<string>"
34942 }
34943 }
34944 },
34945 "permissions" : {
34946 "check" : [
34947 "perm",
34948 "/",
34949 [
34950 "Sys.Audit",
34951 "Datastore.Audit"
34952 ],
34953 "any",
34954 1
34955 ]
34956 },
34957 "protected" : 1,
95895385 34958 "proxyto" : "node",
4d47f125
TL
34959 "returns" : {
34960 "items" : {
34961 "properties" : {
9d2e98ed
TL
34962 "data_pool" : {
34963 "description" : "The name of the data pool.",
34964 "type" : "string"
34965 },
34966 "metadata_pool" : {
34967 "description" : "The name of the metadata pool.",
34968 "type" : "string"
34969 },
34970 "name" : {
34971 "description" : "The ceph filesystem name.",
34972 "type" : "string"
34973 }
34974 },
34975 "type" : "object"
34976 },
34977 "links" : [
34978 {
34979 "href" : "{name}",
34980 "rel" : "child"
34981 }
34982 ],
34983 "type" : "array"
34984 }
34985 }
34986 },
34987 "leaf" : 0,
34988 "path" : "/nodes/{node}/ceph/fs",
34989 "text" : "fs"
34990 },
34991 {
34992 "children" : [
34993 {
34994 "children" : [
34995 {
34996 "info" : {
34997 "GET" : {
34998 "allowtoken" : 1,
34999 "description" : "Show the current pool status.",
35000 "method" : "GET",
35001 "name" : "getpool",
35002 "parameters" : {
35003 "additionalProperties" : 0,
35004 "properties" : {
35005 "name" : {
35006 "description" : "The name of the pool. It must be unique.",
35007 "type" : "string",
35008 "typetext" : "<string>"
35009 },
35010 "node" : {
35011 "description" : "The cluster node name.",
35012 "format" : "pve-node",
35013 "type" : "string",
35014 "typetext" : "<string>"
35015 },
35016 "verbose" : {
35017 "default" : 0,
35018 "description" : "If enabled, will display additional data(eg. statistics).",
35019 "optional" : 1,
35020 "type" : "boolean",
35021 "typetext" : "<boolean>"
35022 }
35023 }
35024 },
35025 "permissions" : {
35026 "check" : [
35027 "perm",
35028 "/",
35029 [
35030 "Sys.Audit",
35031 "Datastore.Audit"
35032 ],
35033 "any",
35034 1
35035 ]
35036 },
35037 "protected" : 1,
35038 "proxyto" : "node",
35039 "returns" : {
35040 "properties" : {
35041 "application" : {
35042 "default" : "rbd",
35043 "description" : "The application of the pool.",
35044 "enum" : [
35045 "rbd",
35046 "cephfs",
35047 "rgw"
35048 ],
35049 "optional" : 1,
35050 "title" : "Application",
35051 "type" : "string"
35052 },
35053 "application_list" : {
35054 "optional" : 1,
35055 "title" : "Application",
35056 "type" : "array"
35057 },
35058 "autoscale_status" : {
35059 "optional" : 1,
35060 "title" : "Autoscale Status",
35061 "type" : "object"
35062 },
35063 "crush_rule" : {
35064 "description" : "The rule to use for mapping object placement in the cluster.",
35065 "optional" : 1,
35066 "title" : "Crush Rule Name",
35067 "type" : "string"
35068 },
35069 "fast_read" : {
35070 "title" : "Fast Read",
35071 "type" : "boolean"
35072 },
35073 "hashpspool" : {
35074 "title" : "hashpspool",
35075 "type" : "boolean"
35076 },
35077 "id" : {
35078 "title" : "ID",
35079 "type" : "integer"
35080 },
35081 "min_size" : {
35082 "default" : 2,
35083 "description" : "Minimum number of replicas per object",
35084 "maximum" : 7,
35085 "minimum" : 1,
35086 "optional" : 1,
35087 "title" : "Min Size",
35088 "type" : "integer"
35089 },
35090 "name" : {
35091 "description" : "The name of the pool. It must be unique.",
35092 "title" : "Name",
35093 "type" : "string"
35094 },
35095 "nodeep-scrub" : {
35096 "title" : "nodeep-scrub",
35097 "type" : "boolean"
35098 },
35099 "nodelete" : {
35100 "title" : "nodelete",
35101 "type" : "boolean"
35102 },
35103 "nopgchange" : {
35104 "title" : "nopgchange",
35105 "type" : "boolean"
35106 },
35107 "noscrub" : {
35108 "title" : "noscrub",
35109 "type" : "boolean"
35110 },
35111 "nosizechange" : {
35112 "title" : "nosizechange",
35113 "type" : "boolean"
35114 },
35115 "pg_autoscale_mode" : {
35116 "default" : "warn",
35117 "description" : "The automatic PG scaling mode of the pool.",
35118 "enum" : [
35119 "on",
35120 "off",
35121 "warn"
35122 ],
35123 "optional" : 1,
35124 "title" : "PG Autoscale Mode",
35125 "type" : "string"
35126 },
35127 "pg_num" : {
35128 "default" : 128,
35129 "description" : "Number of placement groups.",
35130 "maximum" : 32768,
35131 "minimum" : 1,
35132 "optional" : 1,
35133 "title" : "PG Num",
35134 "type" : "integer"
35135 },
35136 "pg_num_min" : {
35137 "description" : "Minimal number of placement groups.",
35138 "maximum" : 32768,
35139 "optional" : 1,
35140 "title" : "min. PG Num",
35141 "type" : "integer"
35142 },
35143 "pgp_num" : {
35144 "title" : "PGP num",
35145 "type" : "integer"
35146 },
35147 "size" : {
35148 "default" : 3,
35149 "description" : "Number of replicas per object",
35150 "maximum" : 7,
35151 "minimum" : 1,
35152 "optional" : 1,
35153 "title" : "Size",
35154 "type" : "integer"
35155 },
35156 "statistics" : {
35157 "optional" : 1,
35158 "title" : "Statistics",
35159 "type" : "object"
35160 },
35161 "target_size" : {
35162 "description" : "The estimated target size of the pool for the PG autoscaler.",
35163 "optional" : 1,
35164 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
35165 "title" : "PG Autoscale Target Size",
35166 "type" : "string"
35167 },
35168 "target_size_ratio" : {
35169 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
35170 "optional" : 1,
35171 "title" : "PG Autoscale Target Ratio",
35172 "type" : "number"
35173 },
35174 "use_gmt_hitset" : {
35175 "title" : "use_gmt_hitset",
35176 "type" : "boolean"
35177 },
35178 "write_fadvise_dontneed" : {
35179 "title" : "write_fadvise_dontneed",
35180 "type" : "boolean"
35181 }
35182 },
35183 "type" : "object"
35184 }
35185 }
35186 },
35187 "leaf" : 1,
35188 "path" : "/nodes/{node}/ceph/pool/{name}/status",
35189 "text" : "status"
35190 }
35191 ],
35192 "info" : {
35193 "DELETE" : {
35194 "allowtoken" : 1,
35195 "description" : "Destroy pool",
35196 "method" : "DELETE",
35197 "name" : "destroypool",
35198 "parameters" : {
35199 "additionalProperties" : 0,
35200 "properties" : {
35201 "force" : {
35202 "default" : 0,
35203 "description" : "If true, destroys pool even if in use",
35204 "optional" : 1,
35205 "type" : "boolean",
35206 "typetext" : "<boolean>"
35207 },
35208 "name" : {
35209 "description" : "The name of the pool. It must be unique.",
35210 "type" : "string",
35211 "typetext" : "<string>"
35212 },
35213 "node" : {
35214 "description" : "The cluster node name.",
35215 "format" : "pve-node",
35216 "type" : "string",
35217 "typetext" : "<string>"
35218 },
35219 "remove_ecprofile" : {
35220 "default" : 1,
35221 "description" : "Remove the erasure code profile. Defaults to true, if applicable.",
35222 "optional" : 1,
35223 "type" : "boolean",
35224 "typetext" : "<boolean>"
35225 },
35226 "remove_storages" : {
35227 "default" : 0,
35228 "description" : "Remove all pveceph-managed storages configured for this pool",
35229 "optional" : 1,
35230 "type" : "boolean",
35231 "typetext" : "<boolean>"
35232 }
35233 }
35234 },
35235 "permissions" : {
35236 "check" : [
35237 "perm",
35238 "/",
35239 [
35240 "Sys.Modify"
35241 ]
35242 ]
35243 },
35244 "protected" : 1,
35245 "proxyto" : "node",
35246 "returns" : {
35247 "type" : "string"
35248 }
35249 },
35250 "GET" : {
35251 "allowtoken" : 1,
35252 "description" : "Pool index.",
35253 "method" : "GET",
35254 "name" : "poolindex",
35255 "parameters" : {
35256 "additionalProperties" : 0,
35257 "properties" : {
35258 "name" : {
35259 "description" : "The name of the pool.",
35260 "type" : "string",
35261 "typetext" : "<string>"
35262 },
35263 "node" : {
35264 "description" : "The cluster node name.",
35265 "format" : "pve-node",
35266 "type" : "string",
35267 "typetext" : "<string>"
35268 }
35269 }
35270 },
35271 "permissions" : {
35272 "check" : [
35273 "perm",
35274 "/",
35275 [
35276 "Sys.Audit",
35277 "Datastore.Audit"
35278 ],
35279 "any",
35280 1
35281 ]
35282 },
35283 "returns" : {
35284 "items" : {
35285 "properties" : {},
35286 "type" : "object"
35287 },
35288 "links" : [
35289 {
35290 "href" : "{name}",
35291 "rel" : "child"
35292 }
35293 ],
35294 "type" : "array"
35295 }
35296 },
35297 "PUT" : {
35298 "allowtoken" : 1,
35299 "description" : "Change POOL settings",
35300 "method" : "PUT",
35301 "name" : "setpool",
35302 "parameters" : {
35303 "additionalProperties" : 0,
35304 "properties" : {
35305 "application" : {
35306 "description" : "The application of the pool.",
35307 "enum" : [
35308 "rbd",
35309 "cephfs",
35310 "rgw"
35311 ],
35312 "optional" : 1,
35313 "title" : "Application",
35314 "type" : "string"
35315 },
35316 "crush_rule" : {
35317 "description" : "The rule to use for mapping object placement in the cluster.",
35318 "optional" : 1,
35319 "title" : "Crush Rule Name",
35320 "type" : "string",
35321 "typetext" : "<string>"
35322 },
35323 "min_size" : {
35324 "description" : "Minimum number of replicas per object",
35325 "maximum" : 7,
35326 "minimum" : 1,
35327 "optional" : 1,
35328 "title" : "Min Size",
35329 "type" : "integer",
35330 "typetext" : "<integer> (1 - 7)"
35331 },
35332 "name" : {
35333 "description" : "The name of the pool. It must be unique.",
35334 "title" : "Name",
35335 "type" : "string",
35336 "typetext" : "<string>"
35337 },
35338 "node" : {
35339 "description" : "The cluster node name.",
35340 "format" : "pve-node",
35341 "type" : "string",
35342 "typetext" : "<string>"
35343 },
35344 "pg_autoscale_mode" : {
35345 "description" : "The automatic PG scaling mode of the pool.",
35346 "enum" : [
35347 "on",
35348 "off",
35349 "warn"
35350 ],
35351 "optional" : 1,
35352 "title" : "PG Autoscale Mode",
35353 "type" : "string"
35354 },
35355 "pg_num" : {
35356 "description" : "Number of placement groups.",
35357 "maximum" : 32768,
35358 "minimum" : 1,
35359 "optional" : 1,
35360 "title" : "PG Num",
35361 "type" : "integer",
35362 "typetext" : "<integer> (1 - 32768)"
35363 },
35364 "pg_num_min" : {
35365 "description" : "Minimal number of placement groups.",
35366 "maximum" : 32768,
35367 "optional" : 1,
35368 "title" : "min. PG Num",
35369 "type" : "integer",
35370 "typetext" : "<integer> (-N - 32768)"
35371 },
35372 "size" : {
35373 "description" : "Number of replicas per object",
35374 "maximum" : 7,
35375 "minimum" : 1,
35376 "optional" : 1,
35377 "title" : "Size",
35378 "type" : "integer",
35379 "typetext" : "<integer> (1 - 7)"
35380 },
35381 "target_size" : {
35382 "description" : "The estimated target size of the pool for the PG autoscaler.",
35383 "optional" : 1,
35384 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
35385 "title" : "PG Autoscale Target Size",
35386 "type" : "string"
35387 },
35388 "target_size_ratio" : {
35389 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
35390 "optional" : 1,
35391 "title" : "PG Autoscale Target Ratio",
35392 "type" : "number",
35393 "typetext" : "<number>"
35394 }
35395 }
35396 },
35397 "permissions" : {
35398 "check" : [
35399 "perm",
35400 "/",
35401 [
35402 "Sys.Modify"
35403 ]
35404 ]
35405 },
35406 "protected" : 1,
35407 "proxyto" : "node",
35408 "returns" : {
35409 "type" : "string"
35410 }
35411 }
35412 },
35413 "leaf" : 0,
35414 "path" : "/nodes/{node}/ceph/pool/{name}",
35415 "text" : "{name}"
35416 }
35417 ],
35418 "info" : {
35419 "GET" : {
35420 "allowtoken" : 1,
35421 "description" : "List all pools and their settings (which are settable by the POST/PUT endpoints).",
35422 "method" : "GET",
35423 "name" : "lspools",
35424 "parameters" : {
35425 "additionalProperties" : 0,
35426 "properties" : {
35427 "node" : {
35428 "description" : "The cluster node name.",
35429 "format" : "pve-node",
35430 "type" : "string",
35431 "typetext" : "<string>"
35432 }
35433 }
35434 },
35435 "permissions" : {
35436 "check" : [
35437 "perm",
35438 "/",
35439 [
35440 "Sys.Audit",
35441 "Datastore.Audit"
35442 ],
35443 "any",
35444 1
35445 ]
35446 },
35447 "protected" : 1,
35448 "proxyto" : "node",
35449 "returns" : {
35450 "items" : {
35451 "properties" : {
35452 "application_metadata" : {
35453 "optional" : 1,
35454 "title" : "Associated Applications",
35455 "type" : "object"
35456 },
35457 "autoscale_status" : {
35458 "optional" : 1,
35459 "title" : "Autoscale Status",
35460 "type" : "object"
35461 },
35462 "bytes_used" : {
35463 "title" : "Used",
35464 "type" : "integer"
35465 },
35466 "crush_rule" : {
35467 "title" : "Crush Rule",
35468 "type" : "integer"
35469 },
35470 "crush_rule_name" : {
35471 "title" : "Crush Rule Name",
5f26e15b
TL
35472 "type" : "string"
35473 },
9d2e98ed
TL
35474 "min_size" : {
35475 "title" : "Min Size",
35476 "type" : "integer"
35477 },
35478 "percent_used" : {
35479 "title" : "%-Used",
35480 "type" : "number"
35481 },
35482 "pg_autoscale_mode" : {
35483 "optional" : 1,
35484 "title" : "PG Autoscale Mode",
4d47f125
TL
35485 "type" : "string"
35486 },
9d2e98ed
TL
35487 "pg_num" : {
35488 "title" : "PG Num",
35489 "type" : "integer"
35490 },
35491 "pg_num_final" : {
35492 "optional" : 1,
35493 "title" : "Optimal PG Num",
35494 "type" : "integer"
35495 },
35496 "pg_num_min" : {
35497 "optional" : 1,
35498 "title" : "min. PG Num",
35499 "type" : "integer"
35500 },
35501 "pool" : {
35502 "title" : "ID",
35503 "type" : "integer"
35504 },
35505 "pool_name" : {
35506 "title" : "Name",
35507 "type" : "string"
35508 },
35509 "size" : {
35510 "title" : "Size",
35511 "type" : "integer"
35512 },
35513 "target_size" : {
35514 "optional" : 1,
35515 "title" : "PG Autoscale Target Size",
35516 "type" : "integer"
35517 },
35518 "target_size_ratio" : {
35519 "optional" : 1,
35520 "title" : "PG Autoscale Target Ratio",
35521 "type" : "number"
35522 },
35523 "type" : {
35524 "enum" : [
35525 "replicated",
35526 "erasure",
35527 "unknown"
35528 ],
35529 "title" : "Type",
4d47f125
TL
35530 "type" : "string"
35531 }
7aacca6f 35532 },
4d47f125
TL
35533 "type" : "object"
35534 },
35535 "links" : [
35536 {
9d2e98ed 35537 "href" : "{pool_name}",
4d47f125
TL
35538 "rel" : "child"
35539 }
35540 ],
35541 "type" : "array"
35542 }
9d2e98ed
TL
35543 },
35544 "POST" : {
35545 "allowtoken" : 1,
35546 "description" : "Create Ceph pool",
35547 "method" : "POST",
35548 "name" : "createpool",
35549 "parameters" : {
35550 "additionalProperties" : 0,
35551 "properties" : {
35552 "add_storages" : {
35553 "default" : "0; for erasure coded pools: 1",
35554 "description" : "Configure VM and CT storage using the new pool.",
35555 "optional" : 1,
35556 "type" : "boolean",
35557 "typetext" : "<boolean>"
35558 },
35559 "application" : {
35560 "default" : "rbd",
35561 "description" : "The application of the pool.",
35562 "enum" : [
35563 "rbd",
35564 "cephfs",
35565 "rgw"
35566 ],
35567 "optional" : 1,
35568 "title" : "Application",
35569 "type" : "string"
35570 },
35571 "crush_rule" : {
35572 "description" : "The rule to use for mapping object placement in the cluster.",
35573 "optional" : 1,
35574 "title" : "Crush Rule Name",
35575 "type" : "string",
35576 "typetext" : "<string>"
35577 },
35578 "erasure-coding" : {
35579 "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.",
35580 "format" : {
35581 "device-class" : {
35582 "description" : "CRUSH device class. Will create an erasure coded pool plus a replicated pool for metadata.",
35583 "format_description" : "class",
35584 "optional" : 1,
35585 "type" : "string"
35586 },
35587 "failure-domain" : {
35588 "default" : "host",
35589 "description" : "CRUSH failure domain. Default is 'host'. Will create an erasure coded pool plus a replicated pool for metadata.",
35590 "format_description" : "domain",
35591 "optional" : 1,
35592 "type" : "string"
35593 },
35594 "k" : {
35595 "description" : "Number of data chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
35596 "minimum" : 2,
35597 "type" : "integer"
35598 },
35599 "m" : {
35600 "description" : "Number of coding chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
35601 "minimum" : 1,
35602 "type" : "integer"
35603 },
35604 "profile" : {
35605 "description" : "Override the erasure code (EC) profile to use. Will create an erasure coded pool plus a replicated pool for metadata.",
35606 "format_description" : "profile",
35607 "optional" : 1,
35608 "type" : "string"
35609 }
35610 },
35611 "optional" : 1,
35612 "type" : "string",
35613 "typetext" : "k=<integer> ,m=<integer> [,device-class=<class>] [,failure-domain=<domain>] [,profile=<profile>]"
35614 },
35615 "min_size" : {
35616 "default" : 2,
35617 "description" : "Minimum number of replicas per object",
35618 "maximum" : 7,
35619 "minimum" : 1,
35620 "optional" : 1,
35621 "title" : "Min Size",
35622 "type" : "integer",
35623 "typetext" : "<integer> (1 - 7)"
35624 },
35625 "name" : {
35626 "description" : "The name of the pool. It must be unique.",
35627 "title" : "Name",
35628 "type" : "string",
35629 "typetext" : "<string>"
35630 },
35631 "node" : {
35632 "description" : "The cluster node name.",
35633 "format" : "pve-node",
35634 "type" : "string",
35635 "typetext" : "<string>"
35636 },
35637 "pg_autoscale_mode" : {
35638 "default" : "warn",
35639 "description" : "The automatic PG scaling mode of the pool.",
35640 "enum" : [
35641 "on",
35642 "off",
35643 "warn"
35644 ],
35645 "optional" : 1,
35646 "title" : "PG Autoscale Mode",
35647 "type" : "string"
35648 },
35649 "pg_num" : {
35650 "default" : 128,
35651 "description" : "Number of placement groups.",
35652 "maximum" : 32768,
35653 "minimum" : 1,
35654 "optional" : 1,
35655 "title" : "PG Num",
35656 "type" : "integer",
35657 "typetext" : "<integer> (1 - 32768)"
35658 },
35659 "pg_num_min" : {
35660 "description" : "Minimal number of placement groups.",
35661 "maximum" : 32768,
35662 "optional" : 1,
35663 "title" : "min. PG Num",
35664 "type" : "integer",
35665 "typetext" : "<integer> (-N - 32768)"
35666 },
35667 "size" : {
35668 "default" : 3,
35669 "description" : "Number of replicas per object",
35670 "maximum" : 7,
35671 "minimum" : 1,
35672 "optional" : 1,
35673 "title" : "Size",
35674 "type" : "integer",
35675 "typetext" : "<integer> (1 - 7)"
35676 },
35677 "target_size" : {
35678 "description" : "The estimated target size of the pool for the PG autoscaler.",
35679 "optional" : 1,
35680 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
35681 "title" : "PG Autoscale Target Size",
35682 "type" : "string"
35683 },
35684 "target_size_ratio" : {
35685 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
35686 "optional" : 1,
35687 "title" : "PG Autoscale Target Ratio",
35688 "type" : "number",
35689 "typetext" : "<number>"
35690 }
35691 }
35692 },
35693 "permissions" : {
35694 "check" : [
35695 "perm",
35696 "/",
35697 [
35698 "Sys.Modify"
35699 ]
35700 ]
35701 },
35702 "protected" : 1,
35703 "proxyto" : "node",
35704 "returns" : {
35705 "type" : "string"
35706 }
5f26e15b
TL
35707 }
35708 },
35709 "leaf" : 0,
9d2e98ed
TL
35710 "path" : "/nodes/{node}/ceph/pool",
35711 "text" : "pool"
5f26e15b 35712 },
d2656385
TL
35713 {
35714 "children" : [
35715 {
35716 "info" : {
35717 "DELETE" : {
35718 "allowtoken" : 1,
9d2e98ed 35719 "description" : "Destroy pool. Deprecated, please use `/nodes/{node}/ceph/pool/{name}`.",
d2656385
TL
35720 "method" : "DELETE",
35721 "name" : "destroypool",
35722 "parameters" : {
35723 "additionalProperties" : 0,
35724 "properties" : {
35725 "force" : {
35726 "default" : 0,
35727 "description" : "If true, destroys pool even if in use",
35728 "optional" : 1,
35729 "type" : "boolean",
35730 "typetext" : "<boolean>"
35731 },
35732 "name" : {
35733 "description" : "The name of the pool. It must be unique.",
35734 "type" : "string",
35735 "typetext" : "<string>"
35736 },
35737 "node" : {
35738 "description" : "The cluster node name.",
35739 "format" : "pve-node",
35740 "type" : "string",
35741 "typetext" : "<string>"
35742 },
7af2edf9
TL
35743 "remove_ecprofile" : {
35744 "default" : 1,
35745 "description" : "Remove the erasure code profile. Defaults to true, if applicable.",
35746 "optional" : 1,
35747 "type" : "boolean",
35748 "typetext" : "<boolean>"
35749 },
d2656385
TL
35750 "remove_storages" : {
35751 "default" : 0,
35752 "description" : "Remove all pveceph-managed storages configured for this pool",
35753 "optional" : 1,
35754 "type" : "boolean",
35755 "typetext" : "<boolean>"
35756 }
35757 }
35758 },
35759 "permissions" : {
35760 "check" : [
35761 "perm",
35762 "/",
35763 [
35764 "Sys.Modify"
35765 ]
35766 ]
35767 },
35768 "protected" : 1,
35769 "proxyto" : "node",
35770 "returns" : {
35771 "type" : "string"
35772 }
35773 },
35774 "GET" : {
35775 "allowtoken" : 1,
9d2e98ed 35776 "description" : "List pool settings. Deprecated, please use `/nodes/{node}/ceph/pool/{pool}/status`.",
d2656385
TL
35777 "method" : "GET",
35778 "name" : "getpool",
35779 "parameters" : {
35780 "additionalProperties" : 0,
35781 "properties" : {
35782 "name" : {
35783 "description" : "The name of the pool. It must be unique.",
35784 "type" : "string",
35785 "typetext" : "<string>"
35786 },
35787 "node" : {
35788 "description" : "The cluster node name.",
35789 "format" : "pve-node",
35790 "type" : "string",
35791 "typetext" : "<string>"
35792 },
35793 "verbose" : {
35794 "default" : 0,
35795 "description" : "If enabled, will display additional data(eg. statistics).",
35796 "optional" : 1,
35797 "type" : "boolean",
35798 "typetext" : "<boolean>"
35799 }
35800 }
35801 },
35802 "permissions" : {
35803 "check" : [
35804 "perm",
35805 "/",
35806 [
35807 "Sys.Audit",
35808 "Datastore.Audit"
35809 ],
35810 "any",
35811 1
35812 ]
35813 },
35814 "protected" : 1,
35815 "proxyto" : "node",
35816 "returns" : {
35817 "properties" : {
35818 "application" : {
35819 "default" : "rbd",
35820 "description" : "The application of the pool.",
35821 "enum" : [
35822 "rbd",
35823 "cephfs",
35824 "rgw"
35825 ],
35826 "optional" : 1,
35827 "title" : "Application",
35828 "type" : "string"
35829 },
35830 "application_list" : {
35831 "optional" : 1,
35832 "title" : "Application",
35833 "type" : "array"
35834 },
35835 "autoscale_status" : {
35836 "optional" : 1,
35837 "title" : "Autoscale Status",
35838 "type" : "object"
35839 },
35840 "crush_rule" : {
35841 "description" : "The rule to use for mapping object placement in the cluster.",
35842 "optional" : 1,
35843 "title" : "Crush Rule Name",
35844 "type" : "string"
35845 },
35846 "fast_read" : {
35847 "title" : "Fast Read",
35848 "type" : "boolean"
35849 },
35850 "hashpspool" : {
35851 "title" : "hashpspool",
35852 "type" : "boolean"
35853 },
35854 "id" : {
35855 "title" : "ID",
35856 "type" : "integer"
35857 },
35858 "min_size" : {
35859 "default" : 2,
35860 "description" : "Minimum number of replicas per object",
35861 "maximum" : 7,
35862 "minimum" : 1,
35863 "optional" : 1,
35864 "title" : "Min Size",
35865 "type" : "integer"
35866 },
35867 "name" : {
35868 "description" : "The name of the pool. It must be unique.",
35869 "title" : "Name",
35870 "type" : "string"
35871 },
35872 "nodeep-scrub" : {
35873 "title" : "nodeep-scrub",
35874 "type" : "boolean"
35875 },
35876 "nodelete" : {
35877 "title" : "nodelete",
35878 "type" : "boolean"
35879 },
35880 "nopgchange" : {
35881 "title" : "nopgchange",
35882 "type" : "boolean"
35883 },
35884 "noscrub" : {
35885 "title" : "noscrub",
35886 "type" : "boolean"
35887 },
35888 "nosizechange" : {
35889 "title" : "nosizechange",
35890 "type" : "boolean"
35891 },
35892 "pg_autoscale_mode" : {
35893 "default" : "warn",
35894 "description" : "The automatic PG scaling mode of the pool.",
35895 "enum" : [
35896 "on",
35897 "off",
35898 "warn"
35899 ],
35900 "optional" : 1,
35901 "title" : "PG Autoscale Mode",
35902 "type" : "string"
35903 },
35904 "pg_num" : {
35905 "default" : 128,
35906 "description" : "Number of placement groups.",
35907 "maximum" : 32768,
35908 "minimum" : 1,
35909 "optional" : 1,
35910 "title" : "PG Num",
35911 "type" : "integer"
35912 },
35913 "pg_num_min" : {
35914 "description" : "Minimal number of placement groups.",
35915 "maximum" : 32768,
35916 "optional" : 1,
35917 "title" : "min. PG Num",
35918 "type" : "integer"
35919 },
35920 "pgp_num" : {
35921 "title" : "PGP num",
35922 "type" : "integer"
35923 },
35924 "size" : {
35925 "default" : 3,
35926 "description" : "Number of replicas per object",
35927 "maximum" : 7,
35928 "minimum" : 1,
35929 "optional" : 1,
35930 "title" : "Size",
35931 "type" : "integer"
35932 },
35933 "statistics" : {
35934 "optional" : 1,
35935 "title" : "Statistics",
35936 "type" : "object"
35937 },
35938 "target_size" : {
35939 "description" : "The estimated target size of the pool for the PG autoscaler.",
35940 "optional" : 1,
35941 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
35942 "title" : "PG Autoscale Target Size",
35943 "type" : "string"
35944 },
35945 "target_size_ratio" : {
35946 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
35947 "optional" : 1,
35948 "title" : "PG Autoscale Target Ratio",
35949 "type" : "number"
35950 },
35951 "use_gmt_hitset" : {
35952 "title" : "use_gmt_hitset",
35953 "type" : "boolean"
35954 },
35955 "write_fadvise_dontneed" : {
35956 "title" : "write_fadvise_dontneed",
35957 "type" : "boolean"
35958 }
35959 },
35960 "type" : "object"
35961 }
35962 },
35963 "PUT" : {
35964 "allowtoken" : 1,
9d2e98ed 35965 "description" : "Change POOL settings. Deprecated, please use `/nodes/{node}/ceph/pool/{name}`.",
d2656385
TL
35966 "method" : "PUT",
35967 "name" : "setpool",
35968 "parameters" : {
35969 "additionalProperties" : 0,
35970 "properties" : {
35971 "application" : {
35972 "description" : "The application of the pool.",
35973 "enum" : [
35974 "rbd",
35975 "cephfs",
35976 "rgw"
35977 ],
35978 "optional" : 1,
35979 "title" : "Application",
35980 "type" : "string"
35981 },
35982 "crush_rule" : {
35983 "description" : "The rule to use for mapping object placement in the cluster.",
35984 "optional" : 1,
35985 "title" : "Crush Rule Name",
35986 "type" : "string",
35987 "typetext" : "<string>"
35988 },
35989 "min_size" : {
35990 "description" : "Minimum number of replicas per object",
35991 "maximum" : 7,
35992 "minimum" : 1,
35993 "optional" : 1,
35994 "title" : "Min Size",
35995 "type" : "integer",
35996 "typetext" : "<integer> (1 - 7)"
35997 },
35998 "name" : {
35999 "description" : "The name of the pool. It must be unique.",
36000 "title" : "Name",
36001 "type" : "string",
36002 "typetext" : "<string>"
36003 },
36004 "node" : {
36005 "description" : "The cluster node name.",
36006 "format" : "pve-node",
36007 "type" : "string",
36008 "typetext" : "<string>"
36009 },
36010 "pg_autoscale_mode" : {
36011 "description" : "The automatic PG scaling mode of the pool.",
36012 "enum" : [
36013 "on",
36014 "off",
36015 "warn"
36016 ],
36017 "optional" : 1,
36018 "title" : "PG Autoscale Mode",
36019 "type" : "string"
36020 },
36021 "pg_num" : {
36022 "description" : "Number of placement groups.",
36023 "maximum" : 32768,
36024 "minimum" : 1,
36025 "optional" : 1,
36026 "title" : "PG Num",
36027 "type" : "integer",
36028 "typetext" : "<integer> (1 - 32768)"
36029 },
36030 "pg_num_min" : {
36031 "description" : "Minimal number of placement groups.",
36032 "maximum" : 32768,
36033 "optional" : 1,
36034 "title" : "min. PG Num",
36035 "type" : "integer",
36036 "typetext" : "<integer> (-N - 32768)"
36037 },
36038 "size" : {
36039 "description" : "Number of replicas per object",
36040 "maximum" : 7,
36041 "minimum" : 1,
36042 "optional" : 1,
36043 "title" : "Size",
36044 "type" : "integer",
36045 "typetext" : "<integer> (1 - 7)"
36046 },
36047 "target_size" : {
36048 "description" : "The estimated target size of the pool for the PG autoscaler.",
36049 "optional" : 1,
36050 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
36051 "title" : "PG Autoscale Target Size",
36052 "type" : "string"
36053 },
36054 "target_size_ratio" : {
36055 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
36056 "optional" : 1,
36057 "title" : "PG Autoscale Target Ratio",
36058 "type" : "number",
36059 "typetext" : "<number>"
36060 }
36061 }
36062 },
36063 "permissions" : {
36064 "check" : [
36065 "perm",
36066 "/",
36067 [
36068 "Sys.Modify"
36069 ]
36070 ]
36071 },
36072 "protected" : 1,
36073 "proxyto" : "node",
36074 "returns" : {
36075 "type" : "string"
36076 }
36077 }
36078 },
36079 "leaf" : 1,
36080 "path" : "/nodes/{node}/ceph/pools/{name}",
36081 "text" : "{name}"
36082 }
36083 ],
36084 "info" : {
36085 "GET" : {
36086 "allowtoken" : 1,
9d2e98ed 36087 "description" : "List all pools. Deprecated, please use `/nodes/{node}/ceph/pool`.",
d2656385
TL
36088 "method" : "GET",
36089 "name" : "lspools",
36090 "parameters" : {
36091 "additionalProperties" : 0,
36092 "properties" : {
36093 "node" : {
36094 "description" : "The cluster node name.",
36095 "format" : "pve-node",
36096 "type" : "string",
36097 "typetext" : "<string>"
36098 }
36099 }
36100 },
36101 "permissions" : {
36102 "check" : [
36103 "perm",
36104 "/",
36105 [
36106 "Sys.Audit",
36107 "Datastore.Audit"
36108 ],
36109 "any",
36110 1
36111 ]
36112 },
36113 "protected" : 1,
36114 "proxyto" : "node",
36115 "returns" : {
36116 "items" : {
36117 "properties" : {
81a3384d
TL
36118 "application_metadata" : {
36119 "optional" : 1,
36120 "title" : "Associated Applications",
36121 "type" : "object"
36122 },
d2656385
TL
36123 "autoscale_status" : {
36124 "optional" : 1,
36125 "title" : "Autoscale Status",
36126 "type" : "object"
36127 },
36128 "bytes_used" : {
36129 "title" : "Used",
36130 "type" : "integer"
36131 },
36132 "crush_rule" : {
36133 "title" : "Crush Rule",
36134 "type" : "integer"
36135 },
36136 "crush_rule_name" : {
36137 "title" : "Crush Rule Name",
36138 "type" : "string"
36139 },
36140 "min_size" : {
36141 "title" : "Min Size",
36142 "type" : "integer"
36143 },
36144 "percent_used" : {
36145 "title" : "%-Used",
36146 "type" : "number"
36147 },
36148 "pg_autoscale_mode" : {
36149 "optional" : 1,
36150 "title" : "PG Autoscale Mode",
36151 "type" : "string"
36152 },
36153 "pg_num" : {
36154 "title" : "PG Num",
36155 "type" : "integer"
36156 },
36157 "pg_num_final" : {
36158 "optional" : 1,
36159 "title" : "Optimal PG Num",
36160 "type" : "integer"
36161 },
36162 "pg_num_min" : {
36163 "optional" : 1,
36164 "title" : "min. PG Num",
36165 "type" : "integer"
36166 },
36167 "pool" : {
36168 "title" : "ID",
36169 "type" : "integer"
36170 },
36171 "pool_name" : {
36172 "title" : "Name",
36173 "type" : "string"
36174 },
36175 "size" : {
36176 "title" : "Size",
36177 "type" : "integer"
36178 },
36179 "target_size" : {
36180 "optional" : 1,
36181 "title" : "PG Autoscale Target Size",
36182 "type" : "integer"
36183 },
36184 "target_size_ratio" : {
36185 "optional" : 1,
36186 "title" : "PG Autoscale Target Ratio",
36187 "type" : "number"
e6d66c2f
TL
36188 },
36189 "type" : {
36190 "enum" : [
36191 "replicated",
36192 "erasure",
36193 "unknown"
36194 ],
36195 "title" : "Type",
36196 "type" : "string"
d2656385
TL
36197 }
36198 },
36199 "type" : "object"
36200 },
36201 "links" : [
36202 {
36203 "href" : "{pool_name}",
36204 "rel" : "child"
36205 }
36206 ],
36207 "type" : "array"
36208 }
36209 },
36210 "POST" : {
36211 "allowtoken" : 1,
9d2e98ed 36212 "description" : "Create Ceph pool. Deprecated, please use `/nodes/{node}/ceph/pool`.",
d2656385
TL
36213 "method" : "POST",
36214 "name" : "createpool",
36215 "parameters" : {
36216 "additionalProperties" : 0,
36217 "properties" : {
36218 "add_storages" : {
e6d66c2f
TL
36219 "default" : "0; for erasure coded pools: 1",
36220 "description" : "Configure VM and CT storage using the new pool.",
d2656385
TL
36221 "optional" : 1,
36222 "type" : "boolean",
36223 "typetext" : "<boolean>"
36224 },
36225 "application" : {
36226 "default" : "rbd",
36227 "description" : "The application of the pool.",
36228 "enum" : [
36229 "rbd",
36230 "cephfs",
36231 "rgw"
36232 ],
36233 "optional" : 1,
36234 "title" : "Application",
36235 "type" : "string"
36236 },
36237 "crush_rule" : {
36238 "description" : "The rule to use for mapping object placement in the cluster.",
36239 "optional" : 1,
36240 "title" : "Crush Rule Name",
36241 "type" : "string",
36242 "typetext" : "<string>"
36243 },
7af2edf9 36244 "erasure-coding" : {
460359c5 36245 "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
36246 "format" : {
36247 "device-class" : {
36248 "description" : "CRUSH device class. Will create an erasure coded pool plus a replicated pool for metadata.",
36249 "format_description" : "class",
36250 "optional" : 1,
36251 "type" : "string"
36252 },
36253 "failure-domain" : {
e6d66c2f 36254 "default" : "host",
7af2edf9
TL
36255 "description" : "CRUSH failure domain. Default is 'host'. Will create an erasure coded pool plus a replicated pool for metadata.",
36256 "format_description" : "domain",
36257 "optional" : 1,
36258 "type" : "string"
36259 },
36260 "k" : {
36261 "description" : "Number of data chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
e6d66c2f 36262 "minimum" : 2,
7af2edf9
TL
36263 "type" : "integer"
36264 },
36265 "m" : {
36266 "description" : "Number of coding chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
36267 "minimum" : 1,
36268 "type" : "integer"
36269 },
36270 "profile" : {
36271 "description" : "Override the erasure code (EC) profile to use. Will create an erasure coded pool plus a replicated pool for metadata.",
36272 "format_description" : "profile",
36273 "optional" : 1,
36274 "type" : "string"
36275 }
36276 },
36277 "optional" : 1,
36278 "type" : "string",
36279 "typetext" : "k=<integer> ,m=<integer> [,device-class=<class>] [,failure-domain=<domain>] [,profile=<profile>]"
36280 },
d2656385
TL
36281 "min_size" : {
36282 "default" : 2,
36283 "description" : "Minimum number of replicas per object",
36284 "maximum" : 7,
36285 "minimum" : 1,
36286 "optional" : 1,
36287 "title" : "Min Size",
36288 "type" : "integer",
36289 "typetext" : "<integer> (1 - 7)"
36290 },
36291 "name" : {
36292 "description" : "The name of the pool. It must be unique.",
36293 "title" : "Name",
36294 "type" : "string",
36295 "typetext" : "<string>"
36296 },
36297 "node" : {
36298 "description" : "The cluster node name.",
36299 "format" : "pve-node",
36300 "type" : "string",
36301 "typetext" : "<string>"
36302 },
36303 "pg_autoscale_mode" : {
36304 "default" : "warn",
36305 "description" : "The automatic PG scaling mode of the pool.",
36306 "enum" : [
36307 "on",
36308 "off",
36309 "warn"
36310 ],
36311 "optional" : 1,
36312 "title" : "PG Autoscale Mode",
36313 "type" : "string"
36314 },
36315 "pg_num" : {
36316 "default" : 128,
36317 "description" : "Number of placement groups.",
36318 "maximum" : 32768,
36319 "minimum" : 1,
36320 "optional" : 1,
36321 "title" : "PG Num",
36322 "type" : "integer",
36323 "typetext" : "<integer> (1 - 32768)"
36324 },
36325 "pg_num_min" : {
36326 "description" : "Minimal number of placement groups.",
36327 "maximum" : 32768,
36328 "optional" : 1,
36329 "title" : "min. PG Num",
36330 "type" : "integer",
36331 "typetext" : "<integer> (-N - 32768)"
36332 },
36333 "size" : {
36334 "default" : 3,
36335 "description" : "Number of replicas per object",
36336 "maximum" : 7,
36337 "minimum" : 1,
36338 "optional" : 1,
36339 "title" : "Size",
36340 "type" : "integer",
36341 "typetext" : "<integer> (1 - 7)"
36342 },
36343 "target_size" : {
36344 "description" : "The estimated target size of the pool for the PG autoscaler.",
36345 "optional" : 1,
36346 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
36347 "title" : "PG Autoscale Target Size",
36348 "type" : "string"
36349 },
36350 "target_size_ratio" : {
36351 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
36352 "optional" : 1,
36353 "title" : "PG Autoscale Target Ratio",
36354 "type" : "number",
36355 "typetext" : "<number>"
36356 }
36357 }
36358 },
36359 "permissions" : {
36360 "check" : [
36361 "perm",
36362 "/",
36363 [
36364 "Sys.Modify"
36365 ]
36366 ]
36367 },
36368 "protected" : 1,
36369 "proxyto" : "node",
36370 "returns" : {
36371 "type" : "string"
36372 }
36373 }
36374 },
36375 "leaf" : 0,
36376 "path" : "/nodes/{node}/ceph/pools",
36377 "text" : "pools"
36378 },
5f26e15b
TL
36379 {
36380 "info" : {
36381 "GET" : {
e9cd3bd4 36382 "allowtoken" : 1,
9d2e98ed 36383 "description" : "Get the Ceph configuration file. Deprecated, please use `/nodes/{node}/ceph/cfg/raw.",
5f26e15b
TL
36384 "method" : "GET",
36385 "name" : "config",
36386 "parameters" : {
36387 "additionalProperties" : 0,
36388 "properties" : {
4d47f125
TL
36389 "node" : {
36390 "description" : "The cluster node name.",
36391 "format" : "pve-node",
36392 "type" : "string",
36393 "typetext" : "<string>"
7aacca6f 36394 }
4d47f125 36395 }
44660702 36396 },
4d47f125
TL
36397 "permissions" : {
36398 "check" : [
36399 "perm",
36400 "/",
36401 [
5f26e15b
TL
36402 "Sys.Audit",
36403 "Datastore.Audit"
36404 ],
36405 "any",
36406 1
4d47f125 36407 ]
56122987 36408 },
95895385 36409 "proxyto" : "node",
4d47f125 36410 "returns" : {
7aacca6f 36411 "type" : "string"
4d47f125
TL
36412 }
36413 }
36414 },
5f26e15b
TL
36415 "leaf" : 1,
36416 "path" : "/nodes/{node}/ceph/config",
36417 "text" : "config"
4d47f125 36418 },
7cbed89a
TL
36419 {
36420 "info" : {
36421 "GET" : {
e9cd3bd4 36422 "allowtoken" : 1,
9d2e98ed 36423 "description" : "Get the Ceph configuration database. Deprecated, please use `/nodes/{node}/ceph/cfg/db.",
7cbed89a
TL
36424 "method" : "GET",
36425 "name" : "configdb",
36426 "parameters" : {
36427 "additionalProperties" : 0,
36428 "properties" : {
36429 "node" : {
36430 "description" : "The cluster node name.",
36431 "format" : "pve-node",
36432 "type" : "string",
36433 "typetext" : "<string>"
36434 }
36435 }
36436 },
36437 "permissions" : {
36438 "check" : [
36439 "perm",
36440 "/",
36441 [
36442 "Sys.Audit",
36443 "Datastore.Audit"
36444 ],
36445 "any",
36446 1
36447 ]
36448 },
36449 "protected" : 1,
36450 "proxyto" : "node",
36451 "returns" : {
36452 "items" : {
36453 "properties" : {
36454 "can_update_at_runtime" : {
36455 "type" : "boolean"
36456 },
36457 "level" : {
36458 "type" : "string"
36459 },
36460 "mask" : {
36461 "type" : "string"
36462 },
36463 "name" : {
36464 "type" : "string"
36465 },
36466 "section" : {
36467 "type" : "string"
36468 },
36469 "value" : {
36470 "type" : "string"
36471 }
36472 },
36473 "type" : "object"
36474 },
36475 "type" : "array"
36476 }
36477 }
36478 },
36479 "leaf" : 1,
36480 "path" : "/nodes/{node}/ceph/configdb",
36481 "text" : "configdb"
36482 },
4d47f125
TL
36483 {
36484 "info" : {
36485 "POST" : {
e9cd3bd4 36486 "allowtoken" : 1,
4d47f125
TL
36487 "description" : "Create initial ceph default configuration and setup symlinks.",
36488 "method" : "POST",
36489 "name" : "init",
36490 "parameters" : {
36491 "additionalProperties" : 0,
36492 "properties" : {
e2d681b3
TL
36493 "cluster-network" : {
36494 "description" : "Declare a separate cluster network, OSDs will routeheartbeat, object replication and recovery traffic over it",
36495 "format" : "CIDR",
36496 "maxLength" : 128,
36497 "optional" : 1,
36498 "requires" : "network",
36499 "type" : "string",
36500 "typetext" : "<string>"
36501 },
4d47f125
TL
36502 "disable_cephx" : {
36503 "default" : 0,
1e3f8156 36504 "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 36505 "optional" : 1,
4d47f125
TL
36506 "type" : "boolean",
36507 "typetext" : "<boolean>"
56122987 36508 },
4d47f125
TL
36509 "min_size" : {
36510 "default" : 2,
36511 "description" : "Minimum number of available replicas per object to allow I/O",
36512 "maximum" : 7,
36513 "minimum" : 1,
7aacca6f 36514 "optional" : 1,
4d47f125
TL
36515 "type" : "integer",
36516 "typetext" : "<integer> (1 - 7)"
7aacca6f 36517 },
4d47f125
TL
36518 "network" : {
36519 "description" : "Use specific network for all ceph related traffic",
36520 "format" : "CIDR",
36521 "maxLength" : 128,
5d9c884c 36522 "optional" : 1,
4d47f125
TL
36523 "type" : "string",
36524 "typetext" : "<string>"
5d9c884c 36525 },
4d47f125
TL
36526 "node" : {
36527 "description" : "The cluster node name.",
36528 "format" : "pve-node",
36529 "type" : "string",
36530 "typetext" : "<string>"
7aacca6f 36531 },
4d47f125
TL
36532 "pg_bits" : {
36533 "default" : 6,
36534 "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.",
36535 "maximum" : 14,
36536 "minimum" : 6,
de0983cb 36537 "optional" : 1,
4d47f125
TL
36538 "type" : "integer",
36539 "typetext" : "<integer> (6 - 14)"
de0983cb 36540 },
44660702 36541 "size" : {
4d47f125
TL
36542 "default" : 3,
36543 "description" : "Targeted number of replicas per object",
36544 "maximum" : 7,
36545 "minimum" : 1,
7aacca6f 36546 "optional" : 1,
4d47f125
TL
36547 "type" : "integer",
36548 "typetext" : "<integer> (1 - 7)"
56122987 36549 }
4d47f125 36550 }
44660702 36551 },
4d47f125
TL
36552 "permissions" : {
36553 "check" : [
36554 "perm",
36555 "/",
36556 [
36557 "Sys.Modify"
36558 ]
36559 ]
5da3d723 36560 },
4d47f125
TL
36561 "protected" : 1,
36562 "proxyto" : "node",
36563 "returns" : {
36564 "type" : "null"
36565 }
36566 }
36567 },
36568 "leaf" : 1,
36569 "path" : "/nodes/{node}/ceph/init",
36570 "text" : "init"
36571 },
4d47f125
TL
36572 {
36573 "info" : {
36574 "POST" : {
e9cd3bd4 36575 "allowtoken" : 1,
4d47f125
TL
36576 "description" : "Stop ceph services.",
36577 "method" : "POST",
36578 "name" : "stop",
36579 "parameters" : {
36580 "additionalProperties" : 0,
36581 "properties" : {
36582 "node" : {
36583 "description" : "The cluster node name.",
36584 "format" : "pve-node",
36585 "type" : "string",
36586 "typetext" : "<string>"
36587 },
36588 "service" : {
e2d681b3 36589 "default" : "ceph.target",
4d47f125
TL
36590 "description" : "Ceph service name.",
36591 "optional" : 1,
c5aa7e14 36592 "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
4d47f125
TL
36593 "type" : "string"
36594 }
36595 }
7aacca6f 36596 },
4d47f125
TL
36597 "permissions" : {
36598 "check" : [
36599 "perm",
36600 "/",
36601 [
36602 "Sys.Modify"
36603 ]
36604 ]
7aacca6f 36605 },
4d47f125
TL
36606 "protected" : 1,
36607 "proxyto" : "node",
36608 "returns" : {
36609 "type" : "string"
36610 }
36611 }
36612 },
36613 "leaf" : 1,
36614 "path" : "/nodes/{node}/ceph/stop",
36615 "text" : "stop"
36616 },
36617 {
36618 "info" : {
36619 "POST" : {
e9cd3bd4 36620 "allowtoken" : 1,
4d47f125
TL
36621 "description" : "Start ceph services.",
36622 "method" : "POST",
36623 "name" : "start",
36624 "parameters" : {
36625 "additionalProperties" : 0,
36626 "properties" : {
36627 "node" : {
36628 "description" : "The cluster node name.",
36629 "format" : "pve-node",
36630 "type" : "string",
36631 "typetext" : "<string>"
36632 },
36633 "service" : {
e2d681b3 36634 "default" : "ceph.target",
4d47f125
TL
36635 "description" : "Ceph service name.",
36636 "optional" : 1,
c5aa7e14 36637 "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
4d47f125
TL
36638 "type" : "string"
36639 }
36640 }
44660702 36641 },
4d47f125
TL
36642 "permissions" : {
36643 "check" : [
36644 "perm",
36645 "/",
36646 [
36647 "Sys.Modify"
36648 ]
36649 ]
44660702 36650 },
4d47f125
TL
36651 "protected" : 1,
36652 "proxyto" : "node",
36653 "returns" : {
36654 "type" : "string"
44660702 36655 }
7aacca6f
DM
36656 }
36657 },
4d47f125
TL
36658 "leaf" : 1,
36659 "path" : "/nodes/{node}/ceph/start",
36660 "text" : "start"
36661 },
e2d681b3
TL
36662 {
36663 "info" : {
36664 "POST" : {
e9cd3bd4 36665 "allowtoken" : 1,
e2d681b3
TL
36666 "description" : "Restart ceph services.",
36667 "method" : "POST",
36668 "name" : "restart",
36669 "parameters" : {
36670 "additionalProperties" : 0,
36671 "properties" : {
36672 "node" : {
36673 "description" : "The cluster node name.",
36674 "format" : "pve-node",
36675 "type" : "string",
36676 "typetext" : "<string>"
36677 },
36678 "service" : {
36679 "default" : "ceph.target",
36680 "description" : "Ceph service name.",
36681 "optional" : 1,
c5aa7e14 36682 "pattern" : "(mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
e2d681b3
TL
36683 "type" : "string"
36684 }
36685 }
36686 },
36687 "permissions" : {
36688 "check" : [
36689 "perm",
36690 "/",
36691 [
36692 "Sys.Modify"
36693 ]
36694 ]
36695 },
36696 "protected" : 1,
36697 "proxyto" : "node",
36698 "returns" : {
36699 "type" : "string"
36700 }
36701 }
36702 },
36703 "leaf" : 1,
36704 "path" : "/nodes/{node}/ceph/restart",
36705 "text" : "restart"
36706 },
4d47f125
TL
36707 {
36708 "info" : {
36709 "GET" : {
e9cd3bd4 36710 "allowtoken" : 1,
4d47f125
TL
36711 "description" : "Get ceph status.",
36712 "method" : "GET",
36713 "name" : "status",
36714 "parameters" : {
36715 "additionalProperties" : 0,
36716 "properties" : {
36717 "node" : {
36718 "description" : "The cluster node name.",
36719 "format" : "pve-node",
36720 "type" : "string",
36721 "typetext" : "<string>"
36722 }
36723 }
36724 },
36725 "permissions" : {
36726 "check" : [
36727 "perm",
36728 "/",
36729 [
36730 "Sys.Audit",
36731 "Datastore.Audit"
36732 ],
36733 "any",
36734 1
36735 ]
36736 },
36737 "protected" : 1,
36738 "proxyto" : "node",
36739 "returns" : {
d2656385 36740 "type" : "object"
44660702 36741 }
56122987 36742 }
44660702 36743 },
d2656385
TL
36744 "leaf" : 1,
36745 "path" : "/nodes/{node}/ceph/status",
36746 "text" : "status"
7aacca6f 36747 },
56122987 36748 {
56122987
DM
36749 "info" : {
36750 "GET" : {
e9cd3bd4 36751 "allowtoken" : 1,
4d47f125 36752 "description" : "Get OSD crush map",
44660702 36753 "method" : "GET",
4d47f125 36754 "name" : "crush",
56122987 36755 "parameters" : {
7aacca6f 36756 "additionalProperties" : 0,
56122987 36757 "properties" : {
56122987 36758 "node" : {
7aacca6f 36759 "description" : "The cluster node name.",
44660702 36760 "format" : "pve-node",
013dc89f
DM
36761 "type" : "string",
36762 "typetext" : "<string>"
56122987 36763 }
7aacca6f 36764 }
56122987 36765 },
56122987
DM
36766 "permissions" : {
36767 "check" : [
36768 "perm",
36769 "/",
36770 [
36771 "Sys.Audit",
36772 "Datastore.Audit"
36773 ],
36774 "any",
36775 1
36776 ]
44660702 36777 },
4d47f125
TL
36778 "protected" : 1,
36779 "proxyto" : "node",
44660702
DM
36780 "returns" : {
36781 "type" : "string"
7aacca6f
DM
36782 }
36783 }
44660702
DM
36784 },
36785 "leaf" : 1,
4d47f125
TL
36786 "path" : "/nodes/{node}/ceph/crush",
36787 "text" : "crush"
7aacca6f
DM
36788 },
36789 {
7aacca6f
DM
36790 "info" : {
36791 "GET" : {
e9cd3bd4 36792 "allowtoken" : 1,
4d47f125 36793 "description" : "Read ceph log",
7aacca6f 36794 "method" : "GET",
4d47f125 36795 "name" : "log",
7aacca6f
DM
36796 "parameters" : {
36797 "additionalProperties" : 0,
36798 "properties" : {
4d47f125
TL
36799 "limit" : {
36800 "minimum" : 0,
36801 "optional" : 1,
36802 "type" : "integer",
36803 "typetext" : "<integer> (0 - N)"
36804 },
7aacca6f 36805 "node" : {
7aacca6f 36806 "description" : "The cluster node name.",
44660702 36807 "format" : "pve-node",
013dc89f
DM
36808 "type" : "string",
36809 "typetext" : "<string>"
4d47f125
TL
36810 },
36811 "start" : {
36812 "minimum" : 0,
36813 "optional" : 1,
36814 "type" : "integer",
36815 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
36816 }
36817 }
36818 },
44660702
DM
36819 "permissions" : {
36820 "check" : [
36821 "perm",
4d47f125 36822 "/nodes/{node}",
44660702 36823 [
4d47f125
TL
36824 "Sys.Syslog"
36825 ]
44660702
DM
36826 ]
36827 },
7aacca6f 36828 "protected" : 1,
44660702 36829 "proxyto" : "node",
7aacca6f
DM
36830 "returns" : {
36831 "items" : {
36832 "properties" : {
4d47f125
TL
36833 "n" : {
36834 "description" : "Line number",
36835 "type" : "integer"
56122987 36836 },
4d47f125
TL
36837 "t" : {
36838 "description" : "Line text",
56122987
DM
36839 "type" : "string"
36840 }
7aacca6f
DM
36841 },
36842 "type" : "object"
56122987
DM
36843 },
36844 "type" : "array"
44660702 36845 }
4d47f125
TL
36846 }
36847 },
36848 "leaf" : 1,
36849 "path" : "/nodes/{node}/ceph/log",
36850 "text" : "log"
36851 },
36852 {
36853 "info" : {
36854 "GET" : {
e9cd3bd4 36855 "allowtoken" : 1,
4d47f125
TL
36856 "description" : "List ceph rules.",
36857 "method" : "GET",
36858 "name" : "rules",
44660702
DM
36859 "parameters" : {
36860 "additionalProperties" : 0,
36861 "properties" : {
36862 "node" : {
36863 "description" : "The cluster node name.",
36864 "format" : "pve-node",
013dc89f
DM
36865 "type" : "string",
36866 "typetext" : "<string>"
44660702
DM
36867 }
36868 }
36869 },
7aacca6f
DM
36870 "permissions" : {
36871 "check" : [
36872 "perm",
36873 "/",
36874 [
4d47f125
TL
36875 "Sys.Audit",
36876 "Datastore.Audit"
36877 ],
36878 "any",
36879 1
7aacca6f
DM
36880 ]
36881 },
44660702 36882 "protected" : 1,
7aacca6f 36883 "proxyto" : "node",
56122987 36884 "returns" : {
4d47f125 36885 "items" : {
9d2e98ed
TL
36886 "properties" : {
36887 "name" : {
36888 "description" : "Name of the CRUSH rule.",
36889 "type" : "string"
36890 }
36891 },
4d47f125
TL
36892 "type" : "object"
36893 },
36894 "links" : [
36895 {
36896 "href" : "{name}",
36897 "rel" : "child"
36898 }
36899 ],
36900 "type" : "array"
44660702 36901 }
56122987 36902 }
44660702 36903 },
4d47f125
TL
36904 "leaf" : 1,
36905 "path" : "/nodes/{node}/ceph/rules",
36906 "text" : "rules"
81a3384d
TL
36907 },
36908 {
36909 "info" : {
36910 "GET" : {
36911 "allowtoken" : 1,
36912 "description" : "Heuristical check if it is safe to perform an action.",
36913 "method" : "GET",
36914 "name" : "cmd_safety",
36915 "parameters" : {
36916 "additionalProperties" : 0,
36917 "properties" : {
36918 "action" : {
36919 "description" : "Action to check",
36920 "enum" : [
36921 "stop",
36922 "destroy"
36923 ],
36924 "type" : "string"
36925 },
36926 "id" : {
36927 "description" : "ID of the service",
36928 "type" : "string",
36929 "typetext" : "<string>"
36930 },
36931 "node" : {
36932 "description" : "The cluster node name.",
36933 "format" : "pve-node",
36934 "type" : "string",
36935 "typetext" : "<string>"
36936 },
36937 "service" : {
36938 "description" : "Service type",
36939 "enum" : [
36940 "osd",
36941 "mon",
36942 "mds"
36943 ],
36944 "type" : "string"
36945 }
36946 }
36947 },
36948 "permissions" : {
36949 "check" : [
36950 "perm",
36951 "/",
36952 [
9d2e98ed 36953 "Sys.Audit"
81a3384d
TL
36954 ]
36955 ]
36956 },
36957 "protected" : 1,
36958 "proxyto" : "node",
36959 "returns" : {
36960 "properties" : {
36961 "safe" : {
36962 "description" : "If it is safe to run the command.",
36963 "type" : "boolean"
36964 },
36965 "status" : {
36966 "description" : "Status message given by Ceph.",
36967 "optional" : 1,
36968 "type" : "string"
36969 }
36970 },
36971 "type" : "object"
36972 }
36973 }
36974 },
36975 "leaf" : 1,
36976 "path" : "/nodes/{node}/ceph/cmd-safety",
36977 "text" : "cmd-safety"
4d47f125
TL
36978 }
36979 ],
36980 "info" : {
36981 "GET" : {
e9cd3bd4 36982 "allowtoken" : 1,
4d47f125
TL
36983 "description" : "Directory index.",
36984 "method" : "GET",
36985 "name" : "index",
36986 "parameters" : {
36987 "additionalProperties" : 0,
36988 "properties" : {
36989 "node" : {
36990 "description" : "The cluster node name.",
36991 "format" : "pve-node",
36992 "type" : "string",
36993 "typetext" : "<string>"
36994 }
36995 }
36996 },
36997 "permissions" : {
36998 "check" : [
36999 "perm",
37000 "/",
37001 [
37002 "Sys.Audit",
37003 "Datastore.Audit"
37004 ],
37005 "any",
37006 1
37007 ]
37008 },
37009 "returns" : {
37010 "items" : {
37011 "properties" : {},
37012 "type" : "object"
37013 },
37014 "links" : [
37015 {
37016 "href" : "{name}",
37017 "rel" : "child"
37018 }
37019 ],
37020 "type" : "array"
37021 }
37022 }
37023 },
37024 "leaf" : 0,
37025 "path" : "/nodes/{node}/ceph",
37026 "text" : "ceph"
37027 },
37028 {
37029 "children" : [
e7084ef7
TL
37030 {
37031 "info" : {
37032 "GET" : {
37033 "allowtoken" : 1,
37034 "description" : "Get the currently configured vzdump defaults.",
37035 "method" : "GET",
37036 "name" : "defaults",
37037 "parameters" : {
37038 "additionalProperties" : 0,
37039 "properties" : {
37040 "node" : {
37041 "description" : "The cluster node name.",
37042 "format" : "pve-node",
37043 "type" : "string",
37044 "typetext" : "<string>"
37045 },
37046 "storage" : {
37047 "description" : "The storage identifier.",
37048 "format" : "pve-storage-id",
37049 "optional" : 1,
37050 "type" : "string",
37051 "typetext" : "<string>"
37052 }
37053 }
37054 },
37055 "permissions" : {
37056 "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.",
37057 "user" : "all"
37058 },
37059 "proxyto" : "node",
37060 "returns" : {
37061 "additionalProperties" : 0,
37062 "properties" : {
37063 "all" : {
37064 "default" : 0,
37065 "description" : "Backup all known guest systems on this host.",
37066 "optional" : 1,
37067 "type" : "boolean"
37068 },
37069 "bwlimit" : {
37070 "default" : 0,
4a407cfd 37071 "description" : "Limit I/O bandwidth (in KiB/s).",
e7084ef7
TL
37072 "minimum" : 0,
37073 "optional" : 1,
37074 "type" : "integer"
37075 },
37076 "compress" : {
37077 "default" : "0",
37078 "description" : "Compress dump file.",
37079 "enum" : [
37080 "0",
37081 "1",
37082 "gzip",
37083 "lzo",
37084 "zstd"
37085 ],
37086 "optional" : 1,
37087 "type" : "string"
37088 },
37089 "dumpdir" : {
37090 "description" : "Store resulting files to specified directory.",
37091 "optional" : 1,
37092 "type" : "string"
37093 },
37094 "exclude" : {
37095 "description" : "Exclude specified guest systems (assumes --all)",
37096 "format" : "pve-vmid-list",
37097 "optional" : 1,
37098 "type" : "string"
37099 },
37100 "exclude-path" : {
37101 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
4a407cfd
TL
37102 "items" : {
37103 "type" : "string"
37104 },
e7084ef7 37105 "optional" : 1,
4a407cfd 37106 "type" : "array"
e7084ef7
TL
37107 },
37108 "ionice" : {
37109 "default" : 7,
159464a9 37110 "description" : "Set IO priority when using the BFQ scheduler. For snapshot and suspend mode backups of VMs, this only affects the compressor. A value of 8 means the idle priority is used, otherwise the best-effort priority is used with the specified value.",
e7084ef7
TL
37111 "maximum" : 8,
37112 "minimum" : 0,
37113 "optional" : 1,
37114 "type" : "integer"
37115 },
37116 "lockwait" : {
37117 "default" : 180,
37118 "description" : "Maximal time to wait for the global lock (minutes).",
37119 "minimum" : 0,
37120 "optional" : 1,
37121 "type" : "integer"
37122 },
37123 "mailnotification" : {
37124 "default" : "always",
37125 "description" : "Specify when to send an email",
37126 "enum" : [
37127 "always",
37128 "failure"
37129 ],
37130 "optional" : 1,
37131 "type" : "string"
37132 },
37133 "mailto" : {
37134 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
37135 "format" : "email-or-username-list",
37136 "optional" : 1,
37137 "type" : "string"
37138 },
37139 "maxfiles" : {
0695fdaf 37140 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
e7084ef7
TL
37141 "minimum" : 1,
37142 "optional" : 1,
37143 "type" : "integer"
37144 },
37145 "mode" : {
37146 "default" : "snapshot",
37147 "description" : "Backup mode.",
37148 "enum" : [
37149 "snapshot",
37150 "suspend",
37151 "stop"
37152 ],
37153 "optional" : 1,
37154 "type" : "string"
37155 },
37156 "node" : {
37157 "description" : "Only run if executed on this node.",
37158 "format" : "pve-node",
37159 "optional" : 1,
37160 "type" : "string"
37161 },
7af2edf9 37162 "notes-template" : {
4e7f60c2
TL
37163 "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.",
37164 "maxLength" : 1024,
7af2edf9
TL
37165 "optional" : 1,
37166 "requires" : "storage",
37167 "type" : "string"
37168 },
4e7f60c2
TL
37169 "performance" : {
37170 "description" : "Other performance-related settings.",
37171 "format" : "backup-performance",
37172 "optional" : 1,
37173 "type" : "string"
37174 },
e7084ef7
TL
37175 "pigz" : {
37176 "default" : 0,
37177 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
37178 "optional" : 1,
37179 "type" : "integer"
37180 },
37181 "pool" : {
37182 "description" : "Backup all known guest systems included in the specified pool.",
37183 "optional" : 1,
37184 "type" : "string"
37185 },
7af2edf9
TL
37186 "protected" : {
37187 "description" : "If true, mark backup(s) as protected.",
37188 "optional" : 1,
37189 "requires" : "storage",
37190 "type" : "boolean"
37191 },
e7084ef7 37192 "prune-backups" : {
0695fdaf 37193 "default" : "keep-all=1",
e7084ef7
TL
37194 "description" : "Use these retention options instead of those from the storage configuration.",
37195 "format" : "prune-backups",
37196 "optional" : 1,
37197 "type" : "string"
37198 },
37199 "quiet" : {
37200 "default" : 0,
37201 "description" : "Be quiet.",
37202 "optional" : 1,
37203 "type" : "boolean"
37204 },
37205 "remove" : {
37206 "default" : 1,
0695fdaf 37207 "description" : "Prune older backups according to 'prune-backups'.",
e7084ef7
TL
37208 "optional" : 1,
37209 "type" : "boolean"
37210 },
37211 "script" : {
37212 "description" : "Use specified hook script.",
37213 "optional" : 1,
37214 "type" : "string"
37215 },
e7084ef7
TL
37216 "stdexcludes" : {
37217 "default" : 1,
37218 "description" : "Exclude temporary files and logs.",
37219 "optional" : 1,
37220 "type" : "boolean"
37221 },
37222 "stop" : {
37223 "default" : 0,
37224 "description" : "Stop running backup jobs on this host.",
37225 "optional" : 1,
37226 "type" : "boolean"
37227 },
37228 "stopwait" : {
37229 "default" : 10,
37230 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
37231 "minimum" : 0,
37232 "optional" : 1,
37233 "type" : "integer"
37234 },
37235 "storage" : {
37236 "description" : "Store resulting file to this storage.",
37237 "format" : "pve-storage-id",
37238 "optional" : 1,
37239 "type" : "string"
37240 },
37241 "tmpdir" : {
37242 "description" : "Store temporary files to specified directory.",
37243 "optional" : 1,
37244 "type" : "string"
37245 },
37246 "vmid" : {
37247 "description" : "The ID of the guest system you want to backup.",
37248 "format" : "pve-vmid-list",
37249 "optional" : 1,
37250 "type" : "string"
37251 },
37252 "zstd" : {
37253 "default" : 1,
37254 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
37255 "optional" : 1,
37256 "type" : "integer"
37257 }
37258 },
37259 "type" : "object"
37260 }
37261 }
37262 },
37263 "leaf" : 1,
37264 "path" : "/nodes/{node}/vzdump/defaults",
37265 "text" : "defaults"
37266 },
56122987
DM
37267 {
37268 "info" : {
4d47f125 37269 "GET" : {
e9cd3bd4 37270 "allowtoken" : 1,
4d47f125
TL
37271 "description" : "Extract configuration from vzdump backup archive.",
37272 "method" : "GET",
37273 "name" : "extractconfig",
37274 "parameters" : {
37275 "additionalProperties" : 0,
37276 "properties" : {
44660702
DM
37277 "node" : {
37278 "description" : "The cluster node name.",
37279 "format" : "pve-node",
013dc89f
DM
37280 "type" : "string",
37281 "typetext" : "<string>"
44660702 37282 },
4d47f125
TL
37283 "volume" : {
37284 "description" : "Volume identifier",
37285 "type" : "string",
37286 "typetext" : "<string>"
44660702
DM
37287 }
37288 }
7aacca6f 37289 },
56122987 37290 "permissions" : {
4d47f125
TL
37291 "description" : "The user needs 'VM.Backup' permissions on the backed up guest ID, and 'Datastore.AllocateSpace' on the backup storage.",
37292 "user" : "all"
56122987 37293 },
7aacca6f 37294 "protected" : 1,
44660702
DM
37295 "proxyto" : "node",
37296 "returns" : {
4d47f125 37297 "type" : "string"
7aacca6f
DM
37298 }
37299 }
37300 },
7aacca6f 37301 "leaf" : 1,
4d47f125
TL
37302 "path" : "/nodes/{node}/vzdump/extractconfig",
37303 "text" : "extractconfig"
37304 }
37305 ],
37306 "info" : {
37307 "POST" : {
e9cd3bd4 37308 "allowtoken" : 1,
4d47f125
TL
37309 "description" : "Create backup.",
37310 "method" : "POST",
37311 "name" : "vzdump",
37312 "parameters" : {
37313 "additionalProperties" : 0,
37314 "properties" : {
37315 "all" : {
37316 "default" : 0,
37317 "description" : "Backup all known guest systems on this host.",
37318 "optional" : 1,
37319 "type" : "boolean",
37320 "typetext" : "<boolean>"
37321 },
37322 "bwlimit" : {
37323 "default" : 0,
4a407cfd 37324 "description" : "Limit I/O bandwidth (in KiB/s).",
4d47f125
TL
37325 "minimum" : 0,
37326 "optional" : 1,
37327 "type" : "integer",
37328 "typetext" : "<integer> (0 - N)"
37329 },
37330 "compress" : {
37331 "default" : "0",
37332 "description" : "Compress dump file.",
37333 "enum" : [
37334 "0",
37335 "1",
37336 "gzip",
c5aa7e14
TL
37337 "lzo",
37338 "zstd"
4d47f125
TL
37339 ],
37340 "optional" : 1,
37341 "type" : "string"
37342 },
37343 "dumpdir" : {
37344 "description" : "Store resulting files to specified directory.",
37345 "optional" : 1,
37346 "type" : "string",
37347 "typetext" : "<string>"
37348 },
37349 "exclude" : {
37350 "description" : "Exclude specified guest systems (assumes --all)",
37351 "format" : "pve-vmid-list",
37352 "optional" : 1,
37353 "type" : "string",
37354 "typetext" : "<string>"
37355 },
37356 "exclude-path" : {
d2656385 37357 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
4a407cfd
TL
37358 "items" : {
37359 "type" : "string"
37360 },
4d47f125 37361 "optional" : 1,
4a407cfd
TL
37362 "type" : "array",
37363 "typetext" : "<array>"
4d47f125
TL
37364 },
37365 "ionice" : {
37366 "default" : 7,
159464a9 37367 "description" : "Set IO priority when using the BFQ scheduler. For snapshot and suspend mode backups of VMs, this only affects the compressor. A value of 8 means the idle priority is used, otherwise the best-effort priority is used with the specified value.",
4d47f125
TL
37368 "maximum" : 8,
37369 "minimum" : 0,
37370 "optional" : 1,
37371 "type" : "integer",
37372 "typetext" : "<integer> (0 - 8)"
37373 },
37374 "lockwait" : {
37375 "default" : 180,
37376 "description" : "Maximal time to wait for the global lock (minutes).",
37377 "minimum" : 0,
37378 "optional" : 1,
37379 "type" : "integer",
37380 "typetext" : "<integer> (0 - N)"
37381 },
37382 "mailnotification" : {
37383 "default" : "always",
37384 "description" : "Specify when to send an email",
37385 "enum" : [
37386 "always",
37387 "failure"
37388 ],
37389 "optional" : 1,
37390 "type" : "string"
37391 },
37392 "mailto" : {
d2656385
TL
37393 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
37394 "format" : "email-or-username-list",
4d47f125
TL
37395 "optional" : 1,
37396 "type" : "string",
37397 "typetext" : "<string>"
37398 },
37399 "maxfiles" : {
0695fdaf 37400 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
4d47f125
TL
37401 "minimum" : 1,
37402 "optional" : 1,
37403 "type" : "integer",
37404 "typetext" : "<integer> (1 - N)"
37405 },
37406 "mode" : {
37407 "default" : "snapshot",
37408 "description" : "Backup mode.",
37409 "enum" : [
37410 "snapshot",
37411 "suspend",
37412 "stop"
37413 ],
37414 "optional" : 1,
37415 "type" : "string"
37416 },
37417 "node" : {
37418 "description" : "Only run if executed on this node.",
37419 "format" : "pve-node",
37420 "optional" : 1,
37421 "type" : "string",
37422 "typetext" : "<string>"
37423 },
7af2edf9 37424 "notes-template" : {
4e7f60c2
TL
37425 "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.",
37426 "maxLength" : 1024,
7af2edf9
TL
37427 "optional" : 1,
37428 "requires" : "storage",
37429 "type" : "string",
37430 "typetext" : "<string>"
37431 },
4e7f60c2
TL
37432 "performance" : {
37433 "description" : "Other performance-related settings.",
37434 "format" : "backup-performance",
37435 "optional" : 1,
37436 "type" : "string",
37437 "typetext" : "[max-workers=<integer>]"
37438 },
4d47f125
TL
37439 "pigz" : {
37440 "default" : 0,
37441 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
37442 "optional" : 1,
37443 "type" : "integer",
37444 "typetext" : "<integer>"
37445 },
9226ccbc
TL
37446 "pool" : {
37447 "description" : "Backup all known guest systems included in the specified pool.",
37448 "optional" : 1,
37449 "type" : "string",
37450 "typetext" : "<string>"
37451 },
7af2edf9
TL
37452 "protected" : {
37453 "description" : "If true, mark backup(s) as protected.",
37454 "optional" : 1,
37455 "requires" : "storage",
37456 "type" : "boolean",
37457 "typetext" : "<boolean>"
37458 },
739d4d64 37459 "prune-backups" : {
0695fdaf 37460 "default" : "keep-all=1",
739d4d64
TL
37461 "description" : "Use these retention options instead of those from the storage configuration.",
37462 "format" : "prune-backups",
37463 "optional" : 1,
37464 "type" : "string",
4772952b 37465 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 37466 },
4d47f125
TL
37467 "quiet" : {
37468 "default" : 0,
37469 "description" : "Be quiet.",
37470 "optional" : 1,
37471 "type" : "boolean",
37472 "typetext" : "<boolean>"
37473 },
37474 "remove" : {
37475 "default" : 1,
0695fdaf 37476 "description" : "Prune older backups according to 'prune-backups'.",
4d47f125
TL
37477 "optional" : 1,
37478 "type" : "boolean",
37479 "typetext" : "<boolean>"
37480 },
37481 "script" : {
37482 "description" : "Use specified hook script.",
37483 "optional" : 1,
37484 "type" : "string",
37485 "typetext" : "<string>"
37486 },
4d47f125
TL
37487 "stdexcludes" : {
37488 "default" : 1,
37489 "description" : "Exclude temporary files and logs.",
37490 "optional" : 1,
37491 "type" : "boolean",
37492 "typetext" : "<boolean>"
37493 },
37494 "stdout" : {
37495 "description" : "Write tar to stdout, not to a file.",
37496 "optional" : 1,
37497 "type" : "boolean",
37498 "typetext" : "<boolean>"
37499 },
37500 "stop" : {
37501 "default" : 0,
1e3f8156 37502 "description" : "Stop running backup jobs on this host.",
4d47f125
TL
37503 "optional" : 1,
37504 "type" : "boolean",
37505 "typetext" : "<boolean>"
37506 },
37507 "stopwait" : {
37508 "default" : 10,
37509 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
37510 "minimum" : 0,
37511 "optional" : 1,
37512 "type" : "integer",
37513 "typetext" : "<integer> (0 - N)"
37514 },
37515 "storage" : {
37516 "description" : "Store resulting file to this storage.",
37517 "format" : "pve-storage-id",
37518 "optional" : 1,
37519 "type" : "string",
37520 "typetext" : "<string>"
37521 },
37522 "tmpdir" : {
37523 "description" : "Store temporary files to specified directory.",
37524 "optional" : 1,
37525 "type" : "string",
37526 "typetext" : "<string>"
37527 },
37528 "vmid" : {
37529 "description" : "The ID of the guest system you want to backup.",
37530 "format" : "pve-vmid-list",
37531 "optional" : 1,
37532 "type" : "string",
37533 "typetext" : "<string>"
c5aa7e14
TL
37534 },
37535 "zstd" : {
37536 "default" : 1,
37537 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
37538 "optional" : 1,
37539 "type" : "integer",
37540 "typetext" : "<integer>"
4d47f125
TL
37541 }
37542 }
37543 },
37544 "permissions" : {
9d2e98ed 37545 "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage. The 'tmpdir', 'dumpdir' and 'script' parameters are restricted to the 'root@pam' user. The 'maxfiles' and 'prune-backups' settings require 'Datastore.Allocate' on the backup storage. The 'bwlimit', 'performance' and 'ionice' parameters require 'Sys.Modify' on '/'.",
4d47f125
TL
37546 "user" : "all"
37547 },
37548 "protected" : 1,
37549 "proxyto" : "node",
37550 "returns" : {
37551 "type" : "string"
37552 }
37553 }
37554 },
37555 "leaf" : 0,
37556 "path" : "/nodes/{node}/vzdump",
37557 "text" : "vzdump"
37558 },
37559 {
37560 "children" : [
2489d6df
WB
37561 {
37562 "children" : [
37563 {
37564 "info" : {
4d47f125 37565 "GET" : {
e9cd3bd4 37566 "allowtoken" : 1,
4d47f125
TL
37567 "description" : "Read service properties",
37568 "method" : "GET",
37569 "name" : "service_state",
2489d6df
WB
37570 "parameters" : {
37571 "additionalProperties" : 0,
37572 "properties" : {
2489d6df
WB
37573 "node" : {
37574 "description" : "The cluster node name.",
37575 "format" : "pve-node",
37576 "type" : "string",
37577 "typetext" : "<string>"
4d47f125
TL
37578 },
37579 "service" : {
37580 "description" : "Service ID",
37581 "enum" : [
5370fa8c 37582 "chrony",
4d47f125 37583 "corosync",
5370fa8c
TL
37584 "cron",
37585 "ksmtuned",
37586 "postfix",
37587 "pve-cluster",
4d47f125 37588 "pve-firewall",
4d47f125
TL
37589 "pve-ha-crm",
37590 "pve-ha-lrm",
5370fa8c
TL
37591 "pvedaemon",
37592 "pvefw-logger",
37593 "pveproxy",
37594 "pvescheduler",
37595 "pvestatd",
37596 "spiceproxy",
4d47f125
TL
37597 "sshd",
37598 "syslog",
8f4d9c87 37599 "systemd-journald",
5370fa8c 37600 "systemd-timesyncd"
4d47f125
TL
37601 ],
37602 "type" : "string"
2489d6df
WB
37603 }
37604 }
37605 },
37606 "permissions" : {
37607 "check" : [
37608 "perm",
4d47f125 37609 "/nodes/{node}",
2489d6df 37610 [
4d47f125 37611 "Sys.Audit"
2489d6df
WB
37612 ]
37613 ]
37614 },
37615 "protected" : 1,
37616 "proxyto" : "node",
37617 "returns" : {
4d47f125 37618 "type" : "object"
2489d6df
WB
37619 }
37620 }
37621 },
37622 "leaf" : 1,
4d47f125
TL
37623 "path" : "/nodes/{node}/services/{service}/state",
37624 "text" : "state"
37625 },
37626 {
37627 "info" : {
37628 "POST" : {
e9cd3bd4 37629 "allowtoken" : 1,
4d47f125
TL
37630 "description" : "Start service.",
37631 "method" : "POST",
37632 "name" : "service_start",
37633 "parameters" : {
37634 "additionalProperties" : 0,
37635 "properties" : {
37636 "node" : {
37637 "description" : "The cluster node name.",
37638 "format" : "pve-node",
37639 "type" : "string",
37640 "typetext" : "<string>"
37641 },
37642 "service" : {
37643 "description" : "Service ID",
37644 "enum" : [
5370fa8c 37645 "chrony",
4d47f125 37646 "corosync",
5370fa8c
TL
37647 "cron",
37648 "ksmtuned",
37649 "postfix",
37650 "pve-cluster",
4d47f125 37651 "pve-firewall",
4d47f125
TL
37652 "pve-ha-crm",
37653 "pve-ha-lrm",
5370fa8c
TL
37654 "pvedaemon",
37655 "pvefw-logger",
37656 "pveproxy",
37657 "pvescheduler",
37658 "pvestatd",
37659 "spiceproxy",
4d47f125
TL
37660 "sshd",
37661 "syslog",
8f4d9c87 37662 "systemd-journald",
5370fa8c 37663 "systemd-timesyncd"
4d47f125
TL
37664 ],
37665 "type" : "string"
37666 }
37667 }
7aacca6f 37668 },
4d47f125
TL
37669 "permissions" : {
37670 "check" : [
37671 "perm",
37672 "/nodes/{node}",
37673 [
37674 "Sys.Modify"
37675 ]
37676 ]
7aacca6f 37677 },
4d47f125
TL
37678 "protected" : 1,
37679 "proxyto" : "node",
37680 "returns" : {
37681 "type" : "string"
37682 }
37683 }
56122987 37684 },
4d47f125
TL
37685 "leaf" : 1,
37686 "path" : "/nodes/{node}/services/{service}/start",
37687 "text" : "start"
37688 },
44660702
DM
37689 {
37690 "info" : {
4d47f125 37691 "POST" : {
e9cd3bd4 37692 "allowtoken" : 1,
4d47f125
TL
37693 "description" : "Stop service.",
37694 "method" : "POST",
37695 "name" : "service_stop",
44660702
DM
37696 "parameters" : {
37697 "additionalProperties" : 0,
37698 "properties" : {
44660702
DM
37699 "node" : {
37700 "description" : "The cluster node name.",
37701 "format" : "pve-node",
013dc89f
DM
37702 "type" : "string",
37703 "typetext" : "<string>"
2489d6df 37704 },
4d47f125
TL
37705 "service" : {
37706 "description" : "Service ID",
37707 "enum" : [
5370fa8c 37708 "chrony",
4d47f125 37709 "corosync",
5370fa8c
TL
37710 "cron",
37711 "ksmtuned",
37712 "postfix",
37713 "pve-cluster",
4d47f125 37714 "pve-firewall",
4d47f125
TL
37715 "pve-ha-crm",
37716 "pve-ha-lrm",
5370fa8c
TL
37717 "pvedaemon",
37718 "pvefw-logger",
37719 "pveproxy",
37720 "pvescheduler",
37721 "pvestatd",
37722 "spiceproxy",
4d47f125
TL
37723 "sshd",
37724 "syslog",
8f4d9c87 37725 "systemd-journald",
5370fa8c 37726 "systemd-timesyncd"
4d47f125
TL
37727 ],
37728 "type" : "string"
44660702
DM
37729 }
37730 }
37731 },
37732 "permissions" : {
37733 "check" : [
37734 "perm",
4d47f125 37735 "/nodes/{node}",
44660702
DM
37736 [
37737 "Sys.Modify"
37738 ]
37739 ]
37740 },
37741 "protected" : 1,
37742 "proxyto" : "node",
37743 "returns" : {
2489d6df 37744 "type" : "string"
44660702
DM
37745 }
37746 }
37747 },
37748 "leaf" : 1,
4d47f125
TL
37749 "path" : "/nodes/{node}/services/{service}/stop",
37750 "text" : "stop"
7aacca6f 37751 },
32d876b5
DM
37752 {
37753 "info" : {
4d47f125 37754 "POST" : {
e9cd3bd4 37755 "allowtoken" : 1,
739d4d64 37756 "description" : "Hard restart service. Use reload if you want to reduce interruptions.",
4d47f125
TL
37757 "method" : "POST",
37758 "name" : "service_restart",
32d876b5
DM
37759 "parameters" : {
37760 "additionalProperties" : 0,
37761 "properties" : {
4d47f125
TL
37762 "node" : {
37763 "description" : "The cluster node name.",
37764 "format" : "pve-node",
37765 "type" : "string",
37766 "typetext" : "<string>"
37767 },
37768 "service" : {
37769 "description" : "Service ID",
32d876b5 37770 "enum" : [
5370fa8c 37771 "chrony",
4d47f125 37772 "corosync",
5370fa8c
TL
37773 "cron",
37774 "ksmtuned",
37775 "postfix",
37776 "pve-cluster",
4d47f125 37777 "pve-firewall",
4d47f125
TL
37778 "pve-ha-crm",
37779 "pve-ha-lrm",
5370fa8c
TL
37780 "pvedaemon",
37781 "pvefw-logger",
37782 "pveproxy",
37783 "pvescheduler",
37784 "pvestatd",
37785 "spiceproxy",
4d47f125
TL
37786 "sshd",
37787 "syslog",
8f4d9c87 37788 "systemd-journald",
5370fa8c 37789 "systemd-timesyncd"
32d876b5
DM
37790 ],
37791 "type" : "string"
32d876b5
DM
37792 }
37793 }
37794 },
37795 "permissions" : {
37796 "check" : [
37797 "perm",
4d47f125 37798 "/nodes/{node}",
32d876b5
DM
37799 [
37800 "Sys.Modify"
37801 ]
37802 ]
37803 },
37804 "protected" : 1,
37805 "proxyto" : "node",
37806 "returns" : {
4d47f125 37807 "type" : "string"
32d876b5 37808 }
4d47f125
TL
37809 }
37810 },
37811 "leaf" : 1,
37812 "path" : "/nodes/{node}/services/{service}/restart",
37813 "text" : "restart"
37814 },
37815 {
37816 "info" : {
32d876b5 37817 "POST" : {
e9cd3bd4 37818 "allowtoken" : 1,
739d4d64 37819 "description" : "Reload service. Falls back to restart if service cannot be reloaded.",
32d876b5 37820 "method" : "POST",
4d47f125 37821 "name" : "service_reload",
32d876b5
DM
37822 "parameters" : {
37823 "additionalProperties" : 0,
37824 "properties" : {
32d876b5
DM
37825 "node" : {
37826 "description" : "The cluster node name.",
37827 "format" : "pve-node",
37828 "type" : "string",
37829 "typetext" : "<string>"
4d47f125
TL
37830 },
37831 "service" : {
37832 "description" : "Service ID",
37833 "enum" : [
5370fa8c 37834 "chrony",
4d47f125 37835 "corosync",
5370fa8c
TL
37836 "cron",
37837 "ksmtuned",
37838 "postfix",
37839 "pve-cluster",
4d47f125 37840 "pve-firewall",
4d47f125
TL
37841 "pve-ha-crm",
37842 "pve-ha-lrm",
5370fa8c
TL
37843 "pvedaemon",
37844 "pvefw-logger",
37845 "pveproxy",
37846 "pvescheduler",
37847 "pvestatd",
37848 "spiceproxy",
4d47f125
TL
37849 "sshd",
37850 "syslog",
8f4d9c87 37851 "systemd-journald",
5370fa8c 37852 "systemd-timesyncd"
4d47f125
TL
37853 ],
37854 "type" : "string"
32d876b5
DM
37855 }
37856 }
37857 },
37858 "permissions" : {
37859 "check" : [
37860 "perm",
4d47f125 37861 "/nodes/{node}",
32d876b5
DM
37862 [
37863 "Sys.Modify"
37864 ]
37865 ]
37866 },
37867 "protected" : 1,
37868 "proxyto" : "node",
37869 "returns" : {
4d47f125 37870 "type" : "string"
32d876b5
DM
37871 }
37872 }
37873 },
37874 "leaf" : 1,
4d47f125
TL
37875 "path" : "/nodes/{node}/services/{service}/reload",
37876 "text" : "reload"
32d876b5
DM
37877 }
37878 ],
37879 "info" : {
37880 "GET" : {
e9cd3bd4 37881 "allowtoken" : 1,
4d47f125 37882 "description" : "Directory index",
44660702 37883 "method" : "GET",
4d47f125 37884 "name" : "srvcmdidx",
44660702
DM
37885 "parameters" : {
37886 "additionalProperties" : 0,
37887 "properties" : {
44660702
DM
37888 "node" : {
37889 "description" : "The cluster node name.",
37890 "format" : "pve-node",
013dc89f
DM
37891 "type" : "string",
37892 "typetext" : "<string>"
44660702 37893 },
4d47f125
TL
37894 "service" : {
37895 "description" : "Service ID",
37896 "enum" : [
5370fa8c 37897 "chrony",
4d47f125 37898 "corosync",
5370fa8c
TL
37899 "cron",
37900 "ksmtuned",
37901 "postfix",
37902 "pve-cluster",
4d47f125 37903 "pve-firewall",
4d47f125
TL
37904 "pve-ha-crm",
37905 "pve-ha-lrm",
5370fa8c
TL
37906 "pvedaemon",
37907 "pvefw-logger",
37908 "pveproxy",
37909 "pvescheduler",
37910 "pvestatd",
37911 "spiceproxy",
4d47f125
TL
37912 "sshd",
37913 "syslog",
8f4d9c87 37914 "systemd-journald",
5370fa8c 37915 "systemd-timesyncd"
4d47f125
TL
37916 ],
37917 "type" : "string"
44660702 37918 }
7aacca6f 37919 }
56122987 37920 },
56122987
DM
37921 "permissions" : {
37922 "check" : [
37923 "perm",
7aacca6f 37924 "/nodes/{node}",
56122987 37925 [
4d47f125 37926 "Sys.Audit"
56122987
DM
37927 ]
37928 ]
37929 },
44660702
DM
37930 "returns" : {
37931 "items" : {
37932 "properties" : {
4d47f125 37933 "subdir" : {
44660702
DM
37934 "type" : "string"
37935 }
56122987 37936 },
44660702 37937 "type" : "object"
56122987 37938 },
2489d6df
WB
37939 "links" : [
37940 {
4d47f125 37941 "href" : "{subdir}",
2489d6df
WB
37942 "rel" : "child"
37943 }
37944 ],
37945 "type" : "array"
37946 }
37947 }
4d47f125
TL
37948 },
37949 "leaf" : 0,
37950 "path" : "/nodes/{node}/services/{service}",
37951 "text" : "{service}"
7aacca6f
DM
37952 }
37953 ],
44660702
DM
37954 "info" : {
37955 "GET" : {
e9cd3bd4 37956 "allowtoken" : 1,
4d47f125 37957 "description" : "Service list.",
44660702
DM
37958 "method" : "GET",
37959 "name" : "index",
37960 "parameters" : {
37961 "additionalProperties" : 0,
37962 "properties" : {
37963 "node" : {
37964 "description" : "The cluster node name.",
37965 "format" : "pve-node",
013dc89f
DM
37966 "type" : "string",
37967 "typetext" : "<string>"
44660702
DM
37968 }
37969 }
37970 },
37971 "permissions" : {
37972 "check" : [
37973 "perm",
4d47f125 37974 "/nodes/{node}",
44660702 37975 [
4d47f125
TL
37976 "Sys.Audit"
37977 ]
44660702
DM
37978 ]
37979 },
4d47f125
TL
37980 "protected" : 1,
37981 "proxyto" : "node",
44660702
DM
37982 "returns" : {
37983 "items" : {
37984 "properties" : {},
37985 "type" : "object"
37986 },
37987 "links" : [
37988 {
4d47f125 37989 "href" : "{service}",
44660702
DM
37990 "rel" : "child"
37991 }
37992 ],
37993 "type" : "array"
37994 }
37995 }
37996 },
7aacca6f 37997 "leaf" : 0,
4d47f125
TL
37998 "path" : "/nodes/{node}/services",
37999 "text" : "services"
7aacca6f
DM
38000 },
38001 {
7aacca6f 38002 "info" : {
ac70d7d1
TL
38003 "DELETE" : {
38004 "allowtoken" : 1,
38005 "description" : "Delete subscription key of this node.",
38006 "method" : "DELETE",
38007 "name" : "delete",
38008 "parameters" : {
38009 "additionalProperties" : 0,
38010 "properties" : {
38011 "node" : {
38012 "description" : "The cluster node name.",
38013 "format" : "pve-node",
38014 "type" : "string",
38015 "typetext" : "<string>"
38016 }
38017 }
38018 },
38019 "permissions" : {
38020 "check" : [
38021 "perm",
38022 "/nodes/{node}",
38023 [
38024 "Sys.Modify"
38025 ]
38026 ]
38027 },
38028 "protected" : 1,
38029 "proxyto" : "node",
38030 "returns" : {
38031 "type" : "null"
38032 }
38033 },
4d47f125 38034 "GET" : {
e9cd3bd4 38035 "allowtoken" : 1,
4d47f125
TL
38036 "description" : "Read subscription info.",
38037 "method" : "GET",
38038 "name" : "get",
7aacca6f 38039 "parameters" : {
44660702 38040 "additionalProperties" : 0,
7aacca6f 38041 "properties" : {
44660702 38042 "node" : {
4d47f125 38043 "description" : "The cluster node name.",
44660702 38044 "format" : "pve-node",
013dc89f
DM
38045 "type" : "string",
38046 "typetext" : "<string>"
4d47f125
TL
38047 }
38048 }
38049 },
38050 "permissions" : {
38051 "user" : "all"
38052 },
38053 "proxyto" : "node",
38054 "returns" : {
38055 "type" : "object"
38056 }
38057 },
38058 "POST" : {
e9cd3bd4 38059 "allowtoken" : 1,
4d47f125
TL
38060 "description" : "Update subscription info.",
38061 "method" : "POST",
38062 "name" : "update",
38063 "parameters" : {
38064 "additionalProperties" : 0,
38065 "properties" : {
38066 "force" : {
38067 "default" : 0,
4a407cfd 38068 "description" : "Always connect to server, even if local cache is still valid.",
7aacca6f 38069 "optional" : 1,
4d47f125
TL
38070 "type" : "boolean",
38071 "typetext" : "<boolean>"
44660702 38072 },
4d47f125
TL
38073 "node" : {
38074 "description" : "The cluster node name.",
38075 "format" : "pve-node",
013dc89f
DM
38076 "type" : "string",
38077 "typetext" : "<string>"
4d47f125
TL
38078 }
38079 }
38080 },
38081 "permissions" : {
38082 "check" : [
38083 "perm",
38084 "/nodes/{node}",
38085 [
38086 "Sys.Modify"
38087 ]
38088 ]
38089 },
38090 "protected" : 1,
38091 "proxyto" : "node",
38092 "returns" : {
38093 "type" : "null"
38094 }
38095 },
38096 "PUT" : {
e9cd3bd4 38097 "allowtoken" : 1,
4d47f125
TL
38098 "description" : "Set subscription key.",
38099 "method" : "PUT",
38100 "name" : "set",
38101 "parameters" : {
38102 "additionalProperties" : 0,
38103 "properties" : {
38104 "key" : {
38105 "description" : "Proxmox VE subscription key",
38106 "maxLength" : 32,
5f26e15b 38107 "pattern" : "pve([1248])([cbsp])-[0-9a-f]{10}",
4d47f125 38108 "type" : "string"
7aacca6f 38109 },
4d47f125
TL
38110 "node" : {
38111 "description" : "The cluster node name.",
38112 "format" : "pve-node",
013dc89f
DM
38113 "type" : "string",
38114 "typetext" : "<string>"
7aacca6f 38115 }
7aacca6f
DM
38116 }
38117 },
7aacca6f 38118 "permissions" : {
4d47f125
TL
38119 "check" : [
38120 "perm",
38121 "/nodes/{node}",
38122 [
38123 "Sys.Modify"
38124 ]
38125 ]
7aacca6f 38126 },
44660702 38127 "protected" : 1,
7aacca6f 38128 "proxyto" : "node",
7aacca6f 38129 "returns" : {
4d47f125 38130 "type" : "null"
7aacca6f
DM
38131 }
38132 }
38133 },
4d47f125
TL
38134 "leaf" : 1,
38135 "path" : "/nodes/{node}/subscription",
38136 "text" : "subscription"
44660702
DM
38137 },
38138 {
7aacca6f
DM
38139 "children" : [
38140 {
4d47f125
TL
38141 "info" : {
38142 "DELETE" : {
e9cd3bd4 38143 "allowtoken" : 1,
4d47f125
TL
38144 "description" : "Delete network device configuration",
38145 "method" : "DELETE",
38146 "name" : "delete_network",
38147 "parameters" : {
38148 "additionalProperties" : 0,
38149 "properties" : {
38150 "iface" : {
38151 "description" : "Network interface name.",
38152 "format" : "pve-iface",
38153 "maxLength" : 20,
38154 "minLength" : 2,
38155 "type" : "string",
38156 "typetext" : "<string>"
7aacca6f 38157 },
4d47f125
TL
38158 "node" : {
38159 "description" : "The cluster node name.",
38160 "format" : "pve-node",
38161 "type" : "string",
38162 "typetext" : "<string>"
44660702
DM
38163 }
38164 }
38165 },
4d47f125
TL
38166 "permissions" : {
38167 "check" : [
38168 "perm",
38169 "/nodes/{node}",
38170 [
38171 "Sys.Modify"
38172 ]
38173 ]
38174 },
38175 "protected" : 1,
38176 "proxyto" : "node",
38177 "returns" : {
38178 "type" : "null"
38179 }
38180 },
38181 "GET" : {
e9cd3bd4 38182 "allowtoken" : 1,
4d47f125
TL
38183 "description" : "Read network device configuration",
38184 "method" : "GET",
38185 "name" : "network_config",
38186 "parameters" : {
38187 "additionalProperties" : 0,
38188 "properties" : {
38189 "iface" : {
38190 "description" : "Network interface name.",
38191 "format" : "pve-iface",
38192 "maxLength" : 20,
38193 "minLength" : 2,
38194 "type" : "string",
38195 "typetext" : "<string>"
56122987 38196 },
4d47f125
TL
38197 "node" : {
38198 "description" : "The cluster node name.",
38199 "format" : "pve-node",
38200 "type" : "string",
38201 "typetext" : "<string>"
44660702
DM
38202 }
38203 }
38204 },
4d47f125
TL
38205 "permissions" : {
38206 "check" : [
38207 "perm",
38208 "/nodes/{node}",
38209 [
38210 "Sys.Audit"
38211 ]
38212 ]
38213 },
38214 "proxyto" : "node",
38215 "returns" : {
38216 "properties" : {
38217 "method" : {
38218 "type" : "string"
44660702 38219 },
4d47f125 38220 "type" : {
44660702
DM
38221 "type" : "string"
38222 }
4d47f125
TL
38223 },
38224 "type" : "object"
38225 }
56122987 38226 },
4d47f125 38227 "PUT" : {
e9cd3bd4 38228 "allowtoken" : 1,
4d47f125
TL
38229 "description" : "Update network device configuration",
38230 "method" : "PUT",
38231 "name" : "update_network",
38232 "parameters" : {
38233 "additionalProperties" : 0,
38234 "properties" : {
38235 "address" : {
38236 "description" : "IP address.",
38237 "format" : "ipv4",
38238 "optional" : 1,
38239 "requires" : "netmask",
38240 "type" : "string",
38241 "typetext" : "<string>"
38242 },
38243 "address6" : {
38244 "description" : "IP address.",
38245 "format" : "ipv6",
38246 "optional" : 1,
38247 "requires" : "netmask6",
38248 "type" : "string",
38249 "typetext" : "<string>"
38250 },
38251 "autostart" : {
38252 "description" : "Automatically start interface on boot.",
38253 "optional" : 1,
38254 "type" : "boolean",
38255 "typetext" : "<boolean>"
38256 },
e9cd3bd4
TL
38257 "bond-primary" : {
38258 "description" : "Specify the primary interface for active-backup bond.",
38259 "format" : "pve-iface",
38260 "optional" : 1,
38261 "type" : "string",
38262 "typetext" : "<string>"
38263 },
4d47f125
TL
38264 "bond_mode" : {
38265 "description" : "Bonding mode.",
38266 "enum" : [
38267 "balance-rr",
38268 "active-backup",
38269 "balance-xor",
38270 "broadcast",
38271 "802.3ad",
38272 "balance-tlb",
38273 "balance-alb",
38274 "balance-slb",
38275 "lacp-balance-slb",
38276 "lacp-balance-tcp"
38277 ],
38278 "optional" : 1,
38279 "type" : "string"
38280 },
38281 "bond_xmit_hash_policy" : {
38282 "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
38283 "enum" : [
38284 "layer2",
38285 "layer2+3",
38286 "layer3+4"
38287 ],
38288 "optional" : 1,
38289 "type" : "string"
38290 },
38291 "bridge_ports" : {
1e3f8156 38292 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
38293 "format" : "pve-iface-list",
38294 "optional" : 1,
38295 "type" : "string",
38296 "typetext" : "<string>"
38297 },
38298 "bridge_vlan_aware" : {
38299 "description" : "Enable bridge vlan support.",
38300 "optional" : 1,
38301 "type" : "boolean",
38302 "typetext" : "<boolean>"
38303 },
bb4c8cf8
TL
38304 "cidr" : {
38305 "description" : "IPv4 CIDR.",
38306 "format" : "CIDRv4",
38307 "optional" : 1,
38308 "type" : "string",
38309 "typetext" : "<string>"
38310 },
38311 "cidr6" : {
38312 "description" : "IPv6 CIDR.",
38313 "format" : "CIDRv6",
38314 "optional" : 1,
38315 "type" : "string",
38316 "typetext" : "<string>"
38317 },
4d47f125
TL
38318 "comments" : {
38319 "description" : "Comments",
38320 "optional" : 1,
38321 "type" : "string",
38322 "typetext" : "<string>"
38323 },
38324 "comments6" : {
38325 "description" : "Comments",
38326 "optional" : 1,
38327 "type" : "string",
38328 "typetext" : "<string>"
38329 },
38330 "delete" : {
38331 "description" : "A list of settings you want to delete.",
38332 "format" : "pve-configid-list",
38333 "optional" : 1,
38334 "type" : "string",
38335 "typetext" : "<string>"
38336 },
38337 "gateway" : {
38338 "description" : "Default gateway address.",
38339 "format" : "ipv4",
38340 "optional" : 1,
38341 "type" : "string",
38342 "typetext" : "<string>"
38343 },
38344 "gateway6" : {
38345 "description" : "Default ipv6 gateway address.",
38346 "format" : "ipv6",
38347 "optional" : 1,
38348 "type" : "string",
38349 "typetext" : "<string>"
38350 },
38351 "iface" : {
38352 "description" : "Network interface name.",
38353 "format" : "pve-iface",
38354 "maxLength" : 20,
38355 "minLength" : 2,
38356 "type" : "string",
38357 "typetext" : "<string>"
56122987 38358 },
e9cd3bd4
TL
38359 "mtu" : {
38360 "description" : "MTU.",
38361 "maximum" : 65520,
38362 "minimum" : 1280,
38363 "optional" : 1,
38364 "type" : "integer",
38365 "typetext" : "<integer> (1280 - 65520)"
38366 },
4d47f125
TL
38367 "netmask" : {
38368 "description" : "Network mask.",
38369 "format" : "ipv4mask",
38370 "optional" : 1,
38371 "requires" : "address",
38372 "type" : "string",
38373 "typetext" : "<string>"
38374 },
38375 "netmask6" : {
38376 "description" : "Network mask.",
38377 "maximum" : 128,
38378 "minimum" : 0,
38379 "optional" : 1,
38380 "requires" : "address6",
38381 "type" : "integer",
38382 "typetext" : "<integer> (0 - 128)"
56122987 38383 },
44660702
DM
38384 "node" : {
38385 "description" : "The cluster node name.",
38386 "format" : "pve-node",
013dc89f
DM
38387 "type" : "string",
38388 "typetext" : "<string>"
44660702 38389 },
4d47f125
TL
38390 "ovs_bonds" : {
38391 "description" : "Specify the interfaces used by the bonding device.",
38392 "format" : "pve-iface-list",
38393 "optional" : 1,
38394 "type" : "string",
38395 "typetext" : "<string>"
38396 },
38397 "ovs_bridge" : {
38398 "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
38399 "format" : "pve-iface",
38400 "optional" : 1,
38401 "type" : "string",
38402 "typetext" : "<string>"
38403 },
38404 "ovs_options" : {
38405 "description" : "OVS interface options.",
38406 "maxLength" : 1024,
38407 "optional" : 1,
38408 "type" : "string",
38409 "typetext" : "<string>"
38410 },
38411 "ovs_ports" : {
1e3f8156 38412 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
38413 "format" : "pve-iface-list",
38414 "optional" : 1,
38415 "type" : "string",
38416 "typetext" : "<string>"
38417 },
38418 "ovs_tag" : {
38419 "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
38420 "maximum" : 4094,
38421 "minimum" : 1,
38422 "optional" : 1,
38423 "type" : "integer",
38424 "typetext" : "<integer> (1 - 4094)"
38425 },
38426 "slaves" : {
38427 "description" : "Specify the interfaces used by the bonding device.",
38428 "format" : "pve-iface-list",
38429 "optional" : 1,
38430 "type" : "string",
38431 "typetext" : "<string>"
38432 },
38433 "type" : {
38434 "description" : "Network interface type",
44660702 38435 "enum" : [
4d47f125
TL
38436 "bridge",
38437 "bond",
38438 "eth",
38439 "alias",
38440 "vlan",
38441 "OVSBridge",
38442 "OVSBond",
38443 "OVSPort",
38444 "OVSIntPort",
38445 "unknown"
44660702
DM
38446 ],
38447 "type" : "string"
e9cd3bd4
TL
38448 },
38449 "vlan-id" : {
38450 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
38451 "maximum" : 4094,
38452 "minimum" : 1,
38453 "optional" : 1,
38454 "type" : "integer",
38455 "typetext" : "<integer> (1 - 4094)"
38456 },
38457 "vlan-raw-device" : {
38458 "description" : "Specify the raw interface for the vlan interface.",
38459 "format" : "pve-iface",
38460 "optional" : 1,
38461 "type" : "string",
38462 "typetext" : "<string>"
44660702
DM
38463 }
38464 }
38465 },
38466 "permissions" : {
38467 "check" : [
38468 "perm",
38469 "/nodes/{node}",
38470 [
4d47f125 38471 "Sys.Modify"
44660702
DM
38472 ]
38473 ]
38474 },
4d47f125
TL
38475 "protected" : 1,
38476 "proxyto" : "node",
44660702 38477 "returns" : {
4d47f125 38478 "type" : "null"
44660702
DM
38479 }
38480 }
38481 },
4d47f125
TL
38482 "leaf" : 1,
38483 "path" : "/nodes/{node}/network/{iface}",
38484 "text" : "{iface}"
44660702
DM
38485 }
38486 ],
38487 "info" : {
4d47f125 38488 "DELETE" : {
e9cd3bd4 38489 "allowtoken" : 1,
4d47f125
TL
38490 "description" : "Revert network configuration changes.",
38491 "method" : "DELETE",
38492 "name" : "revert_network_changes",
44660702
DM
38493 "parameters" : {
38494 "additionalProperties" : 0,
38495 "properties" : {
38496 "node" : {
38497 "description" : "The cluster node name.",
38498 "format" : "pve-node",
013dc89f
DM
38499 "type" : "string",
38500 "typetext" : "<string>"
44660702
DM
38501 }
38502 }
38503 },
38504 "permissions" : {
38505 "check" : [
38506 "perm",
38507 "/nodes/{node}",
38508 [
4d47f125 38509 "Sys.Modify"
44660702
DM
38510 ]
38511 ]
38512 },
38513 "protected" : 1,
38514 "proxyto" : "node",
4d47f125
TL
38515 "returns" : {
38516 "type" : "null"
38517 }
38518 },
38519 "GET" : {
e9cd3bd4 38520 "allowtoken" : 1,
4d47f125
TL
38521 "description" : "List available networks",
38522 "method" : "GET",
38523 "name" : "index",
38524 "parameters" : {
38525 "additionalProperties" : 0,
38526 "properties" : {
38527 "node" : {
38528 "description" : "The cluster node name.",
38529 "format" : "pve-node",
38530 "type" : "string",
38531 "typetext" : "<string>"
38532 },
38533 "type" : {
38534 "description" : "Only list specific interface types.",
38535 "enum" : [
38536 "bridge",
38537 "bond",
38538 "eth",
38539 "alias",
38540 "vlan",
38541 "OVSBridge",
38542 "OVSBond",
38543 "OVSPort",
38544 "OVSIntPort",
159464a9
TL
38545 "any_bridge",
38546 "any_local_bridge"
4d47f125
TL
38547 ],
38548 "optional" : 1,
38549 "type" : "string"
38550 }
38551 }
38552 },
38553 "permissions" : {
38554 "user" : "all"
38555 },
38556 "proxyto" : "node",
44660702
DM
38557 "returns" : {
38558 "items" : {
38559 "properties" : {},
38560 "type" : "object"
38561 },
38562 "links" : [
38563 {
4d47f125 38564 "href" : "{iface}",
44660702 38565 "rel" : "child"
56122987 38566 }
44660702
DM
38567 ],
38568 "type" : "array"
38569 }
4d47f125
TL
38570 },
38571 "POST" : {
e9cd3bd4 38572 "allowtoken" : 1,
4d47f125
TL
38573 "description" : "Create network device configuration",
38574 "method" : "POST",
38575 "name" : "create_network",
7aacca6f 38576 "parameters" : {
44660702 38577 "additionalProperties" : 0,
7aacca6f 38578 "properties" : {
4d47f125
TL
38579 "address" : {
38580 "description" : "IP address.",
38581 "format" : "ipv4",
38582 "optional" : 1,
38583 "requires" : "netmask",
38584 "type" : "string",
38585 "typetext" : "<string>"
38586 },
38587 "address6" : {
38588 "description" : "IP address.",
38589 "format" : "ipv6",
38590 "optional" : 1,
38591 "requires" : "netmask6",
38592 "type" : "string",
38593 "typetext" : "<string>"
38594 },
38595 "autostart" : {
38596 "description" : "Automatically start interface on boot.",
38597 "optional" : 1,
38598 "type" : "boolean",
38599 "typetext" : "<boolean>"
38600 },
e9cd3bd4
TL
38601 "bond-primary" : {
38602 "description" : "Specify the primary interface for active-backup bond.",
38603 "format" : "pve-iface",
38604 "optional" : 1,
38605 "type" : "string",
38606 "typetext" : "<string>"
38607 },
4d47f125
TL
38608 "bond_mode" : {
38609 "description" : "Bonding mode.",
38610 "enum" : [
38611 "balance-rr",
38612 "active-backup",
38613 "balance-xor",
38614 "broadcast",
38615 "802.3ad",
38616 "balance-tlb",
38617 "balance-alb",
38618 "balance-slb",
38619 "lacp-balance-slb",
38620 "lacp-balance-tcp"
38621 ],
38622 "optional" : 1,
38623 "type" : "string"
38624 },
38625 "bond_xmit_hash_policy" : {
38626 "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
38627 "enum" : [
38628 "layer2",
38629 "layer2+3",
38630 "layer3+4"
38631 ],
38632 "optional" : 1,
38633 "type" : "string"
38634 },
38635 "bridge_ports" : {
1e3f8156 38636 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
38637 "format" : "pve-iface-list",
38638 "optional" : 1,
013dc89f
DM
38639 "type" : "string",
38640 "typetext" : "<string>"
4d47f125
TL
38641 },
38642 "bridge_vlan_aware" : {
38643 "description" : "Enable bridge vlan support.",
44660702 38644 "optional" : 1,
013dc89f
DM
38645 "type" : "boolean",
38646 "typetext" : "<boolean>"
44660702 38647 },
bb4c8cf8
TL
38648 "cidr" : {
38649 "description" : "IPv4 CIDR.",
38650 "format" : "CIDRv4",
38651 "optional" : 1,
38652 "type" : "string",
38653 "typetext" : "<string>"
38654 },
38655 "cidr6" : {
38656 "description" : "IPv6 CIDR.",
38657 "format" : "CIDRv6",
38658 "optional" : 1,
38659 "type" : "string",
38660 "typetext" : "<string>"
38661 },
4d47f125
TL
38662 "comments" : {
38663 "description" : "Comments",
38664 "optional" : 1,
38665 "type" : "string",
38666 "typetext" : "<string>"
38667 },
38668 "comments6" : {
38669 "description" : "Comments",
38670 "optional" : 1,
38671 "type" : "string",
38672 "typetext" : "<string>"
38673 },
38674 "gateway" : {
38675 "description" : "Default gateway address.",
38676 "format" : "ipv4",
38677 "optional" : 1,
38678 "type" : "string",
38679 "typetext" : "<string>"
38680 },
38681 "gateway6" : {
38682 "description" : "Default ipv6 gateway address.",
38683 "format" : "ipv6",
38684 "optional" : 1,
38685 "type" : "string",
38686 "typetext" : "<string>"
38687 },
38688 "iface" : {
38689 "description" : "Network interface name.",
38690 "format" : "pve-iface",
38691 "maxLength" : 20,
38692 "minLength" : 2,
38693 "type" : "string",
38694 "typetext" : "<string>"
38695 },
e9cd3bd4
TL
38696 "mtu" : {
38697 "description" : "MTU.",
38698 "maximum" : 65520,
38699 "minimum" : 1280,
38700 "optional" : 1,
38701 "type" : "integer",
38702 "typetext" : "<integer> (1280 - 65520)"
38703 },
4d47f125
TL
38704 "netmask" : {
38705 "description" : "Network mask.",
38706 "format" : "ipv4mask",
38707 "optional" : 1,
38708 "requires" : "address",
38709 "type" : "string",
38710 "typetext" : "<string>"
38711 },
38712 "netmask6" : {
38713 "description" : "Network mask.",
38714 "maximum" : 128,
38715 "minimum" : 0,
38716 "optional" : 1,
38717 "requires" : "address6",
38718 "type" : "integer",
38719 "typetext" : "<integer> (0 - 128)"
38720 },
7aacca6f 38721 "node" : {
7aacca6f 38722 "description" : "The cluster node name.",
44660702 38723 "format" : "pve-node",
013dc89f
DM
38724 "type" : "string",
38725 "typetext" : "<string>"
4d47f125
TL
38726 },
38727 "ovs_bonds" : {
38728 "description" : "Specify the interfaces used by the bonding device.",
38729 "format" : "pve-iface-list",
38730 "optional" : 1,
38731 "type" : "string",
38732 "typetext" : "<string>"
38733 },
38734 "ovs_bridge" : {
38735 "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
38736 "format" : "pve-iface",
38737 "optional" : 1,
38738 "type" : "string",
38739 "typetext" : "<string>"
38740 },
38741 "ovs_options" : {
38742 "description" : "OVS interface options.",
38743 "maxLength" : 1024,
38744 "optional" : 1,
38745 "type" : "string",
38746 "typetext" : "<string>"
38747 },
38748 "ovs_ports" : {
1e3f8156 38749 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
38750 "format" : "pve-iface-list",
38751 "optional" : 1,
38752 "type" : "string",
38753 "typetext" : "<string>"
38754 },
38755 "ovs_tag" : {
38756 "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
38757 "maximum" : 4094,
38758 "minimum" : 1,
38759 "optional" : 1,
38760 "type" : "integer",
38761 "typetext" : "<integer> (1 - 4094)"
38762 },
38763 "slaves" : {
38764 "description" : "Specify the interfaces used by the bonding device.",
38765 "format" : "pve-iface-list",
38766 "optional" : 1,
38767 "type" : "string",
38768 "typetext" : "<string>"
38769 },
38770 "type" : {
38771 "description" : "Network interface type",
38772 "enum" : [
38773 "bridge",
38774 "bond",
38775 "eth",
38776 "alias",
38777 "vlan",
38778 "OVSBridge",
38779 "OVSBond",
38780 "OVSPort",
38781 "OVSIntPort",
38782 "unknown"
38783 ],
38784 "type" : "string"
e9cd3bd4
TL
38785 },
38786 "vlan-id" : {
38787 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
38788 "maximum" : 4094,
38789 "minimum" : 1,
38790 "optional" : 1,
38791 "type" : "integer",
38792 "typetext" : "<integer> (1 - 4094)"
38793 },
38794 "vlan-raw-device" : {
38795 "description" : "Specify the raw interface for the vlan interface.",
38796 "format" : "pve-iface",
38797 "optional" : 1,
38798 "type" : "string",
38799 "typetext" : "<string>"
7aacca6f
DM
38800 }
38801 }
38802 },
35a75dd3
DM
38803 "permissions" : {
38804 "check" : [
38805 "perm",
38806 "/nodes/{node}",
38807 [
38808 "Sys.Modify"
38809 ]
38810 ]
38811 },
7aacca6f 38812 "protected" : 1,
7aacca6f 38813 "proxyto" : "node",
44660702
DM
38814 "returns" : {
38815 "type" : "null"
38816 }
38817 },
38818 "PUT" : {
e9cd3bd4 38819 "allowtoken" : 1,
4d47f125 38820 "description" : "Reload network configuration",
44660702 38821 "method" : "PUT",
4d47f125 38822 "name" : "reload_network_config",
7aacca6f
DM
38823 "parameters" : {
38824 "additionalProperties" : 0,
38825 "properties" : {
7aacca6f 38826 "node" : {
7aacca6f 38827 "description" : "The cluster node name.",
44660702 38828 "format" : "pve-node",
013dc89f
DM
38829 "type" : "string",
38830 "typetext" : "<string>"
7aacca6f
DM
38831 }
38832 }
38833 },
35a75dd3
DM
38834 "permissions" : {
38835 "check" : [
38836 "perm",
38837 "/nodes/{node}",
38838 [
38839 "Sys.Modify"
38840 ]
38841 ]
38842 },
44660702
DM
38843 "protected" : 1,
38844 "proxyto" : "node",
7aacca6f 38845 "returns" : {
4d47f125 38846 "type" : "string"
44660702 38847 }
7aacca6f
DM
38848 }
38849 },
4d47f125
TL
38850 "leaf" : 0,
38851 "path" : "/nodes/{node}/network",
38852 "text" : "network"
7aacca6f
DM
38853 },
38854 {
7aacca6f
DM
38855 "children" : [
38856 {
4d47f125
TL
38857 "children" : [
38858 {
38859 "info" : {
38860 "GET" : {
e9cd3bd4 38861 "allowtoken" : 1,
4d47f125
TL
38862 "description" : "Read task log.",
38863 "method" : "GET",
38864 "name" : "read_task_log",
38865 "parameters" : {
38866 "additionalProperties" : 0,
38867 "properties" : {
9d2e98ed
TL
38868 "download" : {
38869 "description" : "Whether the tasklog file should be downloaded. This parameter can't be used in conjunction with other parameters",
38870 "optional" : 1,
38871 "type" : "boolean",
38872 "typetext" : "<boolean>"
38873 },
4d47f125
TL
38874 "limit" : {
38875 "default" : 50,
9d2e98ed 38876 "description" : "The amount of lines to read from the tasklog.",
4d47f125
TL
38877 "minimum" : 0,
38878 "optional" : 1,
38879 "type" : "integer",
38880 "typetext" : "<integer> (0 - N)"
38881 },
38882 "node" : {
38883 "description" : "The cluster node name.",
38884 "format" : "pve-node",
38885 "type" : "string",
38886 "typetext" : "<string>"
38887 },
38888 "start" : {
38889 "default" : 0,
9d2e98ed 38890 "description" : "Start at this line when reading the tasklog",
4d47f125
TL
38891 "minimum" : 0,
38892 "optional" : 1,
38893 "type" : "integer",
38894 "typetext" : "<integer> (0 - N)"
38895 },
38896 "upid" : {
5370fa8c 38897 "description" : "The task's unique ID.",
4d47f125
TL
38898 "type" : "string",
38899 "typetext" : "<string>"
38900 }
38901 }
38902 },
38903 "permissions" : {
5370fa8c 38904 "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they aren't the owner of the task.",
4d47f125
TL
38905 "user" : "all"
38906 },
38907 "protected" : 1,
38908 "proxyto" : "node",
38909 "returns" : {
38910 "items" : {
38911 "properties" : {
38912 "n" : {
38913 "description" : "Line number",
38914 "type" : "integer"
38915 },
38916 "t" : {
38917 "description" : "Line text",
38918 "type" : "string"
38919 }
38920 },
38921 "type" : "object"
38922 },
38923 "type" : "array"
38924 }
38925 }
38926 },
38927 "leaf" : 1,
38928 "path" : "/nodes/{node}/tasks/{upid}/log",
38929 "text" : "log"
38930 },
38931 {
38932 "info" : {
38933 "GET" : {
e9cd3bd4 38934 "allowtoken" : 1,
4d47f125
TL
38935 "description" : "Read task status.",
38936 "method" : "GET",
38937 "name" : "read_task_status",
38938 "parameters" : {
38939 "additionalProperties" : 0,
38940 "properties" : {
38941 "node" : {
38942 "description" : "The cluster node name.",
38943 "format" : "pve-node",
38944 "type" : "string",
38945 "typetext" : "<string>"
38946 },
38947 "upid" : {
5370fa8c 38948 "description" : "The task's unique ID.",
4d47f125
TL
38949 "type" : "string",
38950 "typetext" : "<string>"
38951 }
38952 }
38953 },
38954 "permissions" : {
5370fa8c 38955 "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they are not the owner of the task.",
4d47f125
TL
38956 "user" : "all"
38957 },
38958 "protected" : 1,
38959 "proxyto" : "node",
38960 "returns" : {
38961 "properties" : {
5370fa8c
TL
38962 "exitstatus" : {
38963 "optional" : 1,
38964 "type" : "string"
38965 },
38966 "id" : {
38967 "type" : "string"
38968 },
38969 "node" : {
38970 "type" : "string"
38971 },
4d47f125
TL
38972 "pid" : {
38973 "type" : "integer"
38974 },
5370fa8c
TL
38975 "starttime" : {
38976 "type" : "number"
38977 },
4d47f125
TL
38978 "status" : {
38979 "enum" : [
38980 "running",
38981 "stopped"
38982 ],
38983 "type" : "string"
5370fa8c
TL
38984 },
38985 "type" : {
38986 "type" : "string"
38987 },
38988 "upid" : {
38989 "type" : "string"
38990 },
38991 "user" : {
38992 "type" : "string"
4d47f125
TL
38993 }
38994 },
38995 "type" : "object"
38996 }
38997 }
38998 },
38999 "leaf" : 1,
39000 "path" : "/nodes/{node}/tasks/{upid}/status",
39001 "text" : "status"
39002 }
39003 ],
56122987 39004 "info" : {
7aacca6f 39005 "DELETE" : {
e9cd3bd4 39006 "allowtoken" : 1,
4d47f125 39007 "description" : "Stop a task.",
44660702 39008 "method" : "DELETE",
4d47f125 39009 "name" : "stop_task",
44660702
DM
39010 "parameters" : {
39011 "additionalProperties" : 0,
39012 "properties" : {
44660702
DM
39013 "node" : {
39014 "description" : "The cluster node name.",
39015 "format" : "pve-node",
013dc89f
DM
39016 "type" : "string",
39017 "typetext" : "<string>"
4d47f125
TL
39018 },
39019 "upid" : {
39020 "type" : "string",
39021 "typetext" : "<string>"
44660702
DM
39022 }
39023 }
7aacca6f
DM
39024 },
39025 "permissions" : {
5370fa8c 39026 "description" : "The user needs 'Sys.Modify' permissions on '/nodes/<node>' if they aren't the owner of the task.",
4d47f125 39027 "user" : "all"
7aacca6f 39028 },
44660702 39029 "protected" : 1,
7aacca6f 39030 "proxyto" : "node",
44660702
DM
39031 "returns" : {
39032 "type" : "null"
39033 }
39034 },
39035 "GET" : {
e9cd3bd4 39036 "allowtoken" : 1,
4d47f125 39037 "description" : "",
44660702 39038 "method" : "GET",
4d47f125 39039 "name" : "upid_index",
7aacca6f
DM
39040 "parameters" : {
39041 "additionalProperties" : 0,
39042 "properties" : {
7aacca6f 39043 "node" : {
44660702 39044 "description" : "The cluster node name.",
7aacca6f 39045 "format" : "pve-node",
013dc89f
DM
39046 "type" : "string",
39047 "typetext" : "<string>"
7aacca6f 39048 },
4d47f125
TL
39049 "upid" : {
39050 "type" : "string",
39051 "typetext" : "<string>"
7aacca6f
DM
39052 }
39053 }
39054 },
7aacca6f 39055 "permissions" : {
4d47f125 39056 "user" : "all"
7aacca6f
DM
39057 },
39058 "returns" : {
4d47f125
TL
39059 "items" : {
39060 "properties" : {},
39061 "type" : "object"
39062 },
39063 "links" : [
39064 {
39065 "href" : "{name}",
39066 "rel" : "child"
39067 }
39068 ],
39069 "type" : "array"
44660702 39070 }
7aacca6f
DM
39071 }
39072 },
4d47f125
TL
39073 "leaf" : 0,
39074 "path" : "/nodes/{node}/tasks/{upid}",
39075 "text" : "{upid}"
7aacca6f
DM
39076 }
39077 ],
7aacca6f 39078 "info" : {
44660702 39079 "GET" : {
e9cd3bd4 39080 "allowtoken" : 1,
4d47f125 39081 "description" : "Read task list for one node (finished tasks).",
44660702 39082 "method" : "GET",
4d47f125 39083 "name" : "node_tasks",
44660702
DM
39084 "parameters" : {
39085 "additionalProperties" : 0,
39086 "properties" : {
4d47f125
TL
39087 "errors" : {
39088 "default" : 0,
5370fa8c 39089 "description" : "Only list tasks with a status of ERROR.",
7aacca6f 39090 "optional" : 1,
4d47f125
TL
39091 "type" : "boolean",
39092 "typetext" : "<boolean>"
7aacca6f 39093 },
4d47f125
TL
39094 "limit" : {
39095 "default" : 50,
39096 "description" : "Only list this amount of tasks.",
39097 "minimum" : 0,
44660702 39098 "optional" : 1,
4d47f125
TL
39099 "type" : "integer",
39100 "typetext" : "<integer> (0 - N)"
39101 },
39102 "node" : {
39103 "description" : "The cluster node name.",
39104 "format" : "pve-node",
013dc89f
DM
39105 "type" : "string",
39106 "typetext" : "<string>"
44660702 39107 },
34f3e481
TL
39108 "since" : {
39109 "description" : "Only list tasks since this UNIX epoch.",
39110 "optional" : 1,
39111 "type" : "integer",
39112 "typetext" : "<integer>"
39113 },
5f26e15b
TL
39114 "source" : {
39115 "default" : "archive",
39116 "description" : "List archived, active or all tasks.",
39117 "enum" : [
39118 "archive",
39119 "active",
39120 "all"
39121 ],
39122 "optional" : 1,
39123 "type" : "string"
39124 },
4d47f125
TL
39125 "start" : {
39126 "default" : 0,
39127 "description" : "List tasks beginning from this offset.",
39128 "minimum" : 0,
44660702 39129 "optional" : 1,
4d47f125
TL
39130 "type" : "integer",
39131 "typetext" : "<integer> (0 - N)"
44660702 39132 },
34f3e481
TL
39133 "statusfilter" : {
39134 "description" : "List of Task States that should be returned.",
39135 "format" : "pve-task-status-type-list",
39136 "optional" : 1,
39137 "type" : "string",
39138 "typetext" : "<string>"
39139 },
5f26e15b
TL
39140 "typefilter" : {
39141 "description" : "Only list tasks of this type (e.g., vzstart, vzdump).",
39142 "optional" : 1,
39143 "type" : "string",
39144 "typetext" : "<string>"
39145 },
34f3e481
TL
39146 "until" : {
39147 "description" : "Only list tasks until this UNIX epoch.",
39148 "optional" : 1,
39149 "type" : "integer",
39150 "typetext" : "<integer>"
39151 },
4d47f125
TL
39152 "userfilter" : {
39153 "description" : "Only list tasks from this user.",
44660702 39154 "optional" : 1,
013dc89f
DM
39155 "type" : "string",
39156 "typetext" : "<string>"
44660702 39157 },
4d47f125
TL
39158 "vmid" : {
39159 "description" : "Only list tasks for this VM.",
39160 "format" : "pve-vmid",
44660702
DM
39161 "minimum" : 1,
39162 "optional" : 1,
4bd7df8b 39163 "type" : "integer",
4d47f125
TL
39164 "typetext" : "<integer> (1 - N)"
39165 }
39166 }
39167 },
39168 "permissions" : {
39169 "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).",
39170 "user" : "all"
39171 },
39172 "proxyto" : "node",
39173 "returns" : {
39174 "items" : {
39175 "properties" : {
39176 "endtime" : {
39177 "optional" : 1,
39178 "title" : "Endtime",
39179 "type" : "integer"
39180 },
39181 "id" : {
4d47f125
TL
39182 "title" : "ID",
39183 "type" : "string"
39184 },
39185 "node" : {
4d47f125
TL
39186 "title" : "Node",
39187 "type" : "string"
39188 },
39189 "pid" : {
4d47f125
TL
39190 "title" : "PID",
39191 "type" : "integer"
39192 },
39193 "pstart" : {
4d47f125
TL
39194 "type" : "integer"
39195 },
39196 "starttime" : {
4d47f125
TL
39197 "title" : "Starttime",
39198 "type" : "integer"
39199 },
39200 "status" : {
39201 "optional" : 1,
39202 "title" : "Status",
39203 "type" : "string"
39204 },
39205 "type" : {
4d47f125
TL
39206 "title" : "Type",
39207 "type" : "string"
39208 },
39209 "upid" : {
39210 "title" : "UPID",
39211 "type" : "string"
39212 },
39213 "user" : {
4d47f125
TL
39214 "title" : "User",
39215 "type" : "string"
39216 }
44660702 39217 },
4d47f125
TL
39218 "type" : "object"
39219 },
39220 "links" : [
39221 {
39222 "href" : "{upid}",
39223 "rel" : "child"
39224 }
39225 ],
39226 "type" : "array"
39227 }
39228 }
39229 },
39230 "leaf" : 0,
39231 "path" : "/nodes/{node}/tasks",
39232 "text" : "tasks"
39233 },
39234 {
39235 "children" : [
39236 {
39237 "info" : {
39238 "GET" : {
e9cd3bd4 39239 "allowtoken" : 1,
d2656385 39240 "description" : "Scan remote NFS server.",
4d47f125 39241 "method" : "GET",
d2656385 39242 "name" : "nfsscan",
4d47f125
TL
39243 "parameters" : {
39244 "additionalProperties" : 0,
39245 "properties" : {
39246 "node" : {
39247 "description" : "The cluster node name.",
39248 "format" : "pve-node",
39249 "type" : "string",
39250 "typetext" : "<string>"
d2656385
TL
39251 },
39252 "server" : {
39253 "description" : "The server address (name or IP).",
39254 "format" : "pve-storage-server",
39255 "type" : "string",
39256 "typetext" : "<string>"
4d47f125
TL
39257 }
39258 }
44660702 39259 },
4d47f125
TL
39260 "permissions" : {
39261 "check" : [
39262 "perm",
39263 "/storage",
39264 [
39265 "Datastore.Allocate"
39266 ]
39267 ]
39268 },
39269 "protected" : 1,
39270 "proxyto" : "node",
39271 "returns" : {
39272 "items" : {
39273 "properties" : {
d2656385
TL
39274 "options" : {
39275 "description" : "NFS export options.",
39276 "type" : "string"
39277 },
39278 "path" : {
39279 "description" : "The exported path.",
4d47f125
TL
39280 "type" : "string"
39281 }
39282 },
39283 "type" : "object"
39284 },
39285 "type" : "array"
39286 }
39287 }
39288 },
39289 "leaf" : 1,
d2656385
TL
39290 "path" : "/nodes/{node}/scan/nfs",
39291 "text" : "nfs"
4d47f125
TL
39292 },
39293 {
39294 "info" : {
39295 "GET" : {
e9cd3bd4 39296 "allowtoken" : 1,
d2656385 39297 "description" : "Scan remote CIFS server.",
4d47f125 39298 "method" : "GET",
d2656385 39299 "name" : "cifsscan",
4d47f125
TL
39300 "parameters" : {
39301 "additionalProperties" : 0,
39302 "properties" : {
d2656385
TL
39303 "domain" : {
39304 "description" : "SMB domain (Workgroup).",
39305 "optional" : 1,
39306 "type" : "string",
39307 "typetext" : "<string>"
39308 },
4d47f125
TL
39309 "node" : {
39310 "description" : "The cluster node name.",
39311 "format" : "pve-node",
39312 "type" : "string",
39313 "typetext" : "<string>"
39314 },
d2656385
TL
39315 "password" : {
39316 "description" : "User password.",
39317 "optional" : 1,
39318 "type" : "string",
39319 "typetext" : "<string>"
39320 },
4d47f125
TL
39321 "server" : {
39322 "description" : "The server address (name or IP).",
39323 "format" : "pve-storage-server",
39324 "type" : "string",
39325 "typetext" : "<string>"
d2656385
TL
39326 },
39327 "username" : {
39328 "description" : "User name.",
39329 "optional" : 1,
39330 "type" : "string",
39331 "typetext" : "<string>"
4d47f125
TL
39332 }
39333 }
39334 },
39335 "permissions" : {
39336 "check" : [
39337 "perm",
39338 "/storage",
39339 [
39340 "Datastore.Allocate"
39341 ]
39342 ]
39343 },
39344 "protected" : 1,
39345 "proxyto" : "node",
39346 "returns" : {
39347 "items" : {
39348 "properties" : {
d2656385
TL
39349 "description" : {
39350 "description" : "Descriptive text from server.",
4d47f125
TL
39351 "type" : "string"
39352 },
d2656385
TL
39353 "share" : {
39354 "description" : "The cifs share name.",
4d47f125
TL
39355 "type" : "string"
39356 }
39357 },
39358 "type" : "object"
39359 },
39360 "type" : "array"
39361 }
39362 }
39363 },
39364 "leaf" : 1,
d2656385
TL
39365 "path" : "/nodes/{node}/scan/cifs",
39366 "text" : "cifs"
4d47f125
TL
39367 },
39368 {
39369 "info" : {
39370 "GET" : {
e9cd3bd4 39371 "allowtoken" : 1,
d2656385 39372 "description" : "Scan remote Proxmox Backup Server.",
4d47f125 39373 "method" : "GET",
d2656385 39374 "name" : "pbsscan",
4d47f125
TL
39375 "parameters" : {
39376 "additionalProperties" : 0,
39377 "properties" : {
d2656385
TL
39378 "fingerprint" : {
39379 "description" : "Certificate SHA 256 fingerprint.",
4d47f125 39380 "optional" : 1,
d2656385
TL
39381 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
39382 "type" : "string"
4d47f125
TL
39383 },
39384 "node" : {
39385 "description" : "The cluster node name.",
39386 "format" : "pve-node",
39387 "type" : "string",
39388 "typetext" : "<string>"
39389 },
39390 "password" : {
d2656385 39391 "description" : "User password or API token secret.",
4d47f125
TL
39392 "type" : "string",
39393 "typetext" : "<string>"
39394 },
d2656385
TL
39395 "port" : {
39396 "default" : 8007,
39397 "description" : "Optional port.",
39398 "maximum" : 65535,
39399 "minimum" : 1,
39400 "optional" : 1,
39401 "type" : "integer",
39402 "typetext" : "<integer> (1 - 65535)"
39403 },
4d47f125
TL
39404 "server" : {
39405 "description" : "The server address (name or IP).",
39406 "format" : "pve-storage-server",
39407 "type" : "string",
39408 "typetext" : "<string>"
39409 },
39410 "username" : {
d2656385 39411 "description" : "User-name or API token-ID.",
4d47f125
TL
39412 "type" : "string",
39413 "typetext" : "<string>"
39414 }
39415 }
39416 },
39417 "permissions" : {
39418 "check" : [
39419 "perm",
39420 "/storage",
39421 [
39422 "Datastore.Allocate"
39423 ]
39424 ]
39425 },
39426 "protected" : 1,
39427 "proxyto" : "node",
39428 "returns" : {
39429 "items" : {
39430 "properties" : {
d2656385
TL
39431 "comment" : {
39432 "description" : "Comment from server.",
39433 "optional" : 1,
4d47f125
TL
39434 "type" : "string"
39435 },
d2656385
TL
39436 "store" : {
39437 "description" : "The datastore name.",
4d47f125
TL
39438 "type" : "string"
39439 }
39440 },
39441 "type" : "object"
39442 },
39443 "type" : "array"
56122987 39444 }
44660702 39445 }
56122987 39446 },
4d47f125 39447 "leaf" : 1,
d2656385
TL
39448 "path" : "/nodes/{node}/scan/pbs",
39449 "text" : "pbs"
4d47f125 39450 },
44660702 39451 {
4d47f125
TL
39452 "info" : {
39453 "GET" : {
e9cd3bd4 39454 "allowtoken" : 1,
4d47f125
TL
39455 "description" : "Scan remote GlusterFS server.",
39456 "method" : "GET",
39457 "name" : "glusterfsscan",
39458 "parameters" : {
39459 "additionalProperties" : 0,
39460 "properties" : {
39461 "node" : {
39462 "description" : "The cluster node name.",
39463 "format" : "pve-node",
39464 "type" : "string",
39465 "typetext" : "<string>"
7aacca6f 39466 },
4d47f125
TL
39467 "server" : {
39468 "description" : "The server address (name or IP).",
39469 "format" : "pve-storage-server",
39470 "type" : "string",
39471 "typetext" : "<string>"
44660702 39472 }
7aacca6f 39473 }
56122987 39474 },
4d47f125
TL
39475 "permissions" : {
39476 "check" : [
39477 "perm",
39478 "/storage",
39479 [
39480 "Datastore.Allocate"
39481 ]
39482 ]
39483 },
39484 "protected" : 1,
39485 "proxyto" : "node",
39486 "returns" : {
39487 "items" : {
39488 "properties" : {
39489 "volname" : {
39490 "description" : "The volume name.",
39491 "type" : "string"
7aacca6f
DM
39492 }
39493 },
4d47f125
TL
39494 "type" : "object"
39495 },
39496 "type" : "array"
39497 }
39498 }
39499 },
39500 "leaf" : 1,
39501 "path" : "/nodes/{node}/scan/glusterfs",
39502 "text" : "glusterfs"
39503 },
39504 {
39505 "info" : {
39506 "GET" : {
e9cd3bd4 39507 "allowtoken" : 1,
4d47f125
TL
39508 "description" : "Scan remote iSCSI server.",
39509 "method" : "GET",
39510 "name" : "iscsiscan",
39511 "parameters" : {
39512 "additionalProperties" : 0,
39513 "properties" : {
39514 "node" : {
39515 "description" : "The cluster node name.",
39516 "format" : "pve-node",
39517 "type" : "string",
39518 "typetext" : "<string>"
56122987 39519 },
4d47f125
TL
39520 "portal" : {
39521 "description" : "The iSCSI portal (IP or DNS name with optional port).",
39522 "format" : "pve-storage-portal-dns",
39523 "type" : "string",
39524 "typetext" : "<string>"
39525 }
39526 }
39527 },
39528 "permissions" : {
39529 "check" : [
39530 "perm",
39531 "/storage",
39532 [
39533 "Datastore.Allocate"
39534 ]
39535 ]
39536 },
39537 "protected" : 1,
39538 "proxyto" : "node",
39539 "returns" : {
39540 "items" : {
39541 "properties" : {
39542 "portal" : {
39543 "description" : "The iSCSI portal name.",
39544 "type" : "string"
7aacca6f 39545 },
4d47f125
TL
39546 "target" : {
39547 "description" : "The iSCSI target name.",
39548 "type" : "string"
39549 }
39550 },
39551 "type" : "object"
39552 },
39553 "type" : "array"
39554 }
39555 }
39556 },
39557 "leaf" : 1,
39558 "path" : "/nodes/{node}/scan/iscsi",
39559 "text" : "iscsi"
39560 },
39561 {
39562 "info" : {
39563 "GET" : {
e9cd3bd4 39564 "allowtoken" : 1,
4d47f125
TL
39565 "description" : "List local LVM volume groups.",
39566 "method" : "GET",
39567 "name" : "lvmscan",
39568 "parameters" : {
39569 "additionalProperties" : 0,
39570 "properties" : {
39571 "node" : {
39572 "description" : "The cluster node name.",
39573 "format" : "pve-node",
39574 "type" : "string",
39575 "typetext" : "<string>"
56122987 39576 }
7aacca6f 39577 }
44660702 39578 },
4d47f125
TL
39579 "permissions" : {
39580 "check" : [
39581 "perm",
39582 "/storage",
39583 [
39584 "Datastore.Allocate"
39585 ]
39586 ]
39587 },
39588 "protected" : 1,
39589 "proxyto" : "node",
39590 "returns" : {
39591 "items" : {
39592 "properties" : {
39593 "vg" : {
39594 "description" : "The LVM logical volume group name.",
39595 "type" : "string"
39596 }
39597 },
39598 "type" : "object"
39599 },
39600 "type" : "array"
39601 }
56122987 39602 }
4d47f125
TL
39603 },
39604 "leaf" : 1,
39605 "path" : "/nodes/{node}/scan/lvm",
39606 "text" : "lvm"
39607 },
39608 {
44660702 39609 "info" : {
4d47f125 39610 "GET" : {
e9cd3bd4 39611 "allowtoken" : 1,
4d47f125
TL
39612 "description" : "List local LVM Thin Pools.",
39613 "method" : "GET",
39614 "name" : "lvmthinscan",
44660702
DM
39615 "parameters" : {
39616 "additionalProperties" : 0,
39617 "properties" : {
39618 "node" : {
39619 "description" : "The cluster node name.",
39620 "format" : "pve-node",
013dc89f
DM
39621 "type" : "string",
39622 "typetext" : "<string>"
44660702 39623 },
4d47f125
TL
39624 "vg" : {
39625 "maxLength" : 100,
39626 "pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+",
39627 "type" : "string"
44660702 39628 }
7aacca6f 39629 }
44660702
DM
39630 },
39631 "permissions" : {
4d47f125
TL
39632 "check" : [
39633 "perm",
39634 "/storage",
39635 [
39636 "Datastore.Allocate"
39637 ]
39638 ]
44660702
DM
39639 },
39640 "protected" : 1,
39641 "proxyto" : "node",
39642 "returns" : {
4d47f125
TL
39643 "items" : {
39644 "properties" : {
39645 "lv" : {
39646 "description" : "The LVM Thin Pool name (LVM logical volume).",
39647 "type" : "string"
39648 }
39649 },
39650 "type" : "object"
39651 },
39652 "type" : "array"
7aacca6f 39653 }
4d47f125
TL
39654 }
39655 },
39656 "leaf" : 1,
39657 "path" : "/nodes/{node}/scan/lvmthin",
39658 "text" : "lvmthin"
39659 },
d2656385
TL
39660 {
39661 "info" : {
39662 "GET" : {
39663 "allowtoken" : 1,
39664 "description" : "Scan zfs pool list on local node.",
39665 "method" : "GET",
39666 "name" : "zfsscan",
39667 "parameters" : {
39668 "additionalProperties" : 0,
39669 "properties" : {
39670 "node" : {
39671 "description" : "The cluster node name.",
39672 "format" : "pve-node",
39673 "type" : "string",
39674 "typetext" : "<string>"
39675 }
39676 }
39677 },
39678 "permissions" : {
39679 "check" : [
39680 "perm",
39681 "/storage",
39682 [
39683 "Datastore.Allocate"
39684 ]
39685 ]
39686 },
39687 "protected" : 1,
39688 "proxyto" : "node",
39689 "returns" : {
39690 "items" : {
39691 "properties" : {
39692 "pool" : {
39693 "description" : "ZFS pool name.",
39694 "type" : "string"
39695 }
39696 },
39697 "type" : "object"
39698 },
39699 "type" : "array"
39700 }
39701 }
39702 },
39703 "leaf" : 1,
39704 "path" : "/nodes/{node}/scan/zfs",
39705 "text" : "zfs"
44660702
DM
39706 }
39707 ],
39708 "info" : {
39709 "GET" : {
e9cd3bd4 39710 "allowtoken" : 1,
4d47f125 39711 "description" : "Index of available scan methods",
44660702 39712 "method" : "GET",
4d47f125 39713 "name" : "index",
56122987 39714 "parameters" : {
7aacca6f 39715 "additionalProperties" : 0,
56122987 39716 "properties" : {
56122987
DM
39717 "node" : {
39718 "description" : "The cluster node name.",
44660702 39719 "format" : "pve-node",
013dc89f
DM
39720 "type" : "string",
39721 "typetext" : "<string>"
56122987
DM
39722 }
39723 }
39724 },
7aacca6f
DM
39725 "permissions" : {
39726 "user" : "all"
39727 },
56122987
DM
39728 "returns" : {
39729 "items" : {
39730 "properties" : {
4d47f125 39731 "method" : {
56122987
DM
39732 "type" : "string"
39733 }
39734 },
39735 "type" : "object"
39736 },
56122987
DM
39737 "links" : [
39738 {
4d47f125 39739 "href" : "{method}",
44660702 39740 "rel" : "child"
56122987 39741 }
44660702
DM
39742 ],
39743 "type" : "array"
56122987
DM
39744 }
39745 }
39746 },
44660702 39747 "leaf" : 0,
4d47f125
TL
39748 "path" : "/nodes/{node}/scan",
39749 "text" : "scan"
44660702 39750 },
e2d681b3
TL
39751 {
39752 "children" : [
39753 {
39754 "children" : [
39755 {
39756 "children" : [
39757 {
39758 "info" : {
39759 "GET" : {
e9cd3bd4 39760 "allowtoken" : 1,
e2d681b3
TL
39761 "description" : "List mediated device types for given PCI device.",
39762 "method" : "GET",
39763 "name" : "mdevscan",
39764 "parameters" : {
39765 "additionalProperties" : 0,
39766 "properties" : {
39767 "node" : {
39768 "description" : "The cluster node name.",
39769 "format" : "pve-node",
39770 "type" : "string",
39771 "typetext" : "<string>"
39772 },
39773 "pciid" : {
39774 "description" : "The PCI ID to list the mdev types for.",
39775 "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
39776 "type" : "string"
39777 }
39778 }
39779 },
39780 "permissions" : {
39781 "check" : [
39782 "perm",
39783 "/",
39784 [
9d2e98ed 39785 "Sys.Audit",
e2d681b3 39786 "Sys.Modify"
9d2e98ed
TL
39787 ],
39788 "any",
39789 1
e2d681b3
TL
39790 ]
39791 },
39792 "protected" : 1,
39793 "proxyto" : "node",
39794 "returns" : {
39795 "items" : {
39796 "properties" : {
39797 "available" : {
39798 "description" : "The number of still available instances of this type.",
39799 "type" : "integer"
39800 },
39801 "description" : {
39802 "type" : "string"
39803 },
39804 "type" : {
39805 "description" : "The name of the mdev type.",
39806 "type" : "string"
39807 }
39808 },
39809 "type" : "object"
39810 },
39811 "type" : "array"
39812 }
39813 }
39814 },
39815 "leaf" : 1,
39816 "path" : "/nodes/{node}/hardware/pci/{pciid}/mdev",
39817 "text" : "mdev"
39818 }
39819 ],
39820 "info" : {
39821 "GET" : {
e9cd3bd4 39822 "allowtoken" : 1,
e2d681b3
TL
39823 "description" : "Index of available pci methods",
39824 "method" : "GET",
39825 "name" : "pciindex",
39826 "parameters" : {
39827 "additionalProperties" : 0,
39828 "properties" : {
39829 "node" : {
39830 "description" : "The cluster node name.",
39831 "format" : "pve-node",
39832 "type" : "string",
39833 "typetext" : "<string>"
39834 },
39835 "pciid" : {
39836 "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
39837 "type" : "string"
39838 }
39839 }
39840 },
39841 "permissions" : {
39842 "user" : "all"
39843 },
39844 "returns" : {
39845 "items" : {
39846 "properties" : {
39847 "method" : {
39848 "type" : "string"
39849 }
39850 },
39851 "type" : "object"
39852 },
39853 "links" : [
39854 {
39855 "href" : "{method}",
39856 "rel" : "child"
39857 }
39858 ],
39859 "type" : "array"
39860 }
39861 }
39862 },
39863 "leaf" : 0,
39864 "path" : "/nodes/{node}/hardware/pci/{pciid}",
39865 "text" : "{pciid}"
39866 }
39867 ],
39868 "info" : {
39869 "GET" : {
e9cd3bd4 39870 "allowtoken" : 1,
e2d681b3
TL
39871 "description" : "List local PCI devices.",
39872 "method" : "GET",
39873 "name" : "pciscan",
39874 "parameters" : {
39875 "additionalProperties" : 0,
39876 "properties" : {
39877 "node" : {
39878 "description" : "The cluster node name.",
39879 "format" : "pve-node",
39880 "type" : "string",
39881 "typetext" : "<string>"
39882 },
39883 "pci-class-blacklist" : {
5370fa8c
TL
39884 "default" : "05;06;0b",
39885 "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
39886 "format" : "string-list",
39887 "optional" : 1,
39888 "type" : "string",
39889 "typetext" : "<string>"
39890 },
39891 "verbose" : {
39892 "default" : 1,
39893 "description" : "If disabled, does only print the PCI IDs. Otherwise, additional information like vendor and device will be returned.",
39894 "optional" : 1,
39895 "type" : "boolean",
39896 "typetext" : "<boolean>"
39897 }
39898 }
39899 },
39900 "permissions" : {
39901 "check" : [
39902 "perm",
39903 "/",
39904 [
9d2e98ed 39905 "Sys.Audit",
e2d681b3 39906 "Sys.Modify"
9d2e98ed
TL
39907 ],
39908 "any",
39909 1
e2d681b3
TL
39910 ]
39911 },
39912 "protected" : 1,
39913 "proxyto" : "node",
39914 "returns" : {
39915 "items" : {
39916 "properties" : {
39917 "class" : {
39918 "description" : "The PCI Class of the device.",
39919 "type" : "string"
39920 },
39921 "device" : {
39922 "description" : "The Device ID.",
39923 "type" : "string"
39924 },
39925 "device_name" : {
39926 "optional" : 1,
39927 "type" : "string"
39928 },
39929 "id" : {
39930 "description" : "The PCI ID.",
39931 "type" : "string"
39932 },
39933 "iommugroup" : {
39934 "description" : "The IOMMU group in which the device is in. If no IOMMU group is detected, it is set to -1.",
39935 "type" : "integer"
39936 },
39937 "mdev" : {
39938 "description" : "If set, marks that the device is capable of creating mediated devices.",
39939 "optional" : 1,
39940 "type" : "boolean"
39941 },
39942 "subsystem_device" : {
39943 "description" : "The Subsystem Device ID.",
39944 "optional" : 1,
39945 "type" : "string"
39946 },
39947 "subsystem_device_name" : {
39948 "optional" : 1,
39949 "type" : "string"
39950 },
39951 "subsystem_vendor" : {
39952 "description" : "The Subsystem Vendor ID.",
39953 "optional" : 1,
39954 "type" : "string"
39955 },
39956 "subsystem_vendor_name" : {
39957 "optional" : 1,
39958 "type" : "string"
39959 },
39960 "vendor" : {
39961 "description" : "The Vendor ID.",
39962 "type" : "string"
39963 },
39964 "vendor_name" : {
39965 "optional" : 1,
39966 "type" : "string"
39967 }
39968 },
39969 "type" : "object"
39970 },
39971 "links" : [
39972 {
39973 "href" : "{id}",
39974 "rel" : "child"
39975 }
39976 ],
39977 "type" : "array"
39978 }
39979 }
39980 },
39981 "leaf" : 0,
39982 "path" : "/nodes/{node}/hardware/pci",
39983 "text" : "pci"
d2656385
TL
39984 },
39985 {
39986 "info" : {
39987 "GET" : {
39988 "allowtoken" : 1,
39989 "description" : "List local USB devices.",
39990 "method" : "GET",
39991 "name" : "usbscan",
39992 "parameters" : {
39993 "additionalProperties" : 0,
39994 "properties" : {
39995 "node" : {
39996 "description" : "The cluster node name.",
39997 "format" : "pve-node",
39998 "type" : "string",
39999 "typetext" : "<string>"
40000 }
40001 }
40002 },
40003 "permissions" : {
40004 "check" : [
40005 "perm",
40006 "/",
40007 [
40008 "Sys.Modify"
40009 ]
40010 ]
40011 },
40012 "protected" : 1,
40013 "proxyto" : "node",
40014 "returns" : {
40015 "items" : {
40016 "properties" : {
40017 "busnum" : {
40018 "type" : "integer"
40019 },
40020 "class" : {
40021 "type" : "integer"
40022 },
40023 "devnum" : {
40024 "type" : "integer"
40025 },
40026 "level" : {
40027 "type" : "integer"
40028 },
40029 "manufacturer" : {
40030 "optional" : 1,
40031 "type" : "string"
40032 },
40033 "port" : {
40034 "type" : "integer"
40035 },
40036 "prodid" : {
40037 "type" : "string"
40038 },
40039 "product" : {
40040 "optional" : 1,
40041 "type" : "string"
40042 },
40043 "serial" : {
40044 "optional" : 1,
40045 "type" : "string"
40046 },
40047 "speed" : {
40048 "type" : "string"
40049 },
40050 "usbpath" : {
40051 "optional" : 1,
40052 "type" : "string"
40053 },
40054 "vendid" : {
40055 "type" : "string"
40056 }
40057 },
40058 "type" : "object"
40059 },
40060 "type" : "array"
40061 }
40062 }
40063 },
40064 "leaf" : 1,
40065 "path" : "/nodes/{node}/hardware/usb",
40066 "text" : "usb"
e2d681b3
TL
40067 }
40068 ],
40069 "info" : {
40070 "GET" : {
e9cd3bd4 40071 "allowtoken" : 1,
e2d681b3
TL
40072 "description" : "Index of hardware types",
40073 "method" : "GET",
40074 "name" : "index",
40075 "parameters" : {
40076 "additionalProperties" : 0,
40077 "properties" : {
40078 "node" : {
40079 "description" : "The cluster node name.",
40080 "format" : "pve-node",
40081 "type" : "string",
40082 "typetext" : "<string>"
40083 }
40084 }
40085 },
40086 "permissions" : {
40087 "user" : "all"
40088 },
40089 "returns" : {
40090 "items" : {
40091 "properties" : {
40092 "type" : {
40093 "type" : "string"
40094 }
40095 },
40096 "type" : "object"
40097 },
40098 "links" : [
40099 {
40100 "href" : "{type}",
40101 "rel" : "child"
40102 }
40103 ],
40104 "type" : "array"
40105 }
40106 }
40107 },
40108 "leaf" : 0,
40109 "path" : "/nodes/{node}/hardware",
40110 "text" : "hardware"
40111 },
d2656385
TL
40112 {
40113 "children" : [
40114 {
40115 "children" : [
0695fdaf
TL
40116 {
40117 "info" : {
40118 "GET" : {
40119 "allowtoken" : 1,
40120 "description" : "List all custom and default CPU models.",
40121 "method" : "GET",
40122 "name" : "index",
40123 "parameters" : {
40124 "additionalProperties" : 0,
40125 "properties" : {
40126 "node" : {
40127 "description" : "The cluster node name.",
40128 "format" : "pve-node",
40129 "type" : "string",
40130 "typetext" : "<string>"
40131 }
40132 }
40133 },
40134 "permissions" : {
40135 "description" : "Only returns custom models when the current user has Sys.Audit on /nodes.",
40136 "user" : "all"
40137 },
40138 "returns" : {
40139 "items" : {
40140 "properties" : {
40141 "custom" : {
40142 "description" : "True if this is a custom CPU model.",
40143 "type" : "boolean"
40144 },
40145 "name" : {
40146 "description" : "Name of the CPU model. Identifies it for subsequent API calls. Prefixed with 'custom-' for custom models.",
40147 "type" : "string"
40148 },
40149 "vendor" : {
40150 "description" : "CPU vendor visible to the guest when this model is selected. Vendor of 'reported-model' in case of custom models.",
40151 "type" : "string"
40152 }
40153 },
40154 "type" : "object"
40155 },
40156 "links" : [
40157 {
40158 "href" : "{name}",
40159 "rel" : "child"
40160 }
40161 ],
40162 "type" : "array"
40163 }
40164 }
40165 },
40166 "leaf" : 1,
40167 "path" : "/nodes/{node}/capabilities/qemu/cpu",
40168 "text" : "cpu"
40169 },
d2656385
TL
40170 {
40171 "info" : {
40172 "GET" : {
40173 "allowtoken" : 1,
40174 "description" : "Get available QEMU/KVM machine types.",
40175 "method" : "GET",
40176 "name" : "types",
40177 "parameters" : {
40178 "additionalProperties" : 0,
40179 "properties" : {
40180 "node" : {
40181 "description" : "The cluster node name.",
40182 "format" : "pve-node",
40183 "type" : "string",
40184 "typetext" : "<string>"
40185 }
40186 }
40187 },
40188 "permissions" : {
40189 "user" : "all"
40190 },
40191 "proxyto" : "node",
40192 "returns" : {
40193 "items" : {
40194 "additionalProperties" : 1,
40195 "properties" : {
40196 "id" : {
40197 "description" : "Full name of machine type and version.",
40198 "type" : "string"
40199 },
40200 "type" : {
40201 "description" : "The machine type.",
40202 "enum" : [
40203 "q35",
40204 "i440fx"
40205 ],
40206 "type" : "string"
40207 },
40208 "version" : {
40209 "description" : "The machine version.",
40210 "type" : "string"
40211 }
40212 },
40213 "type" : "object"
40214 },
40215 "type" : "array"
40216 }
40217 }
40218 },
40219 "leaf" : 1,
40220 "path" : "/nodes/{node}/capabilities/qemu/machines",
40221 "text" : "machines"
40222 }
40223 ],
40224 "info" : {
40225 "GET" : {
40226 "allowtoken" : 1,
40227 "description" : "QEMU capabilities index.",
40228 "method" : "GET",
40229 "name" : "qemu_caps_index",
40230 "parameters" : {
40231 "additionalProperties" : 0,
40232 "properties" : {
40233 "node" : {
40234 "description" : "The cluster node name.",
40235 "format" : "pve-node",
40236 "type" : "string",
40237 "typetext" : "<string>"
40238 }
40239 }
40240 },
40241 "permissions" : {
40242 "user" : "all"
40243 },
40244 "returns" : {
40245 "items" : {
40246 "properties" : {},
40247 "type" : "object"
40248 },
40249 "links" : [
40250 {
40251 "href" : "{name}",
40252 "rel" : "child"
40253 }
40254 ],
40255 "type" : "array"
40256 }
40257 }
40258 },
40259 "leaf" : 0,
40260 "path" : "/nodes/{node}/capabilities/qemu",
40261 "text" : "qemu"
40262 }
40263 ],
40264 "info" : {
40265 "GET" : {
40266 "allowtoken" : 1,
40267 "description" : "Node capabilities index.",
40268 "method" : "GET",
40269 "name" : "index",
40270 "parameters" : {
40271 "additionalProperties" : 0,
40272 "properties" : {
40273 "node" : {
40274 "description" : "The cluster node name.",
40275 "format" : "pve-node",
40276 "type" : "string",
40277 "typetext" : "<string>"
40278 }
40279 }
40280 },
40281 "permissions" : {
40282 "user" : "all"
40283 },
40284 "returns" : {
40285 "items" : {
40286 "properties" : {},
40287 "type" : "object"
40288 },
40289 "links" : [
40290 {
40291 "href" : "{name}",
40292 "rel" : "child"
40293 }
40294 ],
40295 "type" : "array"
40296 }
40297 }
40298 },
40299 "leaf" : 0,
40300 "path" : "/nodes/{node}/capabilities",
40301 "text" : "capabilities"
40302 },
44660702 40303 {
56122987
DM
40304 "children" : [
40305 {
4d47f125 40306 "children" : [
739d4d64
TL
40307 {
40308 "info" : {
40309 "DELETE" : {
40310 "allowtoken" : 1,
40311 "description" : "Prune backups. Only those using the standard naming scheme are considered.",
40312 "method" : "DELETE",
40313 "name" : "delete",
40314 "parameters" : {
40315 "additionalProperties" : 0,
40316 "properties" : {
40317 "node" : {
40318 "description" : "The cluster node name.",
40319 "format" : "pve-node",
40320 "type" : "string",
40321 "typetext" : "<string>"
40322 },
40323 "prune-backups" : {
40324 "description" : "Use these retention options instead of those from the storage configuration.",
40325 "format" : "prune-backups",
40326 "optional" : 1,
40327 "type" : "string",
4772952b 40328 "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
40329 },
40330 "storage" : {
40331 "description" : "The storage identifier.",
40332 "format" : "pve-storage-id",
40333 "type" : "string",
40334 "typetext" : "<string>"
40335 },
40336 "type" : {
40337 "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
40338 "enum" : [
40339 "qemu",
40340 "lxc"
40341 ],
40342 "optional" : 1,
40343 "type" : "string"
40344 },
40345 "vmid" : {
40346 "description" : "Only prune backups for this VM.",
40347 "format" : "pve-vmid",
40348 "minimum" : 1,
40349 "optional" : 1,
40350 "type" : "integer",
40351 "typetext" : "<integer> (1 - N)"
40352 }
40353 }
40354 },
40355 "permissions" : {
40356 "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).",
40357 "user" : "all"
40358 },
40359 "protected" : 1,
40360 "proxyto" : "node",
40361 "returns" : {
40362 "type" : "string"
40363 }
40364 },
40365 "GET" : {
40366 "allowtoken" : 1,
4772952b 40367 "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
40368 "method" : "GET",
40369 "name" : "dryrun",
40370 "parameters" : {
40371 "additionalProperties" : 0,
40372 "properties" : {
40373 "node" : {
40374 "description" : "The cluster node name.",
40375 "format" : "pve-node",
40376 "type" : "string",
40377 "typetext" : "<string>"
40378 },
40379 "prune-backups" : {
40380 "description" : "Use these retention options instead of those from the storage configuration.",
40381 "format" : "prune-backups",
40382 "optional" : 1,
40383 "type" : "string",
4772952b 40384 "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
40385 },
40386 "storage" : {
40387 "description" : "The storage identifier.",
40388 "format" : "pve-storage-id",
40389 "type" : "string",
40390 "typetext" : "<string>"
40391 },
40392 "type" : {
40393 "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
40394 "enum" : [
40395 "qemu",
40396 "lxc"
40397 ],
40398 "optional" : 1,
40399 "type" : "string"
40400 },
40401 "vmid" : {
40402 "description" : "Only consider backups for this guest.",
40403 "format" : "pve-vmid",
40404 "minimum" : 1,
40405 "optional" : 1,
40406 "type" : "integer",
40407 "typetext" : "<integer> (1 - N)"
40408 }
40409 }
40410 },
40411 "permissions" : {
40412 "check" : [
40413 "perm",
40414 "/storage/{storage}",
40415 [
40416 "Datastore.Audit",
40417 "Datastore.AllocateSpace"
40418 ],
40419 "any",
40420 1
40421 ]
40422 },
40423 "protected" : 1,
40424 "proxyto" : "node",
40425 "returns" : {
40426 "items" : {
40427 "properties" : {
40428 "ctime" : {
40429 "description" : "Creation time of the backup (seconds since the UNIX epoch).",
40430 "type" : "integer"
40431 },
40432 "mark" : {
5370fa8c
TL
40433 "description" : "Whether the backup would be kept or removed. Backups that are protected or don't use the standard naming scheme are not removed.",
40434 "enum" : [
40435 "keep",
40436 "remove",
40437 "protected",
40438 "renamed"
40439 ],
739d4d64
TL
40440 "type" : "string"
40441 },
40442 "type" : {
40443 "description" : "One of 'qemu', 'lxc', 'openvz' or 'unknown'.",
40444 "type" : "string"
40445 },
40446 "vmid" : {
40447 "description" : "The VM the backup belongs to.",
40448 "optional" : 1,
40449 "type" : "integer"
40450 },
40451 "volid" : {
40452 "description" : "Backup volume ID.",
40453 "type" : "string"
40454 }
40455 },
40456 "type" : "object"
40457 },
40458 "type" : "array"
40459 }
40460 }
40461 },
40462 "leaf" : 1,
40463 "path" : "/nodes/{node}/storage/{storage}/prunebackups",
40464 "text" : "prunebackups"
40465 },
4d47f125
TL
40466 {
40467 "children" : [
40468 {
40469 "info" : {
40470 "DELETE" : {
e9cd3bd4 40471 "allowtoken" : 1,
4d47f125
TL
40472 "description" : "Delete volume",
40473 "method" : "DELETE",
40474 "name" : "delete",
40475 "parameters" : {
40476 "additionalProperties" : 0,
40477 "properties" : {
1c532546
TL
40478 "delay" : {
40479 "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
40480 "maximum" : 30,
40481 "minimum" : 1,
40482 "optional" : 1,
40483 "type" : "integer",
40484 "typetext" : "<integer> (1 - 30)"
40485 },
4d47f125
TL
40486 "node" : {
40487 "description" : "The cluster node name.",
40488 "format" : "pve-node",
40489 "type" : "string",
40490 "typetext" : "<string>"
40491 },
40492 "storage" : {
40493 "description" : "The storage identifier.",
40494 "format" : "pve-storage-id",
40495 "optional" : 1,
40496 "type" : "string",
40497 "typetext" : "<string>"
40498 },
40499 "volume" : {
40500 "description" : "Volume identifier",
40501 "type" : "string",
40502 "typetext" : "<string>"
40503 }
40504 }
40505 },
40506 "permissions" : {
40507 "description" : "You need 'Datastore.Allocate' privilege on the storage (or 'Datastore.AllocateSpace' for backup volumes if you have VM.Backup privilege on the VM).",
40508 "user" : "all"
40509 },
40510 "protected" : 1,
40511 "proxyto" : "node",
40512 "returns" : {
1c532546
TL
40513 "optional" : 1,
40514 "type" : "string"
4d47f125
TL
40515 }
40516 },
40517 "GET" : {
e9cd3bd4 40518 "allowtoken" : 1,
4d47f125
TL
40519 "description" : "Get volume attributes",
40520 "method" : "GET",
40521 "name" : "info",
40522 "parameters" : {
40523 "additionalProperties" : 0,
40524 "properties" : {
40525 "node" : {
40526 "description" : "The cluster node name.",
40527 "format" : "pve-node",
40528 "type" : "string",
40529 "typetext" : "<string>"
40530 },
40531 "storage" : {
40532 "description" : "The storage identifier.",
40533 "format" : "pve-storage-id",
40534 "optional" : 1,
40535 "type" : "string",
40536 "typetext" : "<string>"
40537 },
40538 "volume" : {
40539 "description" : "Volume identifier",
40540 "type" : "string",
40541 "typetext" : "<string>"
40542 }
40543 }
40544 },
40545 "permissions" : {
40546 "description" : "You need read access for the volume.",
40547 "user" : "all"
40548 },
40549 "protected" : 1,
40550 "proxyto" : "node",
40551 "returns" : {
4772952b
TL
40552 "properties" : {
40553 "format" : {
40554 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
40555 "type" : "string"
40556 },
40557 "notes" : {
40558 "description" : "Optional notes.",
40559 "optional" : 1,
40560 "type" : "string"
40561 },
40562 "path" : {
40563 "description" : "The Path",
40564 "type" : "string"
40565 },
5370fa8c
TL
40566 "protected" : {
40567 "description" : "Protection status. Currently only supported for backups.",
40568 "optional" : 1,
40569 "type" : "boolean"
40570 },
4772952b
TL
40571 "size" : {
40572 "description" : "Volume size in bytes.",
40573 "renderer" : "bytes",
40574 "type" : "integer"
40575 },
40576 "used" : {
40577 "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
40578 "renderer" : "bytes",
40579 "type" : "integer"
40580 }
40581 },
4d47f125
TL
40582 "type" : "object"
40583 }
40584 },
40585 "POST" : {
e9cd3bd4 40586 "allowtoken" : 1,
4d47f125
TL
40587 "description" : "Copy a volume. This is experimental code - do not use.",
40588 "method" : "POST",
40589 "name" : "copy",
40590 "parameters" : {
40591 "additionalProperties" : 0,
40592 "properties" : {
40593 "node" : {
40594 "description" : "The cluster node name.",
40595 "format" : "pve-node",
40596 "type" : "string",
40597 "typetext" : "<string>"
40598 },
40599 "storage" : {
40600 "description" : "The storage identifier.",
40601 "format" : "pve-storage-id",
40602 "optional" : 1,
40603 "type" : "string",
40604 "typetext" : "<string>"
40605 },
40606 "target" : {
40607 "description" : "Target volume identifier",
40608 "type" : "string",
40609 "typetext" : "<string>"
40610 },
40611 "target_node" : {
40612 "description" : "Target node. Default is local node.",
40613 "format" : "pve-node",
40614 "optional" : 1,
40615 "type" : "string",
40616 "typetext" : "<string>"
40617 },
40618 "volume" : {
40619 "description" : "Source volume identifier",
40620 "type" : "string",
40621 "typetext" : "<string>"
40622 }
40623 }
40624 },
40625 "protected" : 1,
40626 "proxyto" : "node",
40627 "returns" : {
40628 "type" : "string"
40629 }
4772952b
TL
40630 },
40631 "PUT" : {
40632 "allowtoken" : 1,
40633 "description" : "Update volume attributes",
40634 "method" : "PUT",
40635 "name" : "updateattributes",
40636 "parameters" : {
40637 "additionalProperties" : 0,
40638 "properties" : {
40639 "node" : {
40640 "description" : "The cluster node name.",
40641 "format" : "pve-node",
40642 "type" : "string",
40643 "typetext" : "<string>"
40644 },
40645 "notes" : {
40646 "description" : "The new notes.",
40647 "optional" : 1,
40648 "type" : "string",
40649 "typetext" : "<string>"
40650 },
5370fa8c
TL
40651 "protected" : {
40652 "description" : "Protection status. Currently only supported for backups.",
40653 "optional" : 1,
40654 "type" : "boolean",
40655 "typetext" : "<boolean>"
40656 },
4772952b
TL
40657 "storage" : {
40658 "description" : "The storage identifier.",
40659 "format" : "pve-storage-id",
40660 "optional" : 1,
40661 "type" : "string",
40662 "typetext" : "<string>"
40663 },
40664 "volume" : {
40665 "description" : "Volume identifier",
40666 "type" : "string",
40667 "typetext" : "<string>"
40668 }
40669 }
40670 },
40671 "permissions" : {
40672 "description" : "You need read access for the volume.",
40673 "user" : "all"
40674 },
40675 "protected" : 1,
40676 "proxyto" : "node",
40677 "returns" : {
40678 "type" : "null"
40679 }
4d47f125
TL
40680 }
40681 },
40682 "leaf" : 1,
40683 "path" : "/nodes/{node}/storage/{storage}/content/{volume}",
40684 "text" : "{volume}"
44660702 40685 }
4d47f125
TL
40686 ],
40687 "info" : {
40688 "GET" : {
e9cd3bd4 40689 "allowtoken" : 1,
4d47f125
TL
40690 "description" : "List storage content.",
40691 "method" : "GET",
40692 "name" : "index",
40693 "parameters" : {
40694 "additionalProperties" : 0,
40695 "properties" : {
40696 "content" : {
40697 "description" : "Only list content of this type.",
40698 "format" : "pve-storage-content",
40699 "optional" : 1,
40700 "type" : "string",
40701 "typetext" : "<string>"
40702 },
40703 "node" : {
40704 "description" : "The cluster node name.",
40705 "format" : "pve-node",
40706 "type" : "string",
40707 "typetext" : "<string>"
40708 },
40709 "storage" : {
40710 "description" : "The storage identifier.",
40711 "format" : "pve-storage-id",
40712 "type" : "string",
40713 "typetext" : "<string>"
40714 },
40715 "vmid" : {
40716 "description" : "Only list images for this VM",
40717 "format" : "pve-vmid",
40718 "minimum" : 1,
40719 "optional" : 1,
40720 "type" : "integer",
40721 "typetext" : "<integer> (1 - N)"
40722 }
56122987 40723 }
44660702 40724 },
4d47f125
TL
40725 "permissions" : {
40726 "check" : [
40727 "perm",
40728 "/storage/{storage}",
40729 [
40730 "Datastore.Audit",
40731 "Datastore.AllocateSpace"
40732 ],
40733 "any",
40734 1
40735 ]
7aacca6f 40736 },
4d47f125
TL
40737 "protected" : 1,
40738 "proxyto" : "node",
40739 "returns" : {
40740 "items" : {
40741 "properties" : {
c5aa7e14
TL
40742 "ctime" : {
40743 "description" : "Creation time (seconds since the UNIX Epoch).",
40744 "minimum" : 0,
40745 "optional" : 1,
40746 "type" : "integer"
40747 },
d2656385
TL
40748 "encrypted" : {
40749 "description" : "If whole backup is encrypted, value is the fingerprint or '1' if encrypted. Only useful for the Proxmox Backup Server storage type.",
40750 "optional" : 1,
40751 "type" : "string"
40752 },
4d47f125
TL
40753 "format" : {
40754 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
40755 "type" : "string"
40756 },
4772952b
TL
40757 "notes" : {
40758 "description" : "Optional notes. If they contain multiple lines, only the first one is returned here.",
40759 "optional" : 1,
40760 "type" : "string"
40761 },
4d47f125
TL
40762 "parent" : {
40763 "description" : "Volume identifier of parent (for linked cloned).",
40764 "optional" : 1,
40765 "type" : "string"
40766 },
5370fa8c
TL
40767 "protected" : {
40768 "description" : "Protection status. Currently only supported for backups.",
40769 "optional" : 1,
40770 "type" : "boolean"
40771 },
4d47f125
TL
40772 "size" : {
40773 "description" : "Volume size in bytes.",
40774 "renderer" : "bytes",
40775 "type" : "integer"
40776 },
40777 "used" : {
c5aa7e14 40778 "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
4d47f125
TL
40779 "optional" : 1,
40780 "renderer" : "bytes",
40781 "type" : "integer"
40782 },
4772952b
TL
40783 "verification" : {
40784 "description" : "Last backup verification result, only useful for PBS storages.",
40785 "optional" : 1,
40786 "properties" : {
40787 "state" : {
40788 "description" : "Last backup verification state.",
40789 "type" : "string"
40790 },
40791 "upid" : {
40792 "description" : "Last backup verification UPID.",
40793 "type" : "string"
40794 }
40795 },
40796 "type" : "object"
40797 },
4d47f125
TL
40798 "vmid" : {
40799 "description" : "Associated Owner VMID.",
40800 "optional" : 1,
40801 "type" : "integer"
40802 },
40803 "volid" : {
40804 "description" : "Volume identifier.",
40805 "type" : "string"
40806 }
40807 },
40808 "type" : "object"
44660702 40809 },
4d47f125
TL
40810 "links" : [
40811 {
40812 "href" : "{volid}",
40813 "rel" : "child"
40814 }
40815 ],
40816 "type" : "array"
40817 }
40818 },
40819 "POST" : {
e9cd3bd4 40820 "allowtoken" : 1,
4d47f125
TL
40821 "description" : "Allocate disk images.",
40822 "method" : "POST",
40823 "name" : "create",
40824 "parameters" : {
40825 "additionalProperties" : 0,
40826 "properties" : {
40827 "filename" : {
40828 "description" : "The name of the file to create.",
40829 "type" : "string",
40830 "typetext" : "<string>"
40831 },
40832 "format" : {
40833 "enum" : [
40834 "raw",
40835 "qcow2",
40836 "subvol"
40837 ],
40838 "optional" : 1,
40839 "requires" : "size",
40840 "type" : "string"
40841 },
40842 "node" : {
40843 "description" : "The cluster node name.",
40844 "format" : "pve-node",
40845 "type" : "string",
40846 "typetext" : "<string>"
40847 },
40848 "size" : {
40849 "description" : "Size in kilobyte (1024 bytes). Optional suffixes 'M' (megabyte, 1024K) and 'G' (gigabyte, 1024M)",
40850 "pattern" : "\\d+[MG]?",
40851 "type" : "string"
40852 },
40853 "storage" : {
40854 "description" : "The storage identifier.",
40855 "format" : "pve-storage-id",
40856 "type" : "string",
40857 "typetext" : "<string>"
40858 },
40859 "vmid" : {
40860 "description" : "Specify owner VM",
40861 "format" : "pve-vmid",
40862 "minimum" : 1,
40863 "type" : "integer",
40864 "typetext" : "<integer> (1 - N)"
40865 }
44660702
DM
40866 }
40867 },
4d47f125
TL
40868 "permissions" : {
40869 "check" : [
40870 "perm",
40871 "/storage/{storage}",
40872 [
40873 "Datastore.AllocateSpace"
40874 ]
40875 ]
27a7acb2 40876 },
4d47f125
TL
40877 "protected" : 1,
40878 "proxyto" : "node",
40879 "returns" : {
40880 "description" : "Volume identifier",
40881 "type" : "string"
27a7acb2
DM
40882 }
40883 }
40884 },
4d47f125
TL
40885 "leaf" : 0,
40886 "path" : "/nodes/{node}/storage/{storage}/content",
40887 "text" : "content"
40888 },
d2656385
TL
40889 {
40890 "children" : [
40891 {
40892 "info" : {
40893 "GET" : {
40894 "allowtoken" : 1,
40895 "description" : "List files and directories for single file restore under the given path.",
40896 "method" : "GET",
40897 "name" : "list",
40898 "parameters" : {
40899 "additionalProperties" : 0,
40900 "properties" : {
40901 "filepath" : {
40902 "description" : "base64-path to the directory or file being listed, or \"/\".",
40903 "type" : "string",
40904 "typetext" : "<string>"
40905 },
40906 "node" : {
40907 "description" : "The cluster node name.",
40908 "format" : "pve-node",
40909 "type" : "string",
40910 "typetext" : "<string>"
40911 },
40912 "storage" : {
40913 "description" : "The storage identifier.",
40914 "format" : "pve-storage-id",
40915 "type" : "string",
40916 "typetext" : "<string>"
40917 },
40918 "volume" : {
40919 "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
40920 "type" : "string",
40921 "typetext" : "<string>"
40922 }
40923 }
40924 },
40925 "permissions" : {
40926 "description" : "You need read access for the volume.",
40927 "user" : "all"
40928 },
40929 "protected" : 1,
40930 "proxyto" : "node",
40931 "returns" : {
40932 "items" : {
40933 "properties" : {
40934 "filepath" : {
40935 "description" : "base64 path of the current entry",
40936 "type" : "string"
40937 },
40938 "leaf" : {
40939 "description" : "If this entry is a leaf in the directory graph.",
40940 "type" : "boolean"
40941 },
40942 "mtime" : {
40943 "description" : "Entry last-modified time (unix timestamp).",
40944 "optional" : 1,
40945 "type" : "integer"
40946 },
40947 "size" : {
40948 "description" : "Entry file size.",
40949 "optional" : 1,
40950 "type" : "integer"
40951 },
40952 "text" : {
40953 "description" : "Entry display text.",
40954 "type" : "string"
40955 },
40956 "type" : {
40957 "description" : "Entry type.",
40958 "type" : "string"
40959 }
40960 },
40961 "type" : "object"
40962 },
40963 "type" : "array"
40964 }
40965 }
40966 },
40967 "leaf" : 1,
40968 "path" : "/nodes/{node}/storage/{storage}/file-restore/list",
40969 "text" : "list"
40970 },
40971 {
40972 "info" : {
40973 "GET" : {
40974 "allowtoken" : 1,
40975 "description" : "Extract a file or directory (as zip archive) from a PBS backup.",
40976 "method" : "GET",
40977 "name" : "download",
40978 "parameters" : {
40979 "additionalProperties" : 0,
40980 "properties" : {
40981 "filepath" : {
40982 "description" : "base64-path to the directory or file to download.",
40983 "type" : "string",
40984 "typetext" : "<string>"
40985 },
40986 "node" : {
40987 "description" : "The cluster node name.",
40988 "format" : "pve-node",
40989 "type" : "string",
40990 "typetext" : "<string>"
40991 },
40992 "storage" : {
40993 "description" : "The storage identifier.",
40994 "format" : "pve-storage-id",
40995 "type" : "string",
40996 "typetext" : "<string>"
40997 },
40998 "volume" : {
40999 "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
41000 "type" : "string",
41001 "typetext" : "<string>"
41002 }
41003 }
41004 },
41005 "permissions" : {
41006 "description" : "You need read access for the volume.",
41007 "user" : "all"
41008 },
41009 "protected" : 1,
41010 "proxyto" : "node",
41011 "returns" : {
41012 "type" : "any"
41013 }
41014 }
41015 },
41016 "leaf" : 1,
41017 "path" : "/nodes/{node}/storage/{storage}/file-restore/download",
41018 "text" : "download"
41019 }
41020 ],
41021 "leaf" : 0,
41022 "path" : "/nodes/{node}/storage/{storage}/file-restore",
41023 "text" : "file-restore"
41024 },
4d47f125
TL
41025 {
41026 "info" : {
41027 "GET" : {
e9cd3bd4 41028 "allowtoken" : 1,
4d47f125
TL
41029 "description" : "Read storage status.",
41030 "method" : "GET",
41031 "name" : "read_status",
41032 "parameters" : {
41033 "additionalProperties" : 0,
41034 "properties" : {
41035 "node" : {
41036 "description" : "The cluster node name.",
41037 "format" : "pve-node",
41038 "type" : "string",
41039 "typetext" : "<string>"
41040 },
41041 "storage" : {
41042 "description" : "The storage identifier.",
41043 "format" : "pve-storage-id",
41044 "type" : "string",
41045 "typetext" : "<string>"
41046 }
27a7acb2
DM
41047 }
41048 },
4d47f125
TL
41049 "permissions" : {
41050 "check" : [
41051 "perm",
41052 "/storage/{storage}",
41053 [
41054 "Datastore.Audit",
41055 "Datastore.AllocateSpace"
41056 ],
41057 "any",
41058 1
41059 ]
7aacca6f 41060 },
4d47f125
TL
41061 "protected" : 1,
41062 "proxyto" : "node",
41063 "returns" : {
41064 "type" : "object"
56122987 41065 }
44660702
DM
41066 }
41067 },
4d47f125
TL
41068 "leaf" : 1,
41069 "path" : "/nodes/{node}/storage/{storage}/status",
41070 "text" : "status"
41071 },
41072 {
41073 "info" : {
41074 "GET" : {
e9cd3bd4 41075 "allowtoken" : 1,
4d47f125
TL
41076 "description" : "Read storage RRD statistics (returns PNG).",
41077 "method" : "GET",
41078 "name" : "rrd",
41079 "parameters" : {
41080 "additionalProperties" : 0,
41081 "properties" : {
41082 "cf" : {
41083 "description" : "The RRD consolidation function",
41084 "enum" : [
41085 "AVERAGE",
41086 "MAX"
41087 ],
41088 "optional" : 1,
41089 "type" : "string"
41090 },
41091 "ds" : {
41092 "description" : "The list of datasources you want to display.",
41093 "format" : "pve-configid-list",
41094 "type" : "string",
41095 "typetext" : "<string>"
41096 },
41097 "node" : {
41098 "description" : "The cluster node name.",
41099 "format" : "pve-node",
41100 "type" : "string",
41101 "typetext" : "<string>"
41102 },
41103 "storage" : {
41104 "description" : "The storage identifier.",
41105 "format" : "pve-storage-id",
41106 "type" : "string",
41107 "typetext" : "<string>"
41108 },
41109 "timeframe" : {
41110 "description" : "Specify the time frame you are interested in.",
41111 "enum" : [
41112 "hour",
41113 "day",
41114 "week",
41115 "month",
41116 "year"
41117 ],
41118 "type" : "string"
41119 }
44660702
DM
41120 }
41121 },
4d47f125
TL
41122 "permissions" : {
41123 "check" : [
41124 "perm",
41125 "/storage/{storage}",
41126 [
41127 "Datastore.Audit",
41128 "Datastore.AllocateSpace"
41129 ],
41130 "any",
41131 1
41132 ]
41133 },
41134 "protected" : 1,
41135 "proxyto" : "node",
41136 "returns" : {
41137 "properties" : {
41138 "filename" : {
41139 "type" : "string"
41140 }
41141 },
41142 "type" : "object"
44660702
DM
41143 }
41144 }
41145 },
4d47f125
TL
41146 "leaf" : 1,
41147 "path" : "/nodes/{node}/storage/{storage}/rrd",
41148 "text" : "rrd"
41149 },
41150 {
41151 "info" : {
41152 "GET" : {
e9cd3bd4 41153 "allowtoken" : 1,
4d47f125
TL
41154 "description" : "Read storage RRD statistics.",
41155 "method" : "GET",
41156 "name" : "rrddata",
41157 "parameters" : {
41158 "additionalProperties" : 0,
41159 "properties" : {
41160 "cf" : {
41161 "description" : "The RRD consolidation function",
41162 "enum" : [
41163 "AVERAGE",
41164 "MAX"
41165 ],
41166 "optional" : 1,
41167 "type" : "string"
41168 },
41169 "node" : {
41170 "description" : "The cluster node name.",
41171 "format" : "pve-node",
41172 "type" : "string",
41173 "typetext" : "<string>"
41174 },
41175 "storage" : {
41176 "description" : "The storage identifier.",
41177 "format" : "pve-storage-id",
41178 "type" : "string",
41179 "typetext" : "<string>"
41180 },
41181 "timeframe" : {
41182 "description" : "Specify the time frame you are interested in.",
41183 "enum" : [
41184 "hour",
41185 "day",
41186 "week",
41187 "month",
41188 "year"
41189 ],
41190 "type" : "string"
41191 }
56122987
DM
41192 }
41193 },
4d47f125
TL
41194 "permissions" : {
41195 "check" : [
41196 "perm",
41197 "/storage/{storage}",
41198 [
41199 "Datastore.Audit",
41200 "Datastore.AllocateSpace"
41201 ],
41202 "any",
41203 1
41204 ]
41205 },
41206 "protected" : 1,
41207 "proxyto" : "node",
41208 "returns" : {
41209 "items" : {
41210 "properties" : {},
41211 "type" : "object"
41212 },
41213 "type" : "array"
56122987 41214 }
7aacca6f 41215 }
56122987 41216 },
4d47f125
TL
41217 "leaf" : 1,
41218 "path" : "/nodes/{node}/storage/{storage}/rrddata",
41219 "text" : "rrddata"
41220 },
41221 {
41222 "info" : {
41223 "POST" : {
e9cd3bd4 41224 "allowtoken" : 1,
4d47f125
TL
41225 "description" : "Upload templates and ISO images.",
41226 "method" : "POST",
41227 "name" : "upload",
41228 "parameters" : {
41229 "additionalProperties" : 0,
41230 "properties" : {
5370fa8c
TL
41231 "checksum" : {
41232 "description" : "The expected checksum of the file.",
41233 "optional" : 1,
41234 "requires" : "checksum-algorithm",
41235 "type" : "string",
41236 "typetext" : "<string>"
41237 },
41238 "checksum-algorithm" : {
41239 "description" : "The algorithm to calculate the checksum of the file.",
41240 "enum" : [
41241 "md5",
41242 "sha1",
41243 "sha224",
41244 "sha256",
41245 "sha384",
41246 "sha512"
41247 ],
41248 "optional" : 1,
41249 "requires" : "checksum",
41250 "type" : "string"
41251 },
4d47f125
TL
41252 "content" : {
41253 "description" : "Content type.",
5370fa8c
TL
41254 "enum" : [
41255 "iso",
41256 "vztmpl"
41257 ],
4d47f125 41258 "format" : "pve-storage-content",
5370fa8c 41259 "type" : "string"
4d47f125
TL
41260 },
41261 "filename" : {
5370fa8c
TL
41262 "description" : "The name of the file to create. Caution: This will be normalized!",
41263 "maxLength" : 255,
4d47f125
TL
41264 "type" : "string",
41265 "typetext" : "<string>"
41266 },
41267 "node" : {
41268 "description" : "The cluster node name.",
41269 "format" : "pve-node",
41270 "type" : "string",
41271 "typetext" : "<string>"
41272 },
41273 "storage" : {
41274 "description" : "The storage identifier.",
41275 "format" : "pve-storage-id",
41276 "type" : "string",
41277 "typetext" : "<string>"
41278 },
41279 "tmpfilename" : {
1e3f8156 41280 "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 41281 "optional" : 1,
4a407cfd
TL
41282 "pattern" : "/var/tmp/pveupload-[0-9a-f]+",
41283 "type" : "string"
4d47f125 41284 }
44660702
DM
41285 }
41286 },
4d47f125
TL
41287 "permissions" : {
41288 "check" : [
41289 "perm",
41290 "/storage/{storage}",
41291 [
41292 "Datastore.AllocateTemplate"
41293 ]
41294 ]
56122987 41295 },
4d47f125
TL
41296 "protected" : 1,
41297 "returns" : {
44660702 41298 "type" : "string"
56122987 41299 }
44660702 41300 }
56122987 41301 },
4d47f125
TL
41302 "leaf" : 1,
41303 "path" : "/nodes/{node}/storage/{storage}/upload",
41304 "text" : "upload"
34f3e481
TL
41305 },
41306 {
41307 "info" : {
41308 "POST" : {
41309 "allowtoken" : 1,
41310 "description" : "Download templates and ISO images by using an URL.",
41311 "method" : "POST",
41312 "name" : "download_url",
41313 "parameters" : {
41314 "additionalProperties" : 0,
41315 "properties" : {
41316 "checksum" : {
41317 "description" : "The expected checksum of the file.",
41318 "optional" : 1,
41319 "requires" : "checksum-algorithm",
41320 "type" : "string",
41321 "typetext" : "<string>"
41322 },
41323 "checksum-algorithm" : {
41324 "description" : "The algorithm to calculate the checksum of the file.",
41325 "enum" : [
41326 "md5",
41327 "sha1",
41328 "sha224",
41329 "sha256",
41330 "sha384",
41331 "sha512"
41332 ],
41333 "optional" : 1,
41334 "requires" : "checksum",
41335 "type" : "string"
41336 },
41337 "content" : {
41338 "description" : "Content type.",
41339 "enum" : [
41340 "iso",
41341 "vztmpl"
41342 ],
41343 "format" : "pve-storage-content",
41344 "type" : "string"
41345 },
41346 "filename" : {
41347 "description" : "The name of the file to create. Caution: This will be normalized!",
41348 "maxLength" : 255,
41349 "type" : "string",
41350 "typetext" : "<string>"
41351 },
41352 "node" : {
41353 "description" : "The cluster node name.",
41354 "format" : "pve-node",
41355 "type" : "string",
41356 "typetext" : "<string>"
41357 },
41358 "storage" : {
41359 "description" : "The storage identifier.",
41360 "format" : "pve-storage-id",
41361 "type" : "string",
41362 "typetext" : "<string>"
41363 },
41364 "url" : {
41365 "description" : "The URL to download the file from.",
41366 "pattern" : "https?://.*",
41367 "type" : "string"
41368 },
41369 "verify-certificates" : {
41370 "default" : 1,
41371 "description" : "If false, no SSL/TLS certificates will be verified.",
41372 "optional" : 1,
41373 "type" : "boolean",
41374 "typetext" : "<boolean>"
41375 }
41376 }
41377 },
41378 "permissions" : {
41379 "check" : [
41380 "and",
41381 [
41382 "perm",
41383 "/storage/{storage}",
41384 [
41385 "Datastore.AllocateTemplate"
41386 ]
41387 ],
41388 [
41389 "perm",
41390 "/",
41391 [
41392 "Sys.Audit",
41393 "Sys.Modify"
41394 ]
41395 ]
41396 ]
41397 },
41398 "protected" : 1,
41399 "proxyto" : "node",
41400 "returns" : {
41401 "type" : "string"
41402 }
41403 }
41404 },
41405 "leaf" : 1,
41406 "path" : "/nodes/{node}/storage/{storage}/download-url",
41407 "text" : "download-url"
56122987 41408 }
4d47f125 41409 ],
56122987
DM
41410 "info" : {
41411 "GET" : {
e9cd3bd4 41412 "allowtoken" : 1,
4d47f125 41413 "description" : "",
44660702 41414 "method" : "GET",
4d47f125 41415 "name" : "diridx",
44660702
DM
41416 "parameters" : {
41417 "additionalProperties" : 0,
41418 "properties" : {
41419 "node" : {
41420 "description" : "The cluster node name.",
41421 "format" : "pve-node",
013dc89f
DM
41422 "type" : "string",
41423 "typetext" : "<string>"
4d47f125
TL
41424 },
41425 "storage" : {
41426 "description" : "The storage identifier.",
41427 "format" : "pve-storage-id",
41428 "type" : "string",
41429 "typetext" : "<string>"
44660702
DM
41430 }
41431 }
41432 },
7aacca6f
DM
41433 "permissions" : {
41434 "check" : [
41435 "perm",
4d47f125 41436 "/storage/{storage}",
7aacca6f 41437 [
4d47f125
TL
41438 "Datastore.Audit",
41439 "Datastore.AllocateSpace"
41440 ],
41441 "any",
41442 1
7aacca6f
DM
41443 ]
41444 },
56122987
DM
41445 "returns" : {
41446 "items" : {
41447 "properties" : {
4d47f125 41448 "subdir" : {
44660702 41449 "type" : "string"
56122987
DM
41450 }
41451 },
41452 "type" : "object"
7aacca6f 41453 },
4d47f125
TL
41454 "links" : [
41455 {
41456 "href" : "{subdir}",
41457 "rel" : "child"
41458 }
41459 ],
7aacca6f 41460 "type" : "array"
44660702
DM
41461 }
41462 }
41463 },
4d47f125
TL
41464 "leaf" : 0,
41465 "path" : "/nodes/{node}/storage/{storage}",
41466 "text" : "{storage}"
44660702
DM
41467 }
41468 ],
41469 "info" : {
41470 "GET" : {
e9cd3bd4 41471 "allowtoken" : 1,
4d47f125 41472 "description" : "Get status for all datastores.",
44660702
DM
41473 "method" : "GET",
41474 "name" : "index",
41475 "parameters" : {
41476 "additionalProperties" : 0,
41477 "properties" : {
4d47f125
TL
41478 "content" : {
41479 "description" : "Only list stores which support this content type.",
41480 "format" : "pve-storage-content-list",
41481 "optional" : 1,
41482 "type" : "string",
41483 "typetext" : "<string>"
41484 },
41485 "enabled" : {
41486 "default" : 0,
41487 "description" : "Only list stores which are enabled (not disabled in config).",
41488 "optional" : 1,
41489 "type" : "boolean",
41490 "typetext" : "<boolean>"
41491 },
41492 "format" : {
41493 "default" : 0,
41494 "description" : "Include information about formats",
41495 "optional" : 1,
41496 "type" : "boolean",
41497 "typetext" : "<boolean>"
41498 },
44660702
DM
41499 "node" : {
41500 "description" : "The cluster node name.",
41501 "format" : "pve-node",
013dc89f
DM
41502 "type" : "string",
41503 "typetext" : "<string>"
4d47f125
TL
41504 },
41505 "storage" : {
41506 "description" : "Only list status for specified storage",
41507 "format" : "pve-storage-id",
41508 "optional" : 1,
41509 "type" : "string",
41510 "typetext" : "<string>"
41511 },
41512 "target" : {
41513 "description" : "If target is different to 'node', we only lists shared storages which content is accessible on this 'node' and the specified 'target' node.",
41514 "format" : "pve-node",
41515 "optional" : 1,
41516 "type" : "string",
41517 "typetext" : "<string>"
44660702
DM
41518 }
41519 }
41520 },
4d47f125
TL
41521 "permissions" : {
41522 "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
41523 "user" : "all"
41524 },
41525 "protected" : 1,
41526 "proxyto" : "node",
41527 "returns" : {
41528 "items" : {
41529 "properties" : {
41530 "active" : {
41531 "description" : "Set when storage is accessible.",
41532 "optional" : 1,
41533 "type" : "boolean"
41534 },
41535 "avail" : {
41536 "description" : "Available storage space in bytes.",
41537 "optional" : 1,
41538 "renderer" : "bytes",
41539 "type" : "integer"
41540 },
41541 "content" : {
41542 "description" : "Allowed storage content types.",
41543 "format" : "pve-storage-content-list",
41544 "type" : "string"
41545 },
41546 "enabled" : {
41547 "description" : "Set when storage is enabled (not disabled).",
41548 "optional" : 1,
41549 "type" : "boolean"
41550 },
41551 "shared" : {
41552 "description" : "Shared flag from storage configuration.",
41553 "optional" : 1,
41554 "type" : "boolean"
41555 },
41556 "storage" : {
41557 "description" : "The storage identifier.",
41558 "format" : "pve-storage-id",
41559 "type" : "string"
41560 },
41561 "total" : {
41562 "description" : "Total storage space in bytes.",
41563 "optional" : 1,
41564 "renderer" : "bytes",
41565 "type" : "integer"
41566 },
41567 "type" : {
41568 "description" : "Storage type.",
41569 "type" : "string"
41570 },
41571 "used" : {
41572 "description" : "Used storage space in bytes.",
41573 "optional" : 1,
41574 "renderer" : "bytes",
41575 "type" : "integer"
41576 },
41577 "used_fraction" : {
41578 "description" : "Used fraction (used/total).",
41579 "optional" : 1,
41580 "renderer" : "fraction_as_percentage",
41581 "type" : "number"
7aacca6f 41582 }
4d47f125
TL
41583 },
41584 "type" : "object"
41585 },
41586 "links" : [
41587 {
41588 "href" : "{storage}",
41589 "rel" : "child"
41590 }
41591 ],
41592 "type" : "array"
41593 }
41594 }
41595 },
41596 "leaf" : 0,
41597 "path" : "/nodes/{node}/storage",
41598 "text" : "storage"
41599 },
41600 {
41601 "children" : [
41602 {
5370fa8c
TL
41603 "children" : [
41604 {
41605 "info" : {
41606 "DELETE" : {
41607 "allowtoken" : 1,
41608 "description" : "Remove an LVM Volume Group.",
41609 "method" : "DELETE",
41610 "name" : "delete",
41611 "parameters" : {
41612 "additionalProperties" : 0,
41613 "properties" : {
41614 "cleanup-config" : {
41615 "default" : 0,
41616 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
41617 "optional" : 1,
41618 "type" : "boolean",
41619 "typetext" : "<boolean>"
41620 },
41621 "cleanup-disks" : {
41622 "default" : 0,
41623 "description" : "Also wipe disks so they can be repurposed afterwards.",
41624 "optional" : 1,
41625 "type" : "boolean",
41626 "typetext" : "<boolean>"
41627 },
41628 "name" : {
41629 "description" : "The storage identifier.",
41630 "format" : "pve-storage-id",
41631 "type" : "string",
41632 "typetext" : "<string>"
41633 },
41634 "node" : {
41635 "description" : "The cluster node name.",
41636 "format" : "pve-node",
41637 "type" : "string",
41638 "typetext" : "<string>"
41639 }
41640 }
41641 },
41642 "permissions" : {
41643 "check" : [
41644 "perm",
41645 "/",
41646 [
41647 "Sys.Modify",
41648 "Datastore.Allocate"
41649 ]
41650 ]
41651 },
41652 "protected" : 1,
41653 "proxyto" : "node",
41654 "returns" : {
41655 "type" : "string"
41656 }
41657 }
41658 },
41659 "leaf" : 1,
41660 "path" : "/nodes/{node}/disks/lvm/{name}",
41661 "text" : "{name}"
41662 }
41663 ],
4d47f125
TL
41664 "info" : {
41665 "GET" : {
e9cd3bd4 41666 "allowtoken" : 1,
4d47f125
TL
41667 "description" : "List LVM Volume Groups",
41668 "method" : "GET",
41669 "name" : "index",
41670 "parameters" : {
41671 "additionalProperties" : 0,
41672 "properties" : {
41673 "node" : {
41674 "description" : "The cluster node name.",
41675 "format" : "pve-node",
41676 "type" : "string",
41677 "typetext" : "<string>"
41678 }
41679 }
41680 },
41681 "permissions" : {
41682 "check" : [
41683 "perm",
41684 "/",
41685 [
41686 "Sys.Audit",
41687 "Datastore.Audit"
41688 ],
41689 "any",
41690 1
41691 ]
41692 },
41693 "protected" : 1,
41694 "proxyto" : "node",
41695 "returns" : {
41696 "properties" : {
41697 "children" : {
44660702
DM
41698 "items" : {
41699 "properties" : {
4d47f125
TL
41700 "children" : {
41701 "description" : "The underlying physical volumes",
41702 "items" : {
41703 "properties" : {
41704 "free" : {
41705 "description" : "The free bytes in the physical volume",
41706 "type" : "integer"
41707 },
41708 "leaf" : {
41709 "type" : "boolean"
41710 },
41711 "name" : {
41712 "description" : "The name of the physical volume",
41713 "type" : "string"
41714 },
41715 "size" : {
41716 "description" : "The size of the physical volume in bytes",
41717 "type" : "integer"
41718 }
41719 },
41720 "type" : "object"
41721 },
41722 "optional" : 1,
41723 "type" : "array"
41724 },
41725 "free" : {
41726 "description" : "The free bytes in the volume group",
41727 "type" : "integer"
41728 },
41729 "leaf" : {
41730 "type" : "boolean"
41731 },
41732 "name" : {
41733 "description" : "The name of the volume group",
44660702 41734 "type" : "string"
4d47f125
TL
41735 },
41736 "size" : {
41737 "description" : "The size of the volume group in bytes",
41738 "type" : "integer"
44660702
DM
41739 }
41740 },
41741 "type" : "object"
41742 },
44660702 41743 "type" : "array"
4d47f125
TL
41744 },
41745 "leaf" : {
41746 "type" : "boolean"
44660702
DM
41747 }
41748 },
4d47f125
TL
41749 "type" : "object"
41750 }
41751 },
41752 "POST" : {
e9cd3bd4 41753 "allowtoken" : 1,
4d47f125
TL
41754 "description" : "Create an LVM Volume Group",
41755 "method" : "POST",
41756 "name" : "create",
41757 "parameters" : {
41758 "additionalProperties" : 0,
41759 "properties" : {
41760 "add_storage" : {
41761 "default" : 0,
41762 "description" : "Configure storage using the Volume Group",
41763 "optional" : 1,
41764 "type" : "boolean",
41765 "typetext" : "<boolean>"
44660702 41766 },
4d47f125
TL
41767 "device" : {
41768 "description" : "The block device you want to create the volume group on",
41769 "type" : "string",
41770 "typetext" : "<string>"
44660702 41771 },
4d47f125
TL
41772 "name" : {
41773 "description" : "The storage identifier.",
41774 "format" : "pve-storage-id",
41775 "type" : "string",
41776 "typetext" : "<string>"
41777 },
41778 "node" : {
41779 "description" : "The cluster node name.",
41780 "format" : "pve-node",
41781 "type" : "string",
41782 "typetext" : "<string>"
41783 }
41784 }
41785 },
41786 "permissions" : {
41787 "check" : [
41788 "perm",
41789 "/",
41790 [
41791 "Sys.Modify",
41792 "Datastore.Allocate"
41793 ]
41794 ]
41795 },
41796 "protected" : 1,
41797 "proxyto" : "node",
41798 "returns" : {
41799 "type" : "string"
41800 }
41801 }
41802 },
5370fa8c 41803 "leaf" : 0,
4d47f125
TL
41804 "path" : "/nodes/{node}/disks/lvm",
41805 "text" : "lvm"
41806 },
41807 {
5370fa8c
TL
41808 "children" : [
41809 {
41810 "info" : {
41811 "DELETE" : {
41812 "allowtoken" : 1,
41813 "description" : "Remove an LVM thin pool.",
41814 "method" : "DELETE",
41815 "name" : "delete",
41816 "parameters" : {
41817 "additionalProperties" : 0,
41818 "properties" : {
41819 "cleanup-config" : {
41820 "default" : 0,
41821 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
41822 "optional" : 1,
41823 "type" : "boolean",
41824 "typetext" : "<boolean>"
41825 },
41826 "cleanup-disks" : {
41827 "default" : 0,
41828 "description" : "Also wipe disks so they can be repurposed afterwards.",
41829 "optional" : 1,
41830 "type" : "boolean",
41831 "typetext" : "<boolean>"
41832 },
41833 "name" : {
41834 "description" : "The storage identifier.",
41835 "format" : "pve-storage-id",
41836 "type" : "string",
41837 "typetext" : "<string>"
41838 },
41839 "node" : {
41840 "description" : "The cluster node name.",
41841 "format" : "pve-node",
41842 "type" : "string",
41843 "typetext" : "<string>"
41844 },
41845 "volume-group" : {
41846 "description" : "The storage identifier.",
41847 "format" : "pve-storage-id",
41848 "type" : "string",
41849 "typetext" : "<string>"
41850 }
41851 }
41852 },
41853 "permissions" : {
41854 "check" : [
41855 "perm",
41856 "/",
41857 [
41858 "Sys.Modify",
41859 "Datastore.Allocate"
41860 ]
41861 ]
41862 },
41863 "protected" : 1,
41864 "proxyto" : "node",
41865 "returns" : {
41866 "type" : "string"
41867 }
41868 }
41869 },
41870 "leaf" : 1,
41871 "path" : "/nodes/{node}/disks/lvmthin/{name}",
41872 "text" : "{name}"
41873 }
41874 ],
4d47f125
TL
41875 "info" : {
41876 "GET" : {
e9cd3bd4 41877 "allowtoken" : 1,
4d47f125
TL
41878 "description" : "List LVM thinpools",
41879 "method" : "GET",
41880 "name" : "index",
41881 "parameters" : {
41882 "additionalProperties" : 0,
41883 "properties" : {
41884 "node" : {
41885 "description" : "The cluster node name.",
41886 "format" : "pve-node",
41887 "type" : "string",
41888 "typetext" : "<string>"
44660702
DM
41889 }
41890 }
41891 },
4d47f125
TL
41892 "permissions" : {
41893 "check" : [
41894 "perm",
41895 "/",
41896 [
41897 "Sys.Audit",
41898 "Datastore.Audit"
41899 ],
41900 "any",
41901 1
41902 ]
41903 },
41904 "protected" : 1,
41905 "proxyto" : "node",
41906 "returns" : {
41907 "items" : {
41908 "properties" : {
41909 "lv" : {
41910 "description" : "The name of the thinpool.",
41911 "type" : "string"
41912 },
41913 "lv_size" : {
41914 "description" : "The size of the thinpool in bytes.",
41915 "type" : "integer"
41916 },
41917 "metadata_size" : {
41918 "description" : "The size of the metadata lv in bytes.",
41919 "type" : "integer"
41920 },
41921 "metadata_used" : {
41922 "description" : "The used bytes of the metadata lv.",
41923 "type" : "integer"
41924 },
41925 "used" : {
41926 "description" : "The used bytes of the thinpool.",
41927 "type" : "integer"
5370fa8c
TL
41928 },
41929 "vg" : {
41930 "description" : "The associated volume group.",
41931 "type" : "string"
44660702
DM
41932 }
41933 },
4d47f125
TL
41934 "type" : "object"
41935 },
41936 "type" : "array"
41937 }
41938 },
41939 "POST" : {
e9cd3bd4 41940 "allowtoken" : 1,
4d47f125
TL
41941 "description" : "Create an LVM thinpool",
41942 "method" : "POST",
41943 "name" : "create",
41944 "parameters" : {
41945 "additionalProperties" : 0,
41946 "properties" : {
41947 "add_storage" : {
41948 "default" : 0,
41949 "description" : "Configure storage using the thinpool.",
41950 "optional" : 1,
41951 "type" : "boolean",
41952 "typetext" : "<boolean>"
56122987 41953 },
4d47f125
TL
41954 "device" : {
41955 "description" : "The block device you want to create the thinpool on.",
41956 "type" : "string",
41957 "typetext" : "<string>"
41958 },
41959 "name" : {
41960 "description" : "The storage identifier.",
41961 "format" : "pve-storage-id",
41962 "type" : "string",
41963 "typetext" : "<string>"
41964 },
41965 "node" : {
41966 "description" : "The cluster node name.",
41967 "format" : "pve-node",
41968 "type" : "string",
41969 "typetext" : "<string>"
44660702 41970 }
56122987
DM
41971 }
41972 },
4d47f125
TL
41973 "permissions" : {
41974 "check" : [
41975 "perm",
41976 "/",
41977 [
41978 "Sys.Modify",
41979 "Datastore.Allocate"
41980 ]
41981 ]
41982 },
41983 "protected" : 1,
41984 "proxyto" : "node",
41985 "returns" : {
41986 "type" : "string"
41987 }
41988 }
41989 },
5370fa8c 41990 "leaf" : 0,
4d47f125
TL
41991 "path" : "/nodes/{node}/disks/lvmthin",
41992 "text" : "lvmthin"
41993 },
41994 {
5370fa8c
TL
41995 "children" : [
41996 {
41997 "info" : {
41998 "DELETE" : {
41999 "allowtoken" : 1,
42000 "description" : "Unmounts the storage and removes the mount unit.",
42001 "method" : "DELETE",
42002 "name" : "delete",
42003 "parameters" : {
42004 "additionalProperties" : 0,
42005 "properties" : {
42006 "cleanup-config" : {
42007 "default" : 0,
42008 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
42009 "optional" : 1,
42010 "type" : "boolean",
42011 "typetext" : "<boolean>"
42012 },
42013 "cleanup-disks" : {
42014 "default" : 0,
42015 "description" : "Also wipe disk so it can be repurposed afterwards.",
42016 "optional" : 1,
42017 "type" : "boolean",
42018 "typetext" : "<boolean>"
42019 },
42020 "name" : {
42021 "description" : "The storage identifier.",
42022 "format" : "pve-storage-id",
42023 "type" : "string",
42024 "typetext" : "<string>"
42025 },
42026 "node" : {
42027 "description" : "The cluster node name.",
42028 "format" : "pve-node",
42029 "type" : "string",
42030 "typetext" : "<string>"
42031 }
42032 }
42033 },
42034 "permissions" : {
42035 "check" : [
42036 "perm",
42037 "/",
42038 [
42039 "Sys.Modify",
42040 "Datastore.Allocate"
42041 ]
42042 ]
42043 },
42044 "protected" : 1,
42045 "proxyto" : "node",
42046 "returns" : {
42047 "type" : "string"
42048 }
42049 }
42050 },
42051 "leaf" : 1,
42052 "path" : "/nodes/{node}/disks/directory/{name}",
42053 "text" : "{name}"
42054 }
42055 ],
4d47f125
TL
42056 "info" : {
42057 "GET" : {
e9cd3bd4 42058 "allowtoken" : 1,
4d47f125
TL
42059 "description" : "PVE Managed Directory storages.",
42060 "method" : "GET",
42061 "name" : "index",
42062 "parameters" : {
42063 "additionalProperties" : 0,
42064 "properties" : {
42065 "node" : {
42066 "description" : "The cluster node name.",
42067 "format" : "pve-node",
42068 "type" : "string",
42069 "typetext" : "<string>"
42070 }
42071 }
42072 },
42073 "permissions" : {
42074 "check" : [
42075 "perm",
42076 "/",
42077 [
42078 "Sys.Audit",
42079 "Datastore.Audit"
42080 ],
42081 "any",
42082 1
42083 ]
42084 },
42085 "protected" : 1,
42086 "proxyto" : "node",
42087 "returns" : {
42088 "items" : {
42089 "properties" : {
42090 "device" : {
42091 "description" : "The mounted device.",
42092 "type" : "string"
42093 },
42094 "options" : {
42095 "description" : "The mount options.",
42096 "type" : "string"
42097 },
42098 "path" : {
42099 "description" : "The mount path.",
42100 "type" : "string"
42101 },
42102 "type" : {
42103 "description" : "The filesystem type.",
42104 "type" : "string"
42105 },
42106 "unitfile" : {
42107 "description" : "The path of the mount unit.",
42108 "type" : "string"
44660702 42109 }
56122987 42110 },
4d47f125
TL
42111 "type" : "object"
42112 },
42113 "type" : "array"
42114 }
42115 },
42116 "POST" : {
e9cd3bd4 42117 "allowtoken" : 1,
4d47f125
TL
42118 "description" : "Create a Filesystem on an unused disk. Will be mounted under '/mnt/pve/NAME'.",
42119 "method" : "POST",
42120 "name" : "create",
42121 "parameters" : {
42122 "additionalProperties" : 0,
42123 "properties" : {
42124 "add_storage" : {
42125 "default" : 0,
42126 "description" : "Configure storage using the directory.",
42127 "optional" : 1,
42128 "type" : "boolean",
42129 "typetext" : "<boolean>"
42130 },
42131 "device" : {
42132 "description" : "The block device you want to create the filesystem on.",
42133 "type" : "string",
42134 "typetext" : "<string>"
42135 },
42136 "filesystem" : {
42137 "default" : "ext4",
42138 "description" : "The desired filesystem.",
42139 "enum" : [
42140 "ext4",
42141 "xfs"
42142 ],
42143 "optional" : 1,
42144 "type" : "string"
56122987 42145 },
4d47f125
TL
42146 "name" : {
42147 "description" : "The storage identifier.",
42148 "format" : "pve-storage-id",
42149 "type" : "string",
42150 "typetext" : "<string>"
42151 },
42152 "node" : {
42153 "description" : "The cluster node name.",
42154 "format" : "pve-node",
42155 "type" : "string",
42156 "typetext" : "<string>"
7aacca6f 42157 }
56122987
DM
42158 }
42159 },
4d47f125
TL
42160 "permissions" : {
42161 "check" : [
42162 "perm",
42163 "/",
42164 [
42165 "Sys.Modify",
42166 "Datastore.Allocate"
42167 ]
42168 ]
42169 },
42170 "protected" : 1,
42171 "proxyto" : "node",
42172 "returns" : {
42173 "type" : "string"
42174 }
42175 }
42176 },
5370fa8c 42177 "leaf" : 0,
4d47f125
TL
42178 "path" : "/nodes/{node}/disks/directory",
42179 "text" : "directory"
42180 },
42181 {
42182 "children" : [
56122987 42183 {
56122987 42184 "info" : {
5370fa8c
TL
42185 "DELETE" : {
42186 "allowtoken" : 1,
42187 "description" : "Destroy a ZFS pool.",
42188 "method" : "DELETE",
42189 "name" : "delete",
42190 "parameters" : {
42191 "additionalProperties" : 0,
42192 "properties" : {
42193 "cleanup-config" : {
42194 "default" : 0,
42195 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
42196 "optional" : 1,
42197 "type" : "boolean",
42198 "typetext" : "<boolean>"
42199 },
42200 "cleanup-disks" : {
42201 "default" : 0,
42202 "description" : "Also wipe disks so they can be repurposed afterwards.",
42203 "optional" : 1,
42204 "type" : "boolean",
42205 "typetext" : "<boolean>"
42206 },
42207 "name" : {
42208 "description" : "The storage identifier.",
42209 "format" : "pve-storage-id",
42210 "type" : "string",
42211 "typetext" : "<string>"
42212 },
42213 "node" : {
42214 "description" : "The cluster node name.",
42215 "format" : "pve-node",
42216 "type" : "string",
42217 "typetext" : "<string>"
42218 }
42219 }
42220 },
42221 "permissions" : {
42222 "check" : [
42223 "perm",
42224 "/",
42225 [
42226 "Sys.Modify",
42227 "Datastore.Allocate"
42228 ]
42229 ]
42230 },
42231 "protected" : 1,
42232 "proxyto" : "node",
42233 "returns" : {
42234 "type" : "string"
42235 }
42236 },
56122987 42237 "GET" : {
e9cd3bd4 42238 "allowtoken" : 1,
4d47f125 42239 "description" : "Get details about a zpool.",
44660702 42240 "method" : "GET",
4d47f125 42241 "name" : "detail",
56122987 42242 "parameters" : {
44660702 42243 "additionalProperties" : 0,
56122987 42244 "properties" : {
4d47f125
TL
42245 "name" : {
42246 "description" : "The storage identifier.",
42247 "format" : "pve-storage-id",
42248 "type" : "string",
42249 "typetext" : "<string>"
44660702 42250 },
7aacca6f 42251 "node" : {
7aacca6f 42252 "description" : "The cluster node name.",
44660702 42253 "format" : "pve-node",
013dc89f
DM
42254 "type" : "string",
42255 "typetext" : "<string>"
56122987 42256 }
44660702 42257 }
7aacca6f 42258 },
7aacca6f
DM
42259 "permissions" : {
42260 "check" : [
42261 "perm",
4d47f125 42262 "/",
7aacca6f 42263 [
4d47f125
TL
42264 "Sys.Audit",
42265 "Datastore.Audit"
7aacca6f
DM
42266 ],
42267 "any",
42268 1
42269 ]
42270 },
44660702
DM
42271 "protected" : 1,
42272 "proxyto" : "node",
7aacca6f 42273 "returns" : {
56122987 42274 "properties" : {
4d47f125
TL
42275 "action" : {
42276 "description" : "Information about the recommended action to fix the state.",
42277 "optional" : 1,
42278 "type" : "string"
56122987 42279 },
4d47f125 42280 "children" : {
e2d681b3 42281 "description" : "The pool configuration information, including the vdevs for each section (e.g. spares, cache), may be nested.",
4d47f125
TL
42282 "items" : {
42283 "properties" : {
42284 "cksum" : {
e2d681b3 42285 "optional" : 1,
4d47f125
TL
42286 "type" : "number"
42287 },
42288 "msg" : {
42289 "description" : "An optional message about the vdev.",
42290 "type" : "string"
42291 },
42292 "name" : {
e2d681b3 42293 "description" : "The name of the vdev or section.",
4d47f125
TL
42294 "type" : "string"
42295 },
42296 "read" : {
e2d681b3 42297 "optional" : 1,
4d47f125
TL
42298 "type" : "number"
42299 },
42300 "state" : {
42301 "description" : "The state of the vdev.",
e2d681b3 42302 "optional" : 1,
4d47f125
TL
42303 "type" : "string"
42304 },
42305 "write" : {
e2d681b3 42306 "optional" : 1,
4d47f125
TL
42307 "type" : "number"
42308 }
42309 },
42310 "type" : "object"
42311 },
42312 "type" : "array"
56122987 42313 },
e2d681b3
TL
42314 "errors" : {
42315 "description" : "Information about the errors on the zpool.",
42316 "type" : "string"
42317 },
4d47f125
TL
42318 "name" : {
42319 "description" : "The name of the zpool.",
42320 "type" : "string"
44660702 42321 },
4d47f125 42322 "scan" : {
e2d681b3 42323 "description" : "Information about the last/current scrub.",
d2656385 42324 "optional" : 1,
4d47f125 42325 "type" : "string"
44660702 42326 },
4d47f125
TL
42327 "state" : {
42328 "description" : "The state of the zpool.",
42329 "type" : "string"
42330 },
42331 "status" : {
42332 "description" : "Information about the state of the zpool.",
44660702 42333 "optional" : 1,
4d47f125 42334 "type" : "string"
56122987 42335 }
4d47f125
TL
42336 },
42337 "type" : "object"
44660702
DM
42338 }
42339 }
42340 },
42341 "leaf" : 1,
4d47f125
TL
42342 "path" : "/nodes/{node}/disks/zfs/{name}",
42343 "text" : "{name}"
44660702
DM
42344 }
42345 ],
42346 "info" : {
42347 "GET" : {
e9cd3bd4 42348 "allowtoken" : 1,
4d47f125 42349 "description" : "List Zpools.",
44660702 42350 "method" : "GET",
4d47f125 42351 "name" : "index",
44660702
DM
42352 "parameters" : {
42353 "additionalProperties" : 0,
42354 "properties" : {
42355 "node" : {
42356 "description" : "The cluster node name.",
42357 "format" : "pve-node",
013dc89f
DM
42358 "type" : "string",
42359 "typetext" : "<string>"
4d47f125
TL
42360 }
42361 }
42362 },
42363 "permissions" : {
42364 "check" : [
42365 "perm",
42366 "/",
42367 [
42368 "Sys.Audit",
42369 "Datastore.Audit"
42370 ],
42371 "any",
42372 1
42373 ]
42374 },
42375 "protected" : 1,
42376 "proxyto" : "node",
42377 "returns" : {
42378 "items" : {
42379 "properties" : {
42380 "alloc" : {
42381 "description" : "",
42382 "type" : "integer"
42383 },
42384 "dedup" : {
42385 "description" : "",
42386 "type" : "number"
42387 },
42388 "frag" : {
42389 "description" : "",
42390 "type" : "integer"
42391 },
42392 "free" : {
42393 "description" : "",
42394 "type" : "integer"
42395 },
42396 "health" : {
42397 "description" : "",
42398 "type" : "string"
42399 },
42400 "name" : {
42401 "description" : "",
42402 "type" : "string"
42403 },
42404 "size" : {
42405 "description" : "",
42406 "type" : "integer"
42407 }
42408 },
42409 "type" : "object"
42410 },
42411 "links" : [
42412 {
42413 "href" : "{name}",
42414 "rel" : "child"
42415 }
42416 ],
42417 "type" : "array"
42418 }
42419 },
42420 "POST" : {
e9cd3bd4 42421 "allowtoken" : 1,
4d47f125
TL
42422 "description" : "Create a ZFS pool.",
42423 "method" : "POST",
42424 "name" : "create",
42425 "parameters" : {
42426 "additionalProperties" : 0,
42427 "properties" : {
42428 "add_storage" : {
42429 "default" : 0,
42430 "description" : "Configure storage using the zpool.",
42431 "optional" : 1,
42432 "type" : "boolean",
42433 "typetext" : "<boolean>"
42434 },
42435 "ashift" : {
42436 "default" : 12,
42437 "description" : "Pool sector size exponent.",
42438 "maximum" : 16,
42439 "minimum" : 9,
42440 "optional" : 1,
42441 "type" : "integer",
42442 "typetext" : "<integer> (9 - 16)"
42443 },
42444 "compression" : {
42445 "default" : "on",
42446 "description" : "The compression algorithm to use.",
42447 "enum" : [
42448 "on",
42449 "off",
42450 "gzip",
42451 "lz4",
42452 "lzjb",
5370fa8c
TL
42453 "zle",
42454 "zstd"
4d47f125
TL
42455 ],
42456 "optional" : 1,
42457 "type" : "string"
42458 },
42459 "devices" : {
42460 "description" : "The block devices you want to create the zpool on.",
42461 "format" : "string-list",
42462 "type" : "string",
42463 "typetext" : "<string>"
44660702 42464 },
81a3384d
TL
42465 "draid-config" : {
42466 "format" : {
42467 "data" : {
42468 "description" : "The number of data devices per redundancy group. (dRAID)",
42469 "minimum" : 1,
42470 "type" : "integer"
42471 },
42472 "spares" : {
42473 "description" : "Number of dRAID spares.",
42474 "minimum" : 0,
42475 "type" : "integer"
42476 }
42477 },
42478 "optional" : 1,
42479 "type" : "string",
42480 "typetext" : "data=<integer> ,spares=<integer>"
42481 },
4d47f125 42482 "name" : {
44660702
DM
42483 "description" : "The storage identifier.",
42484 "format" : "pve-storage-id",
013dc89f
DM
42485 "type" : "string",
42486 "typetext" : "<string>"
4d47f125
TL
42487 },
42488 "node" : {
42489 "description" : "The cluster node name.",
42490 "format" : "pve-node",
42491 "type" : "string",
42492 "typetext" : "<string>"
42493 },
42494 "raidlevel" : {
42495 "description" : "The RAID level to use.",
42496 "enum" : [
42497 "single",
42498 "mirror",
42499 "raid10",
42500 "raidz",
42501 "raidz2",
81a3384d
TL
42502 "raidz3",
42503 "draid",
42504 "draid2",
42505 "draid3"
4d47f125
TL
42506 ],
42507 "type" : "string"
56122987
DM
42508 }
42509 }
44660702
DM
42510 },
42511 "permissions" : {
42512 "check" : [
42513 "perm",
4d47f125 42514 "/",
44660702 42515 [
4d47f125
TL
42516 "Sys.Modify",
42517 "Datastore.Allocate"
42518 ]
44660702
DM
42519 ]
42520 },
4d47f125
TL
42521 "protected" : 1,
42522 "proxyto" : "node",
44660702 42523 "returns" : {
4d47f125 42524 "type" : "string"
56122987
DM
42525 }
42526 }
44660702
DM
42527 },
42528 "leaf" : 0,
4d47f125
TL
42529 "path" : "/nodes/{node}/disks/zfs",
42530 "text" : "zfs"
42531 },
2c0dde61
DM
42532 {
42533 "info" : {
42534 "GET" : {
e9cd3bd4 42535 "allowtoken" : 1,
2c0dde61
DM
42536 "description" : "List local disks.",
42537 "method" : "GET",
42538 "name" : "list",
42539 "parameters" : {
42540 "additionalProperties" : 0,
42541 "properties" : {
d2656385
TL
42542 "include-partitions" : {
42543 "default" : 0,
42544 "description" : "Also include partitions.",
42545 "optional" : 1,
42546 "type" : "boolean",
42547 "typetext" : "<boolean>"
42548 },
2c0dde61
DM
42549 "node" : {
42550 "description" : "The cluster node name.",
42551 "format" : "pve-node",
013dc89f
DM
42552 "type" : "string",
42553 "typetext" : "<string>"
4d47f125
TL
42554 },
42555 "skipsmart" : {
42556 "default" : 0,
42557 "description" : "Skip smart checks.",
42558 "optional" : 1,
42559 "type" : "boolean",
42560 "typetext" : "<boolean>"
42561 },
42562 "type" : {
42563 "description" : "Only list specific types of disks.",
42564 "enum" : [
42565 "unused",
42566 "journal_disks"
42567 ],
42568 "optional" : 1,
42569 "type" : "string"
2c0dde61
DM
42570 }
42571 }
42572 },
42573 "permissions" : {
42574 "check" : [
d2656385 42575 "or",
2c0dde61 42576 [
d2656385
TL
42577 "perm",
42578 "/",
42579 [
42580 "Sys.Audit",
42581 "Datastore.Audit"
42582 ],
42583 "any",
42584 1
2c0dde61 42585 ],
d2656385
TL
42586 [
42587 "perm",
42588 "/nodes/{node}",
42589 [
42590 "Sys.Audit",
42591 "Datastore.Audit"
42592 ],
42593 "any",
42594 1
42595 ]
2c0dde61
DM
42596 ]
42597 },
42598 "protected" : 1,
42599 "proxyto" : "node",
42600 "returns" : {
42601 "items" : {
42602 "properties" : {
42603 "devpath" : {
42604 "description" : "The device path",
42605 "type" : "string"
42606 },
42607 "gpt" : {
42608 "type" : "boolean"
42609 },
42610 "health" : {
42611 "optional" : 1,
42612 "type" : "string"
42613 },
42614 "model" : {
42615 "optional" : 1,
42616 "type" : "string"
42617 },
de786b48
TL
42618 "mounted" : {
42619 "type" : "boolean"
42620 },
2c0dde61
DM
42621 "osdid" : {
42622 "type" : "integer"
42623 },
d2656385
TL
42624 "parent" : {
42625 "description" : "For partitions only. The device path of the disk the partition resides on.",
42626 "optional" : 1,
42627 "type" : "string"
42628 },
2c0dde61
DM
42629 "serial" : {
42630 "optional" : 1,
42631 "type" : "string"
42632 },
42633 "size" : {
42634 "type" : "integer"
42635 },
42636 "used" : {
42637 "optional" : 1,
42638 "type" : "string"
42639 },
42640 "vendor" : {
42641 "optional" : 1,
42642 "type" : "string"
42643 },
42644 "wwn" : {
42645 "optional" : 1,
42646 "type" : "string"
42647 }
42648 },
42649 "type" : "object"
42650 },
42651 "type" : "array"
42652 }
42653 }
42654 },
42655 "leaf" : 1,
42656 "path" : "/nodes/{node}/disks/list",
42657 "text" : "list"
42658 },
42659 {
42660 "info" : {
42661 "GET" : {
e9cd3bd4 42662 "allowtoken" : 1,
2c0dde61
DM
42663 "description" : "Get SMART Health of a disk.",
42664 "method" : "GET",
42665 "name" : "smart",
42666 "parameters" : {
42667 "additionalProperties" : 0,
42668 "properties" : {
42669 "disk" : {
42670 "description" : "Block device name",
42671 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
42672 "type" : "string"
42673 },
42674 "healthonly" : {
42675 "description" : "If true returns only the health status",
42676 "optional" : 1,
013dc89f
DM
42677 "type" : "boolean",
42678 "typetext" : "<boolean>"
2c0dde61
DM
42679 },
42680 "node" : {
42681 "description" : "The cluster node name.",
42682 "format" : "pve-node",
013dc89f
DM
42683 "type" : "string",
42684 "typetext" : "<string>"
2c0dde61
DM
42685 }
42686 }
42687 },
42688 "permissions" : {
42689 "check" : [
42690 "perm",
42691 "/",
42692 [
42693 "Sys.Audit",
42694 "Datastore.Audit"
42695 ],
42696 "any",
42697 1
42698 ]
42699 },
42700 "protected" : 1,
42701 "proxyto" : "node",
42702 "returns" : {
de0983cb
DM
42703 "properties" : {
42704 "attributes" : {
42705 "optional" : 1,
42706 "type" : "array"
42707 },
42708 "health" : {
42709 "type" : "string"
42710 },
42711 "text" : {
42712 "optional" : 1,
42713 "type" : "string"
42714 },
42715 "type" : {
42716 "optional" : 1,
42717 "type" : "string"
42718 }
42719 },
2c0dde61
DM
42720 "type" : "object"
42721 }
42722 }
42723 },
42724 "leaf" : 1,
42725 "path" : "/nodes/{node}/disks/smart",
42726 "text" : "smart"
42727 },
42728 {
42729 "info" : {
42730 "POST" : {
e9cd3bd4 42731 "allowtoken" : 1,
2c0dde61
DM
42732 "description" : "Initialize Disk with GPT",
42733 "method" : "POST",
42734 "name" : "initgpt",
42735 "parameters" : {
42736 "additionalProperties" : 0,
42737 "properties" : {
42738 "disk" : {
42739 "description" : "Block device name",
42740 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
42741 "type" : "string"
42742 },
42743 "node" : {
42744 "description" : "The cluster node name.",
42745 "format" : "pve-node",
013dc89f
DM
42746 "type" : "string",
42747 "typetext" : "<string>"
2c0dde61
DM
42748 },
42749 "uuid" : {
42750 "description" : "UUID for the GPT table",
42751 "maxLength" : 36,
42752 "optional" : 1,
42753 "pattern" : "[a-fA-F0-9\\-]+",
42754 "type" : "string"
42755 }
42756 }
42757 },
42758 "permissions" : {
42759 "check" : [
42760 "perm",
42761 "/",
42762 [
42763 "Sys.Modify"
42764 ]
42765 ]
42766 },
42767 "protected" : 1,
42768 "proxyto" : "node",
42769 "returns" : {
42770 "type" : "string"
42771 }
42772 }
42773 },
42774 "leaf" : 1,
42775 "path" : "/nodes/{node}/disks/initgpt",
42776 "text" : "initgpt"
0695fdaf
TL
42777 },
42778 {
42779 "info" : {
42780 "PUT" : {
42781 "allowtoken" : 1,
42782 "description" : "Wipe a disk or partition.",
42783 "method" : "PUT",
42784 "name" : "wipe_disk",
42785 "parameters" : {
42786 "additionalProperties" : 0,
42787 "properties" : {
42788 "disk" : {
42789 "description" : "Block device name",
42790 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
42791 "type" : "string"
42792 },
42793 "node" : {
42794 "description" : "The cluster node name.",
42795 "format" : "pve-node",
42796 "type" : "string",
42797 "typetext" : "<string>"
42798 }
42799 }
42800 },
42801 "protected" : 1,
42802 "proxyto" : "node",
42803 "returns" : {
42804 "type" : "string"
42805 }
42806 }
42807 },
42808 "leaf" : 1,
42809 "path" : "/nodes/{node}/disks/wipedisk",
42810 "text" : "wipedisk"
2c0dde61
DM
42811 }
42812 ],
42813 "info" : {
42814 "GET" : {
e9cd3bd4 42815 "allowtoken" : 1,
2c0dde61
DM
42816 "description" : "Node index.",
42817 "method" : "GET",
42818 "name" : "index",
42819 "parameters" : {
42820 "additionalProperties" : 0,
42821 "properties" : {
42822 "node" : {
42823 "description" : "The cluster node name.",
42824 "format" : "pve-node",
013dc89f
DM
42825 "type" : "string",
42826 "typetext" : "<string>"
2c0dde61
DM
42827 }
42828 }
42829 },
42830 "permissions" : {
42831 "user" : "all"
42832 },
42833 "proxyto" : "node",
42834 "returns" : {
42835 "items" : {
42836 "properties" : {},
42837 "type" : "object"
42838 },
42839 "links" : [
42840 {
42841 "href" : "{name}",
42842 "rel" : "child"
42843 }
42844 ],
42845 "type" : "array"
42846 }
42847 }
42848 },
42849 "leaf" : 0,
42850 "path" : "/nodes/{node}/disks",
42851 "text" : "disks"
42852 },
56122987 42853 {
56122987
DM
42854 "children" : [
42855 {
42856 "info" : {
44660702 42857 "GET" : {
e9cd3bd4 42858 "allowtoken" : 1,
44660702
DM
42859 "description" : "List available updates.",
42860 "method" : "GET",
42861 "name" : "list_updates",
42862 "parameters" : {
42863 "additionalProperties" : 0,
42864 "properties" : {
42865 "node" : {
42866 "description" : "The cluster node name.",
42867 "format" : "pve-node",
013dc89f
DM
42868 "type" : "string",
42869 "typetext" : "<string>"
44660702
DM
42870 }
42871 }
7aacca6f
DM
42872 },
42873 "permissions" : {
42874 "check" : [
42875 "perm",
42876 "/nodes/{node}",
42877 [
42878 "Sys.Modify"
42879 ]
42880 ]
42881 },
44660702 42882 "protected" : 1,
56122987 42883 "proxyto" : "node",
44660702
DM
42884 "returns" : {
42885 "items" : {
42886 "properties" : {},
42887 "type" : "object"
42888 },
42889 "type" : "array"
42890 }
42891 },
42892 "POST" : {
e9cd3bd4 42893 "allowtoken" : 1,
44660702 42894 "description" : "This is used to resynchronize the package index files from their sources (apt-get update).",
7aacca6f
DM
42895 "method" : "POST",
42896 "name" : "update_database",
56122987
DM
42897 "parameters" : {
42898 "additionalProperties" : 0,
42899 "properties" : {
44660702
DM
42900 "node" : {
42901 "description" : "The cluster node name.",
42902 "format" : "pve-node",
013dc89f
DM
42903 "type" : "string",
42904 "typetext" : "<string>"
44660702 42905 },
56122987 42906 "notify" : {
56122987 42907 "default" : 0,
44660702
DM
42908 "description" : "Send notification mail about new packages (to email address specified for user 'root@pam').",
42909 "optional" : 1,
013dc89f
DM
42910 "type" : "boolean",
42911 "typetext" : "<boolean>"
56122987
DM
42912 },
42913 "quiet" : {
56122987 42914 "default" : 0,
44660702 42915 "description" : "Only produces output suitable for logging, omitting progress indicators.",
56122987 42916 "optional" : 1,
013dc89f
DM
42917 "type" : "boolean",
42918 "typetext" : "<boolean>"
56122987 42919 }
7aacca6f
DM
42920 }
42921 },
42922 "permissions" : {
42923 "check" : [
42924 "perm",
42925 "/nodes/{node}",
42926 [
42927 "Sys.Modify"
42928 ]
42929 ]
42930 },
44660702
DM
42931 "protected" : 1,
42932 "proxyto" : "node",
42933 "returns" : {
42934 "type" : "string"
42935 }
56122987
DM
42936 }
42937 },
7aacca6f 42938 "leaf" : 1,
44660702
DM
42939 "path" : "/nodes/{node}/apt/update",
42940 "text" : "update"
56122987
DM
42941 },
42942 {
56122987
DM
42943 "info" : {
42944 "GET" : {
e9cd3bd4 42945 "allowtoken" : 1,
44660702 42946 "description" : "Get package changelogs.",
56122987 42947 "method" : "GET",
7aacca6f 42948 "name" : "changelog",
56122987 42949 "parameters" : {
44660702 42950 "additionalProperties" : 0,
56122987
DM
42951 "properties" : {
42952 "name" : {
42953 "description" : "Package name.",
013dc89f
DM
42954 "type" : "string",
42955 "typetext" : "<string>"
56122987 42956 },
44660702
DM
42957 "node" : {
42958 "description" : "The cluster node name.",
42959 "format" : "pve-node",
013dc89f
DM
42960 "type" : "string",
42961 "typetext" : "<string>"
44660702 42962 },
56122987 42963 "version" : {
7aacca6f 42964 "description" : "Package version.",
44660702 42965 "optional" : 1,
013dc89f
DM
42966 "type" : "string",
42967 "typetext" : "<string>"
56122987 42968 }
44660702 42969 }
56122987 42970 },
44660702
DM
42971 "permissions" : {
42972 "check" : [
42973 "perm",
42974 "/nodes/{node}",
42975 [
42976 "Sys.Modify"
42977 ]
42978 ]
42979 },
42980 "proxyto" : "node",
42981 "returns" : {
42982 "type" : "string"
42983 }
56122987
DM
42984 }
42985 },
44660702
DM
42986 "leaf" : 1,
42987 "path" : "/nodes/{node}/apt/changelog",
7aacca6f 42988 "text" : "changelog"
56122987 42989 },
34f3e481
TL
42990 {
42991 "info" : {
42992 "GET" : {
42993 "allowtoken" : 1,
42994 "description" : "Get APT repository information.",
42995 "method" : "GET",
42996 "name" : "repositories",
42997 "parameters" : {
42998 "additionalProperties" : 0,
42999 "properties" : {
43000 "node" : {
43001 "description" : "The cluster node name.",
43002 "format" : "pve-node",
43003 "type" : "string",
43004 "typetext" : "<string>"
43005 }
43006 }
43007 },
43008 "permissions" : {
43009 "check" : [
43010 "perm",
43011 "/nodes/{node}",
43012 [
43013 "Sys.Audit"
43014 ]
43015 ]
43016 },
43017 "proxyto" : "node",
43018 "returns" : {
43019 "description" : "Result from parsing the APT repository files in /etc/apt/.",
43020 "properties" : {
43021 "digest" : {
43022 "description" : "Common digest of all files.",
43023 "type" : "string"
43024 },
43025 "errors" : {
43026 "description" : "List of problematic repository files.",
43027 "items" : {
43028 "properties" : {
43029 "error" : {
43030 "description" : "The error message",
43031 "type" : "string"
43032 },
43033 "path" : {
43034 "description" : "Path to the problematic file.",
43035 "type" : "string"
43036 }
43037 },
43038 "type" : "object"
43039 },
43040 "type" : "array"
43041 },
43042 "files" : {
43043 "description" : "List of parsed repository files.",
43044 "items" : {
43045 "properties" : {
43046 "digest" : {
43047 "description" : "Digest of the file as bytes.",
43048 "items" : {
43049 "type" : "integer"
43050 },
43051 "type" : "array"
43052 },
43053 "file-type" : {
43054 "description" : "Format of the file.",
43055 "enum" : [
43056 "list",
43057 "sources"
43058 ],
43059 "type" : "string"
43060 },
43061 "path" : {
43062 "description" : "Path to the problematic file.",
43063 "type" : "string"
43064 },
43065 "repositories" : {
43066 "description" : "The parsed repositories.",
43067 "items" : {
43068 "properties" : {
43069 "Comment" : {
43070 "description" : "Associated comment",
43071 "optional" : 1,
43072 "type" : "string"
43073 },
43074 "Components" : {
43075 "description" : "List of repository components",
43076 "items" : {
43077 "type" : "string"
43078 },
43079 "optional" : 1,
43080 "type" : "array"
43081 },
43082 "Enabled" : {
43083 "description" : "Whether the repository is enabled or not",
43084 "type" : "boolean"
43085 },
43086 "FileType" : {
43087 "description" : "Format of the defining file.",
43088 "enum" : [
43089 "list",
43090 "sources"
43091 ],
43092 "type" : "string"
43093 },
43094 "Options" : {
43095 "description" : "Additional options",
43096 "items" : {
43097 "properties" : {
43098 "Key" : {
43099 "type" : "string"
43100 },
43101 "Values" : {
43102 "items" : {
43103 "type" : "string"
43104 },
43105 "type" : "array"
43106 }
43107 },
43108 "type" : "object"
43109 },
43110 "optional" : 1,
43111 "type" : "array"
43112 },
43113 "Suites" : {
43114 "description" : "List of package distribuitions",
43115 "items" : {
43116 "type" : "string"
43117 },
43118 "type" : "array"
43119 },
43120 "Types" : {
43121 "description" : "List of package types.",
43122 "items" : {
43123 "enum" : [
43124 "deb",
43125 "deb-src"
43126 ],
43127 "type" : "string"
43128 },
43129 "type" : "array"
43130 },
43131 "URIs" : {
43132 "description" : "List of repository URIs.",
43133 "items" : {
43134 "type" : "string"
43135 },
43136 "type" : "array"
43137 }
43138 },
43139 "type" : "object"
43140 },
43141 "type" : "array"
43142 }
43143 },
43144 "type" : "object"
43145 },
43146 "type" : "array"
43147 },
43148 "infos" : {
43149 "description" : "Additional information/warnings for APT repositories.",
43150 "items" : {
43151 "properties" : {
43152 "index" : {
43153 "description" : "Index of the associated repository within the file.",
43154 "type" : "string"
43155 },
43156 "kind" : {
43157 "description" : "Kind of the information (e.g. warning).",
43158 "type" : "string"
43159 },
43160 "message" : {
43161 "description" : "Information message.",
43162 "type" : "string"
43163 },
43164 "path" : {
43165 "description" : "Path to the associated file.",
43166 "type" : "string"
43167 },
43168 "property" : {
43169 "description" : "Property from which the info originates.",
43170 "optional" : 1,
43171 "type" : "string"
43172 }
43173 },
43174 "type" : "object"
43175 },
43176 "type" : "array"
43177 },
43178 "standard-repos" : {
43179 "description" : "List of standard repositories and their configuration status",
43180 "items" : {
43181 "properties" : {
43182 "handle" : {
43183 "description" : "Handle to identify the repository.",
43184 "type" : "string"
43185 },
43186 "name" : {
43187 "description" : "Full name of the repository.",
43188 "type" : "string"
43189 },
43190 "status" : {
43191 "description" : "Indicating enabled/disabled status, if the repository is configured.",
43192 "optional" : 1,
43193 "type" : "boolean"
43194 }
43195 },
43196 "type" : "object"
43197 },
43198 "type" : "array"
43199 }
43200 },
43201 "type" : "object"
43202 }
43203 },
43204 "POST" : {
43205 "allowtoken" : 1,
43206 "description" : "Change the properties of a repository. Currently only allows enabling/disabling.",
43207 "method" : "POST",
43208 "name" : "change_repository",
43209 "parameters" : {
43210 "additionalProperties" : 0,
43211 "properties" : {
43212 "digest" : {
43213 "description" : "Digest to detect modifications.",
43214 "maxLength" : 80,
43215 "optional" : 1,
43216 "type" : "string",
43217 "typetext" : "<string>"
43218 },
43219 "enabled" : {
43220 "description" : "Whether the repository should be enabled or not.",
43221 "optional" : 1,
43222 "type" : "boolean",
43223 "typetext" : "<boolean>"
43224 },
43225 "index" : {
43226 "description" : "Index within the file (starting from 0).",
43227 "type" : "integer",
43228 "typetext" : "<integer>"
43229 },
43230 "node" : {
43231 "description" : "The cluster node name.",
43232 "format" : "pve-node",
43233 "type" : "string",
43234 "typetext" : "<string>"
43235 },
43236 "path" : {
43237 "description" : "Path to the containing file.",
43238 "type" : "string",
43239 "typetext" : "<string>"
43240 }
43241 }
43242 },
43243 "permissions" : {
43244 "check" : [
43245 "perm",
43246 "/nodes/{node}",
43247 [
43248 "Sys.Modify"
43249 ]
43250 ]
43251 },
43252 "protected" : 1,
43253 "proxyto" : "node",
43254 "returns" : {
43255 "type" : "null"
43256 }
43257 },
43258 "PUT" : {
43259 "allowtoken" : 1,
43260 "description" : "Add a standard repository to the configuration",
43261 "method" : "PUT",
43262 "name" : "add_repository",
43263 "parameters" : {
43264 "additionalProperties" : 0,
43265 "properties" : {
43266 "digest" : {
43267 "description" : "Digest to detect modifications.",
43268 "maxLength" : 80,
43269 "optional" : 1,
43270 "type" : "string",
43271 "typetext" : "<string>"
43272 },
43273 "handle" : {
43274 "description" : "Handle that identifies a repository.",
43275 "type" : "string",
43276 "typetext" : "<string>"
43277 },
43278 "node" : {
43279 "description" : "The cluster node name.",
43280 "format" : "pve-node",
43281 "type" : "string",
43282 "typetext" : "<string>"
43283 }
43284 }
43285 },
43286 "permissions" : {
43287 "check" : [
43288 "perm",
43289 "/nodes/{node}",
43290 [
43291 "Sys.Modify"
43292 ]
43293 ]
43294 },
43295 "protected" : 1,
43296 "proxyto" : "node",
43297 "returns" : {
43298 "type" : "null"
43299 }
43300 }
43301 },
43302 "leaf" : 1,
43303 "path" : "/nodes/{node}/apt/repositories",
43304 "text" : "repositories"
43305 },
56122987 43306 {
56122987
DM
43307 "info" : {
43308 "GET" : {
e9cd3bd4 43309 "allowtoken" : 1,
44660702
DM
43310 "description" : "Get package information for important Proxmox packages.",
43311 "method" : "GET",
7aacca6f
DM
43312 "name" : "versions",
43313 "parameters" : {
44660702 43314 "additionalProperties" : 0,
7aacca6f
DM
43315 "properties" : {
43316 "node" : {
44660702 43317 "description" : "The cluster node name.",
7aacca6f 43318 "format" : "pve-node",
013dc89f
DM
43319 "type" : "string",
43320 "typetext" : "<string>"
7aacca6f 43321 }
44660702 43322 }
7aacca6f 43323 },
56122987
DM
43324 "permissions" : {
43325 "check" : [
43326 "perm",
43327 "/nodes/{node}",
43328 [
43329 "Sys.Audit"
43330 ]
43331 ]
43332 },
7aacca6f 43333 "proxyto" : "node",
56122987
DM
43334 "returns" : {
43335 "items" : {
7aacca6f
DM
43336 "properties" : {},
43337 "type" : "object"
44660702
DM
43338 },
43339 "type" : "array"
56122987
DM
43340 }
43341 }
43342 },
44660702 43343 "leaf" : 1,
7aacca6f 43344 "path" : "/nodes/{node}/apt/versions",
44660702 43345 "text" : "versions"
56122987
DM
43346 }
43347 ],
56122987
DM
43348 "info" : {
43349 "GET" : {
e9cd3bd4 43350 "allowtoken" : 1,
44660702 43351 "description" : "Directory index for apt (Advanced Package Tool).",
7aacca6f 43352 "method" : "GET",
44660702 43353 "name" : "index",
7aacca6f
DM
43354 "parameters" : {
43355 "additionalProperties" : 0,
43356 "properties" : {
43357 "node" : {
44660702 43358 "description" : "The cluster node name.",
7aacca6f 43359 "format" : "pve-node",
013dc89f
DM
43360 "type" : "string",
43361 "typetext" : "<string>"
7aacca6f
DM
43362 }
43363 }
43364 },
7aacca6f
DM
43365 "permissions" : {
43366 "user" : "all"
43367 },
44660702
DM
43368 "returns" : {
43369 "items" : {
43370 "properties" : {
43371 "id" : {
43372 "type" : "string"
43373 }
43374 },
43375 "type" : "object"
43376 },
43377 "links" : [
43378 {
43379 "href" : "{id}",
43380 "rel" : "child"
43381 }
43382 ],
43383 "type" : "array"
43384 }
56122987 43385 }
7aacca6f 43386 },
44660702 43387 "leaf" : 0,
7aacca6f 43388 "path" : "/nodes/{node}/apt",
44660702 43389 "text" : "apt"
56122987
DM
43390 },
43391 {
56122987
DM
43392 "children" : [
43393 {
43394 "children" : [
43395 {
56122987
DM
43396 "info" : {
43397 "DELETE" : {
e9cd3bd4 43398 "allowtoken" : 1,
44660702 43399 "description" : "Delete rule.",
7aacca6f 43400 "method" : "DELETE",
44660702 43401 "name" : "delete_rule",
56122987
DM
43402 "parameters" : {
43403 "additionalProperties" : 0,
43404 "properties" : {
56122987
DM
43405 "digest" : {
43406 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 43407 "maxLength" : 40,
56122987 43408 "optional" : 1,
013dc89f
DM
43409 "type" : "string",
43410 "typetext" : "<string>"
56122987 43411 },
44660702
DM
43412 "node" : {
43413 "description" : "The cluster node name.",
43414 "format" : "pve-node",
013dc89f
DM
43415 "type" : "string",
43416 "typetext" : "<string>"
44660702 43417 },
7aacca6f 43418 "pos" : {
7aacca6f 43419 "description" : "Update rule at position <pos>.",
44660702
DM
43420 "minimum" : 0,
43421 "optional" : 1,
4bd7df8b 43422 "type" : "integer",
013dc89f 43423 "typetext" : "<integer> (0 - N)"
56122987
DM
43424 }
43425 }
43426 },
44660702
DM
43427 "permissions" : {
43428 "check" : [
43429 "perm",
43430 "/nodes/{node}",
43431 [
43432 "Sys.Modify"
43433 ]
43434 ]
43435 },
43436 "protected" : 1,
43437 "proxyto" : "node",
56122987
DM
43438 "returns" : {
43439 "type" : "null"
44660702
DM
43440 }
43441 },
43442 "GET" : {
e9cd3bd4 43443 "allowtoken" : 1,
44660702
DM
43444 "description" : "Get single rule data.",
43445 "method" : "GET",
43446 "name" : "get_rule",
43447 "parameters" : {
43448 "additionalProperties" : 0,
43449 "properties" : {
43450 "node" : {
43451 "description" : "The cluster node name.",
43452 "format" : "pve-node",
013dc89f
DM
43453 "type" : "string",
43454 "typetext" : "<string>"
44660702
DM
43455 },
43456 "pos" : {
43457 "description" : "Update rule at position <pos>.",
43458 "minimum" : 0,
43459 "optional" : 1,
4bd7df8b 43460 "type" : "integer",
013dc89f 43461 "typetext" : "<integer> (0 - N)"
44660702
DM
43462 }
43463 }
56122987 43464 },
56122987
DM
43465 "permissions" : {
43466 "check" : [
43467 "perm",
43468 "/nodes/{node}",
43469 [
44660702 43470 "Sys.Audit"
56122987
DM
43471 ]
43472 ]
44660702
DM
43473 },
43474 "proxyto" : "node",
43475 "returns" : {
43476 "properties" : {
e2d681b3
TL
43477 "action" : {
43478 "type" : "string"
43479 },
43480 "comment" : {
43481 "optional" : 1,
43482 "type" : "string"
43483 },
43484 "dest" : {
43485 "optional" : 1,
43486 "type" : "string"
43487 },
43488 "dport" : {
43489 "optional" : 1,
43490 "type" : "string"
43491 },
43492 "enable" : {
43493 "optional" : 1,
43494 "type" : "integer"
43495 },
4772952b
TL
43496 "icmp-type" : {
43497 "optional" : 1,
43498 "type" : "string"
43499 },
e2d681b3
TL
43500 "iface" : {
43501 "optional" : 1,
43502 "type" : "string"
43503 },
43504 "ipversion" : {
43505 "optional" : 1,
43506 "type" : "integer"
43507 },
95895385
TL
43508 "log" : {
43509 "description" : "Log level for firewall rule",
43510 "enum" : [
43511 "emerg",
43512 "alert",
43513 "crit",
43514 "err",
43515 "warning",
43516 "notice",
43517 "info",
43518 "debug",
43519 "nolog"
43520 ],
43521 "optional" : 1,
43522 "type" : "string"
43523 },
e2d681b3
TL
43524 "macro" : {
43525 "optional" : 1,
5f26e15b 43526 "type" : "string"
e2d681b3 43527 },
44660702
DM
43528 "pos" : {
43529 "type" : "integer"
e2d681b3
TL
43530 },
43531 "proto" : {
43532 "optional" : 1,
43533 "type" : "string"
43534 },
43535 "source" : {
43536 "optional" : 1,
43537 "type" : "string"
43538 },
43539 "sport" : {
43540 "optional" : 1,
43541 "type" : "string"
43542 },
43543 "type" : {
43544 "type" : "string"
44660702
DM
43545 }
43546 },
43547 "type" : "object"
7aacca6f 43548 }
56122987
DM
43549 },
43550 "PUT" : {
e9cd3bd4 43551 "allowtoken" : 1,
44660702
DM
43552 "description" : "Modify rule data.",
43553 "method" : "PUT",
56122987 43554 "name" : "update_rule",
56122987 43555 "parameters" : {
44660702 43556 "additionalProperties" : 0,
56122987 43557 "properties" : {
44660702
DM
43558 "action" : {
43559 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
43560 "maxLength" : 20,
43561 "minLength" : 2,
56122987 43562 "optional" : 1,
44660702
DM
43563 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
43564 "type" : "string"
56122987 43565 },
7aacca6f 43566 "comment" : {
e94f0d56 43567 "description" : "Descriptive comment.",
56122987 43568 "optional" : 1,
013dc89f
DM
43569 "type" : "string",
43570 "typetext" : "<string>"
56122987 43571 },
44660702
DM
43572 "delete" : {
43573 "description" : "A list of settings you want to delete.",
43574 "format" : "pve-configid-list",
56122987 43575 "optional" : 1,
013dc89f
DM
43576 "type" : "string",
43577 "typetext" : "<string>"
56122987 43578 },
44660702
DM
43579 "dest" : {
43580 "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.",
43581 "format" : "pve-fw-addr-spec",
0695fdaf 43582 "maxLength" : 512,
56122987 43583 "optional" : 1,
013dc89f
DM
43584 "type" : "string",
43585 "typetext" : "<string>"
56122987 43586 },
44660702
DM
43587 "digest" : {
43588 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
43589 "maxLength" : 40,
56122987 43590 "optional" : 1,
013dc89f
DM
43591 "type" : "string",
43592 "typetext" : "<string>"
56122987 43593 },
7aacca6f 43594 "dport" : {
7aacca6f 43595 "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
43596 "format" : "pve-fw-dport-spec",
43597 "optional" : 1,
013dc89f
DM
43598 "type" : "string",
43599 "typetext" : "<string>"
7aacca6f 43600 },
44660702 43601 "enable" : {
e94f0d56 43602 "description" : "Flag to enable/disable a rule.",
44660702 43603 "minimum" : 0,
56122987 43604 "optional" : 1,
4bd7df8b 43605 "type" : "integer",
013dc89f 43606 "typetext" : "<integer> (0 - N)"
56122987 43607 },
4772952b 43608 "icmp-type" : {
287a95cf 43609 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
43610 "format" : "pve-fw-icmp-type-spec",
43611 "optional" : 1,
43612 "type" : "string",
43613 "typetext" : "<string>"
43614 },
7aacca6f 43615 "iface" : {
44660702 43616 "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 43617 "format" : "pve-iface",
44660702 43618 "maxLength" : 20,
56122987 43619 "minLength" : 2,
44660702 43620 "optional" : 1,
013dc89f
DM
43621 "type" : "string",
43622 "typetext" : "<string>"
56122987 43623 },
95895385
TL
43624 "log" : {
43625 "description" : "Log level for firewall rule.",
43626 "enum" : [
43627 "emerg",
43628 "alert",
43629 "crit",
43630 "err",
43631 "warning",
43632 "notice",
43633 "info",
43634 "debug",
43635 "nolog"
43636 ],
43637 "optional" : 1,
43638 "type" : "string"
43639 },
44660702 43640 "macro" : {
e94f0d56 43641 "description" : "Use predefined standard macro.",
44660702
DM
43642 "maxLength" : 128,
43643 "optional" : 1,
013dc89f
DM
43644 "type" : "string",
43645 "typetext" : "<string>"
44660702
DM
43646 },
43647 "moveto" : {
43648 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
43649 "minimum" : 0,
7aacca6f 43650 "optional" : 1,
4bd7df8b 43651 "type" : "integer",
013dc89f 43652 "typetext" : "<integer> (0 - N)"
44660702
DM
43653 },
43654 "node" : {
43655 "description" : "The cluster node name.",
43656 "format" : "pve-node",
013dc89f
DM
43657 "type" : "string",
43658 "typetext" : "<string>"
56122987
DM
43659 },
43660 "pos" : {
44660702 43661 "description" : "Update rule at position <pos>.",
7aacca6f 43662 "minimum" : 0,
7aacca6f 43663 "optional" : 1,
4bd7df8b 43664 "type" : "integer",
013dc89f 43665 "typetext" : "<integer> (0 - N)"
7aacca6f 43666 },
44660702
DM
43667 "proto" : {
43668 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
43669 "format" : "pve-fw-protocol-spec",
7aacca6f 43670 "optional" : 1,
013dc89f
DM
43671 "type" : "string",
43672 "typetext" : "<string>"
7aacca6f 43673 },
44660702
DM
43674 "source" : {
43675 "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.",
43676 "format" : "pve-fw-addr-spec",
0695fdaf 43677 "maxLength" : 512,
56122987 43678 "optional" : 1,
013dc89f
DM
43679 "type" : "string",
43680 "typetext" : "<string>"
7aacca6f 43681 },
44660702
DM
43682 "sport" : {
43683 "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.",
43684 "format" : "pve-fw-sport-spec",
43685 "optional" : 1,
013dc89f
DM
43686 "type" : "string",
43687 "typetext" : "<string>"
44660702
DM
43688 },
43689 "type" : {
e94f0d56 43690 "description" : "Rule type.",
44660702
DM
43691 "enum" : [
43692 "in",
43693 "out",
43694 "group"
43695 ],
43696 "optional" : 1,
43697 "type" : "string"
56122987 43698 }
44660702 43699 }
56122987 43700 },
56122987
DM
43701 "permissions" : {
43702 "check" : [
43703 "perm",
43704 "/nodes/{node}",
43705 [
43706 "Sys.Modify"
43707 ]
43708 ]
7aacca6f 43709 },
44660702 43710 "protected" : 1,
7aacca6f 43711 "proxyto" : "node",
7aacca6f
DM
43712 "returns" : {
43713 "type" : "null"
56122987
DM
43714 }
43715 }
7aacca6f 43716 },
44660702 43717 "leaf" : 1,
7aacca6f 43718 "path" : "/nodes/{node}/firewall/rules/{pos}",
44660702 43719 "text" : "{pos}"
56122987
DM
43720 }
43721 ],
56122987
DM
43722 "info" : {
43723 "GET" : {
e9cd3bd4 43724 "allowtoken" : 1,
44660702
DM
43725 "description" : "List rules.",
43726 "method" : "GET",
43727 "name" : "get_rules",
43728 "parameters" : {
43729 "additionalProperties" : 0,
43730 "properties" : {
43731 "node" : {
43732 "description" : "The cluster node name.",
43733 "format" : "pve-node",
013dc89f
DM
43734 "type" : "string",
43735 "typetext" : "<string>"
44660702
DM
43736 }
43737 }
43738 },
43739 "permissions" : {
43740 "check" : [
43741 "perm",
43742 "/nodes/{node}",
43743 [
43744 "Sys.Audit"
43745 ]
43746 ]
43747 },
43748 "proxyto" : "node",
56122987 43749 "returns" : {
56122987
DM
43750 "items" : {
43751 "properties" : {
43752 "pos" : {
43753 "type" : "integer"
43754 }
44660702
DM
43755 },
43756 "type" : "object"
56122987 43757 },
7aacca6f
DM
43758 "links" : [
43759 {
43760 "href" : "{pos}",
43761 "rel" : "child"
43762 }
43763 ],
43764 "type" : "array"
44660702 43765 }
56122987
DM
43766 },
43767 "POST" : {
e9cd3bd4 43768 "allowtoken" : 1,
44660702 43769 "description" : "Create new rule.",
7aacca6f
DM
43770 "method" : "POST",
43771 "name" : "create_rule",
56122987 43772 "parameters" : {
44660702 43773 "additionalProperties" : 0,
56122987 43774 "properties" : {
7aacca6f 43775 "action" : {
7aacca6f 43776 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
44660702 43777 "maxLength" : 20,
7aacca6f
DM
43778 "minLength" : 2,
43779 "optional" : 0,
44660702
DM
43780 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
43781 "type" : "string"
56122987 43782 },
44660702 43783 "comment" : {
e94f0d56 43784 "description" : "Descriptive comment.",
56122987 43785 "optional" : 1,
013dc89f
DM
43786 "type" : "string",
43787 "typetext" : "<string>"
56122987 43788 },
44660702
DM
43789 "dest" : {
43790 "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.",
43791 "format" : "pve-fw-addr-spec",
0695fdaf 43792 "maxLength" : 512,
7aacca6f 43793 "optional" : 1,
013dc89f
DM
43794 "type" : "string",
43795 "typetext" : "<string>"
56122987 43796 },
44660702
DM
43797 "digest" : {
43798 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
43799 "maxLength" : 40,
43800 "optional" : 1,
013dc89f
DM
43801 "type" : "string",
43802 "typetext" : "<string>"
56122987 43803 },
44660702
DM
43804 "dport" : {
43805 "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.",
43806 "format" : "pve-fw-dport-spec",
7aacca6f 43807 "optional" : 1,
013dc89f
DM
43808 "type" : "string",
43809 "typetext" : "<string>"
56122987 43810 },
44660702 43811 "enable" : {
e94f0d56 43812 "description" : "Flag to enable/disable a rule.",
44660702
DM
43813 "minimum" : 0,
43814 "optional" : 1,
4bd7df8b 43815 "type" : "integer",
013dc89f 43816 "typetext" : "<integer> (0 - N)"
44660702 43817 },
4772952b 43818 "icmp-type" : {
287a95cf 43819 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
43820 "format" : "pve-fw-icmp-type-spec",
43821 "optional" : 1,
43822 "type" : "string",
43823 "typetext" : "<string>"
43824 },
7aacca6f 43825 "iface" : {
44660702 43826 "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 43827 "format" : "pve-iface",
56122987 43828 "maxLength" : 20,
7aacca6f 43829 "minLength" : 2,
7aacca6f 43830 "optional" : 1,
013dc89f
DM
43831 "type" : "string",
43832 "typetext" : "<string>"
56122987 43833 },
95895385
TL
43834 "log" : {
43835 "description" : "Log level for firewall rule.",
43836 "enum" : [
43837 "emerg",
43838 "alert",
43839 "crit",
43840 "err",
43841 "warning",
43842 "notice",
43843 "info",
43844 "debug",
43845 "nolog"
43846 ],
43847 "optional" : 1,
43848 "type" : "string"
43849 },
44660702 43850 "macro" : {
e94f0d56 43851 "description" : "Use predefined standard macro.",
44660702 43852 "maxLength" : 128,
7aacca6f 43853 "optional" : 1,
013dc89f
DM
43854 "type" : "string",
43855 "typetext" : "<string>"
56122987 43856 },
44660702
DM
43857 "node" : {
43858 "description" : "The cluster node name.",
43859 "format" : "pve-node",
013dc89f
DM
43860 "type" : "string",
43861 "typetext" : "<string>"
44660702
DM
43862 },
43863 "pos" : {
43864 "description" : "Update rule at position <pos>.",
43865 "minimum" : 0,
43866 "optional" : 1,
4bd7df8b 43867 "type" : "integer",
013dc89f 43868 "typetext" : "<integer> (0 - N)"
44660702
DM
43869 },
43870 "proto" : {
43871 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
43872 "format" : "pve-fw-protocol-spec",
56122987 43873 "optional" : 1,
013dc89f
DM
43874 "type" : "string",
43875 "typetext" : "<string>"
56122987 43876 },
7aacca6f 43877 "source" : {
7aacca6f 43878 "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 43879 "format" : "pve-fw-addr-spec",
0695fdaf 43880 "maxLength" : 512,
44660702 43881 "optional" : 1,
013dc89f
DM
43882 "type" : "string",
43883 "typetext" : "<string>"
7aacca6f 43884 },
44660702
DM
43885 "sport" : {
43886 "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.",
43887 "format" : "pve-fw-sport-spec",
7aacca6f 43888 "optional" : 1,
013dc89f
DM
43889 "type" : "string",
43890 "typetext" : "<string>"
44660702
DM
43891 },
43892 "type" : {
e94f0d56 43893 "description" : "Rule type.",
44660702
DM
43894 "enum" : [
43895 "in",
43896 "out",
43897 "group"
43898 ],
43899 "optional" : 0,
43900 "type" : "string"
56122987 43901 }
44660702 43902 }
7aacca6f 43903 },
56122987
DM
43904 "permissions" : {
43905 "check" : [
43906 "perm",
43907 "/nodes/{node}",
43908 [
43909 "Sys.Modify"
43910 ]
43911 ]
43912 },
44660702
DM
43913 "protected" : 1,
43914 "proxyto" : "node",
43915 "returns" : {
43916 "type" : "null"
43917 }
56122987
DM
43918 }
43919 },
44660702 43920 "leaf" : 0,
7aacca6f 43921 "path" : "/nodes/{node}/firewall/rules",
44660702 43922 "text" : "rules"
56122987
DM
43923 },
43924 {
56122987 43925 "info" : {
44660702 43926 "GET" : {
e9cd3bd4 43927 "allowtoken" : 1,
44660702
DM
43928 "description" : "Get host firewall options.",
43929 "method" : "GET",
43930 "name" : "get_options",
56122987 43931 "parameters" : {
7aacca6f 43932 "additionalProperties" : 0,
56122987 43933 "properties" : {
44660702
DM
43934 "node" : {
43935 "description" : "The cluster node name.",
43936 "format" : "pve-node",
013dc89f
DM
43937 "type" : "string",
43938 "typetext" : "<string>"
44660702
DM
43939 }
43940 }
43941 },
43942 "permissions" : {
43943 "check" : [
43944 "perm",
43945 "/nodes/{node}",
43946 [
43947 "Sys.Audit"
43948 ]
43949 ]
43950 },
43951 "proxyto" : "node",
43952 "returns" : {
43953 "properties" : {
43954 "enable" : {
43955 "description" : "Enable host firewall rules.",
7aacca6f 43956 "optional" : 1,
44660702 43957 "type" : "boolean"
7aacca6f 43958 },
44660702
DM
43959 "log_level_in" : {
43960 "description" : "Log level for incoming traffic.",
56122987
DM
43961 "enum" : [
43962 "emerg",
43963 "alert",
43964 "crit",
43965 "err",
43966 "warning",
43967 "notice",
43968 "info",
43969 "debug",
43970 "nolog"
43971 ],
56122987 43972 "optional" : 1,
44660702
DM
43973 "type" : "string"
43974 },
43975 "log_level_out" : {
43976 "description" : "Log level for outgoing traffic.",
56122987
DM
43977 "enum" : [
43978 "emerg",
43979 "alert",
43980 "crit",
43981 "err",
43982 "warning",
43983 "notice",
43984 "info",
43985 "debug",
43986 "nolog"
43987 ],
44660702
DM
43988 "optional" : 1,
43989 "type" : "string"
43990 },
95895385
TL
43991 "log_nf_conntrack" : {
43992 "default" : 0,
43993 "description" : "Enable logging of conntrack information.",
43994 "optional" : 1,
43995 "type" : "boolean"
43996 },
44660702 43997 "ndp" : {
5c1699e5
TL
43998 "default" : 0,
43999 "description" : "Enable NDP (Neighbor Discovery Protocol).",
44660702
DM
44000 "optional" : 1,
44001 "type" : "boolean"
44002 },
5f26e15b
TL
44003 "nf_conntrack_allow_invalid" : {
44004 "default" : 0,
44005 "description" : "Allow invalid packets on connection tracking.",
44006 "optional" : 1,
44007 "type" : "boolean"
44008 },
9d2e98ed
TL
44009 "nf_conntrack_helpers" : {
44010 "default" : "",
44011 "description" : "Enable conntrack helpers for specific protocols. Supported protocols: amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp, tftp",
44012 "format" : "pve-fw-conntrack-helper",
44013 "optional" : 1,
44014 "type" : "string"
44015 },
44660702 44016 "nf_conntrack_max" : {
5c1699e5 44017 "default" : 262144,
44660702
DM
44018 "description" : "Maximum number of tracked connections.",
44019 "minimum" : 32768,
44020 "optional" : 1,
44021 "type" : "integer"
44022 },
44023 "nf_conntrack_tcp_timeout_established" : {
5c1699e5 44024 "default" : 432000,
44660702
DM
44025 "description" : "Conntrack established timeout.",
44026 "minimum" : 7875,
44027 "optional" : 1,
44028 "type" : "integer"
44029 },
5c1699e5
TL
44030 "nf_conntrack_tcp_timeout_syn_recv" : {
44031 "default" : 60,
44032 "description" : "Conntrack syn recv timeout.",
44033 "maximum" : 60,
44034 "minimum" : 30,
44035 "optional" : 1,
44036 "type" : "integer"
44037 },
44660702
DM
44038 "nosmurfs" : {
44039 "description" : "Enable SMURFS filter.",
44040 "optional" : 1,
44041 "type" : "boolean"
56122987 44042 },
5c1699e5
TL
44043 "protection_synflood" : {
44044 "default" : 0,
44045 "description" : "Enable synflood protection",
44046 "optional" : 1,
44047 "type" : "boolean"
44048 },
44049 "protection_synflood_burst" : {
44050 "default" : 1000,
44051 "description" : "Synflood protection rate burst by ip src.",
44052 "optional" : 1,
44053 "type" : "integer"
44054 },
44055 "protection_synflood_rate" : {
44056 "default" : 200,
44057 "description" : "Synflood protection rate syn/sec by ip src.",
44058 "optional" : 1,
44059 "type" : "integer"
44060 },
7aacca6f 44061 "smurf_log_level" : {
44660702 44062 "description" : "Log level for SMURFS filter.",
56122987
DM
44063 "enum" : [
44064 "emerg",
44065 "alert",
44066 "crit",
44067 "err",
44068 "warning",
44069 "notice",
44070 "info",
44071 "debug",
44072 "nolog"
7aacca6f 44073 ],
7aacca6f
DM
44074 "optional" : 1,
44075 "type" : "string"
56122987 44076 },
44660702
DM
44077 "tcp_flags_log_level" : {
44078 "description" : "Log level for illegal tcp flags filter.",
56122987
DM
44079 "enum" : [
44080 "emerg",
44081 "alert",
44082 "crit",
44083 "err",
44084 "warning",
44085 "notice",
44086 "info",
44087 "debug",
44088 "nolog"
44089 ],
44660702
DM
44090 "optional" : 1,
44091 "type" : "string"
7aacca6f 44092 },
44660702 44093 "tcpflags" : {
5c1699e5 44094 "default" : 0,
44660702 44095 "description" : "Filter illegal combinations of TCP flags.",
56122987 44096 "optional" : 1,
44660702 44097 "type" : "boolean"
56122987 44098 }
44660702
DM
44099 },
44100 "type" : "object"
7aacca6f 44101 }
56122987 44102 },
44660702 44103 "PUT" : {
e9cd3bd4 44104 "allowtoken" : 1,
44660702
DM
44105 "description" : "Set Firewall options.",
44106 "method" : "PUT",
44107 "name" : "set_options",
7aacca6f 44108 "parameters" : {
44660702 44109 "additionalProperties" : 0,
7aacca6f 44110 "properties" : {
44660702
DM
44111 "delete" : {
44112 "description" : "A list of settings you want to delete.",
44113 "format" : "pve-configid-list",
7aacca6f 44114 "optional" : 1,
013dc89f
DM
44115 "type" : "string",
44116 "typetext" : "<string>"
56122987 44117 },
44660702
DM
44118 "digest" : {
44119 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44120 "maxLength" : 40,
44121 "optional" : 1,
013dc89f
DM
44122 "type" : "string",
44123 "typetext" : "<string>"
56122987 44124 },
44660702
DM
44125 "enable" : {
44126 "description" : "Enable host firewall rules.",
7aacca6f 44127 "optional" : 1,
013dc89f
DM
44128 "type" : "boolean",
44129 "typetext" : "<boolean>"
44660702
DM
44130 },
44131 "log_level_in" : {
44132 "description" : "Log level for incoming traffic.",
56122987
DM
44133 "enum" : [
44134 "emerg",
44135 "alert",
44136 "crit",
44137 "err",
44138 "warning",
44139 "notice",
44140 "info",
44141 "debug",
44142 "nolog"
44660702 44143 ],
7aacca6f 44144 "optional" : 1,
44660702 44145 "type" : "string"
7aacca6f 44146 },
44660702
DM
44147 "log_level_out" : {
44148 "description" : "Log level for outgoing traffic.",
56122987
DM
44149 "enum" : [
44150 "emerg",
44151 "alert",
44152 "crit",
44153 "err",
44154 "warning",
44155 "notice",
44156 "info",
44157 "debug",
44158 "nolog"
44159 ],
44160 "optional" : 1,
7aacca6f 44161 "type" : "string"
56122987 44162 },
95895385
TL
44163 "log_nf_conntrack" : {
44164 "default" : 0,
44165 "description" : "Enable logging of conntrack information.",
44166 "optional" : 1,
44167 "type" : "boolean",
44168 "typetext" : "<boolean>"
44169 },
44660702 44170 "ndp" : {
5c1699e5
TL
44171 "default" : 0,
44172 "description" : "Enable NDP (Neighbor Discovery Protocol).",
7aacca6f 44173 "optional" : 1,
013dc89f
DM
44174 "type" : "boolean",
44175 "typetext" : "<boolean>"
44660702 44176 },
5f26e15b
TL
44177 "nf_conntrack_allow_invalid" : {
44178 "default" : 0,
44179 "description" : "Allow invalid packets on connection tracking.",
44180 "optional" : 1,
44181 "type" : "boolean",
44182 "typetext" : "<boolean>"
44183 },
9d2e98ed
TL
44184 "nf_conntrack_helpers" : {
44185 "default" : "",
44186 "description" : "Enable conntrack helpers for specific protocols. Supported protocols: amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp, tftp",
44187 "format" : "pve-fw-conntrack-helper",
44188 "optional" : 1,
44189 "type" : "string",
44190 "typetext" : "<string>"
44191 },
44660702 44192 "nf_conntrack_max" : {
5c1699e5 44193 "default" : 262144,
44660702
DM
44194 "description" : "Maximum number of tracked connections.",
44195 "minimum" : 32768,
44196 "optional" : 1,
4bd7df8b 44197 "type" : "integer",
013dc89f 44198 "typetext" : "<integer> (32768 - N)"
44660702
DM
44199 },
44200 "nf_conntrack_tcp_timeout_established" : {
5c1699e5 44201 "default" : 432000,
44660702
DM
44202 "description" : "Conntrack established timeout.",
44203 "minimum" : 7875,
44204 "optional" : 1,
4bd7df8b 44205 "type" : "integer",
013dc89f 44206 "typetext" : "<integer> (7875 - N)"
44660702 44207 },
5c1699e5
TL
44208 "nf_conntrack_tcp_timeout_syn_recv" : {
44209 "default" : 60,
44210 "description" : "Conntrack syn recv timeout.",
44211 "maximum" : 60,
44212 "minimum" : 30,
44213 "optional" : 1,
44214 "type" : "integer",
44215 "typetext" : "<integer> (30 - 60)"
44216 },
44660702
DM
44217 "node" : {
44218 "description" : "The cluster node name.",
44219 "format" : "pve-node",
013dc89f
DM
44220 "type" : "string",
44221 "typetext" : "<string>"
44660702
DM
44222 },
44223 "nosmurfs" : {
44224 "description" : "Enable SMURFS filter.",
44225 "optional" : 1,
013dc89f
DM
44226 "type" : "boolean",
44227 "typetext" : "<boolean>"
44660702 44228 },
5c1699e5
TL
44229 "protection_synflood" : {
44230 "default" : 0,
44231 "description" : "Enable synflood protection",
44232 "optional" : 1,
44233 "type" : "boolean",
44234 "typetext" : "<boolean>"
44235 },
44236 "protection_synflood_burst" : {
44237 "default" : 1000,
44238 "description" : "Synflood protection rate burst by ip src.",
44239 "optional" : 1,
44240 "type" : "integer",
44241 "typetext" : "<integer>"
44242 },
44243 "protection_synflood_rate" : {
44244 "default" : 200,
44245 "description" : "Synflood protection rate syn/sec by ip src.",
44246 "optional" : 1,
44247 "type" : "integer",
44248 "typetext" : "<integer>"
44249 },
44660702
DM
44250 "smurf_log_level" : {
44251 "description" : "Log level for SMURFS filter.",
56122987
DM
44252 "enum" : [
44253 "emerg",
44254 "alert",
44255 "crit",
44256 "err",
44257 "warning",
44258 "notice",
44259 "info",
44260 "debug",
44261 "nolog"
44660702
DM
44262 ],
44263 "optional" : 1,
44264 "type" : "string"
56122987 44265 },
44660702
DM
44266 "tcp_flags_log_level" : {
44267 "description" : "Log level for illegal tcp flags filter.",
56122987
DM
44268 "enum" : [
44269 "emerg",
44270 "alert",
44271 "crit",
44272 "err",
44273 "warning",
44274 "notice",
44275 "info",
44276 "debug",
44277 "nolog"
44278 ],
44660702
DM
44279 "optional" : 1,
44280 "type" : "string"
7aacca6f 44281 },
44660702 44282 "tcpflags" : {
5c1699e5 44283 "default" : 0,
44660702 44284 "description" : "Filter illegal combinations of TCP flags.",
56122987 44285 "optional" : 1,
013dc89f
DM
44286 "type" : "boolean",
44287 "typetext" : "<boolean>"
56122987 44288 }
7aacca6f 44289 }
56122987 44290 },
44660702
DM
44291 "permissions" : {
44292 "check" : [
44293 "perm",
44294 "/nodes/{node}",
44295 [
44296 "Sys.Modify"
44297 ]
44298 ]
44299 },
44300 "protected" : 1,
44301 "proxyto" : "node",
44302 "returns" : {
44303 "type" : "null"
44304 }
7aacca6f
DM
44305 }
44306 },
44660702
DM
44307 "leaf" : 1,
44308 "path" : "/nodes/{node}/firewall/options",
7aacca6f
DM
44309 "text" : "options"
44310 },
44311 {
7aacca6f
DM
44312 "info" : {
44313 "GET" : {
e9cd3bd4 44314 "allowtoken" : 1,
44660702
DM
44315 "description" : "Read firewall log",
44316 "method" : "GET",
7aacca6f 44317 "name" : "log",
56122987 44318 "parameters" : {
44660702 44319 "additionalProperties" : 0,
56122987 44320 "properties" : {
7aacca6f 44321 "limit" : {
44660702 44322 "minimum" : 0,
7aacca6f 44323 "optional" : 1,
4bd7df8b 44324 "type" : "integer",
013dc89f 44325 "typetext" : "<integer> (0 - N)"
7aacca6f 44326 },
56122987 44327 "node" : {
7aacca6f 44328 "description" : "The cluster node name.",
44660702 44329 "format" : "pve-node",
013dc89f
DM
44330 "type" : "string",
44331 "typetext" : "<string>"
44660702 44332 },
9d2e98ed
TL
44333 "since" : {
44334 "description" : "Display log since this UNIX epoch.",
44335 "minimum" : 0,
44336 "optional" : 1,
44337 "type" : "integer",
44338 "typetext" : "<integer> (0 - N)"
44339 },
44660702
DM
44340 "start" : {
44341 "minimum" : 0,
44342 "optional" : 1,
4bd7df8b 44343 "type" : "integer",
013dc89f 44344 "typetext" : "<integer> (0 - N)"
9d2e98ed
TL
44345 },
44346 "until" : {
44347 "description" : "Display log until this UNIX epoch.",
44348 "minimum" : 0,
44349 "optional" : 1,
44350 "type" : "integer",
44351 "typetext" : "<integer> (0 - N)"
56122987 44352 }
44660702 44353 }
7aacca6f 44354 },
56122987
DM
44355 "permissions" : {
44356 "check" : [
44357 "perm",
44358 "/nodes/{node}",
44359 [
44360 "Sys.Syslog"
44361 ]
44362 ]
44363 },
44660702
DM
44364 "protected" : 1,
44365 "proxyto" : "node",
56122987
DM
44366 "returns" : {
44367 "items" : {
56122987 44368 "properties" : {
56122987 44369 "n" : {
44660702
DM
44370 "description" : "Line number",
44371 "type" : "integer"
7aacca6f
DM
44372 },
44373 "t" : {
44660702
DM
44374 "description" : "Line text",
44375 "type" : "string"
56122987 44376 }
44660702
DM
44377 },
44378 "type" : "object"
56122987
DM
44379 },
44380 "type" : "array"
7aacca6f 44381 }
56122987
DM
44382 }
44383 },
44660702
DM
44384 "leaf" : 1,
44385 "path" : "/nodes/{node}/firewall/log",
7aacca6f 44386 "text" : "log"
56122987
DM
44387 }
44388 ],
44389 "info" : {
44390 "GET" : {
e9cd3bd4 44391 "allowtoken" : 1,
44660702
DM
44392 "description" : "Directory index.",
44393 "method" : "GET",
44394 "name" : "index",
56122987 44395 "parameters" : {
44660702 44396 "additionalProperties" : 0,
56122987
DM
44397 "properties" : {
44398 "node" : {
44399 "description" : "The cluster node name.",
44660702 44400 "format" : "pve-node",
013dc89f
DM
44401 "type" : "string",
44402 "typetext" : "<string>"
56122987 44403 }
44660702 44404 }
56122987 44405 },
7aacca6f
DM
44406 "permissions" : {
44407 "user" : "all"
44408 },
56122987
DM
44409 "returns" : {
44410 "items" : {
44411 "properties" : {},
44412 "type" : "object"
44413 },
56122987
DM
44414 "links" : [
44415 {
44660702
DM
44416 "href" : "{name}",
44417 "rel" : "child"
56122987 44418 }
44660702
DM
44419 ],
44420 "type" : "array"
44421 }
56122987 44422 }
7aacca6f 44423 },
44660702 44424 "leaf" : 0,
7aacca6f 44425 "path" : "/nodes/{node}/firewall",
44660702 44426 "text" : "firewall"
56122987 44427 },
5d9c884c
DM
44428 {
44429 "children" : [
44430 {
44431 "children" : [
44432 {
44433 "info" : {
44434 "GET" : {
e9cd3bd4 44435 "allowtoken" : 1,
5d9c884c
DM
44436 "description" : "Get replication job status.",
44437 "method" : "GET",
44438 "name" : "job_status",
44439 "parameters" : {
44440 "additionalProperties" : 0,
44441 "properties" : {
44442 "id" : {
44443 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
44444 "format" : "pve-replication-job-id",
44445 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
44446 "type" : "string"
44447 },
44448 "node" : {
44449 "description" : "The cluster node name.",
44450 "format" : "pve-node",
44451 "type" : "string",
44452 "typetext" : "<string>"
44453 }
44454 }
44455 },
44456 "permissions" : {
44457 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
44458 "user" : "all"
44459 },
44460 "protected" : 1,
44461 "proxyto" : "node",
44462 "returns" : {
5d9c884c
DM
44463 "type" : "object"
44464 }
44465 }
44466 },
44467 "leaf" : 1,
44468 "path" : "/nodes/{node}/replication/{id}/status",
44469 "text" : "status"
44470 },
44471 {
44472 "info" : {
44473 "GET" : {
e9cd3bd4 44474 "allowtoken" : 1,
5d9c884c
DM
44475 "description" : "Read replication job log.",
44476 "method" : "GET",
44477 "name" : "read_job_log",
44478 "parameters" : {
44479 "additionalProperties" : 0,
44480 "properties" : {
44481 "id" : {
44482 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
44483 "format" : "pve-replication-job-id",
44484 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
44485 "type" : "string"
44486 },
44487 "limit" : {
44488 "minimum" : 0,
44489 "optional" : 1,
44490 "type" : "integer",
44491 "typetext" : "<integer> (0 - N)"
44492 },
44493 "node" : {
44494 "description" : "The cluster node name.",
44495 "format" : "pve-node",
44496 "type" : "string",
44497 "typetext" : "<string>"
44498 },
44499 "start" : {
44500 "minimum" : 0,
44501 "optional" : 1,
44502 "type" : "integer",
44503 "typetext" : "<integer> (0 - N)"
44504 }
44505 }
44506 },
44507 "permissions" : {
44508 "description" : "Requires the VM.Audit permission on /vms/<vmid>, or 'Sys.Audit' on '/nodes/<node>'",
44509 "user" : "all"
44510 },
44511 "protected" : 1,
44512 "proxyto" : "node",
44513 "returns" : {
44514 "items" : {
44515 "properties" : {
44516 "n" : {
44517 "description" : "Line number",
44518 "type" : "integer"
44519 },
44520 "t" : {
44521 "description" : "Line text",
44522 "type" : "string"
44523 }
44524 },
44525 "type" : "object"
44526 },
44527 "type" : "array"
44528 }
44529 }
44530 },
44531 "leaf" : 1,
44532 "path" : "/nodes/{node}/replication/{id}/log",
44533 "text" : "log"
44534 },
44535 {
44536 "info" : {
44537 "POST" : {
e9cd3bd4 44538 "allowtoken" : 1,
5d9c884c
DM
44539 "description" : "Schedule replication job to start as soon as possible.",
44540 "method" : "POST",
44541 "name" : "schedule_now",
44542 "parameters" : {
44543 "additionalProperties" : 0,
44544 "properties" : {
44545 "id" : {
44546 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
44547 "format" : "pve-replication-job-id",
44548 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
44549 "type" : "string"
44550 },
44551 "node" : {
44552 "description" : "The cluster node name.",
44553 "format" : "pve-node",
44554 "type" : "string",
44555 "typetext" : "<string>"
44556 }
44557 }
44558 },
44559 "permissions" : {
44560 "check" : [
44561 "perm",
44562 "/storage",
44563 [
44564 "Datastore.Allocate"
44565 ]
44566 ]
44567 },
44568 "protected" : 1,
44569 "proxyto" : "node",
44570 "returns" : {
44571 "type" : "string"
44572 }
44573 }
44574 },
44575 "leaf" : 1,
44576 "path" : "/nodes/{node}/replication/{id}/schedule_now",
44577 "text" : "schedule_now"
44578 }
44579 ],
44580 "info" : {
44581 "GET" : {
e9cd3bd4 44582 "allowtoken" : 1,
5d9c884c
DM
44583 "description" : "Directory index.",
44584 "method" : "GET",
44585 "name" : "index",
44586 "parameters" : {
44587 "additionalProperties" : 0,
44588 "properties" : {
44589 "id" : {
44590 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
44591 "format" : "pve-replication-job-id",
44592 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
44593 "type" : "string"
44594 },
44595 "node" : {
44596 "description" : "The cluster node name.",
44597 "format" : "pve-node",
44598 "type" : "string",
44599 "typetext" : "<string>"
44600 }
44601 }
44602 },
44603 "permissions" : {
44604 "user" : "all"
44605 },
44606 "returns" : {
44607 "items" : {
44608 "properties" : {},
44609 "type" : "object"
44610 },
44611 "links" : [
44612 {
44613 "href" : "{name}",
44614 "rel" : "child"
44615 }
44616 ],
44617 "type" : "array"
44618 }
44619 }
44620 },
44621 "leaf" : 0,
44622 "path" : "/nodes/{node}/replication/{id}",
44623 "text" : "{id}"
44624 }
44625 ],
44626 "info" : {
44627 "GET" : {
e9cd3bd4 44628 "allowtoken" : 1,
5d9c884c
DM
44629 "description" : "List status of all replication jobs on this node.",
44630 "method" : "GET",
44631 "name" : "status",
44632 "parameters" : {
44633 "additionalProperties" : 0,
44634 "properties" : {
44635 "guest" : {
44636 "description" : "Only list replication jobs for this guest.",
44637 "format" : "pve-vmid",
44638 "minimum" : 1,
44639 "optional" : 1,
44640 "type" : "integer",
44641 "typetext" : "<integer> (1 - N)"
44642 },
44643 "node" : {
44644 "description" : "The cluster node name.",
44645 "format" : "pve-node",
44646 "type" : "string",
44647 "typetext" : "<string>"
44648 }
44649 }
44650 },
44651 "permissions" : {
44652 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
44653 "user" : "all"
44654 },
44655 "protected" : 1,
44656 "proxyto" : "node",
44657 "returns" : {
44658 "items" : {
44659 "properties" : {
44660 "id" : {
44661 "type" : "string"
44662 }
44663 },
44664 "type" : "object"
44665 },
44666 "links" : [
44667 {
44668 "href" : "{id}",
44669 "rel" : "child"
44670 }
44671 ],
44672 "type" : "array"
44673 }
44674 }
44675 },
44676 "leaf" : 0,
44677 "path" : "/nodes/{node}/replication",
44678 "text" : "replication"
44679 },
a9a8e3d1
DM
44680 {
44681 "children" : [
44682 {
44683 "children" : [
44684 {
44685 "info" : {
44686 "DELETE" : {
e9cd3bd4 44687 "allowtoken" : 1,
a9a8e3d1
DM
44688 "description" : "Revoke existing certificate from CA.",
44689 "method" : "DELETE",
44690 "name" : "revoke_certificate",
44691 "parameters" : {
44692 "additionalProperties" : 0,
44693 "properties" : {
44694 "node" : {
44695 "description" : "The cluster node name.",
44696 "format" : "pve-node",
44697 "type" : "string",
44698 "typetext" : "<string>"
44699 }
44700 }
44701 },
ac70d7d1
TL
44702 "permissions" : {
44703 "check" : [
44704 "perm",
44705 "/nodes/{node}",
44706 [
44707 "Sys.Modify"
44708 ]
44709 ]
44710 },
a9a8e3d1
DM
44711 "protected" : 1,
44712 "proxyto" : "node",
44713 "returns" : {
44714 "type" : "string"
44715 }
44716 },
44717 "POST" : {
e9cd3bd4 44718 "allowtoken" : 1,
a9a8e3d1
DM
44719 "description" : "Order a new certificate from ACME-compatible CA.",
44720 "method" : "POST",
44721 "name" : "new_certificate",
44722 "parameters" : {
44723 "additionalProperties" : 0,
44724 "properties" : {
44725 "force" : {
44726 "default" : 0,
44727 "description" : "Overwrite existing custom certificate.",
44728 "optional" : 1,
44729 "type" : "boolean",
44730 "typetext" : "<boolean>"
44731 },
44732 "node" : {
44733 "description" : "The cluster node name.",
44734 "format" : "pve-node",
44735 "type" : "string",
44736 "typetext" : "<string>"
44737 }
44738 }
44739 },
ac70d7d1
TL
44740 "permissions" : {
44741 "check" : [
44742 "perm",
44743 "/nodes/{node}",
44744 [
44745 "Sys.Modify"
44746 ]
44747 ]
44748 },
a9a8e3d1
DM
44749 "protected" : 1,
44750 "proxyto" : "node",
44751 "returns" : {
44752 "type" : "string"
44753 }
44754 },
44755 "PUT" : {
e9cd3bd4 44756 "allowtoken" : 1,
a9a8e3d1
DM
44757 "description" : "Renew existing certificate from CA.",
44758 "method" : "PUT",
44759 "name" : "renew_certificate",
44760 "parameters" : {
44761 "additionalProperties" : 0,
44762 "properties" : {
44763 "force" : {
44764 "default" : 0,
44765 "description" : "Force renewal even if expiry is more than 30 days away.",
44766 "optional" : 1,
44767 "type" : "boolean",
44768 "typetext" : "<boolean>"
44769 },
44770 "node" : {
44771 "description" : "The cluster node name.",
44772 "format" : "pve-node",
44773 "type" : "string",
44774 "typetext" : "<string>"
44775 }
44776 }
44777 },
ac70d7d1
TL
44778 "permissions" : {
44779 "check" : [
44780 "perm",
44781 "/nodes/{node}",
44782 [
44783 "Sys.Modify"
44784 ]
44785 ]
44786 },
a9a8e3d1
DM
44787 "protected" : 1,
44788 "proxyto" : "node",
44789 "returns" : {
44790 "type" : "string"
44791 }
44792 }
44793 },
44794 "leaf" : 1,
44795 "path" : "/nodes/{node}/certificates/acme/certificate",
44796 "text" : "certificate"
44797 }
44798 ],
44799 "info" : {
44800 "GET" : {
e9cd3bd4 44801 "allowtoken" : 1,
a9a8e3d1
DM
44802 "description" : "ACME index.",
44803 "method" : "GET",
44804 "name" : "index",
44805 "parameters" : {
44806 "additionalProperties" : 0,
44807 "properties" : {
44808 "node" : {
44809 "description" : "The cluster node name.",
44810 "format" : "pve-node",
44811 "type" : "string",
44812 "typetext" : "<string>"
44813 }
44814 }
44815 },
44816 "permissions" : {
44817 "user" : "all"
44818 },
44819 "returns" : {
44820 "items" : {
44821 "properties" : {},
44822 "type" : "object"
44823 },
44824 "links" : [
44825 {
44826 "href" : "{name}",
44827 "rel" : "child"
44828 }
44829 ],
44830 "type" : "array"
44831 }
44832 }
44833 },
44834 "leaf" : 0,
44835 "path" : "/nodes/{node}/certificates/acme",
44836 "text" : "acme"
44837 },
44838 {
44839 "info" : {
44840 "GET" : {
e9cd3bd4 44841 "allowtoken" : 1,
a9a8e3d1
DM
44842 "description" : "Get information about node's certificates.",
44843 "method" : "GET",
44844 "name" : "info",
44845 "parameters" : {
44846 "additionalProperties" : 0,
44847 "properties" : {
44848 "node" : {
44849 "description" : "The cluster node name.",
44850 "format" : "pve-node",
44851 "type" : "string",
44852 "typetext" : "<string>"
44853 }
44854 }
44855 },
44856 "permissions" : {
44857 "user" : "all"
44858 },
44859 "proxyto" : "node",
44860 "returns" : {
44861 "items" : {
44862 "properties" : {
44863 "filename" : {
44864 "optional" : 1,
44865 "type" : "string"
44866 },
44867 "fingerprint" : {
44868 "description" : "Certificate SHA 256 fingerprint.",
44869 "optional" : 1,
44870 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
44871 "type" : "string"
44872 },
44873 "issuer" : {
44874 "description" : "Certificate issuer name.",
44875 "optional" : 1,
44876 "type" : "string"
44877 },
44878 "notafter" : {
44879 "description" : "Certificate's notAfter timestamp (UNIX epoch).",
44880 "optional" : 1,
4d47f125 44881 "renderer" : "timestamp",
a9a8e3d1
DM
44882 "type" : "integer"
44883 },
44884 "notbefore" : {
44885 "description" : "Certificate's notBefore timestamp (UNIX epoch).",
44886 "optional" : 1,
4d47f125 44887 "renderer" : "timestamp",
a9a8e3d1
DM
44888 "type" : "integer"
44889 },
44890 "pem" : {
44891 "description" : "Certificate in PEM format",
44892 "format" : "pem-certificate",
44893 "optional" : 1,
44894 "type" : "string"
44895 },
1c532546
TL
44896 "public-key-bits" : {
44897 "description" : "Certificate's public key size",
44898 "optional" : 1,
44899 "type" : "integer"
44900 },
44901 "public-key-type" : {
44902 "description" : "Certificate's public key algorithm",
44903 "optional" : 1,
44904 "type" : "string"
44905 },
a9a8e3d1
DM
44906 "san" : {
44907 "description" : "List of Certificate's SubjectAlternativeName entries.",
44908 "items" : {
44909 "type" : "string"
44910 },
44911 "optional" : 1,
4d47f125 44912 "renderer" : "yaml",
a9a8e3d1
DM
44913 "type" : "array"
44914 },
44915 "subject" : {
44916 "description" : "Certificate subject name.",
44917 "optional" : 1,
44918 "type" : "string"
44919 }
44920 },
44921 "type" : "object"
44922 },
44923 "type" : "array"
44924 }
44925 }
44926 },
44927 "leaf" : 1,
44928 "path" : "/nodes/{node}/certificates/info",
44929 "text" : "info"
44930 },
44931 {
44932 "info" : {
44933 "DELETE" : {
e9cd3bd4 44934 "allowtoken" : 1,
a9a8e3d1
DM
44935 "description" : "DELETE custom certificate chain and key.",
44936 "method" : "DELETE",
44937 "name" : "remove_custom_cert",
44938 "parameters" : {
44939 "additionalProperties" : 0,
44940 "properties" : {
44941 "node" : {
44942 "description" : "The cluster node name.",
44943 "format" : "pve-node",
44944 "type" : "string",
44945 "typetext" : "<string>"
44946 },
44947 "restart" : {
44948 "default" : 0,
44949 "description" : "Restart pveproxy.",
44950 "optional" : 1,
44951 "type" : "boolean",
44952 "typetext" : "<boolean>"
44953 }
44954 }
44955 },
ac70d7d1
TL
44956 "permissions" : {
44957 "check" : [
44958 "perm",
44959 "/nodes/{node}",
44960 [
44961 "Sys.Modify"
44962 ]
44963 ]
44964 },
a9a8e3d1
DM
44965 "protected" : 1,
44966 "proxyto" : "node",
44967 "returns" : {
44968 "type" : "null"
44969 }
44970 },
44971 "POST" : {
e9cd3bd4 44972 "allowtoken" : 1,
a9a8e3d1
DM
44973 "description" : "Upload or update custom certificate chain and key.",
44974 "method" : "POST",
44975 "name" : "upload_custom_cert",
44976 "parameters" : {
44977 "additionalProperties" : 0,
44978 "properties" : {
44979 "certificates" : {
44980 "description" : "PEM encoded certificate (chain).",
44981 "format" : "pem-certificate-chain",
44982 "type" : "string",
44983 "typetext" : "<string>"
44984 },
44985 "force" : {
44986 "default" : 0,
44987 "description" : "Overwrite existing custom or ACME certificate files.",
44988 "optional" : 1,
44989 "type" : "boolean",
44990 "typetext" : "<boolean>"
44991 },
44992 "key" : {
44993 "description" : "PEM encoded private key.",
44994 "format" : "pem-string",
44995 "optional" : 1,
44996 "type" : "string",
44997 "typetext" : "<string>"
44998 },
44999 "node" : {
45000 "description" : "The cluster node name.",
45001 "format" : "pve-node",
45002 "type" : "string",
45003 "typetext" : "<string>"
45004 },
45005 "restart" : {
45006 "default" : 0,
45007 "description" : "Restart pveproxy.",
45008 "optional" : 1,
45009 "type" : "boolean",
45010 "typetext" : "<boolean>"
45011 }
45012 }
45013 },
ac70d7d1
TL
45014 "permissions" : {
45015 "check" : [
45016 "perm",
45017 "/nodes/{node}",
45018 [
45019 "Sys.Modify"
45020 ]
45021 ]
45022 },
a9a8e3d1
DM
45023 "protected" : 1,
45024 "proxyto" : "node",
45025 "returns" : {
45026 "properties" : {
45027 "filename" : {
45028 "optional" : 1,
45029 "type" : "string"
45030 },
45031 "fingerprint" : {
45032 "description" : "Certificate SHA 256 fingerprint.",
45033 "optional" : 1,
45034 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
45035 "type" : "string"
45036 },
45037 "issuer" : {
45038 "description" : "Certificate issuer name.",
45039 "optional" : 1,
45040 "type" : "string"
45041 },
45042 "notafter" : {
45043 "description" : "Certificate's notAfter timestamp (UNIX epoch).",
45044 "optional" : 1,
4d47f125 45045 "renderer" : "timestamp",
a9a8e3d1
DM
45046 "type" : "integer"
45047 },
45048 "notbefore" : {
45049 "description" : "Certificate's notBefore timestamp (UNIX epoch).",
45050 "optional" : 1,
4d47f125 45051 "renderer" : "timestamp",
a9a8e3d1
DM
45052 "type" : "integer"
45053 },
45054 "pem" : {
45055 "description" : "Certificate in PEM format",
45056 "format" : "pem-certificate",
45057 "optional" : 1,
45058 "type" : "string"
45059 },
1c532546
TL
45060 "public-key-bits" : {
45061 "description" : "Certificate's public key size",
45062 "optional" : 1,
45063 "type" : "integer"
45064 },
45065 "public-key-type" : {
45066 "description" : "Certificate's public key algorithm",
45067 "optional" : 1,
45068 "type" : "string"
45069 },
a9a8e3d1
DM
45070 "san" : {
45071 "description" : "List of Certificate's SubjectAlternativeName entries.",
45072 "items" : {
45073 "type" : "string"
45074 },
45075 "optional" : 1,
4d47f125 45076 "renderer" : "yaml",
a9a8e3d1
DM
45077 "type" : "array"
45078 },
45079 "subject" : {
45080 "description" : "Certificate subject name.",
45081 "optional" : 1,
45082 "type" : "string"
45083 }
45084 },
45085 "type" : "object"
45086 }
45087 }
45088 },
45089 "leaf" : 1,
45090 "path" : "/nodes/{node}/certificates/custom",
45091 "text" : "custom"
45092 }
45093 ],
45094 "info" : {
45095 "GET" : {
e9cd3bd4 45096 "allowtoken" : 1,
a9a8e3d1
DM
45097 "description" : "Node index.",
45098 "method" : "GET",
45099 "name" : "index",
45100 "parameters" : {
45101 "additionalProperties" : 0,
45102 "properties" : {
45103 "node" : {
45104 "description" : "The cluster node name.",
45105 "format" : "pve-node",
45106 "type" : "string",
45107 "typetext" : "<string>"
45108 }
45109 }
45110 },
45111 "permissions" : {
45112 "user" : "all"
45113 },
45114 "returns" : {
45115 "items" : {
45116 "properties" : {},
45117 "type" : "object"
45118 },
45119 "links" : [
45120 {
45121 "href" : "{name}",
45122 "rel" : "child"
45123 }
45124 ],
45125 "type" : "array"
45126 }
45127 }
45128 },
45129 "leaf" : 0,
c5aa7e14
TL
45130 "path" : "/nodes/{node}/certificates",
45131 "text" : "certificates"
45132 },
45133 {
45134 "info" : {
45135 "GET" : {
45136 "allowtoken" : 1,
45137 "description" : "Get node configuration options.",
45138 "method" : "GET",
45139 "name" : "get_config",
45140 "parameters" : {
45141 "additionalProperties" : 0,
45142 "properties" : {
45143 "node" : {
45144 "description" : "The cluster node name.",
45145 "format" : "pve-node",
45146 "type" : "string",
45147 "typetext" : "<string>"
45148 },
45149 "property" : {
45150 "default" : "all",
45151 "description" : "Return only a specific property from the node configuration.",
45152 "enum" : [
45153 "acme",
45154 "acmedomain0",
45155 "acmedomain1",
45156 "acmedomain2",
45157 "acmedomain3",
45158 "acmedomain4",
45159 "acmedomain5",
45160 "description",
45161 "startall-onboot-delay",
45162 "wakeonlan"
45163 ],
45164 "optional" : 1,
45165 "type" : "string"
45166 }
45167 }
45168 },
45169 "permissions" : {
45170 "check" : [
45171 "perm",
45172 "/",
45173 [
45174 "Sys.Audit"
45175 ]
45176 ]
45177 },
45178 "proxyto" : "node",
45179 "returns" : {
c30bb419
TL
45180 "properties" : {
45181 "acme" : {
45182 "description" : "Node specific ACME settings.",
45183 "format" : {
45184 "account" : {
45185 "default" : "default",
45186 "description" : "ACME account config file name.",
45187 "format" : "pve-configid",
45188 "format_description" : "name",
45189 "optional" : 1,
45190 "type" : "string"
45191 },
45192 "domains" : {
45193 "description" : "List of domains for this node's ACME certificate",
45194 "format" : "pve-acme-domain-list",
45195 "format_description" : "domain[;domain;...]",
45196 "optional" : 1,
45197 "type" : "string"
45198 }
45199 },
45200 "optional" : 1,
45201 "type" : "string"
45202 },
45203 "acmedomain[n]" : {
45204 "description" : "ACME domain and validation plugin",
45205 "format" : {
45206 "alias" : {
45207 "description" : "Alias for the Domain to verify ACME Challenge over DNS",
45208 "format" : "pve-acme-alias",
45209 "format_description" : "domain",
45210 "optional" : 1,
45211 "type" : "string"
45212 },
45213 "domain" : {
45214 "default_key" : 1,
45215 "description" : "domain for this node's ACME certificate",
45216 "format" : "pve-acme-domain",
45217 "format_description" : "domain",
45218 "type" : "string"
45219 },
45220 "plugin" : {
45221 "default" : "standalone",
45222 "description" : "The ACME plugin ID",
45223 "format" : "pve-configid",
45224 "format_description" : "name of the plugin configuration",
45225 "optional" : 1,
45226 "type" : "string"
45227 }
45228 },
45229 "optional" : 1,
45230 "type" : "string"
45231 },
45232 "description" : {
45233 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
45234 "maxLength" : 65536,
45235 "optional" : 1,
45236 "type" : "string"
45237 },
45238 "digest" : {
45239 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
45240 "maxLength" : 40,
45241 "optional" : 1,
45242 "type" : "string"
45243 },
45244 "startall-onboot-delay" : {
45245 "default" : 0,
45246 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
45247 "maximum" : 300,
45248 "minimum" : 0,
45249 "optional" : 1,
45250 "type" : "integer"
45251 },
45252 "wakeonlan" : {
45253 "description" : "MAC address for wake on LAN",
45254 "format" : "mac-addr",
45255 "optional" : 1,
45256 "type" : "string"
45257 }
45258 },
c5aa7e14
TL
45259 "type" : "object"
45260 }
45261 },
45262 "PUT" : {
45263 "allowtoken" : 1,
45264 "description" : "Set node configuration options.",
45265 "method" : "PUT",
45266 "name" : "set_options",
45267 "parameters" : {
45268 "additionalProperties" : 0,
45269 "properties" : {
45270 "acme" : {
45271 "description" : "Node specific ACME settings.",
45272 "format" : {
45273 "account" : {
45274 "default" : "default",
45275 "description" : "ACME account config file name.",
45276 "format" : "pve-configid",
45277 "format_description" : "name",
45278 "optional" : 1,
45279 "type" : "string"
45280 },
45281 "domains" : {
45282 "description" : "List of domains for this node's ACME certificate",
45283 "format" : "pve-acme-domain-list",
45284 "format_description" : "domain[;domain;...]",
45285 "optional" : 1,
45286 "type" : "string"
45287 }
45288 },
45289 "optional" : 1,
45290 "type" : "string",
45291 "typetext" : "[account=<name>] [,domains=<domain[;domain;...]>]"
45292 },
45293 "acmedomain[n]" : {
45294 "description" : "ACME domain and validation plugin",
45295 "format" : {
45296 "alias" : {
45297 "description" : "Alias for the Domain to verify ACME Challenge over DNS",
ac70d7d1 45298 "format" : "pve-acme-alias",
c5aa7e14
TL
45299 "format_description" : "domain",
45300 "optional" : 1,
45301 "type" : "string"
45302 },
45303 "domain" : {
45304 "default_key" : 1,
45305 "description" : "domain for this node's ACME certificate",
45306 "format" : "pve-acme-domain",
45307 "format_description" : "domain",
45308 "type" : "string"
45309 },
45310 "plugin" : {
45311 "default" : "standalone",
45312 "description" : "The ACME plugin ID",
45313 "format" : "pve-configid",
45314 "format_description" : "name of the plugin configuration",
45315 "optional" : 1,
45316 "type" : "string"
45317 }
45318 },
45319 "optional" : 1,
45320 "type" : "string",
45321 "typetext" : "[domain=]<domain> [,alias=<domain>] [,plugin=<name of the plugin configuration>]"
45322 },
45323 "delete" : {
45324 "description" : "A list of settings you want to delete.",
45325 "format" : "pve-configid-list",
45326 "optional" : 1,
45327 "type" : "string",
45328 "typetext" : "<string>"
45329 },
45330 "description" : {
0695fdaf
TL
45331 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
45332 "maxLength" : 65536,
c5aa7e14
TL
45333 "optional" : 1,
45334 "type" : "string",
45335 "typetext" : "<string>"
45336 },
45337 "digest" : {
45338 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
45339 "maxLength" : 40,
45340 "optional" : 1,
45341 "type" : "string",
45342 "typetext" : "<string>"
45343 },
45344 "node" : {
45345 "description" : "The cluster node name.",
45346 "format" : "pve-node",
45347 "type" : "string",
45348 "typetext" : "<string>"
45349 },
45350 "startall-onboot-delay" : {
45351 "default" : 0,
45352 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
45353 "maximum" : 300,
45354 "minimum" : 0,
45355 "optional" : 1,
45356 "type" : "integer",
45357 "typetext" : "<integer> (0 - 300)"
45358 },
45359 "wakeonlan" : {
45360 "description" : "MAC address for wake on LAN",
45361 "format" : "mac-addr",
45362 "optional" : 1,
45363 "type" : "string",
45364 "typetext" : "<string>"
45365 }
45366 }
45367 },
45368 "permissions" : {
45369 "check" : [
45370 "perm",
45371 "/",
45372 [
45373 "Sys.Modify"
45374 ]
45375 ]
45376 },
45377 "protected" : 1,
45378 "proxyto" : "node",
45379 "returns" : {
45380 "type" : "null"
45381 }
45382 }
45383 },
45384 "leaf" : 1,
45385 "path" : "/nodes/{node}/config",
45386 "text" : "config"
45387 },
45388 {
45389 "children" : [
45390 {
45391 "children" : [
45392 {
45393 "children" : [
45394 {
45395 "info" : {
45396 "GET" : {
45397 "allowtoken" : 1,
45398 "description" : "List zone content.",
45399 "method" : "GET",
45400 "name" : "index",
45401 "parameters" : {
45402 "additionalProperties" : 0,
45403 "properties" : {
45404 "node" : {
45405 "description" : "The cluster node name.",
45406 "format" : "pve-node",
45407 "type" : "string",
45408 "typetext" : "<string>"
45409 },
45410 "zone" : {
45411 "description" : "The SDN zone object identifier.",
45412 "format" : "pve-sdn-zone-id",
45413 "type" : "string",
45414 "typetext" : "<string>"
45415 }
45416 }
45417 },
45418 "permissions" : {
45419 "check" : [
45420 "perm",
45421 "/sdn/zones/{zone}",
45422 [
45423 "SDN.Audit"
45424 ],
45425 "any",
45426 1
45427 ]
45428 },
45429 "protected" : 1,
45430 "proxyto" : "node",
45431 "returns" : {
45432 "items" : {
45433 "properties" : {
45434 "status" : {
45435 "description" : "Status.",
45436 "optional" : 1,
45437 "type" : "string"
45438 },
45439 "statusmsg" : {
45440 "description" : "Status details",
45441 "optional" : 1,
45442 "type" : "string"
45443 },
45444 "vnet" : {
45445 "description" : "Vnet identifier.",
45446 "type" : "string"
45447 }
45448 },
45449 "type" : "object"
45450 },
45451 "links" : [
45452 {
45453 "href" : "{vnet}",
45454 "rel" : "child"
45455 }
45456 ],
45457 "type" : "array"
45458 }
45459 }
45460 },
45461 "leaf" : 1,
45462 "path" : "/nodes/{node}/sdn/zones/{zone}/content",
45463 "text" : "content"
45464 }
45465 ],
45466 "info" : {
45467 "GET" : {
45468 "allowtoken" : 1,
45469 "description" : "",
45470 "method" : "GET",
45471 "name" : "diridx",
45472 "parameters" : {
45473 "additionalProperties" : 0,
45474 "properties" : {
45475 "node" : {
45476 "description" : "The cluster node name.",
45477 "format" : "pve-node",
45478 "type" : "string",
45479 "typetext" : "<string>"
45480 },
45481 "zone" : {
45482 "description" : "The SDN zone object identifier.",
45483 "format" : "pve-sdn-zone-id",
45484 "type" : "string",
45485 "typetext" : "<string>"
45486 }
45487 }
45488 },
45489 "permissions" : {
45490 "check" : [
45491 "perm",
45492 "/sdn/zones/{zone}",
45493 [
45494 "SDN.Audit"
45495 ],
45496 "any",
45497 1
45498 ]
45499 },
45500 "returns" : {
45501 "items" : {
45502 "properties" : {
45503 "subdir" : {
45504 "type" : "string"
45505 }
45506 },
45507 "type" : "object"
45508 },
45509 "links" : [
45510 {
45511 "href" : "{subdir}",
45512 "rel" : "child"
45513 }
45514 ],
45515 "type" : "array"
45516 }
45517 }
45518 },
45519 "leaf" : 0,
45520 "path" : "/nodes/{node}/sdn/zones/{zone}",
45521 "text" : "{zone}"
45522 }
45523 ],
45524 "info" : {
45525 "GET" : {
45526 "allowtoken" : 1,
45527 "description" : "Get status for all zones.",
45528 "method" : "GET",
45529 "name" : "index",
45530 "parameters" : {
45531 "additionalProperties" : 0,
45532 "properties" : {
45533 "node" : {
45534 "description" : "The cluster node name.",
45535 "format" : "pve-node",
45536 "type" : "string",
45537 "typetext" : "<string>"
45538 }
45539 }
45540 },
45541 "permissions" : {
45542 "description" : "Only list entries where you have 'SDN.Audit'",
45543 "user" : "all"
45544 },
45545 "protected" : 1,
45546 "proxyto" : "node",
45547 "returns" : {
45548 "items" : {
45549 "properties" : {
45550 "status" : {
45551 "description" : "Status of zone",
ac70d7d1
TL
45552 "enum" : [
45553 "available",
45554 "pending",
45555 "error"
45556 ],
c5aa7e14
TL
45557 "type" : "string"
45558 },
45559 "zone" : {
45560 "description" : "The SDN zone object identifier.",
45561 "format" : "pve-sdn-zone-id",
45562 "type" : "string"
45563 }
45564 },
45565 "type" : "object"
45566 },
45567 "links" : [
45568 {
45569 "href" : "{zone}",
45570 "rel" : "child"
45571 }
45572 ],
45573 "type" : "array"
45574 }
45575 }
45576 },
45577 "leaf" : 0,
45578 "path" : "/nodes/{node}/sdn/zones",
45579 "text" : "zones"
45580 }
45581 ],
45582 "info" : {
45583 "GET" : {
45584 "allowtoken" : 1,
45585 "description" : "SDN index.",
45586 "method" : "GET",
45587 "name" : "sdnindex",
45588 "parameters" : {
45589 "additionalProperties" : 0,
45590 "properties" : {
45591 "node" : {
45592 "description" : "The cluster node name.",
45593 "format" : "pve-node",
45594 "type" : "string",
45595 "typetext" : "<string>"
45596 }
45597 }
45598 },
45599 "permissions" : {
45600 "user" : "all"
45601 },
45602 "returns" : {
45603 "items" : {
45604 "properties" : {},
45605 "type" : "object"
45606 },
45607 "links" : [
45608 {
45609 "href" : "{name}",
45610 "rel" : "child"
45611 }
45612 ],
45613 "type" : "array"
45614 }
45615 }
45616 },
45617 "leaf" : 0,
45618 "path" : "/nodes/{node}/sdn",
45619 "text" : "sdn"
a9a8e3d1 45620 },
56122987 45621 {
56122987
DM
45622 "info" : {
45623 "GET" : {
e9cd3bd4 45624 "allowtoken" : 1,
44660702
DM
45625 "description" : "API version details",
45626 "method" : "GET",
45627 "name" : "version",
56122987 45628 "parameters" : {
44660702 45629 "additionalProperties" : 0,
56122987
DM
45630 "properties" : {
45631 "node" : {
56122987 45632 "description" : "The cluster node name.",
44660702 45633 "format" : "pve-node",
013dc89f
DM
45634 "type" : "string",
45635 "typetext" : "<string>"
56122987 45636 }
44660702 45637 }
56122987 45638 },
56122987 45639 "permissions" : {
7aacca6f 45640 "user" : "all"
56122987 45641 },
56122987 45642 "proxyto" : "node",
56122987 45643 "returns" : {
56122987 45644 "properties" : {
44660702 45645 "release" : {
1e3f8156 45646 "description" : "The current installed Proxmox VE Release",
56122987
DM
45647 "type" : "string"
45648 },
44660702 45649 "repoid" : {
1e3f8156 45650 "description" : "The short git commit hash ID from which this version was build",
7aacca6f
DM
45651 "type" : "string"
45652 },
45653 "version" : {
1e3f8156 45654 "description" : "The current installed pve-manager package version",
7aacca6f
DM
45655 "type" : "string"
45656 }
44660702
DM
45657 },
45658 "type" : "object"
7aacca6f 45659 }
56122987
DM
45660 }
45661 },
56122987 45662 "leaf" : 1,
44660702
DM
45663 "path" : "/nodes/{node}/version",
45664 "text" : "version"
56122987
DM
45665 },
45666 {
56122987
DM
45667 "info" : {
45668 "GET" : {
e9cd3bd4 45669 "allowtoken" : 1,
7aacca6f 45670 "description" : "Read node status",
44660702 45671 "method" : "GET",
7aacca6f 45672 "name" : "status",
56122987 45673 "parameters" : {
44660702 45674 "additionalProperties" : 0,
56122987
DM
45675 "properties" : {
45676 "node" : {
7aacca6f 45677 "description" : "The cluster node name.",
44660702 45678 "format" : "pve-node",
013dc89f
DM
45679 "type" : "string",
45680 "typetext" : "<string>"
56122987 45681 }
44660702 45682 }
56122987 45683 },
56122987
DM
45684 "permissions" : {
45685 "check" : [
45686 "perm",
45687 "/nodes/{node}",
45688 [
45689 "Sys.Audit"
45690 ]
45691 ]
44660702
DM
45692 },
45693 "proxyto" : "node",
45694 "returns" : {
44660702 45695 "type" : "object"
7aacca6f
DM
45696 }
45697 },
45698 "POST" : {
e9cd3bd4 45699 "allowtoken" : 1,
44660702
DM
45700 "description" : "Reboot or shutdown a node.",
45701 "method" : "POST",
7aacca6f 45702 "name" : "node_cmd",
56122987 45703 "parameters" : {
44660702 45704 "additionalProperties" : 0,
56122987 45705 "properties" : {
7aacca6f
DM
45706 "command" : {
45707 "description" : "Specify the command.",
56122987 45708 "enum" : [
7aacca6f
DM
45709 "reboot",
45710 "shutdown"
56122987
DM
45711 ],
45712 "type" : "string"
44660702
DM
45713 },
45714 "node" : {
45715 "description" : "The cluster node name.",
45716 "format" : "pve-node",
013dc89f
DM
45717 "type" : "string",
45718 "typetext" : "<string>"
56122987 45719 }
44660702 45720 }
7aacca6f 45721 },
7aacca6f
DM
45722 "permissions" : {
45723 "check" : [
45724 "perm",
45725 "/nodes/{node}",
45726 [
45727 "Sys.PowerMgmt"
45728 ]
45729 ]
45730 },
44660702 45731 "protected" : 1,
7aacca6f 45732 "proxyto" : "node",
7aacca6f
DM
45733 "returns" : {
45734 "type" : "null"
56122987
DM
45735 }
45736 }
45737 },
7aacca6f 45738 "leaf" : 1,
44660702
DM
45739 "path" : "/nodes/{node}/status",
45740 "text" : "status"
56122987
DM
45741 },
45742 {
56122987
DM
45743 "info" : {
45744 "GET" : {
e9cd3bd4 45745 "allowtoken" : 1,
44660702
DM
45746 "description" : "Read tap/vm network device interface counters",
45747 "method" : "GET",
45748 "name" : "netstat",
45749 "parameters" : {
45750 "additionalProperties" : 0,
45751 "properties" : {
45752 "node" : {
45753 "description" : "The cluster node name.",
45754 "format" : "pve-node",
013dc89f
DM
45755 "type" : "string",
45756 "typetext" : "<string>"
44660702 45757 }
56122987
DM
45758 }
45759 },
45760 "permissions" : {
45761 "check" : [
45762 "perm",
45763 "/nodes/{node}",
45764 [
7aacca6f 45765 "Sys.Audit"
56122987
DM
45766 ]
45767 ]
45768 },
7aacca6f 45769 "proxyto" : "node",
44660702
DM
45770 "returns" : {
45771 "items" : {
45772 "properties" : {},
45773 "type" : "object"
45774 },
45775 "type" : "array"
45776 }
7aacca6f
DM
45777 }
45778 },
44660702
DM
45779 "leaf" : 1,
45780 "path" : "/nodes/{node}/netstat",
7aacca6f
DM
45781 "text" : "netstat"
45782 },
45783 {
45784 "info" : {
45785 "POST" : {
e9cd3bd4 45786 "allowtoken" : 1,
159464a9 45787 "description" : "Execute multiple commands in order, root only.",
7aacca6f 45788 "method" : "POST",
7aacca6f 45789 "name" : "execute",
56122987
DM
45790 "parameters" : {
45791 "additionalProperties" : 0,
45792 "properties" : {
7aacca6f
DM
45793 "commands" : {
45794 "description" : "JSON encoded array of commands.",
de786b48 45795 "format" : "pve-command-batch",
013dc89f 45796 "type" : "string",
de786b48 45797 "typetext" : "<string>",
4a407cfd 45798 "verbose_description" : "JSON encoded array of commands, where each command is an object with the following properties:\n args: <object>\n\t A set of parameter names and their values.\n\n method: (GET|POST|PUT|DELETE)\n\t A method related to the API endpoint (GET, POST etc.).\n\n path: <string>\n\t A relative path to an API endpoint on this node.\n\n"
56122987
DM
45799 },
45800 "node" : {
44660702 45801 "description" : "The cluster node name.",
56122987 45802 "format" : "pve-node",
013dc89f
DM
45803 "type" : "string",
45804 "typetext" : "<string>"
56122987
DM
45805 }
45806 }
44660702 45807 },
44660702
DM
45808 "protected" : 1,
45809 "proxyto" : "node",
45810 "returns" : {
de786b48
TL
45811 "items" : {
45812 "properties" : {},
45813 "type" : "object"
45814 },
44660702 45815 "type" : "array"
56122987
DM
45816 }
45817 }
45818 },
56122987 45819 "leaf" : 1,
44660702
DM
45820 "path" : "/nodes/{node}/execute",
45821 "text" : "execute"
56122987 45822 },
5f26e15b
TL
45823 {
45824 "info" : {
45825 "POST" : {
e9cd3bd4 45826 "allowtoken" : 1,
5f26e15b
TL
45827 "description" : "Try to wake a node via 'wake on LAN' network packet.",
45828 "method" : "POST",
45829 "name" : "wakeonlan",
45830 "parameters" : {
45831 "additionalProperties" : 0,
45832 "properties" : {
45833 "node" : {
45834 "description" : "target node for wake on LAN packet",
45835 "format" : "pve-node",
45836 "type" : "string",
45837 "typetext" : "<string>"
45838 }
45839 }
45840 },
45841 "permissions" : {
45842 "check" : [
45843 "perm",
45844 "/nodes/{node}",
45845 [
45846 "Sys.PowerMgmt"
45847 ]
45848 ]
45849 },
45850 "protected" : 1,
45851 "returns" : {
45852 "description" : "MAC address used to assemble the WoL magic packet.",
45853 "format" : "mac-addr",
45854 "type" : "string"
45855 }
45856 }
45857 },
45858 "leaf" : 1,
45859 "path" : "/nodes/{node}/wakeonlan",
45860 "text" : "wakeonlan"
45861 },
56122987
DM
45862 {
45863 "info" : {
7aacca6f 45864 "GET" : {
e9cd3bd4 45865 "allowtoken" : 1,
44660702
DM
45866 "description" : "Read node RRD statistics (returns PNG)",
45867 "method" : "GET",
7aacca6f 45868 "name" : "rrd",
56122987 45869 "parameters" : {
7aacca6f 45870 "additionalProperties" : 0,
56122987 45871 "properties" : {
44660702
DM
45872 "cf" : {
45873 "description" : "The RRD consolidation function",
45874 "enum" : [
45875 "AVERAGE",
45876 "MAX"
45877 ],
45878 "optional" : 1,
45879 "type" : "string"
45880 },
7aacca6f 45881 "ds" : {
7aacca6f 45882 "description" : "The list of datasources you want to display.",
44660702 45883 "format" : "pve-configid-list",
013dc89f
DM
45884 "type" : "string",
45885 "typetext" : "<string>"
44660702
DM
45886 },
45887 "node" : {
45888 "description" : "The cluster node name.",
45889 "format" : "pve-node",
013dc89f
DM
45890 "type" : "string",
45891 "typetext" : "<string>"
7aacca6f
DM
45892 },
45893 "timeframe" : {
45894 "description" : "Specify the time frame you are interested in.",
45895 "enum" : [
45896 "hour",
45897 "day",
45898 "week",
45899 "month",
45900 "year"
45901 ],
45902 "type" : "string"
56122987 45903 }
7aacca6f 45904 }
56122987 45905 },
56122987 45906 "permissions" : {
56122987
DM
45907 "check" : [
45908 "perm",
45909 "/nodes/{node}",
45910 [
7aacca6f 45911 "Sys.Audit"
56122987
DM
45912 ]
45913 ]
45914 },
7aacca6f 45915 "protected" : 1,
56122987 45916 "returns" : {
56122987 45917 "properties" : {
7aacca6f 45918 "filename" : {
56122987
DM
45919 "type" : "string"
45920 }
44660702
DM
45921 },
45922 "type" : "object"
45923 }
56122987
DM
45924 }
45925 },
44660702 45926 "leaf" : 1,
7aacca6f 45927 "path" : "/nodes/{node}/rrd",
44660702 45928 "text" : "rrd"
56122987
DM
45929 },
45930 {
45931 "info" : {
7aacca6f 45932 "GET" : {
e9cd3bd4 45933 "allowtoken" : 1,
44660702
DM
45934 "description" : "Read node RRD statistics",
45935 "method" : "GET",
7aacca6f 45936 "name" : "rrddata",
56122987 45937 "parameters" : {
44660702 45938 "additionalProperties" : 0,
56122987 45939 "properties" : {
7aacca6f 45940 "cf" : {
7aacca6f
DM
45941 "description" : "The RRD consolidation function",
45942 "enum" : [
45943 "AVERAGE",
45944 "MAX"
44660702
DM
45945 ],
45946 "optional" : 1,
45947 "type" : "string"
56122987
DM
45948 },
45949 "node" : {
44660702 45950 "description" : "The cluster node name.",
56122987 45951 "format" : "pve-node",
013dc89f
DM
45952 "type" : "string",
45953 "typetext" : "<string>"
56122987 45954 },
7aacca6f 45955 "timeframe" : {
7aacca6f
DM
45956 "description" : "Specify the time frame you are interested in.",
45957 "enum" : [
45958 "hour",
45959 "day",
45960 "week",
45961 "month",
45962 "year"
44660702
DM
45963 ],
45964 "type" : "string"
56122987 45965 }
56122987
DM
45966 }
45967 },
56122987
DM
45968 "permissions" : {
45969 "check" : [
45970 "perm",
45971 "/nodes/{node}",
45972 [
44660702 45973 "Sys.Audit"
56122987
DM
45974 ]
45975 ]
7aacca6f 45976 },
44660702 45977 "protected" : 1,
56122987 45978 "returns" : {
7aacca6f 45979 "items" : {
44660702 45980 "properties" : {},
7aacca6f
DM
45981 "type" : "object"
45982 },
45983 "type" : "array"
44660702
DM
45984 }
45985 }
45986 },
45987 "leaf" : 1,
45988 "path" : "/nodes/{node}/rrddata",
45989 "text" : "rrddata"
45990 },
45991 {
45992 "info" : {
45993 "GET" : {
e9cd3bd4 45994 "allowtoken" : 1,
44660702
DM
45995 "description" : "Read system log",
45996 "method" : "GET",
45997 "name" : "syslog",
56122987 45998 "parameters" : {
44660702 45999 "additionalProperties" : 0,
56122987 46000 "properties" : {
44660702
DM
46001 "limit" : {
46002 "minimum" : 0,
7aacca6f 46003 "optional" : 1,
4bd7df8b 46004 "type" : "integer",
013dc89f 46005 "typetext" : "<integer> (0 - N)"
7aacca6f 46006 },
56122987 46007 "node" : {
7aacca6f 46008 "description" : "The cluster node name.",
44660702 46009 "format" : "pve-node",
013dc89f
DM
46010 "type" : "string",
46011 "typetext" : "<string>"
56122987 46012 },
35a75dd3
DM
46013 "service" : {
46014 "description" : "Service ID",
46015 "maxLength" : 128,
46016 "optional" : 1,
46017 "type" : "string",
46018 "typetext" : "<string>"
46019 },
44660702
DM
46020 "since" : {
46021 "description" : "Display all log since this date-time string.",
46022 "optional" : 1,
46023 "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
46024 "type" : "string"
46025 },
46026 "start" : {
7aacca6f
DM
46027 "minimum" : 0,
46028 "optional" : 1,
4bd7df8b 46029 "type" : "integer",
013dc89f 46030 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
46031 },
46032 "until" : {
46033 "description" : "Display all log until this date-time string.",
7aacca6f 46034 "optional" : 1,
44660702 46035 "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
56122987
DM
46036 "type" : "string"
46037 }
44660702 46038 }
56122987 46039 },
44660702
DM
46040 "permissions" : {
46041 "check" : [
46042 "perm",
46043 "/nodes/{node}",
46044 [
46045 "Sys.Syslog"
46046 ]
46047 ]
46048 },
46049 "protected" : 1,
46050 "proxyto" : "node",
46051 "returns" : {
46052 "items" : {
46053 "properties" : {
46054 "n" : {
46055 "description" : "Line number",
46056 "type" : "integer"
46057 },
46058 "t" : {
46059 "description" : "Line text",
46060 "type" : "string"
46061 }
46062 },
46063 "type" : "object"
46064 },
46065 "type" : "array"
46066 }
56122987
DM
46067 }
46068 },
44660702
DM
46069 "leaf" : 1,
46070 "path" : "/nodes/{node}/syslog",
7aacca6f 46071 "text" : "syslog"
56122987 46072 },
bb4c8cf8
TL
46073 {
46074 "info" : {
46075 "GET" : {
e9cd3bd4 46076 "allowtoken" : 1,
bb4c8cf8
TL
46077 "description" : "Read Journal",
46078 "method" : "GET",
46079 "name" : "journal",
46080 "parameters" : {
46081 "additionalProperties" : 0,
46082 "properties" : {
46083 "endcursor" : {
46084 "description" : "End before the given Cursor. Conflicts with 'until'",
46085 "optional" : 1,
46086 "type" : "string",
46087 "typetext" : "<string>"
46088 },
46089 "lastentries" : {
46090 "description" : "Limit to the last X lines. Conflicts with a range.",
46091 "minimum" : 0,
46092 "optional" : 1,
46093 "type" : "integer",
46094 "typetext" : "<integer> (0 - N)"
46095 },
46096 "node" : {
46097 "description" : "The cluster node name.",
46098 "format" : "pve-node",
46099 "type" : "string",
46100 "typetext" : "<string>"
46101 },
46102 "since" : {
46103 "description" : "Display all log since this UNIX epoch. Conflicts with 'startcursor'.",
46104 "minimum" : 0,
46105 "optional" : 1,
46106 "type" : "integer",
46107 "typetext" : "<integer> (0 - N)"
46108 },
46109 "startcursor" : {
46110 "description" : "Start after the given Cursor. Conflicts with 'since'",
46111 "optional" : 1,
46112 "type" : "string",
46113 "typetext" : "<string>"
46114 },
46115 "until" : {
46116 "description" : "Display all log until this UNIX epoch. Conflicts with 'endcursor'.",
46117 "minimum" : 0,
46118 "optional" : 1,
46119 "type" : "integer",
46120 "typetext" : "<integer> (0 - N)"
46121 }
46122 }
46123 },
46124 "permissions" : {
46125 "check" : [
46126 "perm",
46127 "/nodes/{node}",
46128 [
46129 "Sys.Syslog"
46130 ]
46131 ]
46132 },
46133 "protected" : 1,
46134 "proxyto" : "node",
46135 "returns" : {
46136 "items" : {
46137 "type" : "string"
46138 },
46139 "type" : "array"
46140 }
46141 }
46142 },
46143 "leaf" : 1,
46144 "path" : "/nodes/{node}/journal",
46145 "text" : "journal"
46146 },
56122987 46147 {
56122987
DM
46148 "info" : {
46149 "POST" : {
e9cd3bd4 46150 "allowtoken" : 1,
44660702
DM
46151 "description" : "Creates a VNC Shell proxy.",
46152 "method" : "POST",
46153 "name" : "vncshell",
46154 "parameters" : {
46155 "additionalProperties" : 0,
56122987 46156 "properties" : {
95895385
TL
46157 "cmd" : {
46158 "default" : "login",
46159 "description" : "Run specific command or default to login.",
46160 "enum" : [
9d2e98ed 46161 "upgrade",
159464a9
TL
46162 "ceph_install",
46163 "login"
95895385
TL
46164 ],
46165 "optional" : 1,
46166 "type" : "string"
46167 },
4772952b
TL
46168 "cmd-opts" : {
46169 "default" : "",
46170 "description" : "Add parameters to a command. Encoded as null terminated strings.",
46171 "optional" : 1,
46172 "requires" : "cmd",
46173 "type" : "string",
46174 "typetext" : "<string>"
46175 },
5d9c884c
DM
46176 "height" : {
46177 "description" : "sets the height of the console in pixels.",
46178 "maximum" : 2160,
46179 "minimum" : 16,
46180 "optional" : 1,
46181 "type" : "integer",
46182 "typetext" : "<integer> (16 - 2160)"
46183 },
44660702
DM
46184 "node" : {
46185 "description" : "The cluster node name.",
46186 "format" : "pve-node",
013dc89f
DM
46187 "type" : "string",
46188 "typetext" : "<string>"
7aacca6f 46189 },
44660702
DM
46190 "websocket" : {
46191 "description" : "use websocket instead of standard vnc.",
46192 "optional" : 1,
013dc89f
DM
46193 "type" : "boolean",
46194 "typetext" : "<boolean>"
5d9c884c
DM
46195 },
46196 "width" : {
46197 "description" : "sets the width of the console in pixels.",
46198 "maximum" : 4096,
46199 "minimum" : 16,
46200 "optional" : 1,
46201 "type" : "integer",
46202 "typetext" : "<integer> (16 - 4096)"
56122987 46203 }
44660702 46204 }
56122987 46205 },
56122987
DM
46206 "permissions" : {
46207 "check" : [
46208 "perm",
7aacca6f 46209 "/nodes/{node}",
56122987 46210 [
7aacca6f 46211 "Sys.Console"
56122987 46212 ]
44660702
DM
46213 ],
46214 "description" : "Restricted to users on realm 'pam'"
56122987 46215 },
44660702
DM
46216 "protected" : 1,
46217 "returns" : {
46218 "additionalProperties" : 0,
56122987 46219 "properties" : {
44660702
DM
46220 "cert" : {
46221 "type" : "string"
7aacca6f 46222 },
44660702
DM
46223 "port" : {
46224 "type" : "integer"
7aacca6f 46225 },
44660702
DM
46226 "ticket" : {
46227 "type" : "string"
46228 },
46229 "upid" : {
46230 "type" : "string"
46231 },
46232 "user" : {
46233 "type" : "string"
56122987 46234 }
44660702
DM
46235 }
46236 }
56122987
DM
46237 }
46238 },
7aacca6f 46239 "leaf" : 1,
44660702
DM
46240 "path" : "/nodes/{node}/vncshell",
46241 "text" : "vncshell"
56122987 46242 },
35a75dd3
DM
46243 {
46244 "info" : {
46245 "POST" : {
e9cd3bd4 46246 "allowtoken" : 1,
35a75dd3
DM
46247 "description" : "Creates a VNC Shell proxy.",
46248 "method" : "POST",
46249 "name" : "termproxy",
46250 "parameters" : {
46251 "additionalProperties" : 0,
46252 "properties" : {
95895385
TL
46253 "cmd" : {
46254 "default" : "login",
46255 "description" : "Run specific command or default to login.",
46256 "enum" : [
9d2e98ed 46257 "upgrade",
159464a9
TL
46258 "ceph_install",
46259 "login"
95895385
TL
46260 ],
46261 "optional" : 1,
46262 "type" : "string"
46263 },
4772952b
TL
46264 "cmd-opts" : {
46265 "default" : "",
46266 "description" : "Add parameters to a command. Encoded as null terminated strings.",
46267 "optional" : 1,
46268 "requires" : "cmd",
46269 "type" : "string",
46270 "typetext" : "<string>"
46271 },
35a75dd3
DM
46272 "node" : {
46273 "description" : "The cluster node name.",
46274 "format" : "pve-node",
46275 "type" : "string",
46276 "typetext" : "<string>"
35a75dd3
DM
46277 }
46278 }
46279 },
46280 "permissions" : {
46281 "check" : [
46282 "perm",
46283 "/nodes/{node}",
46284 [
46285 "Sys.Console"
46286 ]
46287 ],
46288 "description" : "Restricted to users on realm 'pam'"
46289 },
46290 "protected" : 1,
46291 "returns" : {
46292 "additionalProperties" : 0,
46293 "properties" : {
46294 "port" : {
46295 "type" : "integer"
46296 },
46297 "ticket" : {
46298 "type" : "string"
46299 },
46300 "upid" : {
46301 "type" : "string"
46302 },
46303 "user" : {
46304 "type" : "string"
46305 }
46306 }
46307 }
46308 }
46309 },
46310 "leaf" : 1,
46311 "path" : "/nodes/{node}/termproxy",
46312 "text" : "termproxy"
46313 },
56122987
DM
46314 {
46315 "info" : {
46316 "GET" : {
e9cd3bd4 46317 "allowtoken" : 1,
0695fdaf 46318 "description" : "Opens a websocket for VNC traffic.",
44660702
DM
46319 "method" : "GET",
46320 "name" : "vncwebsocket",
56122987 46321 "parameters" : {
44660702 46322 "additionalProperties" : 0,
56122987
DM
46323 "properties" : {
46324 "node" : {
46325 "description" : "The cluster node name.",
44660702 46326 "format" : "pve-node",
013dc89f
DM
46327 "type" : "string",
46328 "typetext" : "<string>"
7aacca6f
DM
46329 },
46330 "port" : {
7aacca6f
DM
46331 "description" : "Port number returned by previous vncproxy call.",
46332 "maximum" : 5999,
44660702 46333 "minimum" : 5900,
4bd7df8b 46334 "type" : "integer",
013dc89f 46335 "typetext" : "<integer> (5900 - 5999)"
44660702
DM
46336 },
46337 "vncticket" : {
46338 "description" : "Ticket from previous call to vncproxy.",
46339 "maxLength" : 512,
013dc89f
DM
46340 "type" : "string",
46341 "typetext" : "<string>"
56122987 46342 }
44660702 46343 }
56122987 46344 },
56122987
DM
46345 "permissions" : {
46346 "check" : [
46347 "perm",
46348 "/nodes/{node}",
46349 [
7aacca6f 46350 "Sys.Console"
56122987 46351 ]
44660702
DM
46352 ],
46353 "description" : "Restricted to users on realm 'pam'. You also need to pass a valid ticket (vncticket)."
46354 },
46355 "returns" : {
46356 "properties" : {
46357 "port" : {
46358 "type" : "string"
46359 }
46360 },
46361 "type" : "object"
7aacca6f 46362 }
56122987
DM
46363 }
46364 },
44660702 46365 "leaf" : 1,
7aacca6f 46366 "path" : "/nodes/{node}/vncwebsocket",
44660702 46367 "text" : "vncwebsocket"
56122987
DM
46368 },
46369 {
46370 "info" : {
46371 "POST" : {
e9cd3bd4 46372 "allowtoken" : 1,
44660702 46373 "description" : "Creates a SPICE shell.",
7aacca6f 46374 "method" : "POST",
44660702 46375 "name" : "spiceshell",
56122987 46376 "parameters" : {
7aacca6f 46377 "additionalProperties" : 0,
56122987 46378 "properties" : {
95895385
TL
46379 "cmd" : {
46380 "default" : "login",
46381 "description" : "Run specific command or default to login.",
46382 "enum" : [
9d2e98ed 46383 "upgrade",
159464a9
TL
46384 "ceph_install",
46385 "login"
95895385
TL
46386 ],
46387 "optional" : 1,
46388 "type" : "string"
46389 },
4772952b
TL
46390 "cmd-opts" : {
46391 "default" : "",
46392 "description" : "Add parameters to a command. Encoded as null terminated strings.",
46393 "optional" : 1,
46394 "requires" : "cmd",
46395 "type" : "string",
46396 "typetext" : "<string>"
46397 },
7aacca6f 46398 "node" : {
44660702 46399 "description" : "The cluster node name.",
56122987 46400 "format" : "pve-node",
013dc89f
DM
46401 "type" : "string",
46402 "typetext" : "<string>"
7aacca6f 46403 },
44660702 46404 "proxy" : {
4d47f125 46405 "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
46406 "format" : "address",
46407 "optional" : 1,
013dc89f
DM
46408 "type" : "string",
46409 "typetext" : "<string>"
56122987 46410 }
7aacca6f 46411 }
56122987 46412 },
56122987
DM
46413 "permissions" : {
46414 "check" : [
46415 "perm",
7aacca6f 46416 "/nodes/{node}",
56122987 46417 [
7aacca6f 46418 "Sys.Console"
56122987 46419 ]
7aacca6f
DM
46420 ],
46421 "description" : "Restricted to users on realm 'pam'"
44660702
DM
46422 },
46423 "protected" : 1,
46424 "proxyto" : "node",
46425 "returns" : {
46426 "additionalProperties" : 1,
46427 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
46428 "properties" : {
46429 "host" : {
46430 "type" : "string"
46431 },
46432 "password" : {
46433 "type" : "string"
46434 },
46435 "proxy" : {
46436 "type" : "string"
46437 },
46438 "tls-port" : {
46439 "type" : "integer"
46440 },
46441 "type" : {
46442 "type" : "string"
46443 }
46444 }
7aacca6f 46445 }
56122987
DM
46446 }
46447 },
56122987 46448 "leaf" : 1,
44660702
DM
46449 "path" : "/nodes/{node}/spiceshell",
46450 "text" : "spiceshell"
56122987
DM
46451 },
46452 {
56122987 46453 "info" : {
7aacca6f 46454 "GET" : {
e9cd3bd4 46455 "allowtoken" : 1,
44660702 46456 "description" : "Read DNS settings.",
7aacca6f 46457 "method" : "GET",
44660702
DM
46458 "name" : "dns",
46459 "parameters" : {
7aacca6f
DM
46460 "additionalProperties" : 0,
46461 "properties" : {
44660702
DM
46462 "node" : {
46463 "description" : "The cluster node name.",
46464 "format" : "pve-node",
013dc89f
DM
46465 "type" : "string",
46466 "typetext" : "<string>"
7aacca6f
DM
46467 }
46468 }
46469 },
7aacca6f
DM
46470 "permissions" : {
46471 "check" : [
46472 "perm",
46473 "/nodes/{node}",
46474 [
46475 "Sys.Audit"
46476 ]
46477 ]
46478 },
44660702
DM
46479 "proxyto" : "node",
46480 "returns" : {
56122987
DM
46481 "additionalProperties" : 0,
46482 "properties" : {
44660702
DM
46483 "dns1" : {
46484 "description" : "First name server IP address.",
46485 "optional" : 1,
46486 "type" : "string"
46487 },
46488 "dns2" : {
46489 "description" : "Second name server IP address.",
46490 "optional" : 1,
46491 "type" : "string"
46492 },
46493 "dns3" : {
46494 "description" : "Third name server IP address.",
46495 "optional" : 1,
46496 "type" : "string"
46497 },
46498 "search" : {
46499 "description" : "Search domain for host-name lookup.",
46500 "optional" : 1,
46501 "type" : "string"
7aacca6f 46502 }
44660702
DM
46503 },
46504 "type" : "object"
46505 }
7aacca6f
DM
46506 },
46507 "PUT" : {
e9cd3bd4 46508 "allowtoken" : 1,
44660702
DM
46509 "description" : "Write DNS settings.",
46510 "method" : "PUT",
7aacca6f
DM
46511 "name" : "update_dns",
46512 "parameters" : {
46513 "additionalProperties" : 0,
46514 "properties" : {
44660702
DM
46515 "dns1" : {
46516 "description" : "First name server IP address.",
46517 "format" : "ip",
46518 "optional" : 1,
013dc89f
DM
46519 "type" : "string",
46520 "typetext" : "<string>"
7aacca6f 46521 },
44660702
DM
46522 "dns2" : {
46523 "description" : "Second name server IP address.",
46524 "format" : "ip",
7aacca6f 46525 "optional" : 1,
013dc89f
DM
46526 "type" : "string",
46527 "typetext" : "<string>"
7aacca6f 46528 },
44660702
DM
46529 "dns3" : {
46530 "description" : "Third name server IP address.",
46531 "format" : "ip",
7aacca6f 46532 "optional" : 1,
013dc89f
DM
46533 "type" : "string",
46534 "typetext" : "<string>"
7aacca6f
DM
46535 },
46536 "node" : {
44660702 46537 "description" : "The cluster node name.",
56122987 46538 "format" : "pve-node",
013dc89f
DM
46539 "type" : "string",
46540 "typetext" : "<string>"
7aacca6f 46541 },
44660702
DM
46542 "search" : {
46543 "description" : "Search domain for host-name lookup.",
013dc89f
DM
46544 "type" : "string",
46545 "typetext" : "<string>"
56122987
DM
46546 }
46547 }
46548 },
46549 "permissions" : {
46550 "check" : [
46551 "perm",
7aacca6f 46552 "/nodes/{node}",
56122987 46553 [
7aacca6f 46554 "Sys.Modify"
56122987
DM
46555 ]
46556 ]
46557 },
44660702 46558 "protected" : 1,
7aacca6f 46559 "proxyto" : "node",
56122987 46560 "returns" : {
7aacca6f
DM
46561 "type" : "null"
46562 }
56122987 46563 }
44660702
DM
46564 },
46565 "leaf" : 1,
46566 "path" : "/nodes/{node}/dns",
46567 "text" : "dns"
56122987
DM
46568 },
46569 {
46570 "info" : {
7aacca6f 46571 "GET" : {
e9cd3bd4 46572 "allowtoken" : 1,
7aacca6f 46573 "description" : "Read server time and time zone settings.",
44660702
DM
46574 "method" : "GET",
46575 "name" : "time",
56122987 46576 "parameters" : {
44660702 46577 "additionalProperties" : 0,
56122987
DM
46578 "properties" : {
46579 "node" : {
44660702 46580 "description" : "The cluster node name.",
56122987 46581 "format" : "pve-node",
013dc89f
DM
46582 "type" : "string",
46583 "typetext" : "<string>"
56122987 46584 }
44660702 46585 }
56122987
DM
46586 },
46587 "permissions" : {
46588 "check" : [
46589 "perm",
7aacca6f 46590 "/nodes/{node}",
56122987 46591 [
7aacca6f 46592 "Sys.Audit"
56122987
DM
46593 ]
46594 ]
44660702
DM
46595 },
46596 "proxyto" : "node",
46597 "returns" : {
46598 "additionalProperties" : 0,
46599 "properties" : {
46600 "localtime" : {
46601 "description" : "Seconds since 1970-01-01 00:00:00 (local time)",
46602 "minimum" : 1297163644,
4d47f125 46603 "renderer" : "timestamp_gmt",
44660702
DM
46604 "type" : "integer"
46605 },
46606 "time" : {
46607 "description" : "Seconds since 1970-01-01 00:00:00 UTC.",
46608 "minimum" : 1297163644,
4d47f125 46609 "renderer" : "timestamp",
44660702
DM
46610 "type" : "integer"
46611 },
46612 "timezone" : {
46613 "description" : "Time zone",
46614 "type" : "string"
46615 }
46616 },
46617 "type" : "object"
7aacca6f
DM
46618 }
46619 },
46620 "PUT" : {
e9cd3bd4 46621 "allowtoken" : 1,
7aacca6f 46622 "description" : "Set time zone.",
44660702
DM
46623 "method" : "PUT",
46624 "name" : "set_timezone",
46625 "parameters" : {
46626 "additionalProperties" : 0,
46627 "properties" : {
46628 "node" : {
46629 "description" : "The cluster node name.",
46630 "format" : "pve-node",
013dc89f
DM
46631 "type" : "string",
46632 "typetext" : "<string>"
44660702
DM
46633 },
46634 "timezone" : {
46635 "description" : "Time zone. The file '/usr/share/zoneinfo/zone.tab' contains the list of valid names.",
013dc89f
DM
46636 "type" : "string",
46637 "typetext" : "<string>"
44660702
DM
46638 }
46639 }
46640 },
7aacca6f
DM
46641 "permissions" : {
46642 "check" : [
46643 "perm",
46644 "/nodes/{node}",
46645 [
46646 "Sys.Modify"
46647 ]
46648 ]
56122987 46649 },
7aacca6f 46650 "protected" : 1,
44660702
DM
46651 "proxyto" : "node",
46652 "returns" : {
46653 "type" : "null"
46654 }
7aacca6f
DM
46655 }
46656 },
7aacca6f 46657 "leaf" : 1,
44660702
DM
46658 "path" : "/nodes/{node}/time",
46659 "text" : "time"
7aacca6f
DM
46660 },
46661 {
46662 "info" : {
44660702 46663 "GET" : {
e9cd3bd4 46664 "allowtoken" : 1,
44660702
DM
46665 "description" : "Get list of appliances.",
46666 "method" : "GET",
46667 "name" : "aplinfo",
7aacca6f
DM
46668 "parameters" : {
46669 "additionalProperties" : 0,
46670 "properties" : {
7aacca6f 46671 "node" : {
44660702 46672 "description" : "The cluster node name.",
7aacca6f 46673 "format" : "pve-node",
013dc89f
DM
46674 "type" : "string",
46675 "typetext" : "<string>"
7aacca6f
DM
46676 }
46677 }
56122987 46678 },
7aacca6f 46679 "permissions" : {
44660702 46680 "user" : "all"
56122987 46681 },
44660702 46682 "proxyto" : "node",
7aacca6f
DM
46683 "returns" : {
46684 "items" : {
44660702
DM
46685 "properties" : {},
46686 "type" : "object"
7aacca6f
DM
46687 },
46688 "type" : "array"
44660702
DM
46689 }
46690 },
46691 "POST" : {
e9cd3bd4 46692 "allowtoken" : 1,
44660702
DM
46693 "description" : "Download appliance templates.",
46694 "method" : "POST",
46695 "name" : "apl_download",
7aacca6f
DM
46696 "parameters" : {
46697 "additionalProperties" : 0,
46698 "properties" : {
46699 "node" : {
7aacca6f 46700 "description" : "The cluster node name.",
44660702 46701 "format" : "pve-node",
013dc89f
DM
46702 "type" : "string",
46703 "typetext" : "<string>"
44660702
DM
46704 },
46705 "storage" : {
4bd7df8b 46706 "description" : "The storage where the template will be stored",
44660702 46707 "format" : "pve-storage-id",
013dc89f
DM
46708 "type" : "string",
46709 "typetext" : "<string>"
44660702
DM
46710 },
46711 "template" : {
1e3f8156 46712 "description" : "The template which will downloaded",
44660702 46713 "maxLength" : 255,
013dc89f
DM
46714 "type" : "string",
46715 "typetext" : "<string>"
7aacca6f
DM
46716 }
46717 }
56122987 46718 },
7aacca6f 46719 "permissions" : {
44660702
DM
46720 "check" : [
46721 "perm",
46722 "/storage/{storage}",
46723 [
46724 "Datastore.AllocateTemplate"
46725 ]
46726 ]
46727 },
46728 "protected" : 1,
46729 "proxyto" : "node",
46730 "returns" : {
46731 "type" : "string"
7aacca6f
DM
46732 }
46733 }
46734 },
7aacca6f 46735 "leaf" : 1,
44660702
DM
46736 "path" : "/nodes/{node}/aplinfo",
46737 "text" : "aplinfo"
7aacca6f 46738 },
5370fa8c
TL
46739 {
46740 "info" : {
46741 "GET" : {
46742 "allowtoken" : 1,
46743 "description" : "Query metadata of an URL: file size, file name and mime type.",
46744 "method" : "GET",
46745 "name" : "query_url_metadata",
46746 "parameters" : {
46747 "additionalProperties" : 0,
46748 "properties" : {
46749 "node" : {
46750 "description" : "The cluster node name.",
46751 "format" : "pve-node",
46752 "type" : "string",
46753 "typetext" : "<string>"
46754 },
46755 "url" : {
46756 "description" : "The URL to query the metadata from.",
46757 "pattern" : "https?://.*",
46758 "type" : "string"
46759 },
46760 "verify-certificates" : {
46761 "default" : 1,
46762 "description" : "If false, no SSL/TLS certificates will be verified.",
46763 "optional" : 1,
46764 "type" : "boolean",
46765 "typetext" : "<boolean>"
46766 }
46767 }
46768 },
46769 "permissions" : {
46770 "check" : [
46771 "perm",
46772 "/",
46773 [
46774 "Sys.Audit",
46775 "Sys.Modify"
46776 ]
46777 ]
46778 },
46779 "proxyto" : "node",
46780 "returns" : {
46781 "properties" : {
46782 "filename" : {
46783 "optional" : 1,
46784 "type" : "string"
46785 },
46786 "mimetype" : {
46787 "optional" : 1,
46788 "type" : "string"
46789 },
46790 "size" : {
46791 "optional" : 1,
46792 "renderer" : "bytes",
46793 "type" : "integer"
46794 }
46795 },
46796 "type" : "object"
46797 }
46798 }
46799 },
46800 "leaf" : 1,
46801 "path" : "/nodes/{node}/query-url-metadata",
46802 "text" : "query-url-metadata"
46803 },
7aacca6f
DM
46804 {
46805 "info" : {
46806 "GET" : {
e9cd3bd4 46807 "allowtoken" : 1,
44660702
DM
46808 "description" : "Gather various systems information about a node",
46809 "method" : "GET",
46810 "name" : "report",
7aacca6f 46811 "parameters" : {
44660702 46812 "additionalProperties" : 0,
7aacca6f
DM
46813 "properties" : {
46814 "node" : {
7aacca6f 46815 "description" : "The cluster node name.",
44660702 46816 "format" : "pve-node",
013dc89f
DM
46817 "type" : "string",
46818 "typetext" : "<string>"
7aacca6f 46819 }
44660702 46820 }
56122987 46821 },
7aacca6f
DM
46822 "permissions" : {
46823 "check" : [
46824 "perm",
46825 "/nodes/{node}",
46826 [
46827 "Sys.Audit"
46828 ]
46829 ]
56122987 46830 },
44660702 46831 "protected" : 1,
7aacca6f
DM
46832 "proxyto" : "node",
46833 "returns" : {
56122987 46834 "type" : "string"
7aacca6f
DM
46835 }
46836 }
46837 },
7aacca6f 46838 "leaf" : 1,
44660702
DM
46839 "path" : "/nodes/{node}/report",
46840 "text" : "report"
7aacca6f
DM
46841 },
46842 {
7aacca6f
DM
46843 "info" : {
46844 "POST" : {
e9cd3bd4 46845 "allowtoken" : 1,
1c532546 46846 "description" : "Start all VMs and containers located on this node (by default only those with onboot=1).",
7aacca6f 46847 "method" : "POST",
44660702 46848 "name" : "startall",
7aacca6f 46849 "parameters" : {
44660702 46850 "additionalProperties" : 0,
7aacca6f
DM
46851 "properties" : {
46852 "force" : {
1c532546
TL
46853 "default" : "off",
46854 "description" : "Issue start command even if virtual guest have 'onboot' not set or set to off.",
7aacca6f 46855 "optional" : 1,
013dc89f
DM
46856 "type" : "boolean",
46857 "typetext" : "<boolean>"
7aacca6f
DM
46858 },
46859 "node" : {
7aacca6f 46860 "description" : "The cluster node name.",
44660702 46861 "format" : "pve-node",
013dc89f
DM
46862 "type" : "string",
46863 "typetext" : "<string>"
52e44c50
FG
46864 },
46865 "vms" : {
1c532546 46866 "description" : "Only consider guests from this comma separated list of VMIDs.",
52e44c50
FG
46867 "format" : "pve-vmid-list",
46868 "optional" : 1,
46869 "type" : "string",
46870 "typetext" : "<string>"
7aacca6f 46871 }
44660702 46872 }
56122987 46873 },
7aacca6f 46874 "permissions" : {
9d2e98ed
TL
46875 "description" : "The 'VM.PowerMgmt' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
46876 "user" : "all"
44660702
DM
46877 },
46878 "protected" : 1,
46879 "proxyto" : "node",
46880 "returns" : {
46881 "type" : "string"
7aacca6f
DM
46882 }
46883 }
46884 },
44660702 46885 "leaf" : 1,
7aacca6f 46886 "path" : "/nodes/{node}/startall",
44660702 46887 "text" : "startall"
7aacca6f
DM
46888 },
46889 {
7aacca6f
DM
46890 "info" : {
46891 "POST" : {
e9cd3bd4 46892 "allowtoken" : 1,
7aacca6f 46893 "description" : "Stop all VMs and Containers.",
44660702
DM
46894 "method" : "POST",
46895 "name" : "stopall",
7aacca6f 46896 "parameters" : {
44660702 46897 "additionalProperties" : 0,
7aacca6f 46898 "properties" : {
9d2e98ed
TL
46899 "force-stop" : {
46900 "default" : 1,
46901 "description" : "Force a hard-stop after the timeout.",
46902 "optional" : 1,
46903 "type" : "boolean",
46904 "typetext" : "<boolean>"
46905 },
7aacca6f 46906 "node" : {
44660702 46907 "description" : "The cluster node name.",
7aacca6f 46908 "format" : "pve-node",
013dc89f
DM
46909 "type" : "string",
46910 "typetext" : "<string>"
52e44c50 46911 },
9d2e98ed
TL
46912 "timeout" : {
46913 "default" : 180,
46914 "description" : "Timeout for each guest shutdown task. Depending on `force-stop`, the shutdown gets then simply aborted or a hard-stop is forced.",
46915 "maximum" : 7200,
46916 "minimum" : 0,
46917 "optional" : 1,
46918 "type" : "integer",
46919 "typetext" : "<integer> (0 - 7200)"
46920 },
52e44c50
FG
46921 "vms" : {
46922 "description" : "Only consider Guests with these IDs.",
46923 "format" : "pve-vmid-list",
46924 "optional" : 1,
46925 "type" : "string",
46926 "typetext" : "<string>"
7aacca6f 46927 }
44660702 46928 }
56122987 46929 },
7aacca6f 46930 "permissions" : {
9d2e98ed
TL
46931 "description" : "The 'VM.PowerMgmt' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
46932 "user" : "all"
56122987 46933 },
44660702 46934 "protected" : 1,
7aacca6f 46935 "proxyto" : "node",
44660702
DM
46936 "returns" : {
46937 "type" : "string"
46938 }
46939 }
56122987 46940 },
44660702
DM
46941 "leaf" : 1,
46942 "path" : "/nodes/{node}/stopall",
46943 "text" : "stopall"
46944 },
46945 {
46946 "info" : {
46947 "POST" : {
e9cd3bd4 46948 "allowtoken" : 1,
44660702
DM
46949 "description" : "Migrate all VMs and Containers.",
46950 "method" : "POST",
46951 "name" : "migrateall",
46952 "parameters" : {
46953 "additionalProperties" : 0,
46954 "properties" : {
46955 "maxworkers" : {
9d2e98ed 46956 "description" : "Maximal number of parallel migration job. If not set, uses'max_workers' from datacenter.cfg. One of both must be set!",
44660702
DM
46957 "minimum" : 1,
46958 "optional" : 1,
4bd7df8b 46959 "type" : "integer",
013dc89f 46960 "typetext" : "<integer> (1 - N)"
44660702
DM
46961 },
46962 "node" : {
46963 "description" : "The cluster node name.",
46964 "format" : "pve-node",
013dc89f
DM
46965 "type" : "string",
46966 "typetext" : "<string>"
44660702
DM
46967 },
46968 "target" : {
46969 "description" : "Target node.",
46970 "format" : "pve-node",
013dc89f
DM
46971 "type" : "string",
46972 "typetext" : "<string>"
52e44c50
FG
46973 },
46974 "vms" : {
46975 "description" : "Only consider Guests with these IDs.",
46976 "format" : "pve-vmid-list",
46977 "optional" : 1,
46978 "type" : "string",
46979 "typetext" : "<string>"
e9cd3bd4
TL
46980 },
46981 "with-local-disks" : {
46982 "description" : "Enable live storage migration for local disk",
46983 "optional" : 1,
46984 "type" : "boolean",
46985 "typetext" : "<boolean>"
44660702
DM
46986 }
46987 }
46988 },
46989 "permissions" : {
9d2e98ed
TL
46990 "description" : "The 'VM.Migrate' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
46991 "user" : "all"
44660702
DM
46992 },
46993 "protected" : 1,
46994 "proxyto" : "node",
46995 "returns" : {
46996 "type" : "string"
46997 }
46998 }
56122987 46999 },
44660702
DM
47000 "leaf" : 1,
47001 "path" : "/nodes/{node}/migrateall",
47002 "text" : "migrateall"
4d47f125
TL
47003 },
47004 {
47005 "info" : {
47006 "GET" : {
e9cd3bd4 47007 "allowtoken" : 1,
4d47f125
TL
47008 "description" : "Get the content of /etc/hosts.",
47009 "method" : "GET",
47010 "name" : "get_etc_hosts",
47011 "parameters" : {
47012 "additionalProperties" : 0,
47013 "properties" : {
47014 "node" : {
47015 "description" : "The cluster node name.",
47016 "format" : "pve-node",
47017 "type" : "string",
47018 "typetext" : "<string>"
47019 }
47020 }
47021 },
47022 "permissions" : {
47023 "check" : [
47024 "perm",
47025 "/",
47026 [
47027 "Sys.Audit"
47028 ]
47029 ]
47030 },
47031 "protected" : 1,
47032 "proxyto" : "node",
47033 "returns" : {
47034 "properties" : {
47035 "data" : {
47036 "description" : "The content of /etc/hosts.",
47037 "type" : "string"
47038 },
47039 "digest" : {
47040 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
47041 "maxLength" : 40,
47042 "optional" : 1,
47043 "type" : "string"
47044 }
47045 },
47046 "type" : "object"
47047 }
47048 },
47049 "POST" : {
e9cd3bd4 47050 "allowtoken" : 1,
4d47f125
TL
47051 "description" : "Write /etc/hosts.",
47052 "method" : "POST",
47053 "name" : "write_etc_hosts",
47054 "parameters" : {
47055 "additionalProperties" : 0,
47056 "properties" : {
47057 "data" : {
47058 "description" : "The target content of /etc/hosts.",
47059 "type" : "string",
47060 "typetext" : "<string>"
47061 },
47062 "digest" : {
47063 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
47064 "maxLength" : 40,
47065 "optional" : 1,
47066 "type" : "string",
47067 "typetext" : "<string>"
47068 },
47069 "node" : {
47070 "description" : "The cluster node name.",
47071 "format" : "pve-node",
47072 "type" : "string",
47073 "typetext" : "<string>"
47074 }
47075 }
47076 },
47077 "permissions" : {
47078 "check" : [
47079 "perm",
47080 "/nodes/{node}",
47081 [
47082 "Sys.Modify"
47083 ]
47084 ]
47085 },
47086 "protected" : 1,
47087 "proxyto" : "node",
47088 "returns" : {
47089 "type" : "null"
47090 }
47091 }
47092 },
47093 "leaf" : 1,
47094 "path" : "/nodes/{node}/hosts",
47095 "text" : "hosts"
44660702
DM
47096 }
47097 ],
47098 "info" : {
47099 "GET" : {
e9cd3bd4 47100 "allowtoken" : 1,
44660702
DM
47101 "description" : "Node index.",
47102 "method" : "GET",
47103 "name" : "index",
47104 "parameters" : {
47105 "additionalProperties" : 0,
47106 "properties" : {
47107 "node" : {
47108 "description" : "The cluster node name.",
47109 "format" : "pve-node",
013dc89f
DM
47110 "type" : "string",
47111 "typetext" : "<string>"
44660702
DM
47112 }
47113 }
56122987 47114 },
44660702
DM
47115 "permissions" : {
47116 "user" : "all"
56122987 47117 },
44660702
DM
47118 "returns" : {
47119 "items" : {
47120 "properties" : {},
47121 "type" : "object"
47122 },
47123 "links" : [
47124 {
47125 "href" : "{name}",
47126 "rel" : "child"
47127 }
56122987 47128 ],
44660702 47129 "type" : "array"
7aacca6f
DM
47130 }
47131 }
47132 },
44660702
DM
47133 "leaf" : 0,
47134 "path" : "/nodes/{node}",
47135 "text" : "{node}"
47136 }
47137 ],
47138 "info" : {
7aacca6f 47139 "GET" : {
e9cd3bd4 47140 "allowtoken" : 1,
44660702 47141 "description" : "Cluster node index.",
7aacca6f 47142 "method" : "GET",
44660702 47143 "name" : "index",
7aacca6f 47144 "parameters" : {
7aacca6f
DM
47145 "additionalProperties" : 0
47146 },
47147 "permissions" : {
7aacca6f
DM
47148 "user" : "all"
47149 },
44660702
DM
47150 "returns" : {
47151 "items" : {
4d47f125
TL
47152 "properties" : {
47153 "cpu" : {
47154 "description" : "CPU utilization.",
47155 "optional" : 1,
47156 "renderer" : "fraction_as_percentage",
47157 "type" : "number"
47158 },
47159 "level" : {
47160 "description" : "Support level.",
47161 "optional" : 1,
47162 "type" : "string"
47163 },
47164 "maxcpu" : {
47165 "description" : "Number of available CPUs.",
47166 "optional" : 1,
47167 "type" : "integer"
47168 },
47169 "maxmem" : {
47170 "description" : "Number of available memory in bytes.",
47171 "optional" : 1,
47172 "renderer" : "bytes",
47173 "type" : "integer"
47174 },
47175 "mem" : {
47176 "description" : "Used memory in bytes.",
47177 "optional" : 1,
47178 "renderer" : "bytes",
1c532546 47179 "type" : "integer"
4d47f125
TL
47180 },
47181 "node" : {
47182 "description" : "The cluster node name.",
47183 "format" : "pve-node",
47184 "type" : "string"
47185 },
47186 "ssl_fingerprint" : {
47187 "description" : "The SSL fingerprint for the node certificate.",
47188 "optional" : 1,
47189 "type" : "string"
47190 },
47191 "status" : {
47192 "description" : "Node status.",
47193 "enum" : [
47194 "unknown",
47195 "online",
47196 "offline"
47197 ],
47198 "type" : "string"
47199 },
47200 "uptime" : {
47201 "description" : "Node uptime in seconds.",
47202 "optional" : 1,
47203 "renderer" : "duration",
47204 "type" : "integer"
47205 }
47206 },
44660702
DM
47207 "type" : "object"
47208 },
47209 "links" : [
47210 {
47211 "href" : "{node}",
47212 "rel" : "child"
47213 }
47214 ],
47215 "type" : "array"
47216 }
7aacca6f
DM
47217 }
47218 },
44660702
DM
47219 "leaf" : 0,
47220 "path" : "/nodes",
47221 "text" : "nodes"
47222 },
47223 {
7aacca6f
DM
47224 "children" : [
47225 {
7aacca6f 47226 "info" : {
44660702 47227 "DELETE" : {
e9cd3bd4 47228 "allowtoken" : 1,
44660702
DM
47229 "description" : "Delete storage configuration.",
47230 "method" : "DELETE",
47231 "name" : "delete",
7aacca6f
DM
47232 "parameters" : {
47233 "additionalProperties" : 0,
47234 "properties" : {
47235 "storage" : {
7aacca6f 47236 "description" : "The storage identifier.",
44660702 47237 "format" : "pve-storage-id",
013dc89f
DM
47238 "type" : "string",
47239 "typetext" : "<string>"
7aacca6f
DM
47240 }
47241 }
56122987 47242 },
7aacca6f
DM
47243 "permissions" : {
47244 "check" : [
47245 "perm",
47246 "/storage",
47247 [
47248 "Datastore.Allocate"
47249 ]
47250 ]
56122987 47251 },
44660702
DM
47252 "protected" : 1,
47253 "returns" : {
47254 "type" : "null"
47255 }
47256 },
47257 "GET" : {
e9cd3bd4 47258 "allowtoken" : 1,
44660702
DM
47259 "description" : "Read storage configuration.",
47260 "method" : "GET",
47261 "name" : "read",
7aacca6f
DM
47262 "parameters" : {
47263 "additionalProperties" : 0,
47264 "properties" : {
47265 "storage" : {
44660702 47266 "description" : "The storage identifier.",
7aacca6f 47267 "format" : "pve-storage-id",
013dc89f
DM
47268 "type" : "string",
47269 "typetext" : "<string>"
7aacca6f
DM
47270 }
47271 }
47272 },
44660702
DM
47273 "permissions" : {
47274 "check" : [
47275 "perm",
47276 "/storage/{storage}",
47277 [
47278 "Datastore.Allocate"
47279 ]
47280 ]
47281 },
5da3d723
TL
47282 "returns" : {
47283 "type" : "object"
47284 }
7aacca6f
DM
47285 },
47286 "PUT" : {
e9cd3bd4 47287 "allowtoken" : 1,
44660702
DM
47288 "description" : "Update storage configuration.",
47289 "method" : "PUT",
47290 "name" : "update",
47291 "parameters" : {
47292 "additionalProperties" : 0,
47293 "properties" : {
47294 "blocksize" : {
47295 "description" : "block size",
7aacca6f 47296 "optional" : 1,
013dc89f
DM
47297 "type" : "string",
47298 "typetext" : "<string>"
7aacca6f 47299 },
27a7acb2 47300 "bwlimit" : {
4a407cfd 47301 "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
27a7acb2
DM
47302 "format" : {
47303 "clone" : {
95895385 47304 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
47305 "format_description" : "LIMIT",
47306 "minimum" : "0",
47307 "optional" : 1,
47308 "type" : "number"
47309 },
47310 "default" : {
95895385 47311 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
47312 "format_description" : "LIMIT",
47313 "minimum" : "0",
47314 "optional" : 1,
47315 "type" : "number"
47316 },
47317 "migration" : {
95895385 47318 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
47319 "format_description" : "LIMIT",
47320 "minimum" : "0",
47321 "optional" : 1,
47322 "type" : "number"
47323 },
47324 "move" : {
95895385 47325 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
47326 "format_description" : "LIMIT",
47327 "minimum" : "0",
47328 "optional" : 1,
47329 "type" : "number"
47330 },
47331 "restore" : {
95895385 47332 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
47333 "format_description" : "LIMIT",
47334 "minimum" : "0",
47335 "optional" : 1,
47336 "type" : "number"
47337 }
47338 },
47339 "optional" : 1,
47340 "type" : "string",
47341 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
47342 },
44660702
DM
47343 "comstar_hg" : {
47344 "description" : "host group for comstar views",
47345 "optional" : 1,
013dc89f
DM
47346 "type" : "string",
47347 "typetext" : "<string>"
7aacca6f 47348 },
44660702
DM
47349 "comstar_tg" : {
47350 "description" : "target group for comstar views",
7aacca6f 47351 "optional" : 1,
013dc89f
DM
47352 "type" : "string",
47353 "typetext" : "<string>"
7aacca6f 47354 },
44660702
DM
47355 "content" : {
47356 "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
47357 "format" : "pve-storage-content-list",
7aacca6f 47358 "optional" : 1,
013dc89f
DM
47359 "type" : "string",
47360 "typetext" : "<string>"
7aacca6f 47361 },
9d2e98ed
TL
47362 "content-dirs" : {
47363 "description" : "Overrides for default content type directories.",
47364 "format" : "pve-dir-override-list",
47365 "optional" : 1,
47366 "type" : "string",
47367 "typetext" : "<string>"
47368 },
4a407cfd
TL
47369 "create-base-path" : {
47370 "default" : "yes",
47371 "description" : "Create the base directory if it doesn't exist.",
47372 "optional" : 1,
47373 "type" : "boolean",
47374 "typetext" : "<boolean>"
47375 },
47376 "create-subdirs" : {
47377 "default" : "yes",
47378 "description" : "Populate the directory with the default structure.",
47379 "optional" : 1,
47380 "type" : "boolean",
47381 "typetext" : "<boolean>"
47382 },
c30bb419
TL
47383 "data-pool" : {
47384 "description" : "Data Pool (for erasure coding only)",
47385 "optional" : 1,
47386 "type" : "string",
47387 "typetext" : "<string>"
47388 },
44660702
DM
47389 "delete" : {
47390 "description" : "A list of settings you want to delete.",
47391 "format" : "pve-configid-list",
47392 "maxLength" : 4096,
7aacca6f 47393 "optional" : 1,
013dc89f
DM
47394 "type" : "string",
47395 "typetext" : "<string>"
7aacca6f
DM
47396 },
47397 "digest" : {
44660702 47398 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7aacca6f 47399 "maxLength" : 40,
7aacca6f 47400 "optional" : 1,
013dc89f
DM
47401 "type" : "string",
47402 "typetext" : "<string>"
7aacca6f 47403 },
44660702
DM
47404 "disable" : {
47405 "description" : "Flag to disable the storage.",
47406 "optional" : 1,
013dc89f
DM
47407 "type" : "boolean",
47408 "typetext" : "<boolean>"
7aacca6f 47409 },
27a7acb2
DM
47410 "domain" : {
47411 "description" : "CIFS domain.",
47412 "maxLength" : 256,
47413 "optional" : 1,
47414 "type" : "string",
47415 "typetext" : "<string>"
47416 },
04d22a9f
TL
47417 "encryption-key" : {
47418 "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
47419 "optional" : 1,
47420 "type" : "string",
47421 "typetext" : "<string>"
47422 },
c5aa7e14
TL
47423 "fingerprint" : {
47424 "description" : "Certificate SHA 256 fingerprint.",
47425 "optional" : 1,
47426 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
47427 "type" : "string"
47428 },
7aacca6f
DM
47429 "format" : {
47430 "description" : "Default image format.",
44660702 47431 "format" : "pve-storage-format",
7aacca6f 47432 "optional" : 1,
013dc89f
DM
47433 "type" : "string",
47434 "typetext" : "<string>"
7aacca6f 47435 },
5370fa8c
TL
47436 "fs-name" : {
47437 "description" : "The Ceph filesystem name.",
47438 "format" : "pve-configid",
47439 "optional" : 1,
47440 "type" : "string",
47441 "typetext" : "<string>"
47442 },
5da3d723
TL
47443 "fuse" : {
47444 "description" : "Mount CephFS through FUSE.",
47445 "optional" : 1,
47446 "type" : "boolean",
47447 "typetext" : "<boolean>"
47448 },
2c0dde61
DM
47449 "is_mountpoint" : {
47450 "default" : "no",
2489d6df 47451 "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 47452 "optional" : 1,
2489d6df
WB
47453 "type" : "string",
47454 "typetext" : "<string>"
2c0dde61 47455 },
5370fa8c
TL
47456 "keyring" : {
47457 "description" : "Client keyring contents (for external clusters).",
47458 "optional" : 1,
47459 "type" : "string",
47460 "typetext" : "<string>"
47461 },
44660702 47462 "krbd" : {
e2d681b3 47463 "description" : "Always access rbd through krbd kernel module.",
7aacca6f 47464 "optional" : 1,
013dc89f
DM
47465 "type" : "boolean",
47466 "typetext" : "<boolean>"
7aacca6f 47467 },
4d47f125
TL
47468 "lio_tpg" : {
47469 "description" : "target portal group for Linux LIO targets",
47470 "optional" : 1,
47471 "type" : "string",
47472 "typetext" : "<string>"
47473 },
d2656385 47474 "master-pubkey" : {
5f4e66fe 47475 "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
47476 "optional" : 1,
47477 "type" : "string",
47478 "typetext" : "<string>"
47479 },
7af2edf9
TL
47480 "max-protected-backups" : {
47481 "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
47482 "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
47483 "minimum" : -1,
47484 "optional" : 1,
47485 "type" : "integer",
47486 "typetext" : "<integer> (-1 - N)"
47487 },
44660702 47488 "maxfiles" : {
5f4e66fe 47489 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
44660702
DM
47490 "minimum" : 0,
47491 "optional" : 1,
4bd7df8b 47492 "type" : "integer",
013dc89f 47493 "typetext" : "<integer> (0 - N)"
4bd7df8b
DM
47494 },
47495 "mkdir" : {
47496 "default" : "yes",
4a407cfd 47497 "description" : "Create the directory if it doesn't exist and populate it with default sub-dirs. NOTE: Deprecated, use the 'create-base-path' and 'create-subdirs' options instead.",
4bd7df8b 47498 "optional" : 1,
013dc89f
DM
47499 "type" : "boolean",
47500 "typetext" : "<boolean>"
7aacca6f 47501 },
2489d6df
WB
47502 "monhost" : {
47503 "description" : "IP addresses of monitors (for external clusters).",
47504 "format" : "pve-storage-portal-dns-list",
47505 "optional" : 1,
47506 "type" : "string",
47507 "typetext" : "<string>"
47508 },
5c1699e5
TL
47509 "mountpoint" : {
47510 "description" : "mount point",
47511 "format" : "pve-storage-path",
47512 "optional" : 1,
47513 "type" : "string",
47514 "typetext" : "<string>"
47515 },
d2656385 47516 "namespace" : {
de786b48 47517 "description" : "Namespace.",
d2656385
TL
47518 "optional" : 1,
47519 "type" : "string",
47520 "typetext" : "<string>"
47521 },
5f4e66fe
TL
47522 "nocow" : {
47523 "default" : 0,
47524 "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.",
47525 "optional" : 1,
47526 "type" : "boolean",
47527 "typetext" : "<boolean>"
47528 },
7aacca6f 47529 "nodes" : {
44660702 47530 "description" : "List of cluster node names.",
7aacca6f
DM
47531 "format" : "pve-node-list",
47532 "optional" : 1,
013dc89f
DM
47533 "type" : "string",
47534 "typetext" : "<string>"
7aacca6f 47535 },
44660702
DM
47536 "nowritecache" : {
47537 "description" : "disable write caching on the target",
7aacca6f 47538 "optional" : 1,
013dc89f
DM
47539 "type" : "boolean",
47540 "typetext" : "<boolean>"
7aacca6f
DM
47541 },
47542 "options" : {
159464a9 47543 "description" : "NFS/CIFS mount options (see 'man nfs' or 'man mount.cifs')",
44660702
DM
47544 "format" : "pve-storage-options",
47545 "optional" : 1,
013dc89f
DM
47546 "type" : "string",
47547 "typetext" : "<string>"
44660702 47548 },
27a7acb2 47549 "password" : {
04d22a9f 47550 "description" : "Password for accessing the share/datastore.",
27a7acb2
DM
47551 "maxLength" : 256,
47552 "optional" : 1,
47553 "type" : "string",
47554 "typetext" : "<string>"
47555 },
44660702
DM
47556 "pool" : {
47557 "description" : "Pool.",
47558 "optional" : 1,
013dc89f
DM
47559 "type" : "string",
47560 "typetext" : "<string>"
44660702 47561 },
4772952b
TL
47562 "port" : {
47563 "default" : 8007,
47564 "description" : "For non default port.",
47565 "maximum" : 65535,
47566 "minimum" : 1,
47567 "optional" : 1,
47568 "type" : "integer",
47569 "typetext" : "<integer> (1 - 65535)"
47570 },
5370fa8c
TL
47571 "preallocation" : {
47572 "default" : "metadata",
47573 "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
47574 "enum" : [
47575 "off",
47576 "metadata",
47577 "falloc",
47578 "full"
47579 ],
47580 "optional" : 1,
47581 "type" : "string"
47582 },
739d4d64
TL
47583 "prune-backups" : {
47584 "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.",
47585 "format" : "prune-backups",
47586 "optional" : 1,
47587 "type" : "string",
4772952b 47588 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 47589 },
44660702
DM
47590 "saferemove" : {
47591 "description" : "Zero-out data when removing LVs.",
47592 "optional" : 1,
013dc89f
DM
47593 "type" : "boolean",
47594 "typetext" : "<boolean>"
7aacca6f
DM
47595 },
47596 "saferemove_throughput" : {
44660702 47597 "description" : "Wipe throughput (cstream -t parameter value).",
7aacca6f 47598 "optional" : 1,
013dc89f
DM
47599 "type" : "string",
47600 "typetext" : "<string>"
7aacca6f 47601 },
44660702
DM
47602 "server" : {
47603 "description" : "Server IP or DNS name.",
47604 "format" : "pve-storage-server",
7aacca6f 47605 "optional" : 1,
013dc89f
DM
47606 "type" : "string",
47607 "typetext" : "<string>"
7aacca6f 47608 },
44660702
DM
47609 "server2" : {
47610 "description" : "Backup volfile server IP or DNS name.",
47611 "format" : "pve-storage-server",
7aacca6f 47612 "optional" : 1,
44660702 47613 "requires" : "server",
013dc89f
DM
47614 "type" : "string",
47615 "typetext" : "<string>"
44660702
DM
47616 },
47617 "shared" : {
47618 "description" : "Mark storage as shared.",
47619 "optional" : 1,
013dc89f
DM
47620 "type" : "boolean",
47621 "typetext" : "<boolean>"
44660702 47622 },
27a7acb2 47623 "smbversion" : {
5370fa8c
TL
47624 "default" : "default",
47625 "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
5da3d723 47626 "enum" : [
5370fa8c 47627 "default",
5da3d723
TL
47628 "2.0",
47629 "2.1",
5370fa8c
TL
47630 "3",
47631 "3.0",
47632 "3.11"
5da3d723 47633 ],
27a7acb2 47634 "optional" : 1,
5da3d723 47635 "type" : "string"
27a7acb2 47636 },
44660702
DM
47637 "sparse" : {
47638 "description" : "use sparse volumes",
47639 "optional" : 1,
013dc89f
DM
47640 "type" : "boolean",
47641 "typetext" : "<boolean>"
44660702
DM
47642 },
47643 "storage" : {
47644 "description" : "The storage identifier.",
47645 "format" : "pve-storage-id",
013dc89f
DM
47646 "type" : "string",
47647 "typetext" : "<string>"
44660702 47648 },
5da3d723
TL
47649 "subdir" : {
47650 "description" : "Subdir to mount.",
47651 "format" : "pve-storage-path",
47652 "optional" : 1,
47653 "type" : "string",
47654 "typetext" : "<string>"
47655 },
4bd7df8b
DM
47656 "tagged_only" : {
47657 "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
47658 "optional" : 1,
013dc89f
DM
47659 "type" : "boolean",
47660 "typetext" : "<boolean>"
4bd7df8b 47661 },
44660702
DM
47662 "transport" : {
47663 "description" : "Gluster transport: tcp or rdma",
47664 "enum" : [
47665 "tcp",
47666 "rdma",
47667 "unix"
47668 ],
47669 "optional" : 1,
47670 "type" : "string"
7aacca6f
DM
47671 },
47672 "username" : {
47673 "description" : "RBD Id.",
44660702 47674 "optional" : 1,
013dc89f
DM
47675 "type" : "string",
47676 "typetext" : "<string>"
7aacca6f 47677 }
44660702
DM
47678 },
47679 "type" : "object"
47680 },
47681 "permissions" : {
47682 "check" : [
47683 "perm",
47684 "/storage",
47685 [
47686 "Datastore.Allocate"
47687 ]
47688 ]
47689 },
47690 "protected" : 1,
47691 "returns" : {
4772952b
TL
47692 "properties" : {
47693 "config" : {
47694 "additionalProperties" : 1,
47695 "description" : "Partial, possible server generated, configuration properties.",
47696 "optional" : 1,
47697 "properties" : {
47698 "encryption-key" : {
47699 "description" : "The, possible auto-generated, encryption-key.",
47700 "optional" : 1,
47701 "type" : "string"
47702 }
47703 },
47704 "type" : "object"
47705 },
47706 "storage" : {
47707 "description" : "The ID of the created storage.",
47708 "type" : "string"
47709 },
47710 "type" : {
47711 "description" : "The type of the created storage.",
47712 "enum" : [
5f4e66fe 47713 "btrfs",
4772952b
TL
47714 "cephfs",
47715 "cifs",
47716 "dir",
4772952b
TL
47717 "glusterfs",
47718 "iscsi",
47719 "iscsidirect",
47720 "lvm",
47721 "lvmthin",
47722 "nfs",
47723 "pbs",
47724 "rbd",
47725 "zfs",
47726 "zfspool"
47727 ],
47728 "type" : "string"
47729 }
47730 },
47731 "type" : "object"
44660702
DM
47732 }
47733 }
47734 },
47735 "leaf" : 1,
47736 "path" : "/storage/{storage}",
47737 "text" : "{storage}"
47738 }
47739 ],
47740 "info" : {
47741 "GET" : {
e9cd3bd4 47742 "allowtoken" : 1,
44660702
DM
47743 "description" : "Storage index.",
47744 "method" : "GET",
47745 "name" : "index",
47746 "parameters" : {
47747 "additionalProperties" : 0,
47748 "properties" : {
47749 "type" : {
47750 "description" : "Only list storage of specific type",
47751 "enum" : [
5f4e66fe 47752 "btrfs",
5da3d723 47753 "cephfs",
27a7acb2 47754 "cifs",
44660702 47755 "dir",
44660702
DM
47756 "glusterfs",
47757 "iscsi",
47758 "iscsidirect",
47759 "lvm",
47760 "lvmthin",
47761 "nfs",
c5aa7e14 47762 "pbs",
44660702 47763 "rbd",
44660702
DM
47764 "zfs",
47765 "zfspool"
47766 ],
47767 "optional" : 1,
47768 "type" : "string"
47769 }
47770 }
47771 },
47772 "permissions" : {
47773 "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
47774 "user" : "all"
47775 },
47776 "returns" : {
47777 "items" : {
47778 "properties" : {
47779 "storage" : {
47780 "type" : "string"
7aacca6f 47781 }
56122987 47782 },
44660702
DM
47783 "type" : "object"
47784 },
47785 "links" : [
47786 {
47787 "href" : "{storage}",
47788 "rel" : "child"
47789 }
47790 ],
47791 "type" : "array"
47792 }
47793 },
47794 "POST" : {
e9cd3bd4 47795 "allowtoken" : 1,
44660702
DM
47796 "description" : "Create a new storage.",
47797 "method" : "POST",
47798 "name" : "create",
47799 "parameters" : {
47800 "additionalProperties" : 0,
47801 "properties" : {
47802 "authsupported" : {
47803 "description" : "Authsupported.",
47804 "optional" : 1,
013dc89f
DM
47805 "type" : "string",
47806 "typetext" : "<string>"
44660702
DM
47807 },
47808 "base" : {
47809 "description" : "Base volume. This volume is automatically activated.",
47810 "format" : "pve-volume-id",
47811 "optional" : 1,
013dc89f
DM
47812 "type" : "string",
47813 "typetext" : "<string>"
44660702
DM
47814 },
47815 "blocksize" : {
47816 "description" : "block size",
47817 "optional" : 1,
013dc89f
DM
47818 "type" : "string",
47819 "typetext" : "<string>"
44660702 47820 },
27a7acb2 47821 "bwlimit" : {
4a407cfd 47822 "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
27a7acb2
DM
47823 "format" : {
47824 "clone" : {
95895385 47825 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
47826 "format_description" : "LIMIT",
47827 "minimum" : "0",
47828 "optional" : 1,
47829 "type" : "number"
47830 },
47831 "default" : {
95895385 47832 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
47833 "format_description" : "LIMIT",
47834 "minimum" : "0",
47835 "optional" : 1,
47836 "type" : "number"
47837 },
47838 "migration" : {
95895385 47839 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
47840 "format_description" : "LIMIT",
47841 "minimum" : "0",
47842 "optional" : 1,
47843 "type" : "number"
47844 },
47845 "move" : {
95895385 47846 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
47847 "format_description" : "LIMIT",
47848 "minimum" : "0",
47849 "optional" : 1,
47850 "type" : "number"
47851 },
47852 "restore" : {
95895385 47853 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
47854 "format_description" : "LIMIT",
47855 "minimum" : "0",
47856 "optional" : 1,
47857 "type" : "number"
47858 }
47859 },
47860 "optional" : 1,
47861 "type" : "string",
47862 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
47863 },
44660702
DM
47864 "comstar_hg" : {
47865 "description" : "host group for comstar views",
47866 "optional" : 1,
013dc89f
DM
47867 "type" : "string",
47868 "typetext" : "<string>"
44660702
DM
47869 },
47870 "comstar_tg" : {
47871 "description" : "target group for comstar views",
47872 "optional" : 1,
013dc89f
DM
47873 "type" : "string",
47874 "typetext" : "<string>"
44660702
DM
47875 },
47876 "content" : {
47877 "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
47878 "format" : "pve-storage-content-list",
47879 "optional" : 1,
013dc89f
DM
47880 "type" : "string",
47881 "typetext" : "<string>"
44660702 47882 },
9d2e98ed
TL
47883 "content-dirs" : {
47884 "description" : "Overrides for default content type directories.",
47885 "format" : "pve-dir-override-list",
47886 "optional" : 1,
47887 "type" : "string",
47888 "typetext" : "<string>"
47889 },
4a407cfd
TL
47890 "create-base-path" : {
47891 "default" : "yes",
47892 "description" : "Create the base directory if it doesn't exist.",
47893 "optional" : 1,
47894 "type" : "boolean",
47895 "typetext" : "<boolean>"
47896 },
47897 "create-subdirs" : {
47898 "default" : "yes",
47899 "description" : "Populate the directory with the default structure.",
47900 "optional" : 1,
47901 "type" : "boolean",
47902 "typetext" : "<boolean>"
47903 },
c30bb419
TL
47904 "data-pool" : {
47905 "description" : "Data Pool (for erasure coding only)",
47906 "optional" : 1,
47907 "type" : "string",
47908 "typetext" : "<string>"
47909 },
c5aa7e14 47910 "datastore" : {
4772952b 47911 "description" : "Proxmox Backup Server datastore name.",
c5aa7e14
TL
47912 "optional" : 1,
47913 "type" : "string",
47914 "typetext" : "<string>"
47915 },
44660702
DM
47916 "disable" : {
47917 "description" : "Flag to disable the storage.",
47918 "optional" : 1,
013dc89f
DM
47919 "type" : "boolean",
47920 "typetext" : "<boolean>"
44660702 47921 },
27a7acb2
DM
47922 "domain" : {
47923 "description" : "CIFS domain.",
47924 "maxLength" : 256,
47925 "optional" : 1,
47926 "type" : "string",
47927 "typetext" : "<string>"
47928 },
04d22a9f
TL
47929 "encryption-key" : {
47930 "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
47931 "optional" : 1,
47932 "type" : "string",
47933 "typetext" : "<string>"
47934 },
44660702
DM
47935 "export" : {
47936 "description" : "NFS export path.",
47937 "format" : "pve-storage-path",
47938 "optional" : 1,
013dc89f
DM
47939 "type" : "string",
47940 "typetext" : "<string>"
44660702 47941 },
c5aa7e14
TL
47942 "fingerprint" : {
47943 "description" : "Certificate SHA 256 fingerprint.",
47944 "optional" : 1,
47945 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
47946 "type" : "string"
47947 },
44660702
DM
47948 "format" : {
47949 "description" : "Default image format.",
47950 "format" : "pve-storage-format",
47951 "optional" : 1,
013dc89f
DM
47952 "type" : "string",
47953 "typetext" : "<string>"
44660702 47954 },
5370fa8c
TL
47955 "fs-name" : {
47956 "description" : "The Ceph filesystem name.",
47957 "format" : "pve-configid",
47958 "optional" : 1,
47959 "type" : "string",
47960 "typetext" : "<string>"
47961 },
5da3d723
TL
47962 "fuse" : {
47963 "description" : "Mount CephFS through FUSE.",
47964 "optional" : 1,
47965 "type" : "boolean",
47966 "typetext" : "<boolean>"
47967 },
2c0dde61
DM
47968 "is_mountpoint" : {
47969 "default" : "no",
2489d6df 47970 "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 47971 "optional" : 1,
2489d6df
WB
47972 "type" : "string",
47973 "typetext" : "<string>"
2c0dde61 47974 },
44660702
DM
47975 "iscsiprovider" : {
47976 "description" : "iscsi provider",
47977 "optional" : 1,
013dc89f
DM
47978 "type" : "string",
47979 "typetext" : "<string>"
44660702 47980 },
5370fa8c
TL
47981 "keyring" : {
47982 "description" : "Client keyring contents (for external clusters).",
47983 "optional" : 1,
47984 "type" : "string",
47985 "typetext" : "<string>"
47986 },
44660702 47987 "krbd" : {
e2d681b3 47988 "description" : "Always access rbd through krbd kernel module.",
44660702 47989 "optional" : 1,
013dc89f
DM
47990 "type" : "boolean",
47991 "typetext" : "<boolean>"
56122987 47992 },
4d47f125
TL
47993 "lio_tpg" : {
47994 "description" : "target portal group for Linux LIO targets",
47995 "optional" : 1,
47996 "type" : "string",
47997 "typetext" : "<string>"
47998 },
d2656385 47999 "master-pubkey" : {
5f4e66fe 48000 "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
48001 "optional" : 1,
48002 "type" : "string",
48003 "typetext" : "<string>"
48004 },
7af2edf9
TL
48005 "max-protected-backups" : {
48006 "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
48007 "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
48008 "minimum" : -1,
48009 "optional" : 1,
48010 "type" : "integer",
48011 "typetext" : "<integer> (-1 - N)"
48012 },
44660702 48013 "maxfiles" : {
5f4e66fe 48014 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
44660702
DM
48015 "minimum" : 0,
48016 "optional" : 1,
4bd7df8b 48017 "type" : "integer",
013dc89f 48018 "typetext" : "<integer> (0 - N)"
4bd7df8b
DM
48019 },
48020 "mkdir" : {
48021 "default" : "yes",
4a407cfd 48022 "description" : "Create the directory if it doesn't exist and populate it with default sub-dirs. NOTE: Deprecated, use the 'create-base-path' and 'create-subdirs' options instead.",
4bd7df8b 48023 "optional" : 1,
013dc89f
DM
48024 "type" : "boolean",
48025 "typetext" : "<boolean>"
7aacca6f 48026 },
44660702 48027 "monhost" : {
2489d6df 48028 "description" : "IP addresses of monitors (for external clusters).",
4bd7df8b 48029 "format" : "pve-storage-portal-dns-list",
44660702 48030 "optional" : 1,
013dc89f
DM
48031 "type" : "string",
48032 "typetext" : "<string>"
7aacca6f 48033 },
5c1699e5
TL
48034 "mountpoint" : {
48035 "description" : "mount point",
48036 "format" : "pve-storage-path",
48037 "optional" : 1,
48038 "type" : "string",
48039 "typetext" : "<string>"
48040 },
d2656385 48041 "namespace" : {
de786b48 48042 "description" : "Namespace.",
d2656385
TL
48043 "optional" : 1,
48044 "type" : "string",
48045 "typetext" : "<string>"
48046 },
5f4e66fe
TL
48047 "nocow" : {
48048 "default" : 0,
48049 "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.",
48050 "optional" : 1,
48051 "type" : "boolean",
48052 "typetext" : "<boolean>"
48053 },
44660702
DM
48054 "nodes" : {
48055 "description" : "List of cluster node names.",
48056 "format" : "pve-node-list",
48057 "optional" : 1,
013dc89f
DM
48058 "type" : "string",
48059 "typetext" : "<string>"
7aacca6f 48060 },
44660702
DM
48061 "nowritecache" : {
48062 "description" : "disable write caching on the target",
48063 "optional" : 1,
013dc89f
DM
48064 "type" : "boolean",
48065 "typetext" : "<boolean>"
44660702
DM
48066 },
48067 "options" : {
159464a9 48068 "description" : "NFS/CIFS mount options (see 'man nfs' or 'man mount.cifs')",
44660702
DM
48069 "format" : "pve-storage-options",
48070 "optional" : 1,
013dc89f
DM
48071 "type" : "string",
48072 "typetext" : "<string>"
44660702 48073 },
27a7acb2 48074 "password" : {
04d22a9f 48075 "description" : "Password for accessing the share/datastore.",
27a7acb2
DM
48076 "maxLength" : 256,
48077 "optional" : 1,
48078 "type" : "string",
48079 "typetext" : "<string>"
48080 },
44660702
DM
48081 "path" : {
48082 "description" : "File system path.",
48083 "format" : "pve-storage-path",
48084 "optional" : 1,
013dc89f
DM
48085 "type" : "string",
48086 "typetext" : "<string>"
44660702
DM
48087 },
48088 "pool" : {
48089 "description" : "Pool.",
48090 "optional" : 1,
013dc89f
DM
48091 "type" : "string",
48092 "typetext" : "<string>"
44660702 48093 },
4772952b
TL
48094 "port" : {
48095 "default" : 8007,
48096 "description" : "For non default port.",
48097 "maximum" : 65535,
48098 "minimum" : 1,
48099 "optional" : 1,
48100 "type" : "integer",
48101 "typetext" : "<integer> (1 - 65535)"
48102 },
44660702
DM
48103 "portal" : {
48104 "description" : "iSCSI portal (IP or DNS name with optional port).",
48105 "format" : "pve-storage-portal-dns",
48106 "optional" : 1,
013dc89f
DM
48107 "type" : "string",
48108 "typetext" : "<string>"
44660702 48109 },
5370fa8c
TL
48110 "preallocation" : {
48111 "default" : "metadata",
48112 "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
48113 "enum" : [
48114 "off",
48115 "metadata",
48116 "falloc",
48117 "full"
48118 ],
48119 "optional" : 1,
48120 "type" : "string"
48121 },
739d4d64
TL
48122 "prune-backups" : {
48123 "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.",
48124 "format" : "prune-backups",
48125 "optional" : 1,
48126 "type" : "string",
4772952b 48127 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 48128 },
44660702
DM
48129 "saferemove" : {
48130 "description" : "Zero-out data when removing LVs.",
48131 "optional" : 1,
013dc89f
DM
48132 "type" : "boolean",
48133 "typetext" : "<boolean>"
44660702
DM
48134 },
48135 "saferemove_throughput" : {
48136 "description" : "Wipe throughput (cstream -t parameter value).",
48137 "optional" : 1,
013dc89f
DM
48138 "type" : "string",
48139 "typetext" : "<string>"
44660702
DM
48140 },
48141 "server" : {
48142 "description" : "Server IP or DNS name.",
48143 "format" : "pve-storage-server",
48144 "optional" : 1,
013dc89f
DM
48145 "type" : "string",
48146 "typetext" : "<string>"
44660702
DM
48147 },
48148 "server2" : {
48149 "description" : "Backup volfile server IP or DNS name.",
48150 "format" : "pve-storage-server",
48151 "optional" : 1,
48152 "requires" : "server",
013dc89f
DM
48153 "type" : "string",
48154 "typetext" : "<string>"
44660702 48155 },
27a7acb2
DM
48156 "share" : {
48157 "description" : "CIFS share.",
48158 "optional" : 1,
48159 "type" : "string",
48160 "typetext" : "<string>"
48161 },
44660702
DM
48162 "shared" : {
48163 "description" : "Mark storage as shared.",
48164 "optional" : 1,
013dc89f
DM
48165 "type" : "boolean",
48166 "typetext" : "<boolean>"
44660702 48167 },
27a7acb2 48168 "smbversion" : {
5370fa8c
TL
48169 "default" : "default",
48170 "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
5da3d723 48171 "enum" : [
5370fa8c 48172 "default",
5da3d723
TL
48173 "2.0",
48174 "2.1",
5370fa8c
TL
48175 "3",
48176 "3.0",
48177 "3.11"
5da3d723 48178 ],
27a7acb2 48179 "optional" : 1,
5da3d723 48180 "type" : "string"
27a7acb2 48181 },
44660702
DM
48182 "sparse" : {
48183 "description" : "use sparse volumes",
48184 "optional" : 1,
013dc89f
DM
48185 "type" : "boolean",
48186 "typetext" : "<boolean>"
44660702
DM
48187 },
48188 "storage" : {
48189 "description" : "The storage identifier.",
48190 "format" : "pve-storage-id",
013dc89f
DM
48191 "type" : "string",
48192 "typetext" : "<string>"
44660702 48193 },
5da3d723
TL
48194 "subdir" : {
48195 "description" : "Subdir to mount.",
48196 "format" : "pve-storage-path",
48197 "optional" : 1,
48198 "type" : "string",
48199 "typetext" : "<string>"
48200 },
4bd7df8b
DM
48201 "tagged_only" : {
48202 "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
48203 "optional" : 1,
013dc89f
DM
48204 "type" : "boolean",
48205 "typetext" : "<boolean>"
4bd7df8b 48206 },
44660702
DM
48207 "target" : {
48208 "description" : "iSCSI target.",
48209 "optional" : 1,
013dc89f
DM
48210 "type" : "string",
48211 "typetext" : "<string>"
44660702
DM
48212 },
48213 "thinpool" : {
48214 "description" : "LVM thin pool LV name.",
48215 "format" : "pve-storage-vgname",
48216 "optional" : 1,
013dc89f
DM
48217 "type" : "string",
48218 "typetext" : "<string>"
44660702
DM
48219 },
48220 "transport" : {
48221 "description" : "Gluster transport: tcp or rdma",
48222 "enum" : [
48223 "tcp",
48224 "rdma",
48225 "unix"
7aacca6f 48226 ],
44660702
DM
48227 "optional" : 1,
48228 "type" : "string"
56122987 48229 },
44660702
DM
48230 "type" : {
48231 "description" : "Storage type.",
48232 "enum" : [
5f4e66fe 48233 "btrfs",
5da3d723 48234 "cephfs",
27a7acb2 48235 "cifs",
44660702 48236 "dir",
44660702
DM
48237 "glusterfs",
48238 "iscsi",
48239 "iscsidirect",
48240 "lvm",
48241 "lvmthin",
48242 "nfs",
c5aa7e14 48243 "pbs",
44660702 48244 "rbd",
44660702
DM
48245 "zfs",
48246 "zfspool"
48247 ],
48248 "type" : "string"
56122987 48249 },
44660702
DM
48250 "username" : {
48251 "description" : "RBD Id.",
48252 "optional" : 1,
013dc89f
DM
48253 "type" : "string",
48254 "typetext" : "<string>"
7aacca6f 48255 },
44660702
DM
48256 "vgname" : {
48257 "description" : "Volume group name.",
48258 "format" : "pve-storage-vgname",
48259 "optional" : 1,
013dc89f
DM
48260 "type" : "string",
48261 "typetext" : "<string>"
44660702
DM
48262 },
48263 "volume" : {
48264 "description" : "Glusterfs Volume.",
48265 "optional" : 1,
013dc89f
DM
48266 "type" : "string",
48267 "typetext" : "<string>"
44660702
DM
48268 }
48269 },
48270 "type" : "object"
48271 },
48272 "permissions" : {
48273 "check" : [
48274 "perm",
48275 "/storage",
48276 [
48277 "Datastore.Allocate"
48278 ]
48279 ]
56122987 48280 },
44660702
DM
48281 "protected" : 1,
48282 "returns" : {
4772952b
TL
48283 "properties" : {
48284 "config" : {
48285 "additionalProperties" : 1,
48286 "description" : "Partial, possible server generated, configuration properties.",
48287 "optional" : 1,
48288 "properties" : {
48289 "encryption-key" : {
48290 "description" : "The, possible auto-generated, encryption-key.",
48291 "optional" : 1,
48292 "type" : "string"
48293 }
48294 },
48295 "type" : "object"
48296 },
48297 "storage" : {
48298 "description" : "The ID of the created storage.",
48299 "type" : "string"
48300 },
48301 "type" : {
48302 "description" : "The type of the created storage.",
48303 "enum" : [
5f4e66fe 48304 "btrfs",
4772952b
TL
48305 "cephfs",
48306 "cifs",
48307 "dir",
4772952b
TL
48308 "glusterfs",
48309 "iscsi",
48310 "iscsidirect",
48311 "lvm",
48312 "lvmthin",
48313 "nfs",
48314 "pbs",
48315 "rbd",
48316 "zfs",
48317 "zfspool"
48318 ],
48319 "type" : "string"
48320 }
48321 },
48322 "type" : "object"
44660702
DM
48323 }
48324 }
48325 },
48326 "leaf" : 0,
48327 "path" : "/storage",
48328 "text" : "storage"
48329 },
48330 {
48331 "children" : [
48332 {
56122987
DM
48333 "children" : [
48334 {
bb4c8cf8
TL
48335 "children" : [
48336 {
48337 "info" : {
48338 "GET" : {
e9cd3bd4 48339 "allowtoken" : 1,
bb4c8cf8
TL
48340 "description" : "Get user TFA types (Personal and Realm).",
48341 "method" : "GET",
48342 "name" : "read_user_tfa_type",
48343 "parameters" : {
48344 "additionalProperties" : 0,
48345 "properties" : {
5370fa8c
TL
48346 "multiple" : {
48347 "default" : 0,
48348 "description" : "Request all entries as an array.",
48349 "optional" : 1,
48350 "type" : "boolean",
48351 "typetext" : "<boolean>"
48352 },
bb4c8cf8 48353 "userid" : {
9d2e98ed 48354 "description" : "Full User ID, in the `name@realm` format.",
bb4c8cf8
TL
48355 "format" : "pve-userid",
48356 "maxLength" : 64,
48357 "type" : "string",
48358 "typetext" : "<string>"
48359 }
48360 }
48361 },
48362 "permissions" : {
48363 "check" : [
48364 "or",
48365 [
48366 "userid-param",
48367 "self"
48368 ],
48369 [
48370 "userid-group",
48371 [
48372 "User.Modify",
48373 "Sys.Audit"
48374 ]
48375 ]
48376 ]
48377 },
48378 "protected" : 1,
48379 "returns" : {
48380 "additionalProperties" : 0,
48381 "properties" : {
48382 "realm" : {
48383 "description" : "The type of TFA the users realm has set, if any.",
48384 "enum" : [
48385 "oath",
48386 "yubico"
48387 ],
48388 "optional" : 1,
48389 "type" : "string"
48390 },
5370fa8c
TL
48391 "types" : {
48392 "description" : "Array of the user configured TFA types, if any. Only available if 'multiple' was not passed.",
48393 "items" : {
48394 "description" : "A TFA type.",
48395 "enum" : [
48396 "totp",
48397 "u2f",
48398 "yubico",
48399 "webauthn",
48400 "recovedry"
48401 ],
48402 "type" : "string"
48403 },
48404 "optional" : 1,
48405 "type" : "array"
48406 },
bb4c8cf8 48407 "user" : {
5370fa8c 48408 "description" : "The type of TFA the user has set, if any. Only set if 'multiple' was not passed.",
bb4c8cf8
TL
48409 "enum" : [
48410 "oath",
48411 "u2f"
48412 ],
48413 "optional" : 1,
48414 "type" : "string"
48415 }
48416 },
48417 "type" : "object"
48418 }
48419 }
48420 },
48421 "leaf" : 1,
48422 "path" : "/access/users/{userid}/tfa",
48423 "text" : "tfa"
e9cd3bd4 48424 },
4a407cfd
TL
48425 {
48426 "info" : {
48427 "PUT" : {
48428 "allowtoken" : 1,
48429 "description" : "Unlock a user's TFA authentication.",
48430 "method" : "PUT",
48431 "name" : "unlock_tfa",
48432 "parameters" : {
48433 "additionalProperties" : 0,
48434 "properties" : {
48435 "userid" : {
48436 "description" : "Full User ID, in the `name@realm` format.",
48437 "format" : "pve-userid",
48438 "maxLength" : 64,
48439 "type" : "string",
48440 "typetext" : "<string>"
48441 }
48442 }
48443 },
48444 "permissions" : {
48445 "check" : [
48446 "userid-group",
48447 [
48448 "User.Modify"
48449 ]
48450 ]
48451 },
48452 "protected" : 1,
48453 "returns" : {
48454 "type" : "boolean"
48455 }
48456 }
48457 },
48458 "leaf" : 1,
48459 "path" : "/access/users/{userid}/unlock-tfa",
48460 "text" : "unlock-tfa"
48461 },
e9cd3bd4
TL
48462 {
48463 "children" : [
48464 {
48465 "info" : {
48466 "DELETE" : {
48467 "allowtoken" : 1,
48468 "description" : "Remove API token for a specific user.",
48469 "method" : "DELETE",
48470 "name" : "remove_token",
48471 "parameters" : {
48472 "additionalProperties" : 0,
48473 "properties" : {
48474 "tokenid" : {
48475 "description" : "User-specific token identifier.",
48476 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
48477 "type" : "string"
48478 },
48479 "userid" : {
9d2e98ed 48480 "description" : "Full User ID, in the `name@realm` format.",
e9cd3bd4
TL
48481 "format" : "pve-userid",
48482 "maxLength" : 64,
48483 "type" : "string",
48484 "typetext" : "<string>"
48485 }
48486 }
48487 },
48488 "permissions" : {
48489 "check" : [
48490 "or",
48491 [
48492 "userid-param",
48493 "self"
48494 ],
48495 [
de786b48 48496 "userid-group",
e9cd3bd4
TL
48497 [
48498 "User.Modify"
48499 ]
48500 ]
48501 ]
48502 },
48503 "protected" : 1,
48504 "returns" : {
c5aa7e14
TL
48505 "type" : "null"
48506 }
48507 },
48508 "GET" : {
48509 "allowtoken" : 1,
48510 "description" : "Get specific API token information.",
48511 "method" : "GET",
48512 "name" : "read_token",
48513 "parameters" : {
48514 "additionalProperties" : 0,
48515 "properties" : {
48516 "tokenid" : {
48517 "description" : "User-specific token identifier.",
48518 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
48519 "type" : "string"
48520 },
48521 "userid" : {
9d2e98ed 48522 "description" : "Full User ID, in the `name@realm` format.",
c5aa7e14
TL
48523 "format" : "pve-userid",
48524 "maxLength" : 64,
48525 "type" : "string",
48526 "typetext" : "<string>"
48527 }
48528 }
48529 },
48530 "permissions" : {
48531 "check" : [
48532 "or",
48533 [
48534 "userid-param",
48535 "self"
48536 ],
48537 [
de786b48 48538 "userid-group",
c5aa7e14
TL
48539 [
48540 "User.Modify"
48541 ]
48542 ]
48543 ]
48544 },
48545 "returns" : {
48546 "properties" : {
48547 "comment" : {
48548 "optional" : 1,
48549 "type" : "string"
48550 },
48551 "expire" : {
48552 "default" : "same as user",
48553 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
48554 "minimum" : 0,
48555 "optional" : 1,
48556 "type" : "integer"
48557 },
48558 "privsep" : {
48559 "default" : 1,
48560 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
48561 "optional" : 1,
48562 "type" : "boolean"
48563 }
48564 },
48565 "type" : "object"
48566 }
48567 },
48568 "POST" : {
48569 "allowtoken" : 1,
48570 "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!",
48571 "method" : "POST",
48572 "name" : "generate_token",
48573 "parameters" : {
48574 "additionalProperties" : 0,
48575 "properties" : {
48576 "comment" : {
48577 "optional" : 1,
48578 "type" : "string",
48579 "typetext" : "<string>"
48580 },
48581 "expire" : {
48582 "default" : "same as user",
48583 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
48584 "minimum" : 0,
48585 "optional" : 1,
48586 "type" : "integer",
48587 "typetext" : "<integer> (0 - N)"
48588 },
48589 "privsep" : {
48590 "default" : 1,
48591 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
48592 "optional" : 1,
48593 "type" : "boolean",
48594 "typetext" : "<boolean>"
48595 },
48596 "tokenid" : {
48597 "description" : "User-specific token identifier.",
48598 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
48599 "type" : "string"
48600 },
48601 "userid" : {
9d2e98ed 48602 "description" : "Full User ID, in the `name@realm` format.",
c5aa7e14
TL
48603 "format" : "pve-userid",
48604 "maxLength" : 64,
48605 "type" : "string",
48606 "typetext" : "<string>"
48607 }
48608 }
48609 },
48610 "permissions" : {
48611 "check" : [
48612 "or",
48613 [
48614 "userid-param",
48615 "self"
48616 ],
48617 [
de786b48 48618 "userid-group",
c5aa7e14
TL
48619 [
48620 "User.Modify"
48621 ]
48622 ]
48623 ]
48624 },
48625 "protected" : 1,
48626 "returns" : {
e9cd3bd4
TL
48627 "additionalProperties" : 0,
48628 "properties" : {
c5aa7e14
TL
48629 "full-tokenid" : {
48630 "description" : "The full token id.",
48631 "format_description" : "<userid>!<tokenid>",
e9cd3bd4
TL
48632 "type" : "string"
48633 },
e9cd3bd4
TL
48634 "info" : {
48635 "properties" : {
48636 "comment" : {
48637 "optional" : 1,
48638 "type" : "string"
48639 },
48640 "expire" : {
48641 "default" : "same as user",
48642 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
48643 "minimum" : 0,
48644 "optional" : 1,
48645 "type" : "integer"
48646 },
48647 "privsep" : {
48648 "default" : 1,
48649 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
48650 "optional" : 1,
48651 "type" : "boolean"
48652 }
48653 },
48654 "type" : "object"
48655 },
48656 "value" : {
48657 "description" : "API token value used for authentication.",
48658 "type" : "string"
48659 }
48660 },
48661 "type" : "object"
48662 }
48663 },
48664 "PUT" : {
48665 "allowtoken" : 1,
48666 "description" : "Update API token for a specific user.",
48667 "method" : "PUT",
48668 "name" : "update_token_info",
48669 "parameters" : {
48670 "additionalProperties" : 0,
48671 "properties" : {
48672 "comment" : {
48673 "optional" : 1,
48674 "type" : "string",
48675 "typetext" : "<string>"
48676 },
48677 "expire" : {
48678 "default" : "same as user",
48679 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
48680 "minimum" : 0,
48681 "optional" : 1,
48682 "type" : "integer",
48683 "typetext" : "<integer> (0 - N)"
48684 },
48685 "privsep" : {
48686 "default" : 1,
48687 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
48688 "optional" : 1,
48689 "type" : "boolean",
48690 "typetext" : "<boolean>"
48691 },
48692 "tokenid" : {
48693 "description" : "User-specific token identifier.",
48694 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
48695 "type" : "string"
48696 },
48697 "userid" : {
9d2e98ed 48698 "description" : "Full User ID, in the `name@realm` format.",
e9cd3bd4
TL
48699 "format" : "pve-userid",
48700 "maxLength" : 64,
48701 "type" : "string",
48702 "typetext" : "<string>"
48703 }
48704 }
48705 },
48706 "permissions" : {
48707 "check" : [
48708 "or",
48709 [
48710 "userid-param",
48711 "self"
48712 ],
48713 [
de786b48 48714 "userid-group",
e9cd3bd4
TL
48715 [
48716 "User.Modify"
48717 ]
48718 ]
48719 ]
48720 },
48721 "protected" : 1,
48722 "returns" : {
48723 "description" : "Updated token information.",
48724 "properties" : {
48725 "comment" : {
48726 "optional" : 1,
48727 "type" : "string"
48728 },
48729 "expire" : {
48730 "default" : "same as user",
48731 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
48732 "minimum" : 0,
48733 "optional" : 1,
48734 "type" : "integer"
48735 },
48736 "privsep" : {
48737 "default" : 1,
48738 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
48739 "optional" : 1,
48740 "type" : "boolean"
48741 }
48742 },
48743 "type" : "object"
48744 }
48745 }
48746 },
48747 "leaf" : 1,
48748 "path" : "/access/users/{userid}/token/{tokenid}",
48749 "text" : "{tokenid}"
48750 }
48751 ],
48752 "info" : {
48753 "GET" : {
48754 "allowtoken" : 1,
48755 "description" : "Get user API tokens.",
48756 "method" : "GET",
48757 "name" : "token_index",
48758 "parameters" : {
48759 "additionalProperties" : 0,
48760 "properties" : {
48761 "userid" : {
9d2e98ed 48762 "description" : "Full User ID, in the `name@realm` format.",
e9cd3bd4
TL
48763 "format" : "pve-userid",
48764 "maxLength" : 64,
48765 "type" : "string",
48766 "typetext" : "<string>"
48767 }
48768 }
48769 },
48770 "permissions" : {
48771 "check" : [
48772 "or",
48773 [
48774 "userid-param",
48775 "self"
48776 ],
48777 [
de786b48 48778 "userid-group",
e9cd3bd4
TL
48779 [
48780 "User.Modify"
48781 ]
48782 ]
48783 ]
48784 },
48785 "returns" : {
48786 "items" : {
48787 "properties" : {
48788 "comment" : {
48789 "optional" : 1,
48790 "type" : "string"
48791 },
48792 "expire" : {
48793 "default" : "same as user",
48794 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
48795 "minimum" : 0,
48796 "optional" : 1,
48797 "type" : "integer"
48798 },
48799 "privsep" : {
48800 "default" : 1,
48801 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
48802 "optional" : 1,
48803 "type" : "boolean"
48804 },
48805 "tokenid" : {
48806 "description" : "User-specific token identifier.",
48807 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
48808 "type" : "string"
48809 }
48810 },
48811 "type" : "object"
48812 },
48813 "links" : [
48814 {
48815 "href" : "{tokenid}",
48816 "rel" : "child"
48817 }
48818 ],
48819 "type" : "array"
48820 }
48821 }
48822 },
48823 "leaf" : 0,
48824 "path" : "/access/users/{userid}/token",
48825 "text" : "token"
bb4c8cf8
TL
48826 }
48827 ],
56122987 48828 "info" : {
44660702 48829 "DELETE" : {
e9cd3bd4 48830 "allowtoken" : 1,
44660702
DM
48831 "description" : "Delete user.",
48832 "method" : "DELETE",
48833 "name" : "delete_user",
56122987 48834 "parameters" : {
7aacca6f 48835 "additionalProperties" : 0,
56122987 48836 "properties" : {
56122987 48837 "userid" : {
9d2e98ed 48838 "description" : "Full User ID, in the `name@realm` format.",
56122987 48839 "format" : "pve-userid",
44660702 48840 "maxLength" : 64,
013dc89f
DM
48841 "type" : "string",
48842 "typetext" : "<string>"
56122987 48843 }
7aacca6f 48844 }
56122987 48845 },
56122987
DM
48846 "permissions" : {
48847 "check" : [
44660702 48848 "and",
56122987 48849 [
44660702
DM
48850 "userid-param",
48851 "Realm.AllocateUser"
56122987 48852 ],
44660702
DM
48853 [
48854 "userid-group",
48855 [
48856 "User.Modify"
48857 ]
48858 ]
56122987 48859 ]
7aacca6f 48860 },
44660702 48861 "protected" : 1,
56122987
DM
48862 "returns" : {
48863 "type" : "null"
44660702 48864 }
7aacca6f 48865 },
44660702 48866 "GET" : {
e9cd3bd4 48867 "allowtoken" : 1,
44660702
DM
48868 "description" : "Get user configuration.",
48869 "method" : "GET",
48870 "name" : "read_user",
56122987
DM
48871 "parameters" : {
48872 "additionalProperties" : 0,
48873 "properties" : {
48874 "userid" : {
9d2e98ed 48875 "description" : "Full User ID, in the `name@realm` format.",
56122987 48876 "format" : "pve-userid",
44660702 48877 "maxLength" : 64,
013dc89f
DM
48878 "type" : "string",
48879 "typetext" : "<string>"
56122987
DM
48880 }
48881 }
48882 },
56122987
DM
48883 "permissions" : {
48884 "check" : [
44660702 48885 "userid-group",
56122987 48886 [
44660702
DM
48887 "User.Modify",
48888 "Sys.Audit"
56122987
DM
48889 ]
48890 ]
48891 },
56122987 48892 "returns" : {
7aacca6f 48893 "additionalProperties" : 0,
56122987 48894 "properties" : {
44660702
DM
48895 "comment" : {
48896 "optional" : 1,
48897 "type" : "string"
56122987 48898 },
44660702 48899 "email" : {
e2d681b3 48900 "format" : "email-opt",
44660702
DM
48901 "optional" : 1,
48902 "type" : "string"
7aacca6f
DM
48903 },
48904 "enable" : {
e2d681b3
TL
48905 "default" : 1,
48906 "description" : "Enable the account (default). You can set this to '0' to disable the account",
48907 "optional" : 1,
7aacca6f
DM
48908 "type" : "boolean"
48909 },
44660702 48910 "expire" : {
e2d681b3
TL
48911 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
48912 "minimum" : 0,
44660702
DM
48913 "optional" : 1,
48914 "type" : "integer"
48915 },
48916 "firstname" : {
56122987
DM
48917 "optional" : 1,
48918 "type" : "string"
48919 },
44660702 48920 "groups" : {
e9cd3bd4
TL
48921 "items" : {
48922 "format" : "pve-groupid",
48923 "type" : "string"
48924 },
48925 "optional" : 1,
44660702 48926 "type" : "array"
56122987 48927 },
44660702 48928 "keys" : {
e2d681b3 48929 "description" : "Keys for two factor auth (yubico).",
44660702
DM
48930 "optional" : 1,
48931 "type" : "string"
7aacca6f 48932 },
44660702
DM
48933 "lastname" : {
48934 "optional" : 1,
48935 "type" : "string"
e9cd3bd4
TL
48936 },
48937 "tokens" : {
c30bb419
TL
48938 "additionalProperties" : {
48939 "properties" : {
48940 "comment" : {
48941 "optional" : 1,
48942 "type" : "string"
48943 },
48944 "expire" : {
48945 "default" : "same as user",
48946 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
48947 "minimum" : 0,
48948 "optional" : 1,
48949 "type" : "integer"
48950 },
48951 "privsep" : {
48952 "default" : 1,
48953 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
48954 "optional" : 1,
48955 "type" : "boolean"
48956 }
48957 },
48958 "type" : "object"
48959 },
e9cd3bd4
TL
48960 "optional" : 1,
48961 "type" : "object"
56122987 48962 }
e2d681b3
TL
48963 },
48964 "type" : "object"
44660702
DM
48965 }
48966 },
48967 "PUT" : {
e9cd3bd4 48968 "allowtoken" : 1,
44660702
DM
48969 "description" : "Update user configuration.",
48970 "method" : "PUT",
48971 "name" : "update_user",
56122987 48972 "parameters" : {
44660702 48973 "additionalProperties" : 0,
56122987 48974 "properties" : {
44660702
DM
48975 "append" : {
48976 "optional" : 1,
48977 "requires" : "groups",
013dc89f
DM
48978 "type" : "boolean",
48979 "typetext" : "<boolean>"
44660702
DM
48980 },
48981 "comment" : {
48982 "optional" : 1,
013dc89f
DM
48983 "type" : "string",
48984 "typetext" : "<string>"
44660702
DM
48985 },
48986 "email" : {
48987 "format" : "email-opt",
48988 "optional" : 1,
013dc89f
DM
48989 "type" : "string",
48990 "typetext" : "<string>"
44660702
DM
48991 },
48992 "enable" : {
e2d681b3
TL
48993 "default" : 1,
48994 "description" : "Enable the account (default). You can set this to '0' to disable the account",
44660702 48995 "optional" : 1,
013dc89f
DM
48996 "type" : "boolean",
48997 "typetext" : "<boolean>"
44660702
DM
48998 },
48999 "expire" : {
49000 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
49001 "minimum" : 0,
49002 "optional" : 1,
4bd7df8b 49003 "type" : "integer",
013dc89f 49004 "typetext" : "<integer> (0 - N)"
44660702
DM
49005 },
49006 "firstname" : {
49007 "optional" : 1,
013dc89f
DM
49008 "type" : "string",
49009 "typetext" : "<string>"
44660702
DM
49010 },
49011 "groups" : {
49012 "format" : "pve-groupid-list",
49013 "optional" : 1,
013dc89f
DM
49014 "type" : "string",
49015 "typetext" : "<string>"
44660702
DM
49016 },
49017 "keys" : {
49018 "description" : "Keys for two factor auth (yubico).",
49019 "optional" : 1,
013dc89f
DM
49020 "type" : "string",
49021 "typetext" : "<string>"
44660702
DM
49022 },
49023 "lastname" : {
49024 "optional" : 1,
013dc89f
DM
49025 "type" : "string",
49026 "typetext" : "<string>"
44660702 49027 },
56122987 49028 "userid" : {
9d2e98ed 49029 "description" : "Full User ID, in the `name@realm` format.",
56122987 49030 "format" : "pve-userid",
44660702 49031 "maxLength" : 64,
013dc89f
DM
49032 "type" : "string",
49033 "typetext" : "<string>"
56122987 49034 }
44660702 49035 }
56122987 49036 },
56122987
DM
49037 "permissions" : {
49038 "check" : [
49039 "userid-group",
49040 [
44660702
DM
49041 "User.Modify"
49042 ],
49043 "groups_param",
c30bb419 49044 "update"
56122987
DM
49045 ]
49046 },
44660702
DM
49047 "protected" : 1,
49048 "returns" : {
49049 "type" : "null"
49050 }
56122987
DM
49051 }
49052 },
bb4c8cf8 49053 "leaf" : 0,
44660702 49054 "path" : "/access/users/{userid}",
7aacca6f 49055 "text" : "{userid}"
56122987 49056 }
7aacca6f 49057 ],
56122987 49058 "info" : {
7aacca6f 49059 "GET" : {
e9cd3bd4 49060 "allowtoken" : 1,
44660702
DM
49061 "description" : "User index.",
49062 "method" : "GET",
7aacca6f 49063 "name" : "index",
56122987 49064 "parameters" : {
44660702
DM
49065 "additionalProperties" : 0,
49066 "properties" : {
49067 "enabled" : {
49068 "description" : "Optional filter for enable property.",
49069 "optional" : 1,
013dc89f
DM
49070 "type" : "boolean",
49071 "typetext" : "<boolean>"
e9cd3bd4
TL
49072 },
49073 "full" : {
49074 "default" : 0,
49075 "description" : "Include group and token information.",
49076 "optional" : 1,
49077 "type" : "boolean",
49078 "typetext" : "<boolean>"
44660702
DM
49079 }
49080 }
49081 },
49082 "permissions" : {
49083 "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.",
49084 "user" : "all"
56122987 49085 },
4a407cfd 49086 "protected" : 1,
7aacca6f 49087 "returns" : {
7aacca6f
DM
49088 "items" : {
49089 "properties" : {
e2d681b3
TL
49090 "comment" : {
49091 "optional" : 1,
49092 "type" : "string"
49093 },
49094 "email" : {
49095 "format" : "email-opt",
49096 "optional" : 1,
49097 "type" : "string"
49098 },
49099 "enable" : {
49100 "default" : 1,
49101 "description" : "Enable the account (default). You can set this to '0' to disable the account",
49102 "optional" : 1,
49103 "type" : "boolean"
49104 },
49105 "expire" : {
49106 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
49107 "minimum" : 0,
49108 "optional" : 1,
49109 "type" : "integer"
49110 },
49111 "firstname" : {
49112 "optional" : 1,
49113 "type" : "string"
49114 },
e9cd3bd4
TL
49115 "groups" : {
49116 "format" : "pve-groupid-list",
49117 "optional" : 1,
49118 "type" : "string"
49119 },
e2d681b3
TL
49120 "keys" : {
49121 "description" : "Keys for two factor auth (yubico).",
49122 "optional" : 1,
49123 "type" : "string"
49124 },
49125 "lastname" : {
49126 "optional" : 1,
49127 "type" : "string"
49128 },
34f3e481
TL
49129 "realm-type" : {
49130 "description" : "The type of the users realm",
49131 "format" : "pve-realm",
49132 "optional" : 1,
49133 "type" : "string"
49134 },
4a407cfd
TL
49135 "tfa-locked-until" : {
49136 "description" : "Contains a timestamp until when a user is locked out of 2nd factors.",
49137 "optional" : 1,
49138 "type" : "integer"
49139 },
e9cd3bd4
TL
49140 "tokens" : {
49141 "items" : {
49142 "properties" : {
49143 "comment" : {
49144 "optional" : 1,
49145 "type" : "string"
49146 },
49147 "expire" : {
49148 "default" : "same as user",
49149 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
49150 "minimum" : 0,
49151 "optional" : 1,
49152 "type" : "integer"
49153 },
49154 "privsep" : {
49155 "default" : 1,
49156 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
49157 "optional" : 1,
49158 "type" : "boolean"
49159 },
49160 "tokenid" : {
49161 "description" : "User-specific token identifier.",
49162 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
49163 "type" : "string"
49164 }
49165 },
49166 "type" : "object"
49167 },
49168 "optional" : 1,
49169 "type" : "array"
49170 },
4a407cfd
TL
49171 "totp-locked" : {
49172 "description" : "True if the user is currently locked out of TOTP factors.",
49173 "optional" : 1,
49174 "type" : "boolean"
49175 },
44660702 49176 "userid" : {
9d2e98ed 49177 "description" : "Full User ID, in the `name@realm` format.",
e2d681b3
TL
49178 "format" : "pve-userid",
49179 "maxLength" : 64,
7aacca6f
DM
49180 "type" : "string"
49181 }
49182 },
49183 "type" : "object"
49184 },
44660702
DM
49185 "links" : [
49186 {
49187 "href" : "{userid}",
49188 "rel" : "child"
49189 }
49190 ],
7aacca6f
DM
49191 "type" : "array"
49192 }
49193 },
49194 "POST" : {
e9cd3bd4 49195 "allowtoken" : 1,
44660702 49196 "description" : "Create new user.",
7aacca6f 49197 "method" : "POST",
44660702 49198 "name" : "create_user",
56122987 49199 "parameters" : {
7aacca6f
DM
49200 "additionalProperties" : 0,
49201 "properties" : {
44660702
DM
49202 "comment" : {
49203 "optional" : 1,
013dc89f
DM
49204 "type" : "string",
49205 "typetext" : "<string>"
7aacca6f 49206 },
44660702
DM
49207 "email" : {
49208 "format" : "email-opt",
49209 "optional" : 1,
013dc89f
DM
49210 "type" : "string",
49211 "typetext" : "<string>"
44660702
DM
49212 },
49213 "enable" : {
49214 "default" : 1,
e2d681b3 49215 "description" : "Enable the account (default). You can set this to '0' to disable the account",
44660702 49216 "optional" : 1,
013dc89f
DM
49217 "type" : "boolean",
49218 "typetext" : "<boolean>"
44660702
DM
49219 },
49220 "expire" : {
49221 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
49222 "minimum" : 0,
49223 "optional" : 1,
4bd7df8b 49224 "type" : "integer",
013dc89f 49225 "typetext" : "<integer> (0 - N)"
44660702
DM
49226 },
49227 "firstname" : {
49228 "optional" : 1,
013dc89f
DM
49229 "type" : "string",
49230 "typetext" : "<string>"
44660702
DM
49231 },
49232 "groups" : {
49233 "format" : "pve-groupid-list",
49234 "optional" : 1,
013dc89f
DM
49235 "type" : "string",
49236 "typetext" : "<string>"
44660702
DM
49237 },
49238 "keys" : {
49239 "description" : "Keys for two factor auth (yubico).",
49240 "optional" : 1,
013dc89f
DM
49241 "type" : "string",
49242 "typetext" : "<string>"
44660702
DM
49243 },
49244 "lastname" : {
7aacca6f 49245 "optional" : 1,
013dc89f
DM
49246 "type" : "string",
49247 "typetext" : "<string>"
44660702
DM
49248 },
49249 "password" : {
49250 "description" : "Initial password.",
49251 "maxLength" : 64,
49252 "minLength" : 5,
49253 "optional" : 1,
013dc89f
DM
49254 "type" : "string",
49255 "typetext" : "<string>"
44660702
DM
49256 },
49257 "userid" : {
9d2e98ed 49258 "description" : "Full User ID, in the `name@realm` format.",
44660702
DM
49259 "format" : "pve-userid",
49260 "maxLength" : 64,
013dc89f
DM
49261 "type" : "string",
49262 "typetext" : "<string>"
56122987 49263 }
7aacca6f 49264 }
56122987 49265 },
44660702
DM
49266 "permissions" : {
49267 "check" : [
49268 "and",
49269 [
49270 "userid-param",
49271 "Realm.AllocateUser"
49272 ],
49273 [
49274 "userid-group",
49275 [
49276 "User.Modify"
49277 ],
49278 "groups_param",
c30bb419 49279 "create"
44660702
DM
49280 ]
49281 ],
49282 "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."
49283 },
49284 "protected" : 1,
49285 "returns" : {
49286 "type" : "null"
49287 }
56122987
DM
49288 }
49289 },
44660702
DM
49290 "leaf" : 0,
49291 "path" : "/access/users",
49292 "text" : "users"
49293 },
49294 {
56122987
DM
49295 "children" : [
49296 {
56122987
DM
49297 "info" : {
49298 "DELETE" : {
e9cd3bd4 49299 "allowtoken" : 1,
44660702
DM
49300 "description" : "Delete group.",
49301 "method" : "DELETE",
49302 "name" : "delete_group",
49303 "parameters" : {
49304 "additionalProperties" : 0,
49305 "properties" : {
49306 "groupid" : {
49307 "format" : "pve-groupid",
013dc89f
DM
49308 "type" : "string",
49309 "typetext" : "<string>"
44660702
DM
49310 }
49311 }
49312 },
7aacca6f
DM
49313 "permissions" : {
49314 "check" : [
49315 "perm",
49316 "/access/groups",
49317 [
49318 "Group.Allocate"
49319 ]
49320 ]
49321 },
7aacca6f 49322 "protected" : 1,
7aacca6f
DM
49323 "returns" : {
49324 "type" : "null"
44660702 49325 }
7aacca6f 49326 },
44660702 49327 "GET" : {
e9cd3bd4 49328 "allowtoken" : 1,
44660702
DM
49329 "description" : "Get group configuration.",
49330 "method" : "GET",
49331 "name" : "read_group",
49332 "parameters" : {
49333 "additionalProperties" : 0,
49334 "properties" : {
49335 "groupid" : {
49336 "format" : "pve-groupid",
013dc89f
DM
49337 "type" : "string",
49338 "typetext" : "<string>"
44660702
DM
49339 }
49340 }
56122987 49341 },
7aacca6f
DM
49342 "permissions" : {
49343 "check" : [
49344 "perm",
49345 "/access/groups",
49346 [
44660702 49347 "Sys.Audit",
7aacca6f 49348 "Group.Allocate"
44660702
DM
49349 ],
49350 "any",
49351 1
7aacca6f
DM
49352 ]
49353 },
7aacca6f 49354 "returns" : {
44660702 49355 "additionalProperties" : 0,
7aacca6f
DM
49356 "properties" : {
49357 "comment" : {
44660702
DM
49358 "optional" : 1,
49359 "type" : "string"
7aacca6f
DM
49360 },
49361 "members" : {
49362 "items" : {
9d2e98ed 49363 "description" : "Full User ID, in the `name@realm` format.",
e2d681b3
TL
49364 "format" : "pve-userid",
49365 "maxLength" : 64,
7aacca6f
DM
49366 "type" : "string"
49367 },
49368 "type" : "array"
49369 }
49370 },
44660702
DM
49371 "type" : "object"
49372 }
49373 },
49374 "PUT" : {
e9cd3bd4 49375 "allowtoken" : 1,
44660702
DM
49376 "description" : "Update group data.",
49377 "method" : "PUT",
49378 "name" : "update_group",
56122987 49379 "parameters" : {
44660702 49380 "additionalProperties" : 0,
56122987 49381 "properties" : {
44660702
DM
49382 "comment" : {
49383 "optional" : 1,
013dc89f
DM
49384 "type" : "string",
49385 "typetext" : "<string>"
44660702 49386 },
56122987
DM
49387 "groupid" : {
49388 "format" : "pve-groupid",
013dc89f
DM
49389 "type" : "string",
49390 "typetext" : "<string>"
56122987 49391 }
44660702 49392 }
56122987 49393 },
56122987
DM
49394 "permissions" : {
49395 "check" : [
49396 "perm",
49397 "/access/groups",
49398 [
49399 "Group.Allocate"
44660702 49400 ]
56122987
DM
49401 ]
49402 },
44660702
DM
49403 "protected" : 1,
49404 "returns" : {
49405 "type" : "null"
49406 }
7aacca6f
DM
49407 }
49408 },
7aacca6f 49409 "leaf" : 1,
44660702
DM
49410 "path" : "/access/groups/{groupid}",
49411 "text" : "{groupid}"
49412 }
49413 ],
49414 "info" : {
49415 "GET" : {
e9cd3bd4 49416 "allowtoken" : 1,
44660702
DM
49417 "description" : "Group index.",
49418 "method" : "GET",
49419 "name" : "index",
49420 "parameters" : {
49421 "additionalProperties" : 0
49422 },
49423 "permissions" : {
49424 "description" : "The returned list is restricted to groups where you have 'User.Modify', 'Sys.Audit' or 'Group.Allocate' permissions on /access/groups/<group>.",
49425 "user" : "all"
49426 },
49427 "returns" : {
49428 "items" : {
49429 "properties" : {
e2d681b3
TL
49430 "comment" : {
49431 "optional" : 1,
49432 "type" : "string"
49433 },
44660702 49434 "groupid" : {
e2d681b3 49435 "format" : "pve-groupid",
44660702 49436 "type" : "string"
e9cd3bd4
TL
49437 },
49438 "users" : {
49439 "description" : "list of users which form this group",
49440 "format" : "pve-userid-list",
49441 "optional" : 1,
49442 "type" : "string"
44660702
DM
49443 }
49444 },
49445 "type" : "object"
49446 },
49447 "links" : [
49448 {
49449 "href" : "{groupid}",
49450 "rel" : "child"
49451 }
49452 ],
49453 "type" : "array"
49454 }
49455 },
49456 "POST" : {
e9cd3bd4 49457 "allowtoken" : 1,
44660702
DM
49458 "description" : "Create new group.",
49459 "method" : "POST",
49460 "name" : "create_group",
49461 "parameters" : {
49462 "additionalProperties" : 0,
49463 "properties" : {
49464 "comment" : {
49465 "optional" : 1,
013dc89f
DM
49466 "type" : "string",
49467 "typetext" : "<string>"
44660702
DM
49468 },
49469 "groupid" : {
49470 "format" : "pve-groupid",
013dc89f
DM
49471 "type" : "string",
49472 "typetext" : "<string>"
44660702
DM
49473 }
49474 }
49475 },
49476 "permissions" : {
49477 "check" : [
49478 "perm",
49479 "/access/groups",
49480 [
49481 "Group.Allocate"
49482 ]
49483 ]
49484 },
49485 "protected" : 1,
49486 "returns" : {
49487 "type" : "null"
49488 }
7aacca6f 49489 }
44660702 49490 },
7aacca6f 49491 "leaf" : 0,
44660702
DM
49492 "path" : "/access/groups",
49493 "text" : "groups"
7aacca6f
DM
49494 },
49495 {
49496 "children" : [
49497 {
7aacca6f 49498 "info" : {
7aacca6f 49499 "DELETE" : {
e9cd3bd4 49500 "allowtoken" : 1,
7aacca6f 49501 "description" : "Delete role.",
44660702 49502 "method" : "DELETE",
7aacca6f 49503 "name" : "delete_role",
56122987
DM
49504 "parameters" : {
49505 "additionalProperties" : 0,
49506 "properties" : {
7aacca6f
DM
49507 "roleid" : {
49508 "format" : "pve-roleid",
013dc89f
DM
49509 "type" : "string",
49510 "typetext" : "<string>"
56122987
DM
49511 }
49512 }
49513 },
56122987
DM
49514 "permissions" : {
49515 "check" : [
49516 "perm",
7aacca6f 49517 "/access",
56122987 49518 [
7aacca6f
DM
49519 "Sys.Modify"
49520 ]
56122987 49521 ]
44660702
DM
49522 },
49523 "protected" : 1,
49524 "returns" : {
49525 "type" : "null"
56122987
DM
49526 }
49527 },
44660702 49528 "GET" : {
e9cd3bd4 49529 "allowtoken" : 1,
44660702
DM
49530 "description" : "Get role configuration.",
49531 "method" : "GET",
49532 "name" : "read_role",
49533 "parameters" : {
49534 "additionalProperties" : 0,
49535 "properties" : {
49536 "roleid" : {
49537 "format" : "pve-roleid",
013dc89f
DM
49538 "type" : "string",
49539 "typetext" : "<string>"
44660702
DM
49540 }
49541 }
49542 },
7aacca6f 49543 "permissions" : {
44660702 49544 "user" : "all"
56122987 49545 },
e2d681b3
TL
49546 "returns" : {
49547 "additionalProperties" : 0,
49548 "properties" : {
49549 "Datastore.Allocate" : {
49550 "optional" : 1,
49551 "type" : "boolean"
49552 },
49553 "Datastore.AllocateSpace" : {
49554 "optional" : 1,
49555 "type" : "boolean"
49556 },
49557 "Datastore.AllocateTemplate" : {
49558 "optional" : 1,
49559 "type" : "boolean"
49560 },
49561 "Datastore.Audit" : {
49562 "optional" : 1,
49563 "type" : "boolean"
49564 },
49565 "Group.Allocate" : {
49566 "optional" : 1,
49567 "type" : "boolean"
49568 },
159464a9
TL
49569 "Mapping.Audit" : {
49570 "optional" : 1,
49571 "type" : "boolean"
49572 },
49573 "Mapping.Modify" : {
49574 "optional" : 1,
49575 "type" : "boolean"
49576 },
49577 "Mapping.Use" : {
49578 "optional" : 1,
49579 "type" : "boolean"
49580 },
e2d681b3
TL
49581 "Permissions.Modify" : {
49582 "optional" : 1,
49583 "type" : "boolean"
49584 },
49585 "Pool.Allocate" : {
49586 "optional" : 1,
49587 "type" : "boolean"
49588 },
0695fdaf
TL
49589 "Pool.Audit" : {
49590 "optional" : 1,
49591 "type" : "boolean"
49592 },
e2d681b3
TL
49593 "Realm.Allocate" : {
49594 "optional" : 1,
49595 "type" : "boolean"
49596 },
49597 "Realm.AllocateUser" : {
49598 "optional" : 1,
49599 "type" : "boolean"
49600 },
5c1699e5
TL
49601 "SDN.Allocate" : {
49602 "optional" : 1,
49603 "type" : "boolean"
49604 },
49605 "SDN.Audit" : {
49606 "optional" : 1,
159464a9
TL
49607 "type" : "boolean"
49608 },
49609 "SDN.Use" : {
49610 "optional" : 1,
5c1699e5
TL
49611 "type" : "boolean"
49612 },
e2d681b3
TL
49613 "Sys.Audit" : {
49614 "optional" : 1,
49615 "type" : "boolean"
49616 },
49617 "Sys.Console" : {
49618 "optional" : 1,
49619 "type" : "boolean"
49620 },
81a3384d
TL
49621 "Sys.Incoming" : {
49622 "optional" : 1,
49623 "type" : "boolean"
49624 },
e2d681b3
TL
49625 "Sys.Modify" : {
49626 "optional" : 1,
49627 "type" : "boolean"
49628 },
49629 "Sys.PowerMgmt" : {
49630 "optional" : 1,
49631 "type" : "boolean"
49632 },
49633 "Sys.Syslog" : {
49634 "optional" : 1,
49635 "type" : "boolean"
49636 },
49637 "User.Modify" : {
49638 "optional" : 1,
49639 "type" : "boolean"
49640 },
49641 "VM.Allocate" : {
49642 "optional" : 1,
49643 "type" : "boolean"
49644 },
49645 "VM.Audit" : {
49646 "optional" : 1,
49647 "type" : "boolean"
49648 },
49649 "VM.Backup" : {
49650 "optional" : 1,
49651 "type" : "boolean"
49652 },
49653 "VM.Clone" : {
49654 "optional" : 1,
49655 "type" : "boolean"
49656 },
49657 "VM.Config.CDROM" : {
49658 "optional" : 1,
49659 "type" : "boolean"
49660 },
49661 "VM.Config.CPU" : {
49662 "optional" : 1,
49663 "type" : "boolean"
49664 },
ac70d7d1
TL
49665 "VM.Config.Cloudinit" : {
49666 "optional" : 1,
49667 "type" : "boolean"
49668 },
e2d681b3
TL
49669 "VM.Config.Disk" : {
49670 "optional" : 1,
49671 "type" : "boolean"
49672 },
49673 "VM.Config.HWType" : {
49674 "optional" : 1,
49675 "type" : "boolean"
49676 },
49677 "VM.Config.Memory" : {
49678 "optional" : 1,
49679 "type" : "boolean"
49680 },
49681 "VM.Config.Network" : {
49682 "optional" : 1,
49683 "type" : "boolean"
49684 },
49685 "VM.Config.Options" : {
49686 "optional" : 1,
49687 "type" : "boolean"
49688 },
49689 "VM.Console" : {
49690 "optional" : 1,
49691 "type" : "boolean"
49692 },
49693 "VM.Migrate" : {
49694 "optional" : 1,
49695 "type" : "boolean"
49696 },
49697 "VM.Monitor" : {
49698 "optional" : 1,
49699 "type" : "boolean"
49700 },
49701 "VM.PowerMgmt" : {
49702 "optional" : 1,
49703 "type" : "boolean"
49704 },
49705 "VM.Snapshot" : {
49706 "optional" : 1,
49707 "type" : "boolean"
49708 },
49709 "VM.Snapshot.Rollback" : {
49710 "optional" : 1,
49711 "type" : "boolean"
49712 }
49713 },
49714 "type" : "object"
49715 }
44660702
DM
49716 },
49717 "PUT" : {
e9cd3bd4 49718 "allowtoken" : 1,
e2d681b3 49719 "description" : "Update an existing role.",
44660702
DM
49720 "method" : "PUT",
49721 "name" : "update_role",
56122987
DM
49722 "parameters" : {
49723 "additionalProperties" : 0,
49724 "properties" : {
7aacca6f 49725 "append" : {
44660702 49726 "optional" : 1,
7aacca6f 49727 "requires" : "privs",
013dc89f
DM
49728 "type" : "boolean",
49729 "typetext" : "<boolean>"
7aacca6f
DM
49730 },
49731 "privs" : {
49732 "format" : "pve-priv-list",
e2d681b3 49733 "optional" : 1,
013dc89f
DM
49734 "type" : "string",
49735 "typetext" : "<string>"
44660702
DM
49736 },
49737 "roleid" : {
49738 "format" : "pve-roleid",
013dc89f
DM
49739 "type" : "string",
49740 "typetext" : "<string>"
56122987
DM
49741 }
49742 }
49743 },
44660702
DM
49744 "permissions" : {
49745 "check" : [
49746 "perm",
49747 "/access",
49748 [
49749 "Sys.Modify"
49750 ]
49751 ]
49752 },
56122987 49753 "protected" : 1,
7aacca6f
DM
49754 "returns" : {
49755 "type" : "null"
56122987
DM
49756 }
49757 }
49758 },
44660702 49759 "leaf" : 1,
7aacca6f 49760 "path" : "/access/roles/{roleid}",
44660702 49761 "text" : "{roleid}"
56122987
DM
49762 }
49763 ],
56122987 49764 "info" : {
7aacca6f 49765 "GET" : {
e9cd3bd4 49766 "allowtoken" : 1,
7aacca6f 49767 "description" : "Role index.",
44660702 49768 "method" : "GET",
7aacca6f 49769 "name" : "index",
56122987 49770 "parameters" : {
56122987
DM
49771 "additionalProperties" : 0
49772 },
7aacca6f
DM
49773 "permissions" : {
49774 "user" : "all"
49775 },
56122987 49776 "returns" : {
7aacca6f 49777 "items" : {
7aacca6f 49778 "properties" : {
e2d681b3
TL
49779 "privs" : {
49780 "format" : "pve-priv-list",
49781 "optional" : 1,
49782 "type" : "string"
49783 },
7aacca6f 49784 "roleid" : {
e2d681b3 49785 "format" : "pve-roleid",
7aacca6f 49786 "type" : "string"
e2d681b3
TL
49787 },
49788 "special" : {
49789 "default" : 0,
49790 "optional" : 1,
49791 "type" : "boolean"
7aacca6f 49792 }
44660702
DM
49793 },
49794 "type" : "object"
49795 },
49796 "links" : [
49797 {
49798 "href" : "{roleid}",
49799 "rel" : "child"
7aacca6f 49800 }
44660702
DM
49801 ],
49802 "type" : "array"
49803 }
7aacca6f
DM
49804 },
49805 "POST" : {
e9cd3bd4 49806 "allowtoken" : 1,
7aacca6f 49807 "description" : "Create new role.",
44660702
DM
49808 "method" : "POST",
49809 "name" : "create_role",
7aacca6f
DM
49810 "parameters" : {
49811 "additionalProperties" : 0,
49812 "properties" : {
7aacca6f
DM
49813 "privs" : {
49814 "format" : "pve-priv-list",
49815 "optional" : 1,
013dc89f
DM
49816 "type" : "string",
49817 "typetext" : "<string>"
44660702
DM
49818 },
49819 "roleid" : {
49820 "format" : "pve-roleid",
013dc89f
DM
49821 "type" : "string",
49822 "typetext" : "<string>"
7aacca6f
DM
49823 }
49824 }
49825 },
44660702
DM
49826 "permissions" : {
49827 "check" : [
49828 "perm",
49829 "/access",
49830 [
49831 "Sys.Modify"
49832 ]
49833 ]
49834 },
49835 "protected" : 1,
7aacca6f
DM
49836 "returns" : {
49837 "type" : "null"
49838 }
49839 }
49840 },
44660702 49841 "leaf" : 0,
7aacca6f 49842 "path" : "/access/roles",
44660702 49843 "text" : "roles"
7aacca6f
DM
49844 },
49845 {
49846 "info" : {
56122987 49847 "GET" : {
e9cd3bd4 49848 "allowtoken" : 1,
44660702
DM
49849 "description" : "Get Access Control List (ACLs).",
49850 "method" : "GET",
49851 "name" : "read_acl",
7aacca6f
DM
49852 "parameters" : {
49853 "additionalProperties" : 0
49854 },
44660702
DM
49855 "permissions" : {
49856 "description" : "The returned list is restricted to objects where you have rights to modify permissions.",
49857 "user" : "all"
49858 },
56122987 49859 "returns" : {
56122987 49860 "items" : {
44660702 49861 "additionalProperties" : 0,
56122987 49862 "properties" : {
7aacca6f 49863 "path" : {
e2d681b3 49864 "description" : "Access control path",
7aacca6f
DM
49865 "type" : "string"
49866 },
44660702 49867 "propagate" : {
e2d681b3
TL
49868 "default" : 1,
49869 "description" : "Allow to propagate (inherit) permissions.",
49870 "optional" : 1,
44660702
DM
49871 "type" : "boolean"
49872 },
49873 "roleid" : {
49874 "type" : "string"
49875 },
7aacca6f
DM
49876 "type" : {
49877 "enum" : [
49878 "user",
e9cd3bd4
TL
49879 "group",
49880 "token"
7aacca6f
DM
49881 ],
49882 "type" : "string"
49883 },
7aacca6f
DM
49884 "ugid" : {
49885 "type" : "string"
56122987 49886 }
7aacca6f 49887 },
44660702 49888 "type" : "object"
7aacca6f
DM
49889 },
49890 "type" : "array"
44660702 49891 }
7aacca6f
DM
49892 },
49893 "PUT" : {
e9cd3bd4 49894 "allowtoken" : 1,
44660702
DM
49895 "description" : "Update Access Control List (add or remove permissions).",
49896 "method" : "PUT",
7aacca6f
DM
49897 "name" : "update_acl",
49898 "parameters" : {
49899 "additionalProperties" : 0,
49900 "properties" : {
49901 "delete" : {
44660702 49902 "description" : "Remove permissions (instead of adding it).",
7aacca6f 49903 "optional" : 1,
013dc89f
DM
49904 "type" : "boolean",
49905 "typetext" : "<boolean>"
7aacca6f 49906 },
44660702
DM
49907 "groups" : {
49908 "description" : "List of groups.",
49909 "format" : "pve-groupid-list",
7aacca6f 49910 "optional" : 1,
013dc89f
DM
49911 "type" : "string",
49912 "typetext" : "<string>"
7aacca6f
DM
49913 },
49914 "path" : {
49915 "description" : "Access control path",
013dc89f
DM
49916 "type" : "string",
49917 "typetext" : "<string>"
7aacca6f 49918 },
7aacca6f 49919 "propagate" : {
44660702 49920 "default" : 1,
7aacca6f 49921 "description" : "Allow to propagate (inherit) permissions.",
7aacca6f 49922 "optional" : 1,
013dc89f
DM
49923 "type" : "boolean",
49924 "typetext" : "<boolean>"
7aacca6f 49925 },
44660702
DM
49926 "roles" : {
49927 "description" : "List of roles.",
49928 "format" : "pve-roleid-list",
013dc89f
DM
49929 "type" : "string",
49930 "typetext" : "<string>"
44660702 49931 },
e9cd3bd4
TL
49932 "tokens" : {
49933 "description" : "List of API tokens.",
49934 "format" : "pve-tokenid-list",
49935 "optional" : 1,
49936 "type" : "string",
49937 "typetext" : "<string>"
49938 },
44660702
DM
49939 "users" : {
49940 "description" : "List of users.",
49941 "format" : "pve-userid-list",
7aacca6f 49942 "optional" : 1,
013dc89f
DM
49943 "type" : "string",
49944 "typetext" : "<string>"
56122987
DM
49945 }
49946 }
49947 },
56122987 49948 "permissions" : {
7aacca6f
DM
49949 "check" : [
49950 "perm-modify",
49951 "{path}"
49952 ]
49953 },
7aacca6f
DM
49954 "protected" : 1,
49955 "returns" : {
49956 "type" : "null"
44660702 49957 }
56122987
DM
49958 }
49959 },
7aacca6f 49960 "leaf" : 1,
44660702
DM
49961 "path" : "/access/acl",
49962 "text" : "acl"
7aacca6f
DM
49963 },
49964 {
56122987
DM
49965 "children" : [
49966 {
c5aa7e14
TL
49967 "children" : [
49968 {
49969 "info" : {
49970 "POST" : {
49971 "allowtoken" : 1,
49972 "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.",
49973 "method" : "POST",
49974 "name" : "sync",
49975 "parameters" : {
49976 "additionalProperties" : 0,
49977 "properties" : {
49978 "dry-run" : {
49979 "default" : 0,
49980 "description" : "If set, does not write anything.",
49981 "optional" : 1,
49982 "type" : "boolean",
49983 "typetext" : "<boolean>"
49984 },
49985 "enable-new" : {
49986 "default" : "1",
49987 "description" : "Enable newly synced users immediately.",
49988 "optional" : "1",
49989 "type" : "boolean",
49990 "typetext" : "<boolean>"
49991 },
49992 "full" : {
7af2edf9 49993 "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
49994 "optional" : "1",
49995 "type" : "boolean",
49996 "typetext" : "<boolean>"
49997 },
49998 "purge" : {
7af2edf9 49999 "description" : "DEPRECATED: use 'remove-vanished' instead. Remove ACLs for users or groups which were removed from the config during a sync.",
c5aa7e14
TL
50000 "optional" : "1",
50001 "type" : "boolean",
50002 "typetext" : "<boolean>"
50003 },
50004 "realm" : {
50005 "description" : "Authentication domain ID",
50006 "format" : "pve-realm",
50007 "maxLength" : 32,
50008 "type" : "string",
50009 "typetext" : "<string>"
50010 },
7af2edf9 50011 "remove-vanished" : {
9d2e98ed
TL
50012 "default" : "none",
50013 "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync. Instead of a list it also can be 'none' (the default).",
7af2edf9 50014 "optional" : "1",
9d2e98ed 50015 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
7af2edf9 50016 "type" : "string",
9d2e98ed 50017 "typetext" : "([acl];[properties];[entry])|none"
7af2edf9 50018 },
c5aa7e14
TL
50019 "scope" : {
50020 "description" : "Select what to sync.",
50021 "enum" : [
50022 "users",
50023 "groups",
50024 "both"
50025 ],
50026 "optional" : "1",
50027 "type" : "string"
50028 }
50029 }
50030 },
50031 "permissions" : {
50032 "check" : [
50033 "and",
50034 [
c30bb419
TL
50035 "perm",
50036 "/access/realm/{realm}",
50037 [
50038 "Realm.AllocateUser"
50039 ]
c5aa7e14
TL
50040 ],
50041 [
c30bb419
TL
50042 "perm",
50043 "/access/groups",
c5aa7e14
TL
50044 [
50045 "User.Modify"
50046 ]
50047 ]
50048 ],
50049 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
50050 },
50051 "protected" : 1,
50052 "returns" : {
50053 "description" : "Worker Task-UPID",
50054 "type" : "string"
50055 }
50056 }
50057 },
50058 "leaf" : 1,
50059 "path" : "/access/domains/{realm}/sync",
50060 "text" : "sync"
50061 }
50062 ],
56122987 50063 "info" : {
44660702 50064 "DELETE" : {
e9cd3bd4 50065 "allowtoken" : 1,
44660702
DM
50066 "description" : "Delete an authentication server.",
50067 "method" : "DELETE",
50068 "name" : "delete",
50069 "parameters" : {
50070 "additionalProperties" : 0,
50071 "properties" : {
50072 "realm" : {
50073 "description" : "Authentication domain ID",
50074 "format" : "pve-realm",
50075 "maxLength" : 32,
013dc89f
DM
50076 "type" : "string",
50077 "typetext" : "<string>"
56122987 50078 }
44660702 50079 }
56122987 50080 },
56122987
DM
50081 "permissions" : {
50082 "check" : [
50083 "perm",
7aacca6f 50084 "/access/realm",
56122987 50085 [
7aacca6f 50086 "Realm.Allocate"
56122987
DM
50087 ]
50088 ]
50089 },
7aacca6f 50090 "protected" : 1,
7aacca6f
DM
50091 "returns" : {
50092 "type" : "null"
44660702 50093 }
7aacca6f 50094 },
44660702 50095 "GET" : {
e9cd3bd4 50096 "allowtoken" : 1,
44660702
DM
50097 "description" : "Get auth server configuration.",
50098 "method" : "GET",
50099 "name" : "read",
56122987 50100 "parameters" : {
44660702 50101 "additionalProperties" : 0,
56122987 50102 "properties" : {
7aacca6f 50103 "realm" : {
44660702 50104 "description" : "Authentication domain ID",
7aacca6f
DM
50105 "format" : "pve-realm",
50106 "maxLength" : 32,
013dc89f
DM
50107 "type" : "string",
50108 "typetext" : "<string>"
56122987 50109 }
44660702 50110 }
7aacca6f 50111 },
7aacca6f
DM
50112 "permissions" : {
50113 "check" : [
50114 "perm",
50115 "/access/realm",
50116 [
44660702
DM
50117 "Realm.Allocate",
50118 "Sys.Audit"
50119 ],
50120 "any",
50121 1
7aacca6f 50122 ]
44660702
DM
50123 },
50124 "returns" : {}
7aacca6f 50125 },
44660702 50126 "PUT" : {
e9cd3bd4 50127 "allowtoken" : 1,
44660702
DM
50128 "description" : "Update authentication server settings.",
50129 "method" : "PUT",
50130 "name" : "update",
7aacca6f 50131 "parameters" : {
44660702 50132 "additionalProperties" : 0,
7aacca6f 50133 "properties" : {
c30bb419
TL
50134 "acr-values" : {
50135 "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
50136 "optional" : 1,
50137 "type" : "string",
50138 "typetext" : "<string>"
50139 },
34f3e481
TL
50140 "autocreate" : {
50141 "default" : 0,
50142 "description" : "Automatically create users if they do not exist.",
50143 "optional" : 1,
50144 "type" : "boolean",
50145 "typetext" : "<boolean>"
50146 },
44660702
DM
50147 "base_dn" : {
50148 "description" : "LDAP base domain name",
50149 "maxLength" : 256,
50150 "optional" : 1,
287a95cf 50151 "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
44660702
DM
50152 "type" : "string"
50153 },
4bd7df8b
DM
50154 "bind_dn" : {
50155 "description" : "LDAP bind domain name",
50156 "maxLength" : 256,
50157 "optional" : 1,
287a95cf 50158 "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
4bd7df8b
DM
50159 "type" : "string"
50160 },
2489d6df
WB
50161 "capath" : {
50162 "default" : "/etc/ssl/certs",
50163 "description" : "Path to the CA certificate store",
50164 "optional" : 1,
50165 "type" : "string",
50166 "typetext" : "<string>"
50167 },
4772952b
TL
50168 "case-sensitive" : {
50169 "default" : 1,
50170 "description" : "username is case-sensitive",
50171 "optional" : 1,
50172 "type" : "boolean",
50173 "typetext" : "<boolean>"
50174 },
2489d6df
WB
50175 "cert" : {
50176 "description" : "Path to the client certificate",
50177 "optional" : 1,
50178 "type" : "string",
50179 "typetext" : "<string>"
50180 },
50181 "certkey" : {
50182 "description" : "Path to the client certificate key",
50183 "optional" : 1,
50184 "type" : "string",
50185 "typetext" : "<string>"
50186 },
34f3e481
TL
50187 "client-id" : {
50188 "description" : "OpenID Client ID",
50189 "maxLength" : 256,
50190 "optional" : 1,
50191 "type" : "string",
50192 "typetext" : "<string>"
50193 },
50194 "client-key" : {
50195 "description" : "OpenID Client Key",
50196 "maxLength" : 256,
50197 "optional" : 1,
50198 "type" : "string",
50199 "typetext" : "<string>"
50200 },
44660702
DM
50201 "comment" : {
50202 "description" : "Description.",
50203 "maxLength" : 4096,
50204 "optional" : 1,
013dc89f
DM
50205 "type" : "string",
50206 "typetext" : "<string>"
44660702
DM
50207 },
50208 "default" : {
50209 "description" : "Use this as default realm",
50210 "optional" : 1,
013dc89f
DM
50211 "type" : "boolean",
50212 "typetext" : "<boolean>"
44660702
DM
50213 },
50214 "delete" : {
50215 "description" : "A list of settings you want to delete.",
50216 "format" : "pve-configid-list",
50217 "maxLength" : 4096,
50218 "optional" : 1,
013dc89f
DM
50219 "type" : "string",
50220 "typetext" : "<string>"
44660702
DM
50221 },
50222 "digest" : {
50223 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
50224 "maxLength" : 40,
50225 "optional" : 1,
013dc89f
DM
50226 "type" : "string",
50227 "typetext" : "<string>"
44660702
DM
50228 },
50229 "domain" : {
50230 "description" : "AD domain name",
50231 "maxLength" : 256,
50232 "optional" : 1,
50233 "pattern" : "\\S+",
50234 "type" : "string"
50235 },
c5aa7e14
TL
50236 "filter" : {
50237 "description" : "LDAP filter for user sync.",
50238 "maxLength" : 2048,
50239 "optional" : 1,
50240 "type" : "string",
50241 "typetext" : "<string>"
50242 },
50243 "group_classes" : {
50244 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
50245 "description" : "The objectclasses for groups.",
50246 "format" : "ldap-simple-attr-list",
50247 "optional" : 1,
50248 "type" : "string",
50249 "typetext" : "<string>"
50250 },
50251 "group_dn" : {
50252 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
50253 "maxLength" : 256,
50254 "optional" : 1,
287a95cf 50255 "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
c5aa7e14
TL
50256 "type" : "string"
50257 },
50258 "group_filter" : {
50259 "description" : "LDAP filter for group sync.",
50260 "maxLength" : 2048,
50261 "optional" : 1,
50262 "type" : "string",
50263 "typetext" : "<string>"
50264 },
50265 "group_name_attr" : {
50266 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
50267 "format" : "ldap-simple-attr",
50268 "maxLength" : 256,
50269 "optional" : 1,
50270 "type" : "string",
50271 "typetext" : "<string>"
50272 },
34f3e481
TL
50273 "issuer-url" : {
50274 "description" : "OpenID Issuer Url",
50275 "maxLength" : 256,
50276 "optional" : 1,
50277 "type" : "string",
50278 "typetext" : "<string>"
50279 },
c5aa7e14
TL
50280 "mode" : {
50281 "default" : "ldap",
50282 "description" : "LDAP protocol mode.",
50283 "enum" : [
50284 "ldap",
50285 "ldaps",
50286 "ldap+starttls"
50287 ],
50288 "optional" : 1,
50289 "type" : "string"
50290 },
50291 "password" : {
50292 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
50293 "optional" : 1,
50294 "type" : "string",
50295 "typetext" : "<string>"
50296 },
44660702
DM
50297 "port" : {
50298 "description" : "Server port.",
50299 "maximum" : 65535,
50300 "minimum" : 1,
50301 "optional" : 1,
4bd7df8b 50302 "type" : "integer",
013dc89f 50303 "typetext" : "<integer> (1 - 65535)"
44660702 50304 },
c30bb419
TL
50305 "prompt" : {
50306 "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
50307 "optional" : 1,
50308 "pattern" : "(?:none|login|consent|select_account|\\S+)",
50309 "type" : "string"
50310 },
7aacca6f 50311 "realm" : {
7aacca6f
DM
50312 "description" : "Authentication domain ID",
50313 "format" : "pve-realm",
44660702 50314 "maxLength" : 32,
013dc89f
DM
50315 "type" : "string",
50316 "typetext" : "<string>"
44660702 50317 },
c30bb419
TL
50318 "scopes" : {
50319 "default" : "email profile",
50320 "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
50321 "optional" : 1,
50322 "type" : "string",
50323 "typetext" : "<string>"
50324 },
44660702 50325 "secure" : {
c5aa7e14 50326 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
44660702 50327 "optional" : 1,
013dc89f
DM
50328 "type" : "boolean",
50329 "typetext" : "<boolean>"
44660702
DM
50330 },
50331 "server1" : {
50332 "description" : "Server IP address (or DNS name)",
50333 "format" : "address",
50334 "maxLength" : 256,
50335 "optional" : 1,
013dc89f
DM
50336 "type" : "string",
50337 "typetext" : "<string>"
44660702
DM
50338 },
50339 "server2" : {
50340 "description" : "Fallback Server IP address (or DNS name)",
50341 "format" : "address",
50342 "maxLength" : 256,
50343 "optional" : 1,
013dc89f
DM
50344 "type" : "string",
50345 "typetext" : "<string>"
44660702 50346 },
1c532546
TL
50347 "sslversion" : {
50348 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
50349 "enum" : [
50350 "tlsv1",
50351 "tlsv1_1",
50352 "tlsv1_2",
50353 "tlsv1_3"
50354 ],
50355 "optional" : 1,
50356 "type" : "string"
50357 },
c5aa7e14
TL
50358 "sync-defaults-options" : {
50359 "description" : "The default options for behavior of synchronizations.",
50360 "format" : "realm-sync-options",
50361 "optional" : 1,
50362 "type" : "string",
9d2e98ed 50363 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=([acl];[properties];[entry])|none] [,scope=<users|groups|both>]"
c5aa7e14
TL
50364 },
50365 "sync_attributes" : {
50366 "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.",
50367 "optional" : 1,
50368 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
50369 "type" : "string"
50370 },
44660702
DM
50371 "tfa" : {
50372 "description" : "Use Two-factor authentication.",
50373 "format" : "pve-tfa-config",
50374 "maxLength" : 128,
50375 "optional" : 1,
013dc89f 50376 "type" : "string",
95895385 50377 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
44660702
DM
50378 },
50379 "user_attr" : {
50380 "description" : "LDAP user attribute name",
50381 "maxLength" : 256,
50382 "optional" : 1,
50383 "pattern" : "\\S{2,}",
50384 "type" : "string"
2489d6df 50385 },
c5aa7e14
TL
50386 "user_classes" : {
50387 "default" : "inetorgperson, posixaccount, person, user",
50388 "description" : "The objectclasses for users.",
50389 "format" : "ldap-simple-attr-list",
50390 "optional" : 1,
50391 "type" : "string",
50392 "typetext" : "<string>"
50393 },
2489d6df
WB
50394 "verify" : {
50395 "default" : 0,
50396 "description" : "Verify the server's SSL certificate",
50397 "optional" : 1,
50398 "type" : "boolean",
50399 "typetext" : "<boolean>"
7aacca6f 50400 }
56122987 50401 },
44660702 50402 "type" : "object"
56122987 50403 },
7aacca6f
DM
50404 "permissions" : {
50405 "check" : [
50406 "perm",
50407 "/access/realm",
50408 [
44660702
DM
50409 "Realm.Allocate"
50410 ]
7aacca6f
DM
50411 ]
50412 },
44660702
DM
50413 "protected" : 1,
50414 "returns" : {
50415 "type" : "null"
50416 }
56122987 50417 }
44660702 50418 },
c5aa7e14 50419 "leaf" : 0,
44660702
DM
50420 "path" : "/access/domains/{realm}",
50421 "text" : "{realm}"
56122987 50422 }
7aacca6f 50423 ],
56122987
DM
50424 "info" : {
50425 "GET" : {
e9cd3bd4 50426 "allowtoken" : 1,
44660702
DM
50427 "description" : "Authentication domain index.",
50428 "method" : "GET",
50429 "name" : "index",
50430 "parameters" : {
50431 "additionalProperties" : 0
50432 },
50433 "permissions" : {
50434 "description" : "Anyone can access that, because we need that list for the login box (before the user is authenticated).",
50435 "user" : "world"
50436 },
56122987 50437 "returns" : {
56122987
DM
50438 "items" : {
50439 "properties" : {
7aacca6f 50440 "comment" : {
52e44c50 50441 "description" : "A comment. The GUI use this text when you select a domain (Realm) on the login window.",
7aacca6f
DM
50442 "optional" : 1,
50443 "type" : "string"
50444 },
56122987
DM
50445 "realm" : {
50446 "type" : "string"
50447 },
50448 "tfa" : {
7aacca6f 50449 "description" : "Two-factor authentication provider.",
56122987
DM
50450 "enum" : [
50451 "yubico",
50452 "oath"
50453 ],
44660702
DM
50454 "optional" : 1,
50455 "type" : "string"
c5aa7e14
TL
50456 },
50457 "type" : {
50458 "type" : "string"
56122987
DM
50459 }
50460 },
50461 "type" : "object"
44660702
DM
50462 },
50463 "links" : [
50464 {
50465 "href" : "{realm}",
50466 "rel" : "child"
50467 }
50468 ],
50469 "type" : "array"
50470 }
56122987
DM
50471 },
50472 "POST" : {
e9cd3bd4 50473 "allowtoken" : 1,
7aacca6f 50474 "description" : "Add an authentication server.",
44660702 50475 "method" : "POST",
7aacca6f 50476 "name" : "create",
56122987 50477 "parameters" : {
44660702 50478 "additionalProperties" : 0,
56122987 50479 "properties" : {
c30bb419
TL
50480 "acr-values" : {
50481 "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
50482 "optional" : 1,
50483 "type" : "string",
50484 "typetext" : "<string>"
50485 },
34f3e481
TL
50486 "autocreate" : {
50487 "default" : 0,
50488 "description" : "Automatically create users if they do not exist.",
50489 "optional" : 1,
50490 "type" : "boolean",
50491 "typetext" : "<boolean>"
50492 },
44660702
DM
50493 "base_dn" : {
50494 "description" : "LDAP base domain name",
56122987 50495 "maxLength" : 256,
44660702 50496 "optional" : 1,
287a95cf 50497 "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
7aacca6f 50498 "type" : "string"
56122987 50499 },
4bd7df8b
DM
50500 "bind_dn" : {
50501 "description" : "LDAP bind domain name",
50502 "maxLength" : 256,
50503 "optional" : 1,
287a95cf 50504 "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
4bd7df8b
DM
50505 "type" : "string"
50506 },
2489d6df
WB
50507 "capath" : {
50508 "default" : "/etc/ssl/certs",
50509 "description" : "Path to the CA certificate store",
50510 "optional" : 1,
50511 "type" : "string",
50512 "typetext" : "<string>"
50513 },
4772952b
TL
50514 "case-sensitive" : {
50515 "default" : 1,
50516 "description" : "username is case-sensitive",
50517 "optional" : 1,
50518 "type" : "boolean",
50519 "typetext" : "<boolean>"
50520 },
2489d6df
WB
50521 "cert" : {
50522 "description" : "Path to the client certificate",
50523 "optional" : 1,
50524 "type" : "string",
50525 "typetext" : "<string>"
50526 },
50527 "certkey" : {
50528 "description" : "Path to the client certificate key",
50529 "optional" : 1,
50530 "type" : "string",
50531 "typetext" : "<string>"
50532 },
34f3e481
TL
50533 "client-id" : {
50534 "description" : "OpenID Client ID",
50535 "maxLength" : 256,
50536 "optional" : 1,
50537 "type" : "string",
50538 "typetext" : "<string>"
50539 },
50540 "client-key" : {
50541 "description" : "OpenID Client Key",
50542 "maxLength" : 256,
50543 "optional" : 1,
50544 "type" : "string",
50545 "typetext" : "<string>"
50546 },
44660702
DM
50547 "comment" : {
50548 "description" : "Description.",
50549 "maxLength" : 4096,
56122987 50550 "optional" : 1,
013dc89f
DM
50551 "type" : "string",
50552 "typetext" : "<string>"
56122987 50553 },
44660702
DM
50554 "default" : {
50555 "description" : "Use this as default realm",
7aacca6f 50556 "optional" : 1,
013dc89f
DM
50557 "type" : "boolean",
50558 "typetext" : "<boolean>"
56122987 50559 },
44660702
DM
50560 "domain" : {
50561 "description" : "AD domain name",
50562 "maxLength" : 256,
7aacca6f 50563 "optional" : 1,
44660702
DM
50564 "pattern" : "\\S+",
50565 "type" : "string"
56122987 50566 },
c5aa7e14
TL
50567 "filter" : {
50568 "description" : "LDAP filter for user sync.",
50569 "maxLength" : 2048,
50570 "optional" : 1,
50571 "type" : "string",
50572 "typetext" : "<string>"
50573 },
50574 "group_classes" : {
50575 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
50576 "description" : "The objectclasses for groups.",
50577 "format" : "ldap-simple-attr-list",
50578 "optional" : 1,
50579 "type" : "string",
50580 "typetext" : "<string>"
50581 },
50582 "group_dn" : {
50583 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
50584 "maxLength" : 256,
50585 "optional" : 1,
287a95cf 50586 "pattern" : "(?^:\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#]))(,\\s*\\w+=(?^:(\"[^\"]+\"|[^ ,+\"/<>;=#][^,+\"/<>;=]*[^ ,+\"/<>;=]|[^ ,+\"/<>;=#])))*)",
c5aa7e14
TL
50587 "type" : "string"
50588 },
50589 "group_filter" : {
50590 "description" : "LDAP filter for group sync.",
50591 "maxLength" : 2048,
50592 "optional" : 1,
50593 "type" : "string",
50594 "typetext" : "<string>"
50595 },
50596 "group_name_attr" : {
50597 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
50598 "format" : "ldap-simple-attr",
50599 "maxLength" : 256,
50600 "optional" : 1,
50601 "type" : "string",
50602 "typetext" : "<string>"
50603 },
34f3e481
TL
50604 "issuer-url" : {
50605 "description" : "OpenID Issuer Url",
50606 "maxLength" : 256,
50607 "optional" : 1,
50608 "type" : "string",
50609 "typetext" : "<string>"
50610 },
c5aa7e14
TL
50611 "mode" : {
50612 "default" : "ldap",
50613 "description" : "LDAP protocol mode.",
50614 "enum" : [
50615 "ldap",
50616 "ldaps",
50617 "ldap+starttls"
50618 ],
50619 "optional" : 1,
50620 "type" : "string"
50621 },
50622 "password" : {
50623 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
50624 "optional" : 1,
50625 "type" : "string",
50626 "typetext" : "<string>"
50627 },
7aacca6f 50628 "port" : {
44660702 50629 "description" : "Server port.",
7aacca6f 50630 "maximum" : 65535,
44660702 50631 "minimum" : 1,
7aacca6f 50632 "optional" : 1,
4bd7df8b 50633 "type" : "integer",
013dc89f 50634 "typetext" : "<integer> (1 - 65535)"
56122987 50635 },
c30bb419
TL
50636 "prompt" : {
50637 "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
50638 "optional" : 1,
50639 "pattern" : "(?:none|login|consent|select_account|\\S+)",
50640 "type" : "string"
50641 },
44660702
DM
50642 "realm" : {
50643 "description" : "Authentication domain ID",
50644 "format" : "pve-realm",
50645 "maxLength" : 32,
013dc89f
DM
50646 "type" : "string",
50647 "typetext" : "<string>"
44660702 50648 },
c30bb419
TL
50649 "scopes" : {
50650 "default" : "email profile",
50651 "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
50652 "optional" : 1,
50653 "type" : "string",
50654 "typetext" : "<string>"
50655 },
44660702 50656 "secure" : {
c5aa7e14 50657 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
7aacca6f 50658 "optional" : 1,
013dc89f
DM
50659 "type" : "boolean",
50660 "typetext" : "<boolean>"
56122987 50661 },
44660702
DM
50662 "server1" : {
50663 "description" : "Server IP address (or DNS name)",
50664 "format" : "address",
50665 "maxLength" : 256,
50666 "optional" : 1,
013dc89f
DM
50667 "type" : "string",
50668 "typetext" : "<string>"
56122987 50669 },
44660702
DM
50670 "server2" : {
50671 "description" : "Fallback Server IP address (or DNS name)",
50672 "format" : "address",
7aacca6f 50673 "maxLength" : 256,
7aacca6f 50674 "optional" : 1,
013dc89f
DM
50675 "type" : "string",
50676 "typetext" : "<string>"
7aacca6f 50677 },
1c532546
TL
50678 "sslversion" : {
50679 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
50680 "enum" : [
50681 "tlsv1",
50682 "tlsv1_1",
50683 "tlsv1_2",
50684 "tlsv1_3"
50685 ],
50686 "optional" : 1,
50687 "type" : "string"
50688 },
c5aa7e14
TL
50689 "sync-defaults-options" : {
50690 "description" : "The default options for behavior of synchronizations.",
50691 "format" : "realm-sync-options",
50692 "optional" : 1,
50693 "type" : "string",
9d2e98ed 50694 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=([acl];[properties];[entry])|none] [,scope=<users|groups|both>]"
c5aa7e14
TL
50695 },
50696 "sync_attributes" : {
50697 "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.",
50698 "optional" : 1,
50699 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
50700 "type" : "string"
50701 },
44660702
DM
50702 "tfa" : {
50703 "description" : "Use Two-factor authentication.",
50704 "format" : "pve-tfa-config",
50705 "maxLength" : 128,
50706 "optional" : 1,
013dc89f 50707 "type" : "string",
95895385 50708 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
44660702
DM
50709 },
50710 "type" : {
50711 "description" : "Realm type.",
50712 "enum" : [
50713 "ad",
50714 "ldap",
34f3e481 50715 "openid",
44660702
DM
50716 "pam",
50717 "pve"
50718 ],
50719 "type" : "string"
50720 },
50721 "user_attr" : {
50722 "description" : "LDAP user attribute name",
7aacca6f 50723 "maxLength" : 256,
7aacca6f 50724 "optional" : 1,
44660702
DM
50725 "pattern" : "\\S{2,}",
50726 "type" : "string"
2489d6df 50727 },
c5aa7e14
TL
50728 "user_classes" : {
50729 "default" : "inetorgperson, posixaccount, person, user",
50730 "description" : "The objectclasses for users.",
50731 "format" : "ldap-simple-attr-list",
50732 "optional" : 1,
50733 "type" : "string",
50734 "typetext" : "<string>"
50735 },
34f3e481
TL
50736 "username-claim" : {
50737 "description" : "OpenID claim used to generate the unique username.",
34f3e481 50738 "optional" : 1,
c30bb419
TL
50739 "type" : "string",
50740 "typetext" : "<string>"
34f3e481 50741 },
2489d6df
WB
50742 "verify" : {
50743 "default" : 0,
50744 "description" : "Verify the server's SSL certificate",
50745 "optional" : 1,
50746 "type" : "boolean",
50747 "typetext" : "<boolean>"
7aacca6f
DM
50748 }
50749 },
7aacca6f 50750 "type" : "object"
56122987 50751 },
7aacca6f
DM
50752 "permissions" : {
50753 "check" : [
50754 "perm",
50755 "/access/realm",
50756 [
50757 "Realm.Allocate"
50758 ]
50759 ]
44660702
DM
50760 },
50761 "protected" : 1,
50762 "returns" : {
50763 "type" : "null"
7aacca6f 50764 }
56122987 50765 }
7aacca6f 50766 },
44660702 50767 "leaf" : 0,
56122987 50768 "path" : "/access/domains",
44660702 50769 "text" : "domains"
56122987 50770 },
34f3e481
TL
50771 {
50772 "children" : [
50773 {
50774 "info" : {
50775 "POST" : {
50776 "allowtoken" : 1,
50777 "description" : "Get the OpenId Authorization Url for the specified realm.",
50778 "method" : "POST",
50779 "name" : "auth_url",
50780 "parameters" : {
50781 "additionalProperties" : 0,
50782 "properties" : {
50783 "realm" : {
50784 "description" : "Authentication domain ID",
50785 "format" : "pve-realm",
50786 "maxLength" : 32,
50787 "type" : "string",
50788 "typetext" : "<string>"
50789 },
50790 "redirect-url" : {
50791 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
50792 "maxLength" : 255,
50793 "type" : "string",
50794 "typetext" : "<string>"
50795 }
50796 }
50797 },
50798 "permissions" : {
50799 "user" : "world"
50800 },
50801 "protected" : 1,
50802 "returns" : {
50803 "description" : "Redirection URL.",
50804 "type" : "string"
50805 }
50806 }
50807 },
50808 "leaf" : 1,
50809 "path" : "/access/openid/auth-url",
50810 "text" : "auth-url"
50811 },
50812 {
50813 "info" : {
50814 "POST" : {
50815 "allowtoken" : 1,
50816 "description" : " Verify OpenID authorization code and create a ticket.",
50817 "method" : "POST",
50818 "name" : "login",
50819 "parameters" : {
50820 "additionalProperties" : 0,
50821 "properties" : {
50822 "code" : {
50823 "description" : "OpenId authorization code.",
de786b48 50824 "maxLength" : 4096,
34f3e481
TL
50825 "type" : "string",
50826 "typetext" : "<string>"
50827 },
50828 "redirect-url" : {
50829 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
50830 "maxLength" : 255,
50831 "type" : "string",
50832 "typetext" : "<string>"
50833 },
50834 "state" : {
50835 "description" : "OpenId state.",
50836 "maxLength" : 1024,
50837 "type" : "string",
50838 "typetext" : "<string>"
50839 }
50840 }
50841 },
50842 "permissions" : {
50843 "user" : "world"
50844 },
50845 "protected" : 1,
50846 "returns" : {
50847 "properties" : {
50848 "CSRFPreventionToken" : {
50849 "type" : "string"
50850 },
50851 "cap" : {
50852 "type" : "object"
50853 },
50854 "clustername" : {
50855 "optional" : 1,
50856 "type" : "string"
50857 },
50858 "ticket" : {
50859 "type" : "string"
50860 },
50861 "username" : {
50862 "type" : "string"
50863 }
50864 }
50865 }
50866 }
50867 },
50868 "leaf" : 1,
50869 "path" : "/access/openid/login",
50870 "text" : "login"
50871 }
50872 ],
50873 "info" : {
50874 "GET" : {
50875 "allowtoken" : 1,
50876 "description" : "Directory index.",
50877 "method" : "GET",
50878 "name" : "index",
50879 "parameters" : {
50880 "additionalProperties" : 0
50881 },
50882 "permissions" : {
50883 "user" : "all"
50884 },
50885 "returns" : {
50886 "items" : {
50887 "properties" : {
50888 "subdir" : {
50889 "type" : "string"
50890 }
50891 },
50892 "type" : "object"
50893 },
50894 "links" : [
50895 {
50896 "href" : "{subdir}",
50897 "rel" : "child"
50898 }
50899 ],
50900 "type" : "array"
50901 }
50902 }
50903 },
50904 "leaf" : 0,
50905 "path" : "/access/openid",
50906 "text" : "openid"
50907 },
5370fa8c
TL
50908 {
50909 "children" : [
50910 {
50911 "children" : [
50912 {
50913 "info" : {
50914 "DELETE" : {
50915 "allowtoken" : 0,
50916 "description" : "Delete a TFA entry by ID.",
50917 "method" : "DELETE",
50918 "name" : "delete_tfa",
50919 "parameters" : {
50920 "additionalProperties" : 0,
50921 "properties" : {
50922 "id" : {
50923 "description" : "A TFA entry id.",
50924 "type" : "string",
50925 "typetext" : "<string>"
50926 },
50927 "password" : {
50928 "description" : "The current password.",
50929 "maxLength" : 64,
50930 "minLength" : 5,
50931 "optional" : 1,
50932 "type" : "string",
50933 "typetext" : "<string>"
50934 },
50935 "userid" : {
9d2e98ed 50936 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
50937 "format" : "pve-userid",
50938 "maxLength" : 64,
50939 "type" : "string",
50940 "typetext" : "<string>"
50941 }
50942 }
50943 },
50944 "permissions" : {
50945 "check" : [
50946 "or",
50947 [
50948 "userid-param",
50949 "self"
50950 ],
50951 [
50952 "userid-group",
50953 [
50954 "User.Modify"
50955 ]
50956 ]
50957 ]
50958 },
50959 "protected" : 1,
50960 "returns" : {
50961 "type" : "null"
50962 }
50963 },
50964 "GET" : {
50965 "allowtoken" : 0,
50966 "description" : "Fetch a requested TFA entry if present.",
50967 "method" : "GET",
50968 "name" : "get_tfa_entry",
50969 "parameters" : {
50970 "additionalProperties" : 0,
50971 "properties" : {
50972 "id" : {
50973 "description" : "A TFA entry id.",
50974 "type" : "string",
50975 "typetext" : "<string>"
50976 },
50977 "userid" : {
9d2e98ed 50978 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
50979 "format" : "pve-userid",
50980 "maxLength" : 64,
50981 "type" : "string",
50982 "typetext" : "<string>"
50983 }
50984 }
50985 },
50986 "permissions" : {
50987 "check" : [
50988 "or",
50989 [
50990 "userid-param",
50991 "self"
50992 ],
50993 [
50994 "userid-group",
50995 [
50996 "User.Modify",
50997 "Sys.Audit"
50998 ]
50999 ]
51000 ]
51001 },
51002 "protected" : 1,
51003 "returns" : {
51004 "description" : "TFA Entry.",
51005 "properties" : {
51006 "created" : {
51007 "description" : "Creation time of this entry as unix epoch.",
51008 "type" : "integer"
51009 },
51010 "description" : {
51011 "description" : "User chosen description for this entry.",
51012 "type" : "string"
51013 },
51014 "enable" : {
51015 "default" : 1,
51016 "description" : "Whether this TFA entry is currently enabled.",
51017 "optional" : 1,
51018 "type" : "boolean"
51019 },
51020 "id" : {
51021 "description" : "The id used to reference this entry.",
51022 "type" : "string"
51023 },
51024 "type" : {
51025 "description" : "TFA Entry Type.",
51026 "enum" : [
51027 "totp",
51028 "u2f",
51029 "webauthn",
51030 "recovery",
51031 "yubico"
51032 ],
51033 "type" : "string"
51034 }
51035 },
51036 "type" : "object"
51037 }
51038 },
51039 "PUT" : {
51040 "allowtoken" : 0,
51041 "description" : "Add a TFA entry for a user.",
51042 "method" : "PUT",
51043 "name" : "update_tfa_entry",
51044 "parameters" : {
51045 "additionalProperties" : 0,
51046 "properties" : {
51047 "description" : {
51048 "description" : "A description to distinguish multiple entries from one another",
51049 "maxLength" : 255,
51050 "optional" : 1,
51051 "type" : "string",
51052 "typetext" : "<string>"
51053 },
51054 "enable" : {
51055 "description" : "Whether the entry should be enabled for login.",
51056 "optional" : 1,
51057 "type" : "boolean",
51058 "typetext" : "<boolean>"
51059 },
51060 "id" : {
51061 "description" : "A TFA entry id.",
51062 "type" : "string",
51063 "typetext" : "<string>"
51064 },
51065 "password" : {
51066 "description" : "The current password.",
51067 "maxLength" : 64,
51068 "minLength" : 5,
51069 "optional" : 1,
51070 "type" : "string",
51071 "typetext" : "<string>"
51072 },
51073 "userid" : {
9d2e98ed 51074 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
51075 "format" : "pve-userid",
51076 "maxLength" : 64,
51077 "type" : "string",
51078 "typetext" : "<string>"
51079 }
51080 }
51081 },
51082 "permissions" : {
51083 "check" : [
51084 "or",
51085 [
51086 "userid-param",
51087 "self"
51088 ],
51089 [
51090 "userid-group",
51091 [
51092 "User.Modify"
51093 ]
51094 ]
51095 ]
51096 },
51097 "protected" : 1,
51098 "returns" : {
51099 "type" : "null"
51100 }
51101 }
51102 },
51103 "leaf" : 1,
51104 "path" : "/access/tfa/{userid}/{id}",
51105 "text" : "{id}"
51106 }
51107 ],
51108 "info" : {
51109 "GET" : {
51110 "allowtoken" : 0,
51111 "description" : "List TFA configurations of users.",
51112 "method" : "GET",
51113 "name" : "list_user_tfa",
51114 "parameters" : {
51115 "additionalProperties" : 0,
51116 "properties" : {
51117 "userid" : {
9d2e98ed 51118 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
51119 "format" : "pve-userid",
51120 "maxLength" : 64,
51121 "type" : "string",
51122 "typetext" : "<string>"
51123 }
51124 }
51125 },
51126 "permissions" : {
51127 "check" : [
51128 "or",
51129 [
51130 "userid-param",
51131 "self"
51132 ],
51133 [
51134 "userid-group",
51135 [
51136 "User.Modify",
51137 "Sys.Audit"
51138 ]
51139 ]
51140 ]
51141 },
51142 "protected" : 1,
51143 "returns" : {
51144 "description" : "A list of the user's TFA entries.",
51145 "items" : {
51146 "description" : "TFA Entry.",
51147 "properties" : {
51148 "created" : {
51149 "description" : "Creation time of this entry as unix epoch.",
51150 "type" : "integer"
51151 },
51152 "description" : {
51153 "description" : "User chosen description for this entry.",
51154 "type" : "string"
51155 },
51156 "enable" : {
51157 "default" : 1,
51158 "description" : "Whether this TFA entry is currently enabled.",
51159 "optional" : 1,
51160 "type" : "boolean"
51161 },
51162 "id" : {
51163 "description" : "The id used to reference this entry.",
51164 "type" : "string"
51165 },
51166 "type" : {
51167 "description" : "TFA Entry Type.",
51168 "enum" : [
51169 "totp",
51170 "u2f",
51171 "webauthn",
51172 "recovery",
51173 "yubico"
51174 ],
51175 "type" : "string"
51176 }
51177 },
51178 "type" : "object"
51179 },
51180 "type" : "array"
51181 }
51182 },
51183 "POST" : {
51184 "allowtoken" : 0,
51185 "description" : "Add a TFA entry for a user.",
51186 "method" : "POST",
51187 "name" : "add_tfa_entry",
51188 "parameters" : {
51189 "additionalProperties" : 0,
51190 "properties" : {
51191 "challenge" : {
51192 "description" : "When responding to a u2f challenge: the original challenge string",
51193 "optional" : 1,
51194 "type" : "string",
51195 "typetext" : "<string>"
51196 },
51197 "description" : {
51198 "description" : "A description to distinguish multiple entries from one another",
51199 "maxLength" : 255,
51200 "optional" : 1,
51201 "type" : "string",
51202 "typetext" : "<string>"
51203 },
51204 "password" : {
51205 "description" : "The current password.",
51206 "maxLength" : 64,
51207 "minLength" : 5,
51208 "optional" : 1,
51209 "type" : "string",
51210 "typetext" : "<string>"
51211 },
51212 "totp" : {
51213 "description" : "A totp URI.",
51214 "optional" : 1,
51215 "type" : "string",
51216 "typetext" : "<string>"
51217 },
51218 "type" : {
51219 "description" : "TFA Entry Type.",
51220 "enum" : [
51221 "totp",
51222 "u2f",
51223 "webauthn",
51224 "recovery",
51225 "yubico"
51226 ],
51227 "type" : "string"
51228 },
51229 "userid" : {
9d2e98ed 51230 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
51231 "format" : "pve-userid",
51232 "maxLength" : 64,
51233 "type" : "string",
51234 "typetext" : "<string>"
51235 },
51236 "value" : {
51237 "description" : "The current value for the provided totp URI, or a Webauthn/U2F challenge response",
51238 "optional" : 1,
51239 "type" : "string",
51240 "typetext" : "<string>"
51241 }
51242 }
51243 },
51244 "permissions" : {
51245 "check" : [
51246 "or",
51247 [
51248 "userid-param",
51249 "self"
51250 ],
51251 [
51252 "userid-group",
51253 [
51254 "User.Modify"
51255 ]
51256 ]
51257 ]
51258 },
51259 "protected" : 1,
51260 "returns" : {
51261 "properties" : {
51262 "challenge" : {
51263 "description" : "When adding u2f entries, this contains a challenge the user must respond to in order to finish the registration.",
51264 "optional" : 1,
51265 "type" : "string"
51266 },
51267 "id" : {
51268 "description" : "The id of a newly added TFA entry.",
51269 "type" : "string"
51270 },
51271 "recovery" : {
51272 "description" : "When adding recovery codes, this contains the list of codes to be displayed to the user",
51273 "items" : {
51274 "description" : "A recovery entry.",
51275 "type" : "string"
51276 },
51277 "optional" : 1,
51278 "type" : "array"
51279 }
51280 },
51281 "type" : "object"
51282 }
51283 }
51284 },
51285 "leaf" : 0,
51286 "path" : "/access/tfa/{userid}",
51287 "text" : "{userid}"
51288 }
51289 ],
51290 "info" : {
51291 "GET" : {
51292 "allowtoken" : 0,
51293 "description" : "List TFA configurations of users.",
51294 "method" : "GET",
51295 "name" : "list_tfa",
51296 "parameters" : {
51297 "additionalProperties" : 0
51298 },
51299 "permissions" : {
51300 "description" : "Returns all or just the logged-in user, depending on privileges.",
51301 "user" : "all"
51302 },
51303 "protected" : 1,
51304 "returns" : {
51305 "description" : "The list tuples of user and TFA entries.",
51306 "items" : {
51307 "properties" : {
51308 "entries" : {
51309 "items" : {
51310 "description" : "TFA Entry.",
51311 "properties" : {
51312 "created" : {
51313 "description" : "Creation time of this entry as unix epoch.",
51314 "type" : "integer"
51315 },
51316 "description" : {
51317 "description" : "User chosen description for this entry.",
51318 "type" : "string"
51319 },
51320 "enable" : {
51321 "default" : 1,
51322 "description" : "Whether this TFA entry is currently enabled.",
51323 "optional" : 1,
51324 "type" : "boolean"
51325 },
51326 "id" : {
51327 "description" : "The id used to reference this entry.",
51328 "type" : "string"
51329 },
51330 "type" : {
51331 "description" : "TFA Entry Type.",
51332 "enum" : [
51333 "totp",
51334 "u2f",
51335 "webauthn",
51336 "recovery",
51337 "yubico"
51338 ],
51339 "type" : "string"
51340 }
51341 },
51342 "type" : "object"
51343 },
51344 "type" : "array"
51345 },
4a407cfd
TL
51346 "tfa-locked-until" : {
51347 "description" : "Contains a timestamp until when a user is locked out of 2nd factors.",
51348 "optional" : 1,
51349 "type" : "integer"
51350 },
51351 "totp-locked" : {
51352 "description" : "True if the user is currently locked out of TOTP factors.",
51353 "optional" : 1,
51354 "type" : "boolean"
51355 },
5370fa8c
TL
51356 "userid" : {
51357 "description" : "User this entry belongs to.",
51358 "type" : "string"
51359 }
51360 },
51361 "type" : "object"
51362 },
51363 "type" : "array"
51364 }
5370fa8c
TL
51365 }
51366 },
51367 "leaf" : 0,
51368 "path" : "/access/tfa",
51369 "text" : "tfa"
51370 },
56122987 51371 {
56122987 51372 "info" : {
44660702 51373 "GET" : {
e9cd3bd4 51374 "allowtoken" : 1,
2489d6df 51375 "description" : "Dummy. Useful for formatters which want to provide a login page.",
44660702
DM
51376 "method" : "GET",
51377 "name" : "get_ticket",
51378 "parameters" : {
51379 "additionalProperties" : 0
51380 },
51381 "permissions" : {
51382 "user" : "world"
51383 },
51384 "returns" : {
51385 "type" : "null"
51386 }
51387 },
56122987 51388 "POST" : {
e9cd3bd4 51389 "allowtoken" : 0,
44660702 51390 "description" : "Create or verify authentication ticket.",
56122987 51391 "method" : "POST",
44660702
DM
51392 "name" : "create_ticket",
51393 "parameters" : {
51394 "additionalProperties" : 0,
56122987 51395 "properties" : {
5370fa8c 51396 "new-format" : {
4a407cfd
TL
51397 "default" : 1,
51398 "description" : "This parameter is now ignored and assumed to be 1.",
5370fa8c
TL
51399 "optional" : 1,
51400 "type" : "boolean",
51401 "typetext" : "<boolean>"
51402 },
44660702
DM
51403 "otp" : {
51404 "description" : "One-time password for Two-factor authentication.",
7aacca6f 51405 "optional" : 1,
013dc89f
DM
51406 "type" : "string",
51407 "typetext" : "<string>"
56122987 51408 },
7aacca6f
DM
51409 "password" : {
51410 "description" : "The secret password. This can also be a valid ticket.",
013dc89f
DM
51411 "type" : "string",
51412 "typetext" : "<string>"
7aacca6f 51413 },
44660702
DM
51414 "path" : {
51415 "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
7aacca6f 51416 "maxLength" : 64,
56122987 51417 "optional" : 1,
56122987 51418 "requires" : "privs",
013dc89f
DM
51419 "type" : "string",
51420 "typetext" : "<string>"
44660702
DM
51421 },
51422 "privs" : {
7aacca6f 51423 "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
44660702
DM
51424 "format" : "pve-priv-list",
51425 "maxLength" : 64,
56122987 51426 "optional" : 1,
44660702 51427 "requires" : "path",
013dc89f
DM
51428 "type" : "string",
51429 "typetext" : "<string>"
56122987
DM
51430 },
51431 "realm" : {
56122987 51432 "description" : "You can optionally pass the realm using this parameter. Normally the realm is simply added to the username <username>@<relam>.",
44660702 51433 "format" : "pve-realm",
7aacca6f 51434 "maxLength" : 32,
44660702 51435 "optional" : 1,
013dc89f
DM
51436 "type" : "string",
51437 "typetext" : "<string>"
56122987 51438 },
5370fa8c
TL
51439 "tfa-challenge" : {
51440 "description" : "The signed TFA challenge string the user wants to respond to.",
51441 "optional" : 1,
51442 "type" : "string",
51443 "typetext" : "<string>"
51444 },
56122987
DM
51445 "username" : {
51446 "description" : "User name",
44660702 51447 "maxLength" : 64,
013dc89f
DM
51448 "type" : "string",
51449 "typetext" : "<string>"
56122987 51450 }
44660702 51451 }
7aacca6f 51452 },
56122987 51453 "permissions" : {
44660702 51454 "description" : "You need to pass valid credientials.",
56122987
DM
51455 "user" : "world"
51456 },
44660702 51457 "protected" : 1,
7aacca6f 51458 "returns" : {
56122987 51459 "properties" : {
44660702
DM
51460 "CSRFPreventionToken" : {
51461 "optional" : 1,
51462 "type" : "string"
56122987 51463 },
e2d681b3
TL
51464 "clustername" : {
51465 "optional" : 1,
51466 "type" : "string"
51467 },
44660702
DM
51468 "ticket" : {
51469 "optional" : 1,
51470 "type" : "string"
51471 },
51472 "username" : {
56122987
DM
51473 "type" : "string"
51474 }
51475 },
44660702 51476 "type" : "object"
7aacca6f 51477 }
7aacca6f
DM
51478 }
51479 },
44660702
DM
51480 "leaf" : 1,
51481 "path" : "/access/ticket",
51482 "text" : "ticket"
7aacca6f 51483 },
56122987 51484 {
56122987 51485 "info" : {
7aacca6f 51486 "PUT" : {
e9cd3bd4 51487 "allowtoken" : 0,
44660702 51488 "description" : "Change user password.",
7aacca6f 51489 "method" : "PUT",
e2d681b3 51490 "name" : "change_password",
56122987
DM
51491 "parameters" : {
51492 "additionalProperties" : 0,
51493 "properties" : {
44660702
DM
51494 "password" : {
51495 "description" : "The new password.",
51496 "maxLength" : 64,
51497 "minLength" : 5,
013dc89f
DM
51498 "type" : "string",
51499 "typetext" : "<string>"
7aacca6f 51500 },
44660702 51501 "userid" : {
9d2e98ed 51502 "description" : "Full User ID, in the `name@realm` format.",
44660702
DM
51503 "format" : "pve-userid",
51504 "maxLength" : 64,
013dc89f
DM
51505 "type" : "string",
51506 "typetext" : "<string>"
56122987 51507 }
7aacca6f 51508 }
56122987
DM
51509 },
51510 "permissions" : {
51511 "check" : [
44660702 51512 "or",
56122987 51513 [
44660702
DM
51514 "userid-param",
51515 "self"
51516 ],
51517 [
51518 "and",
51519 [
51520 "userid-param",
51521 "Realm.AllocateUser"
51522 ],
51523 [
51524 "userid-group",
51525 [
51526 "User.Modify"
51527 ]
51528 ]
56122987 51529 ]
7aacca6f 51530 ],
44660702 51531 "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 51532 },
44660702 51533 "protected" : 1,
7aacca6f
DM
51534 "returns" : {
51535 "type" : "null"
44660702
DM
51536 }
51537 }
51538 },
51539 "leaf" : 1,
51540 "path" : "/access/password",
51541 "text" : "password"
95895385 51542 },
e9cd3bd4
TL
51543 {
51544 "info" : {
51545 "GET" : {
51546 "allowtoken" : 1,
51547 "description" : "Retrieve effective permissions of given user/token.",
51548 "method" : "GET",
51549 "name" : "permissions",
51550 "parameters" : {
51551 "additionalProperties" : 0,
51552 "properties" : {
51553 "path" : {
51554 "description" : "Only dump this specific path, not the whole tree.",
51555 "optional" : 1,
51556 "type" : "string",
51557 "typetext" : "<string>"
51558 },
51559 "userid" : {
51560 "description" : "User ID or full API token ID",
51561 "optional" : 1,
51562 "pattern" : "(?^:^(?^:[^\\s:/]+)\\@(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)(?:!(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+))?$)",
51563 "type" : "string"
51564 }
51565 }
51566 },
51567 "permissions" : {
51568 "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.",
51569 "user" : "all"
51570 },
51571 "returns" : {
51572 "description" : "Map of \"path\" => (Map of \"privilege\" => \"propagate boolean\").",
51573 "type" : "object"
51574 }
51575 }
51576 },
51577 "leaf" : 1,
51578 "path" : "/access/permissions",
51579 "text" : "permissions"
44660702
DM
51580 }
51581 ],
51582 "info" : {
51583 "GET" : {
e9cd3bd4 51584 "allowtoken" : 1,
44660702
DM
51585 "description" : "Directory index.",
51586 "method" : "GET",
51587 "name" : "index",
51588 "parameters" : {
51589 "additionalProperties" : 0
51590 },
51591 "permissions" : {
51592 "user" : "all"
51593 },
51594 "returns" : {
51595 "items" : {
51596 "properties" : {
51597 "subdir" : {
51598 "type" : "string"
51599 }
7aacca6f 51600 },
44660702
DM
51601 "type" : "object"
51602 },
51603 "links" : [
51604 {
51605 "href" : "{subdir}",
51606 "rel" : "child"
51607 }
51608 ],
51609 "type" : "array"
51610 }
51611 }
51612 },
51613 "leaf" : 0,
51614 "path" : "/access",
51615 "text" : "access"
51616 },
51617 {
51618 "children" : [
51619 {
51620 "info" : {
51621 "DELETE" : {
e9cd3bd4 51622 "allowtoken" : 1,
7aacca6f 51623 "description" : "Delete pool.",
44660702
DM
51624 "method" : "DELETE",
51625 "name" : "delete_pool",
7aacca6f
DM
51626 "parameters" : {
51627 "additionalProperties" : 0,
51628 "properties" : {
51629 "poolid" : {
51630 "format" : "pve-poolid",
013dc89f
DM
51631 "type" : "string",
51632 "typetext" : "<string>"
7aacca6f
DM
51633 }
51634 }
51635 },
56122987
DM
51636 "permissions" : {
51637 "check" : [
51638 "perm",
51639 "/pool/{poolid}",
51640 [
51641 "Pool.Allocate"
51642 ]
44660702
DM
51643 ],
51644 "description" : "You can only delete empty pools (no members)."
51645 },
51646 "protected" : 1,
51647 "returns" : {
51648 "type" : "null"
7aacca6f
DM
51649 }
51650 },
51651 "GET" : {
e9cd3bd4 51652 "allowtoken" : 1,
7aacca6f 51653 "description" : "Get pool configuration.",
44660702 51654 "method" : "GET",
7aacca6f 51655 "name" : "read_pool",
56122987 51656 "parameters" : {
44660702 51657 "additionalProperties" : 0,
56122987
DM
51658 "properties" : {
51659 "poolid" : {
44660702 51660 "format" : "pve-poolid",
013dc89f
DM
51661 "type" : "string",
51662 "typetext" : "<string>"
c30bb419
TL
51663 },
51664 "type" : {
51665 "enum" : [
51666 "qemu",
51667 "lxc",
51668 "storage"
51669 ],
51670 "optional" : 1,
51671 "type" : "string"
56122987 51672 }
44660702 51673 }
56122987 51674 },
56122987 51675 "permissions" : {
56122987
DM
51676 "check" : [
51677 "perm",
51678 "/pool/{poolid}",
51679 [
0695fdaf 51680 "Pool.Audit"
56122987
DM
51681 ]
51682 ]
51683 },
7aacca6f 51684 "returns" : {
44660702 51685 "additionalProperties" : 0,
56122987 51686 "properties" : {
44660702
DM
51687 "comment" : {
51688 "optional" : 1,
51689 "type" : "string"
51690 },
7aacca6f 51691 "members" : {
7aacca6f
DM
51692 "items" : {
51693 "additionalProperties" : 1,
7aacca6f 51694 "properties" : {
7aacca6f
DM
51695 "id" : {
51696 "type" : "string"
51697 },
51698 "node" : {
51699 "type" : "string"
51700 },
44660702
DM
51701 "storage" : {
51702 "optional" : 1,
51703 "type" : "string"
51704 },
7aacca6f 51705 "type" : {
7aacca6f
DM
51706 "enum" : [
51707 "qemu",
51708 "lxc",
51709 "openvz",
51710 "storage"
44660702
DM
51711 ],
51712 "type" : "string"
51713 },
51714 "vmid" : {
51715 "optional" : 1,
51716 "type" : "integer"
7aacca6f 51717 }
44660702
DM
51718 },
51719 "type" : "object"
51720 },
51721 "type" : "array"
51722 }
51723 },
51724 "type" : "object"
51725 }
51726 },
51727 "PUT" : {
e9cd3bd4 51728 "allowtoken" : 1,
44660702
DM
51729 "description" : "Update pool data.",
51730 "method" : "PUT",
51731 "name" : "update_pool",
51732 "parameters" : {
51733 "additionalProperties" : 0,
51734 "properties" : {
56122987
DM
51735 "comment" : {
51736 "optional" : 1,
013dc89f
DM
51737 "type" : "string",
51738 "typetext" : "<string>"
44660702
DM
51739 },
51740 "delete" : {
51741 "description" : "Remove vms/storage (instead of adding it).",
51742 "optional" : 1,
013dc89f
DM
51743 "type" : "boolean",
51744 "typetext" : "<boolean>"
44660702
DM
51745 },
51746 "poolid" : {
51747 "format" : "pve-poolid",
013dc89f
DM
51748 "type" : "string",
51749 "typetext" : "<string>"
44660702
DM
51750 },
51751 "storage" : {
51752 "description" : "List of storage IDs.",
51753 "format" : "pve-storage-id-list",
51754 "optional" : 1,
013dc89f
DM
51755 "type" : "string",
51756 "typetext" : "<string>"
44660702
DM
51757 },
51758 "vms" : {
51759 "description" : "List of virtual machines.",
51760 "format" : "pve-vmid-list",
51761 "optional" : 1,
013dc89f
DM
51762 "type" : "string",
51763 "typetext" : "<string>"
56122987 51764 }
44660702
DM
51765 }
51766 },
51767 "permissions" : {
51768 "check" : [
51769 "perm",
51770 "/pool/{poolid}",
51771 [
51772 "Pool.Allocate"
51773 ]
51774 ],
51775 "description" : "You also need the right to modify permissions on any object you add/delete."
51776 },
51777 "protected" : 1,
51778 "returns" : {
51779 "type" : "null"
56122987
DM
51780 }
51781 }
51782 },
44660702
DM
51783 "leaf" : 1,
51784 "path" : "/pools/{poolid}",
7aacca6f 51785 "text" : "{poolid}"
56122987 51786 }
7aacca6f 51787 ],
56122987
DM
51788 "info" : {
51789 "GET" : {
e9cd3bd4 51790 "allowtoken" : 1,
44660702
DM
51791 "description" : "Pool index.",
51792 "method" : "GET",
51793 "name" : "index",
51794 "parameters" : {
51795 "additionalProperties" : 0
51796 },
51797 "permissions" : {
0695fdaf 51798 "description" : "List all pools where you have Pool.Audit permissions on /pool/<pool>.",
44660702
DM
51799 "user" : "all"
51800 },
56122987 51801 "returns" : {
44660702
DM
51802 "items" : {
51803 "properties" : {
51804 "poolid" : {
51805 "type" : "string"
51806 }
56122987 51807 },
44660702
DM
51808 "type" : "object"
51809 },
51810 "links" : [
51811 {
51812 "href" : "{poolid}",
51813 "rel" : "child"
51814 }
51815 ],
51816 "type" : "array"
51817 }
51818 },
51819 "POST" : {
e9cd3bd4 51820 "allowtoken" : 1,
44660702
DM
51821 "description" : "Create new pool.",
51822 "method" : "POST",
51823 "name" : "create_pool",
51824 "parameters" : {
51825 "additionalProperties" : 0,
51826 "properties" : {
51827 "comment" : {
51828 "optional" : 1,
013dc89f
DM
51829 "type" : "string",
51830 "typetext" : "<string>"
7aacca6f 51831 },
44660702
DM
51832 "poolid" : {
51833 "format" : "pve-poolid",
013dc89f
DM
51834 "type" : "string",
51835 "typetext" : "<string>"
56122987
DM
51836 }
51837 }
51838 },
56122987 51839 "permissions" : {
44660702
DM
51840 "check" : [
51841 "perm",
51842 "/pool/{poolid}",
51843 [
51844 "Pool.Allocate"
51845 ]
51846 ]
56122987 51847 },
44660702
DM
51848 "protected" : 1,
51849 "returns" : {
51850 "type" : "null"
51851 }
51852 }
51853 },
51854 "leaf" : 0,
51855 "path" : "/pools",
51856 "text" : "pools"
51857 },
51858 {
51859 "info" : {
51860 "GET" : {
e9cd3bd4 51861 "allowtoken" : 1,
5370fa8c 51862 "description" : "API version details, including some parts of the global datacenter config.",
44660702
DM
51863 "method" : "GET",
51864 "name" : "version",
7aacca6f
DM
51865 "parameters" : {
51866 "additionalProperties" : 0
51867 },
44660702
DM
51868 "permissions" : {
51869 "user" : "all"
51870 },
51871 "returns" : {
51872 "properties" : {
5370fa8c
TL
51873 "console" : {
51874 "description" : "The default console viewer to use.",
51875 "enum" : [
51876 "applet",
51877 "vv",
51878 "html5",
51879 "xtermjs"
51880 ],
51881 "optional" : 1,
51882 "type" : "string"
51883 },
44660702 51884 "release" : {
5370fa8c 51885 "description" : "The current Proxmox VE point release in `x.y` format.",
44660702
DM
51886 "type" : "string"
51887 },
51888 "repoid" : {
5370fa8c 51889 "description" : "The short git revision from which this version was build.",
4a407cfd 51890 "pattern" : "[0-9a-fA-F]{8,64}",
44660702
DM
51891 "type" : "string"
51892 },
51893 "version" : {
5370fa8c 51894 "description" : "The full pve-manager package version of this node.",
44660702
DM
51895 "type" : "string"
51896 }
51897 },
51898 "type" : "object"
51899 }
56122987
DM
51900 }
51901 },
44660702
DM
51902 "leaf" : 1,
51903 "path" : "/version",
56122987
DM
51904 "text" : "version"
51905 }
51906]
51907;
51908